星盟应急响应-XMCVE-钓鱼邮件WP

题目 XMCVE-钓鱼邮件:

jason和H1ck反目成仇,竟黑入服务器窃取数据? 故事反转再反转,谁才是真正的黑客?

题目如下:

攻击者的两台服务器地址 192.168.110.128、101.201.30.142
攻击者植入的 WebShell 密码 cmd
攻击者登录成功的时间 2026/5/18 19:33:03
攻击者修改的文件 init_db.sql
攻击者创建的用户 root
攻击者最后发送的邮件 以教授身份发送的邮件
攻击者是谁 王鹏

进入靶机,桌面几个文件有点信息但没用(实验室密码:默认空密码,请同学登录后第一时间修改密码)。题目中提到攻击利用方式是webshell,那么攻击入口肯定是本机部署的web服务存在文件上传漏洞导致攻击者上传了webshell,那么从phpstudy入手……

好的以此为思路进行排查你就会发现,根本无法真正确认攻击者是谁、其服务器地址是什么,究其原因:这是一道情景题哦

进入Foxmail,查看邮件我们会得知本次情景共有四位角色出演,分别是
本机主人:h1ck
h1ck的课题搭档:Jason
“想要买h1ck源码的同学”:wangpeng
导师:教授

整个Foxmail也是信息满满,收件箱、草稿箱、发件箱、垃圾箱都有邮件

通过查看收件箱和草稿箱子的邮件,故事可能是这样的(简述一下):
h1ck与Jason本来需要共同完成课题,但是Jason一直以各种理由推脱碰面交流,将事情全部交给h1ck一个人做,h1ck表示十分不满。在此期间教授也发现了该情况表示要跟Jason谈谈因此Jason态度变得恶劣发邮件开始甩锅。于此同时wangpeng发来邮件表示自己的课题被教授否决想要买h1ck的系统源码等内容甚至开到了5w的价格,但是h1ck明确拒绝。之后Jason开始道歉表示是自己有错在先希望看h1ck搭建的框架和源码而h1ck接收其道歉将系统部署到了http://192.168.110.200:8080给其查看进度。Jason的最后一条邮件告诉h1ck课题被抄袭了并附上了钓鱼链接http://101.201.30.142/login.htmlh1ck输入了相应账户密码导致信息泄露。最后教授表示掌握h1ck抄袭证据。

到这可能会觉得Jason、wangpeng都有嫌疑,h1ck是单纯的受害者。那么我们结合草稿箱和疑点/破绽重新梳理一遍这个有趣的故事

疑点一,明显的时间问题:

草稿箱中第一份邮件是h1ck对Jason邮件的恢复,可以看到这里h1ck编辑时间是2026年5月18日 (周一) 15:27,邮件内容表达对Jason不满

但是在2026年5月18日 (周一) 15:34却收到了Jason打招呼的邮件

并且此后Jason的邮件发送时间间隔在分钟内,完成了从打招呼->推脱->甩锅->钓鱼的全部流程,一眼伪造邮件

破绽,邮件发送来自kali:

垃圾箱有一封乱码邮件,其实第一次打开并非乱码内容具体是

h1ck:

导师刚才直接来找我了,问我俩的课题进度,说好昨天就该交第一阶段成果的。我在群里@你半天没反应,电话也不接,你到底什么情况?

当初说好分工你负责数据库设计和后端接口,到现在我连个表结构都没看到。导师很生气,让我们明天上午必须去他办公室汇报。

你现在做到哪一步了?赶紧把已经写完的部分发我,哪怕是个半成品,我先整合一下看能不能糊弄过去。真要拿不出东西,这个课题咱俩都得挂,你自己看着办。

别拖了,收到立刻回我。

于是查看邮件源码,发现这封邮件是kali swaks伪造的

后续也发现收件箱中的邮件基本都是伪造的,

疑点二、自己发邮件给自己?:

这里也能看到正常的ID应该是带@edu.com,带kail伪造邮件板上钉钉

通过疑点/破绽我们能够确认攻击者的两个服务器地址:内网kali:192.168.110.128和公网服务器:101.201.30.142
到此故事刚开始:
攻击者持续假冒Jason、教授、wangpeng发邮件给h1ck,挑拨离间Jason和h1ck并且最终成功钓鱼h1ck,导致h1ck web服务沦陷主机被入侵,最后还以教授身份发邮件表示h1ck就是存在抄袭行为。那么教授排除嫌疑,受害者:h1ck、Jason?攻击者是?

到此总算开始我们的应急响应之路

桌面上有phpstudy,查看发现安装了php、apache、nginx、mysql服务

因为攻击者切入点是webshell那么第一步审计apache和nginx的日志文件
其中存在内容的仅这四个,并且error.log中无有效信息

通过nginx日志我们能够知道,h1ck本机在内网环境下的IP地址是192.168.110.139,可疑的IP地址192.168.110.1在多次访问login.php后出现302跳转登录成功疑似多次重放/短时间内多次登录,最终登录成功

