冰蝎、哥斯拉 内存马应急排查

admin 2022年12月17日04:04:55评论147 views字数 1877阅读6分15秒阅读模式

免责声明

本公众号所发布的文章及工具只限交流学习,本公众号不承担任何责任!如有侵权,请告知我们立即删除。

实验环境

  • Centos / tomcat 7.0.76
  • 冰蝎v4.0.5
  • 哥斯拉v4.0.1
  • Arthas 3.6.6

环境搭建

安装tomcat

通过yum安装tomcat。

yum install -y tomcat tomcat-webapps tomcat-admin-webapps

systemctl start tomcat

启动后访问8080端口,看到tomcat起来了。

冰蝎、哥斯拉 内存马应急排查
img

安装 Arthas

https://github.com/alibaba/arthas/releases

下载压缩包解压执行

wget https://github.com/alibaba/arthas/releases/download/arthas-all-3.6.6/arthas-bin.zip

unzip arthas-bin.**zip**

java -jar arthas-boot.**jar
冰蝎、哥斯拉 内存马应急排查
img

哥斯拉 内存马

用哥斯拉生成🐴。

冰蝎、哥斯拉 内存马应急排查
img

放到网站根目录下面。

冰蝎、哥斯拉 内存马应急排查
img

植入内存马之前查看内存中mbean信息。

 mbean | grep "name=/"
冰蝎、哥斯拉 内存马应急排查
img

FilterShell

连上哥斯拉的webshell可以看到提供了memoryShell和FilterShell两种🐴。

冰蝎、哥斯拉 内存马应急排查
img
冰蝎、哥斯拉 内存马应急排查
img

可以看到哥斯拉的Filter内存马name中都带有时间戳。

sc *.Filter

sc -d org.apache.coyote.SerializationConfig
冰蝎、哥斯拉 内存马应急排查
img

使用jad反编译我们认为可疑的类。

jad org.apache.coyote.SerializationConfig
冰蝎、哥斯拉 内存马应急排查
img
冰蝎、哥斯拉 内存马应急排查
img

代码中大量运用invoke反射来实现。

MemoryShell

冰蝎、哥斯拉 内存马应急排查
img

添加该内存马后通过mbean可以看到多了几个servlet。

mbean | grep "name=/"

sc *.Servlet
冰蝎、哥斯拉 内存马应急排查
img
冰蝎、哥斯拉 内存马应急排查
img

可疑的classloader。

冰蝎、哥斯拉 内存马应急排查
img

冰蝎 内存马

冰蝎内存马由于对底层函数做了hook的操作,所以特征更弱一些。

先生成冰蝎4.0的服务端。

冰蝎、哥斯拉 内存马应急排查
img

上传后连接注入内存马。

冰蝎、哥斯拉 内存马应急排查
img

开启冰蝎的防检测功能。

冰蝎、哥斯拉 内存马应急排查
img

连上内存马。

冰蝎、哥斯拉 内存马应急排查
img

冰蝎的classloader。

冰蝎、哥斯拉 内存马应急排查
img
冰蝎、哥斯拉 内存马应急排查
img

冰蝎🐴属于Servlet类型的,不过并不是加载内存马之后才有的,而是连接冰蝎服务端的时候就有的。

反编译冰蝎的马,可以看到明显AES加密的key。

冰蝎、哥斯拉 内存马应急排查
img

但是有个终极排查思路,就是内存dump。

heapdump 内存排查

不管冰蝎的内存马如何hook,但是内存🐴肯定是在内存中的。并且访问的时候是有路由映射的。那么内存dump出来的文件肯定会有记录。

heapdump

strings /var/cache/tomcat/temp/heapdump2022-10-19-12-464292342944555007800.hprof | grep "POST /"
冰蝎、哥斯拉 内存马应急排查
img

还有另外一种方法排查冰蝎内存🐴,就是查找内存中web目录的可疑路径。

strings /var/cache/tomcat/temp/heapdump2022-10-19-12-464292342944555007800.hprof | grep -E "/webapps/.*?!" | sort -u
冰蝎、哥斯拉 内存马应急排查
img

Arthas 排查内存马命令总结

classloader

sc *.Filter

sc *.Servlet

jad

heapdump

注意事项

使用Arthas可能会遇到下面的报错。

Unable to open socket file: target process not responding or HotSpot VM not loaded

冰蝎、哥斯拉 内存马应急排查
img

该报错是因为tomcat是以tomcat用户运行的,而我们用arthas是用root用户运行的。JVM 只能 attach 同样用户下的 java 进程。

使用runuser命令即可以tomcat用户运行arthas。

runuser -l tomcat -c "java -jar /usr/share/tomcat/arthas-boot.jar"
冰蝎、哥斯拉 内存马应急排查
img
冰蝎、哥斯拉 内存马应急排查

历史推荐

浪飒sec博客网正式上线

安卓APP推荐——网络万用表

漏洞复现-Tomcat8弱口令&&后台Getshell

超详细的渗透测试思维导图

安卓APP推荐——HookVip

安卓APP推荐——IP Tools去广告版

sec-interview——面试题汇总

域渗透-横向移动命令总结

一款不错的CTF平台——MarsCTF

SRC经验分享-BP历史流量找到的信息泄露

原文始发于微信公众号(浪飒sec):冰蝎、哥斯拉 内存马应急排查

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月17日04:04:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   冰蝎、哥斯拉 内存马应急排查https://cn-sec.com/archives/1468168.html

发表评论

匿名网友 填写信息