参考:学习干货|HVV必学远控工具及Webshell流量合集分析(建议收藏+附面试题)
蚁剑
ini_set
ini_set_time
ini_set_limit
@ini_set("display_errors","0")
部分代码明文传输,较好辨认
哥斯拉
1、User-Agent (弱特征)
在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。但是哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。
2、Accept(弱特征)
Accept为text/html, image/gif, image/jpeg, *; q=.2, /; q=.2 (冰蝎也有此特征)同样的这个默认特征也可以通过自定义头部去除,只能作为默认情况下的辅助检测特征。
3、Cookie (强特征)
在请求包的Cookie中有一个非常致命的特征,最后的分号。
4、请求体特征 (较强特征)
哥斯拉支持对加密的数据进行base64编码以及原始的加密raw两种形式的通讯数据
哥斯拉在进行初始化时会产生一个比较大的数据包,后面进行命令执行等操作时产生的base64数据包会比较比较小。
5、响应体特征 (强特征)
和请求体一样,请求响应体也分两个格式,base64编码的和原始加密raw数据。如果请求体采用base64编码,响应体返回的也是base64编码的数据。会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位
使用aes128位进行加密后的结果是16的倍数
冰蝎1:
冰蝎1有一个密钥协商过程,这个过程是明文传输,并且有两次流量,用来校验
冰蝎2:
因为内置了很多的UA头,所以当某一个相同IP重复请求,但是UA头不一样的时候就需要注意了
冰蝎3
jsp:
- octet-stream是jsp的特征
- jsp马的请求包流量是base64编码后的class文件再进行aes128加密的
- jsp马的返回包流量是aes加密后的二进制数据
- 密钥交互获取信息是定长的数据
- webshell中写有链接密码
php:
第一个发送包流量为 aes-128加密 加密密钥为冰蝎的连接密码md5值前16位,第一个返回包也是aes128加密
冰蝎4
特征:
Accept: application/json, text/javascript, /; q=0.01
Content-type: Application/x-www-form-urlencoded (弱特征)
冰蝎设置了10种User-Agent,每次连接shell时会随机选择一个进行使用。
冰蝎与webshell建立连接的同时,java也与目的主机建立tcp连接,每次连接使用本地端口在49700左右,每连接一次,每建立一次新的连接,端口就依次增加。可以对符合该范围内的端口告警。
长连接:冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection
内存马
` 由客户端发起的Web请求后,中间件的各个独立的组件如Listener、Filter、Servlet等组件会在请求过程中做监听、判断、过滤等操作,内存马就是利用请求过程在内存中修改已有的组件或动态注册一个新的组件,插入恶意的shellcode,达到持久化控制服务器的目的。内存马可以通过访问存在漏洞的url加上命令执行参数,即可让服务器返回结果也可通过webshell管理工具例如:蚁剑、冰蝎、哥斯拉等进行远程连接后攻击目标。
判断方式:
先判断是通过什么方法注入的内存马,可以先查看web日志是否有可疑的web访问日志,如果是filter或者listener类型就会有大量url请求路径相同参数不同的,或者页面不存在但是返回200的,查看是否有类似哥斯拉、冰蝎相同的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合。通过查找返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马。如在web日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的error.log日志查看是否有可疑的报错
内存马查杀:
java内存马查杀:GitHub - c0ny1/java-memshell-scanner: 通过jsp脚本扫描java web Filter/Servlet型内存马
可以用来查看jvm的工具所以可以用来分析内存:GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
直接下载编译好的jar包
工具:GitHub - LandGrey/copagent: java memory web shell extracting tool
一些使用看:内存马检测排查手段_内存马查杀-CSDN博客
asp内存马:
工具:GitHub - yzddmr6/ASP.NET-Memshell-Scanner: asp.net内存马检测工具
php内存马:
只需要把文件删除然后重启就可以解决
临时解决方法,使用条件竞争方式修改文件内容
使用河马查杀
下载链接:
https://dl.shellpub.com/hmj/1.4.0/hmj-linux-amd64-1.4.0.tar.gz
https://dl.shellpub.com/hmws/1.2.0/hmws-1.2.0.zip
原文:内存马专杀开放下载 | 当杀疯了的内存马遇到河马
看说要多运行几遍结果才准确
tomcat的内存马可以在jvm的目录下面找到生成的.class文件,将这些注入的文件删除了在重启服务也可以。
其他方式:
1.利用条件竞争把shell内容改写或者清除比较好用
2.提前占用他的目录名