登录成功然后持续性访问/PaymentSection/make_payment/make_payment.php路径结果一直403,就这样nginx的日志结束了([18/May/2026:17:38:02 +0800]),只知道登录成功没有其他文件上传或者webshell访问特征,非常奇怪

再去看apache的日志([18/May/2026:17:38:24 +0800])续上了nginx的日志,但是又进行了一次登录,这次访问的则是/PaymentSection/upload_paymentReceipt/upload_paymentReceipt.php 404结束

到此非常奇怪了,先不说一点文件上传和webshell访问的影子都没有,就连攻击者访问的路径都非常的奇怪,奇怪到好像网站根目录在WWW下一样(先卖个关子),到此中间件再无其他线索。

这个时候首先想到的是去看MySQL的日志但是排查后发现没啥用,之后我在extension下看到tmp目录,该目录下有session记录的文件,其中一条2026‎年‎5‎月‎18‎日,‏‎17:35:02的session引起了我的注意,到这里可以明确的得知,攻击者登录的应该是一个student01的测试普通用户(此前的日志路径也可以推测出来,admin的登录路径是/sms/admin/login)

那么去数据库里面看看有什么数据

admin_login_tbl表中有两个用户

lectures有一个用户

login_tbl一个测试用的普通用户,也就是攻击者登录的用户

其他就没有什么更关键的数据了,后面我尝试去系统中进行排查测试,以正确路径访问了一下之前攻击者访问失败的几个页面,其中最有可能上传webshell的页面就是这个账单上传的页面

有没有可能,webshell就在其uploads上传目录下呢,去查看了一下确实有uploads目录下面有两张图片,图片马?经过一系列检查,其实就是两张普通图片。

到此线索终端,webshell是在哪上传的?落地在哪的?依旧无法解答

回过头来梳理一下webshell的上传,也就是文件上传的利用方法
.htaccess/nginx.htaccess利用+图片马利用
.phtml .php3后缀绕过利用
利用中间件解析规则绕过…

以这个思路排查,发现均为找到可疑文件,.htaccess为空,没有特殊后缀,解析绕过也不存在…

没有上传落地的可疑文件,那么得换个思路了,webshell有没有可能就不是上传上来的而是本身随着系统而存在的呢?

于是乎我开始系统性排查,重点看普通用户访问的系统中是否有某个功能(或者说某个目录)下存在uploads等相关的目录,最终功夫不负有心人在C:\phpstudy_pro\WWW\sms\ResultSection\Assignment\uploads找到了webshell。ResultSection设计的目的是从系统已经上传好的文件中展示对应的结果,根本不存在文件上传功能,那么也就是说这个文件本身不是植入的而是预埋的。

这里的webshell是靠按位取反 ~ + 十六进制字符串进行混淆的,最终反转得到webshell密码为cmd

array_map("system", [$_POST["cmd"]]);

后面就回归正常应急响应了,我们查看Windows登录日志,找到LoginType为10的登录日志,也就得到攻击者登录时间:2026/5/18 19:33:03

关于攻击者修改的文件,那么查找攻击者登录成功后这段时间出现的修改文件,写个powershell脚本进行筛查

Get-ChildItem "C:\phpstudy_pro\WWW\sms" -Recurse |
Where-Object {
    -not $_.PSIsContainer -and
    $_.LastWriteTime -ge [datetime]"2026-05-18 18:20:00" -and
    $_.LastWriteTime -le [datetime]"2026-05-18 19:40:00"
} |
Select-Object FullName, CreationTime, LastWriteTime, LastAccessTime, Length |
Out-File "C:\18点20到19点40修改文件.txt" -Encoding UTF8

得到结果是init_db.sql

刚打开就能看到

攻击者创建的账户net user 排查了一遍,保险起见注册表中/SAM/SAM/Domains/Users/Names看了一眼没有隐藏用户,回到刚刚看的init_db.sql这个是系统数据库初始化脚本,其中并没有root用户的创建,再写一个命令来看admin_login_tbl中数据的最后修改日期,最终确认攻击者创建的用户是root

攻击者最后发的邮件,这个很好确认就是最后以教授身份发送的这封

最后攻击者是谁,想必也不用多说了,其实就是王鹏

最后还原故事的原貌:王鹏因 h1ck 引用其系统代码而产生动机,提前在被引用的成绩模块源码中预埋混淆 WebShell。随后王鹏通过 Kali 使用 swaks 伪造邮件,并搭建钓鱼页面获取 h1ck 课题系统凭据。攻击者登录系统后并未通过上传点植入 WebShell,而是直接访问预埋的 config.php,通过 cmd 参数执行系统命令,随后进一步以 Administrator 通过 RDP 登录服务器,并伪造多封邮件制造 h1ck 与 Jason 冲突、嫁祸 h1ck 的假象。并且强调做实h1ck内容涉及代码抄袭的行为。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