0x01 前言
环境来源于某次实战中、此处对故事情节做虚拟处理
小张的公司最近遭到了钓鱼邮件攻击,多名员工的终端被控制作为跳板攻击了内网系统,请对钓鱼邮件样本和内网被攻陷的系统进行溯源分析,请根据小张备份的数据样本分析
注: 需要此环境附件的同学
关注本公众号 回复 '钓鱼邮件' 即可获取
* 相关题目、环境、转发权限已获得授权
注: 需要练习蓝队相关知识,应急响应,流量分析,shell查杀等
关注本公众号-左下角加好友-投稿蓝队应急响应相关镜像获取注册码
PS: 因所有环境都采用了上云技术,每次开启环境都会开启一个裸机服务器,公益类型,资源紧张,所以邀请码有限,但邀请码后期会不定时通过各种形式进行下发,所有环境来源于: 全国各大赛、国护及省护、日常应急及个人制作,资源收集不易且珍惜,一直在更新!
* 本次环境已进行脱敏处理、且已进行授权发布,文章仅供学习参考请勿进行违法传播使用,否则后果自行承担
0x02 题目展示
第七章 常见攻击事件分析--钓鱼邮件
1. 请分析获取攻击者发送钓鱼邮件时使用的IP flag{127.0.0.1}
2. 请分析获取攻击者钓鱼邮件中使用的木马程序的控制端IP flag{127.0.0.1}
3. 攻击者在被控服务器上创建了webshell,请分析获取webshell的文件名,请使用完整文件格式 flag{/var/www/html/shell}
4. 攻击者在被控服务器上创建了内网代理隐蔽通信隧道,请分析获取该隧道程序的文件名,请使用完整文件路径 flag{/opt/apache2/shell}
* 请勿在本机运行恶意文件样本 请勿在本机运行恶意文件样本 请勿在本机运行恶意文件样本
0x03 结果复现
问: 请分析获取攻击者发送钓鱼邮件时使用的IP
答: 121.204.224.15
需要理解的是,在电子邮件传输过程中,每个邮件服务器都会在邮件头部的 "Received" 部分添加一条记录。这些记录按照发送顺序逐步追加,以显示邮件经过的服务器路径。
最后一个 "Received" 部分通常包含发件人的原始IP地址,因为它是由真正的发件人的邮件服务器添加的。之前的 "Received" 部分可能显示其他邮件服务器的IP地址,但这些并不是最初的发件IP地址。
因此,通过查看最后一个 "Received" 部分的IP地址,可以更准确地确定邮件的真实发件IP地址。这对于追踪垃圾邮件、判断邮件来源的可信度以及进行网络安全分析等方面非常有用。
此处使用Foxmail查看邮件、其他部分邮箱查看方法如下、也可以使用某些文本查看工具
Gmail:打开邮件并向下滚动到邮件的底部,然后点击 "显示原始"。在打开的窗口中,你将看到邮件的原始标头,其中包含了 "Received" 部分。
Outlook:打开邮件,并在邮件窗口中选择 "文件" 选项卡。然后,在 "信息" 部分中,你会找到 "属性" 选项。点击 "属性" 后,在弹出的窗口中,你可以看到邮件的 "Internet 标头",其中包含了 "Received" 部分。
Thunderbird:打开邮件,并选择邮件窗口上方的 "视图" 菜单。在 "消息源" 或 "邮件头" 选项中,你将看到邮件的原始标头,其中包含了 "Received" 部分。
通过头部字段看到IP地址和邮箱域名,通过情报查询二者相互绑定
继续观察后面的"Received"头部标签,看到"X-mailer"就是攻击者发送钓鱼邮件的IP地址
问: 请分析获取黑客钓鱼邮件中使用的木马程序的控制端IP
答: 107.16.111.57
* 请不要在本机运行程序
钓鱼软件在启动时会进行外部连接,此时可以使用微步云沙箱查看详细信息
或者使用IDA、虚拟机进行外部连接查看对应的动态信息(没必要)
问: 攻击者在被控服务器上创建了webshell,请分析获取webshell的文件名,请使用完整文件格式
答: /var/www/html/admin/ebak/Redate.php
简单查看给出的目录架构,除了一个日志目录还有WEB目录,webshell的情况下可以使用命令工具遍历(前提已知webshell函数、类型等)、未知情况下碰运气、一般情况下,PHP webshell分为以下
exec():用于执行系统命令。
system():用于执行系统命令,类似于 exec()。
shell_exec():用于执行系统命令,返回命令输出。
passthru():用于执行系统命令,并将命令输出直接发送到输出流。
popen():用于打开进程文件指针,并执行一个命令。
proc_open():用于执行一个命令,并打开进程文件指针。
eval():用于执行字符串中的 PHP 代码。
base64_decode():用于解码经过 Base64 编码的字符串,常用于解码加密的命令。
file_get_contents():用于读取文件内容。
file_put_contents():用于写入内容到文件。
fopen() 和 fwrite():用于打开文件并写入内容。
mysql_query():用于执行 MySQL 数据库查询。
preg_replace():用于执行正则表达式替换。
可以将以上函数做一个字典,进行筛选
grep -r -n -i -E 'exec|system|shell_exec|passthru|popen|proc_open|eval|base64_decode|file_get_contents|file_put_contents|fopen|fwrite|mysql_query|preg_replace' var/www/html/
这样搜索程序会按照指定的要求进行输出,但是大部分程序用到这些函数的时候很正常,而筛选并不会对上下程序进行判断是不是危害
此时可以使用D盾直接拖进来扫描,拿到webshell地址
问: 攻击者在被控服务器上创建了内网代理隐蔽通信隧道,请分析获取该隧道程序的文件名,请使用完整文件路径
答: /var/tmp/proc/my.conf
相关文件已放入到压缩包,无需开启环境
攻击者修改了mysql的配置文件,定义了代理地址,使用socks5进行连接
0x04 结语
以上环境来源于现实实战中,攻击者通过发送钓鱼邮件对某企业工作人员,工作人员点击后触发外连,攻击者进行远控作为跳板机,进行内网横向攻击,然后在业务服务器中传入Webshell后门文件,并创建内网代理隐蔽通信隧道进行后期危害操作
不论是在日常服务还是在HVV期间,流量巡检至关重要、严防死守是赛博保安的宗旨
原文始发于微信公众号(州弟学安全):学习干货|实战中的钓鱼邮件分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论