第六章 流量特征分析-钓鱼邮件
一、钓鱼邮件的核心特征
- 发件人信息异常
- 伪造发件人地址:攻击者常伪装成可信来源(如公司高管、合作机构)。
- 域名伪装:使用相似域名(如 g00gle.com 代替 google.com)或子域名混淆。
- 发件人频繁变更:同一钓鱼活动中可能使用多个发件人邮箱。
- 邮件头分析
- SPF/DKIM/DMARC验证失败:检查邮件头中 Received-SPF、DKIM-Signature 等字段,验证发件域名的合法性。
- 跳板服务器:邮件可能通过多个代理服务器转发,IP地址归属地与发件人声称的位置不符。
- 邮件内容特征
- 诱导性语言:包含紧急操作要求(如“账户将被冻结”“立即验证身份”)。
- 虚假链接(URL):
- 短链接(如 bit.ly)隐藏真实地址。
- 域名伪装(如 www.apple-pay.com 伪装苹果官网)。
- HTTP协议滥用:钓鱼链接可能使用HTTP而非HTTPS,或HTTPS证书无效。
- 附件风险:
- 恶意文件类型(如 .exe, .js, .docm 含宏病毒)。
- 文件名诱导(如“Invoice_2023.pdf.exe”)。
- 网络流量特征
- 异常SMTP流量:发送大量相似邮件至内部员工,触发邮件服务器流量激增。
- DNS请求异常:解析可疑域名(如新注册或短生命周期的域名)。
- 外联行为:用户点击链接后,设备可能向C&C服务器发送请求(可通过防火墙日志检测)。
二、流量分析技术手段
- 邮件头解析工具
- 使用在线工具(如 MXToolbox、Email Header Analyzer)解析邮件头,追踪真实来源IP和路由路径。
- URL检测
- 静态分析:检查链接域名是否在已知黑名单(如VirusTotal、Google Safe Browsing)。
- 动态沙箱检测:通过沙箱环境(如Any.Run、Cuckoo Sandbox)模拟点击链接,观察是否触发恶意行为。
- 附件分析
- 使用杀毒引擎(ClamAV、VirusTotal)扫描附件。
- 分析文件哈希值(MD5/SHA-1)是否匹配已知恶意样本。
- 网络流量抓包
- Wireshark抓包:分析SMTP协议交互、DNS请求、HTTP/HTTPS外联流量。
- 日志分析:结合防火墙、邮件网关日志,识别异常IP或域名访问记录。
三、钓鱼邮件防御策略
- 技术防御
- 部署邮件网关(如Proofpoint、Mimecast)进行SPF/DKIM/DMARC验证。
- 启用URL重写(Link Rewriting)技术,阻断恶意链接。
- 限制可执行附件(如.exe)的接收。
- 员工意识培训
- 模拟钓鱼演练,提高员工识别钓鱼邮件的能力。
- 教育员工勿轻信紧急请求,需通过官方渠道二次确认。
- 事件响应
- 隔离受感染设备,阻断与C&C服务器的通信。
- 分析钓鱼邮件的IOC(Indicators of Compromise),更新防火墙和邮件过滤规则。
四、案例分析(小王公司场景)
- 攻击链还原:
- 员工收到伪装成财务部的邮件,要求“紧急更新工资账户信息”。
- 邮件内含短链接 bit.ly/xxxxx,点击后跳转至钓鱼页面(模仿公司OA系统)。
- 页面诱导输入账号密码,攻击者窃取凭据后横向渗透内网。
- 流量分析步骤:
- 步骤1:提取邮件头,发现SPF验证失败,发件IP归属地异常。
- 步骤2:短链接解析后指向境外服务器,HTTPS证书为自签名。
- 步骤3:防火墙日志显示多个设备访问该IP,触发告警。
五、关键工具推荐
- 邮件分析:EmailAnalyzer、MailTracker
- 流量分析:Wireshark、Suricata(IDS)
- 威胁情报:VirusTotal、Cisco Talos
第六章 流量特征分析-小王公司收到的钓鱼邮件
来自 <https://xj.edisec.net/challenges/58>
任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王在 WAF 上发现了一段恶意流量,请分析流量且提交对应 FLAG
题目描述:
1,下载数据包文件 hacker1.pacapng,分析恶意程序访问了内嵌 URL 获取了 zip 压缩包,该 URL 是什么将该 URL作为 FLAG 提交 FLAG(形式:flag{xxxx.co.xxxx/w0ks//?YO=xxxxxxx}) (无需 http、https);
2,下载数据包文件 hacker1.pacapng,分析获取到的 zip 压缩包的 MD5 是什么 作为 FLAG 提交 FLAG(形式:flag{md5});
3,下载数据包文件 hacker1.pacapng,分析 zip 压缩包通过加载其中的 javascript 文件到另一个域名下载后续恶意程序, 该域名是什么?提交答案:flag{域名}(无需 http、https)
1,题目提到了受害者点击恶意邮件导致访问内嵌URL获取了zip压缩包,那么这个过程肯定涉及http协议,并且一般下载文件所以的是GET请求
http.request.method==GET
追踪查看NO.7的http流
<div id="url" data-url="/w0ks//?YO=1702920835">Loading...</div>
<script>
function red(){ window.location.href = document.getElementById("url").getAttribute("data-url"); }
setTimeout(red, 3000);
</script>
延迟重定向:页面加载3秒后自动跳转至 /w0ks//?YO=1702920835,可能是为了逃避静态URL检测或增加用户信任感(伪装成“加载中”页面)。
- 参数 YO=1702920835:疑似Unix时间戳,转换为UTC时间为 2023-12-18 17:33:55,与请求时间 Date: Mon, 18 Dec 2023 17:33:55 GMT 完全一致,可能用于会话校验或动态生成钓鱼页面。
服务器信息:
- Server: nginx + x-powered-by: PHP/7.4.33 + x-turbo-charged-by: LiteSpeed
- 混合使用Nginx和LiteSpeed服务器,PHP版本较旧(7.4.33已停止官方支持),需警惕漏洞利用。
可以看到出现了gzip的字眼,那么就可以确定记录访问内嵌URL的流量就在这,将URL拼接在一起得到flag:
flag{tsdandassociates.co.sz/w0ks//?YO=1702920835}
2,问压缩包的md5值,将压缩包先分离再说。
过滤http协议之后直接查看协议分级即可,看看文件的位置然后导出
作为过滤器应用然后选中。查看到data协议,然后选择No.111流量导出分组字节流
导出来之后文件大小约为84KB
直接计算MD5值,得到flag{f17dc5b1c30c512137e62993d1df9b2f}
3,解压导下来的压缩包,其中有一个Nuj.js,这是一段javascript代码
简单分析
这段代码包含了一些注释以及一个对 o457607380 变量的操作。
注释部分
注释部分包含一些看似随机的拉丁文句子,它们并不影响代码的执行,只是对代码进行了说明或者掩盖了代码的实际意图。
这些注释通常用于混淆代码,使得代码阅读和分析变得更加困难。
代码执行部分
o457607380 += 'h';
o457607380 += 't';
这两行代码对变量 o457607380 进行了字符串追加操作。
详细分析,字符串操作
o457607380 += 'h'; 将字符串 ‘h’ 追加到 o457607380 变量的当前值之后。
o457607380 += 't'; 将字符串 ‘t’ 追加到 o457607380 变量的当前值之后。
变量 o457607380 的用途
从代码来看,o457607380 变量被用来存储字符串,这些字符串通过逐步追加的方式构建。具体用途可以是任何需要动态构建字符串的场景,比如生成特定的标识符、构建 URL 或路径等。
混淆技术
使用大量的注释和无关的文字是一种常见的代码混淆技术,目的是使恶意行为不那么显而易见。
这类混淆技术常用于恶意软件中,以绕过简单的静态分析工具和提高分析难度。
总结
这段代码通过逐步向变量 o457607380 追加字符串的方式构建一个新的字符串值。同时,代码中插入了大量无关的注释,可能是为了混淆和掩盖其实际目的。这种技术在恶意软件中比较常见,目的是增加逆向工程和分析的难度。
o457607380 = ‘’; o457607380+=‘h’; o457607380+=‘t’; o457607380+=‘t’; o457607380+=‘p’; o457607380+=‘s’; o457607380+=‘:’; o457607380+=‘/’; o457607380+=‘/’; o457607380+=‘s’; o457607380+=‘h’; o457607380+=‘a’; o457607380+=‘k’; o457607380+=‘y’; o457607380+=‘a’; o457607380+=‘s’; o457607380+=‘t’; o457607380+=‘a’; o457607380+=‘t’; o457607380+=‘u’; o457607380+=‘e’; o457607380+=‘s’; o457607380+=‘t’; o457607380+=‘r’; o457607380+=‘a’; o457607380+=‘d’; o457607380+=‘e’; o457607380+=‘.’; o457607380+=‘c’; o457607380+=‘o’; o457607380+=‘m’; o457607380+=‘/’; o457607380+=‘A’; o457607380+=‘6’; o457607380+=‘F’; o457607380+=‘/’; o457607380+=‘6’; o457607380+=‘1’; o457607380+=‘6’; o457607380+=‘2’; o457607380+=‘3’; o457607380+=‘1’; o457607380+=‘6’; o457607380+=‘0’; o457607380+=‘3’; l988241708 = ‘’; l988241708+=‘q’; l988241708+=‘u’; l988241708+=‘i’; l988241708+=‘.’; l988241708+=‘q’; console.log(o457607380, l988241708); |
flag{shakyastatuestrade.com}