经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
CS后门源码特征分析与IDS入侵检测
来源:cnblogs  作者:Sol_9  时间:2024/6/13 22:14:33  对本文有异议

CS后门源码特征分析与IDS入侵检测考核作业

上线x64

getshell

抓心跳包,对特征字符解密Uqd3

用java的checksum8算法得到93,说明是x64的木马

  1. public class EchoTest {
  2. public static long checksum8(String text) {
  3. if (text.length() < 4) {
  4. return 0L;
  5. }
  6. text = text.replace("/", "");
  7. long sum = 0L;
  8. for (int x = 0; x < text.length(); x++) {
  9. sum += text.charAt(x);
  10. }
  11. return sum % 256L;
  12. }
  13. public static void main(String[] args) throws Exception {
  14. System.out.println(checksum8("Uqd3"));
  15. }
  16. }

再上线一个32位的木马

抓心跳包

  1. GET /7sy9 HTTP/1.1
  2. User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
  3. Host: 192.168.225.128:2222
  4. Connection: Keep-Alive
  5. Cache-Control: no-cache

再算一下发现是92,是一个32位的木马

心跳包解密:

看报错缺了依赖,pip install xxxxx下好

win+r cmd使用命令netstat -ano,查看被控端的连接

看到有2222端口,再去看wireshark的流量,过滤这俩的流量包,找到uid,就能找到伪装的exe木马

  1. # suricata规则
  2. # http-beacon-staging,向c2服务器发起get请求,下载大小约210kb的stager,请求地址符合
  3. checksum8规则
  4. # 调用lua检查uri是否符合checksum8规则:计算uri的ascii之和并与256做取余计算,余数为92则符合
  5. 规则
  6. alert http any any -> any any (gid:3333; sid:30001; rev:1; msg:"http-beacon-checksum8-path-parse"; classtype: http-beacon; flow: established, to_server; urilen:4<>6; luajit:checksum8_check.lua; )
  7. # checksum8_check.lua
  8. function init (args)
  9. local needs = {}
  10. needs["http.uri"] = tostring(true)
  11. return needs
  12. end
  13. function match(args)
  14. local uri_raw = tostring(args["http.uri"])
  15. local uri = string.sub(uri_raw, 2, -1) -- 去除uri中的"/"
  16. local sum = 0
  17. for i=1,#uri do
  18. local x = string.sub(uri,i,i)
  19. sum = sum + string.byte(x)
  20. end
  21. if (sum % 256) == 92 then
  22. return 1 -- 符合checksum8规则,匹配成功
  23. else
  24. return 0 -- 不符合checksum8规则,匹配失败
  25. end
  26. end

创建一个http的规则文件,命名位cshttp将规则写入

然后放入suricata的规则文件夹之中运行之后再查看日志

之后再生成一个https型的后门,先创建一个新的监听器

再生成一个可执行的恶意文件

之后在物理机中运行用wirehshark进行流量监测可以发现JA3码具有明显的特征

编写规则文件

  1. # https-beacon-ja3指纹,client-hello
  2. alert tls any any -> any any (gid:6666; sid:30005; rev:1; msg:"https-beacon-ja3-hash"; classtype: https-beacon; ja3.hash;
  3. pcre:"/652358a663590cfc624787f06b82d9ae|4d93395b1c1b9ad28122fb4d09f28c5e|72a589d
  4. a586844d7f0818ce684948eea|a0e9f5d64349fb13191bc781f81f42e1/"; )
  5. # https-beacon-ja3s指纹,server-hello
  6. alert tls any any -> any any (gid:6666; sid:30006; rev:1; msg:"https-beacon-ja3s-hash"; classtype: https-beacon; ja3s.hash;
  7. pcre:"/fd4bc6cea4877646ccd62f0792ec0b62|15af977ce25de452b96affa2addb1036|b742b40
  8. 7517bac9536a77a7b0fee28e9/"; )

查看日志

加壳免杀处理流量分析

因为是在无安全软件的干扰下进行的我们直接用一个最简单的upx壳来当作免杀处理

加壳之后先运行64位的后门软件,然后运行抓包,再将心跳包后缀改为vir文件解密

看上去upx壳并不能对最后解析的结果产生作用

再运行32位的http后门,将生成的心跳包用工具解密

可以看到同样也将心跳包的内容解密出来了

由此可见一些简单的加壳对心跳包的解读是没有影响的

原文链接:https://www.cnblogs.com/Sol9/p/18246874

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号