玄机靶场-第五届红明谷-异常行为溯源 WP
玄机靶场-第五届红明谷-异常行为溯源 WP这道题挺有意思的背景是说攻击者把服务器上的访问日志给删了但是因为他们之前通过网络传过这些日志正好被流量监控设备抓了个正着。所以题目给了个 PCAP 包让我们从里面把日志还原出来然后找出攻击者的真实 IP。1. 流量包初探拿到capture.pcap第一反应肯定是先扔进 Wireshark 里跑一遍。不过考虑到这题只有 600 分而且提示说“传输过日志数据”我决定先用最简单粗暴的方法——直接提取字符串。在 Linux 下直接敲命令strings capture.pcapextracted.txt这招虽然土但很多时候对付明文传输或者简单编码的数据特别好用。2. 数据解码与日志还原打开extracted.txt扫一眼发现里面混了一大堆看着像 Base64 编码的字符串全都是大小写字母、数字还有结尾的等号。这说明攻击者在传日志的时候大概率是做了层 Base64 编码来混淆视听。写个小脚本或者直接用命令行把这些符合 Base64 特征的串给捞出来解一下catextracted.txt|grep-E^[A-Za-z0-9/]$|base64-ddecoded_1.txt解完之后看了一眼decoded_1.txt发现里面还是有些乱码或者结构化的 JSON 数据里面有个msg字段特别显眼。顺着这个线索写个正则把所有msg字段里的内容提出来再做一次 Base64 解码。这一步做完终于看到庐山真面目了——全是标准的Nginx 访问日志格式。3. 定位攻击者 IP日志还原出来了接下来的活儿就变成了纯粹的日志分析。题目里有个很关键的提示“攻击者在开始时曾尝试低密度的攻击发现未被相关安全人员及时发现后进行了连续多日的攻击。”这话翻译过来就是在咱们还原出来的这段日志里这个攻击者的 IP 肯定出现了不止一次而且行为特征会比较明显比如频繁请求不存在的路径、扫后台之类的。最快的排查方法就是统计一下日志里各个 IP 的出现频次。直接上命令行三板斧grep-oE\b([0-9]{1,3}\.){3}[0-9]{1,3}\bdecoded_nginx.log|sort|uniq-c|sort-nr跑完结果一目了然排在最前面、出现次数最多4次的 IP 是35.127.46.111。再去翻一下具体的日志记录确认这个 IP 的确在做一些扫描探测的动作基本就能实锤这就是我们要找的攻击者了。4. 拿 Flag题目要求提交的是这个 IP 的 MD5 值。直接算一下echo-n35.127.46.111|md5sum结果是475ed6d7f74f586fb265f52eb42039b6。套上格式最终的 Flag 就是flag{475ed6d7f74f586fb265f52eb42039b6}5. 碎碎念这题其实不难主要考的就是基本功从流量包里抠数据、Base64 解码、正则提取、以及简单的日志分析。在真实的应急响应场景里攻击者删日志是常规操作但只要他们往外传数据流量设备就能抓到。所以除了做好本地日志审计部署个好用的全流量分析设备NDR真的能省很多事儿。