免杀对抗—python分离免杀无文件落地图片隐写SOCK管道

news2024/10/11 17:29:12

前言

之前就基本把所有语言都讲了一遍了,C/C++,Java,python,golang,汇编。今天就开始讲免杀的技巧以及手法,分离免杀之前讲过一点,就是通过http或者参数获取shellcode,今天把其他的分离方式也讲了。

实验环境

火绒,360,WD,VT

分离免杀

内存免杀是将shellcode直接加载进内存,由于没有文件落地,因此可以绕过文件扫描策略的查杀。为了使内存免杀的效果更好,在申请内存时一般采用渐进式申请一块可读写内存,在运行时改为可执行,在执行的时候遵循分离免杀的思想。分离免杀包含对特征和行为的分离两个维度,把shellcode从放在程序转移到加载进内存,把整块的shellcode通过分块传输的方法上传然后再拼接,这些体现了基本的"分离“思想。

通俗来讲:分离免杀,内存免杀,无文件落地这三个都是一种东西来对,更专业一点应该叫加载器分离。

文本加载

今天的实验都是用python来进行,因为python获取资源写起来简单,像C/C++可能要几十行代码才能实现python两三行代码的功能。那什么是文本加载呢,其实很简单,就是我把shellcode放在一个文本中,加载器放在一个py文件,执行的时候py文件去读取文本获取shellcode,以此来逃过杀软。

通过下面的代码,实现shellcode从文本中获取,注意shelcode要事先base64编码,这样比较方便。

with open('s.txt','r') as f:
    s=f.read()

shellcode=base64.b64decode(s)
....... //加载器省略

把shellcode进行base64编码之后,存储在s.txt

我们将其编译成exe试试免杀性,python打包成exe前面讲过了,就不再多讲了,火绒成功查杀到。

360也是能查杀到。

WD查杀不到exe,但是查杀了我们的s.txt。

既然WD查杀了我们的s.txt,那么我就加入一下垃圾字符进去,然后在解码之前去除就行。在shellcode中混入wlw这个垃圾字符,解码前去除就行。

s=s.replace('wlw','')

此时我们的s.txt再放进去就不会被WD查杀了。

试一下,成功上线。

还有一个玩法就是,我把加载器也分离出去,也就是我们把shellcode存在s.txt,把加载器存在z.txt,先读取s.txt的内容且解码,然后再读取z.txt的内容再解码,再利用exec函数去执行它。

import base64

def sc():
    with open('s.txt', 'r') as f:
        s = f.read()              //编码后的shellcode
    sc = base64.b64decode(s)
    return sc

def zx(s):
    sc=s                         //传入加载器的是变量SC,要和加载器的保持一致
    with open('z.txt', 'r') as f:
        z = f.read()            //编码后的加载器
    zx = base64.b64decode(z)
    exec(zx)

s=sc()
zx(s)

360可以查杀到,然后火绒的话能躲过静态查杀但是运行就告警,WD能过。

VT报7个,按理来说效果还行呀。

参数获取

这个之前介绍过的了,就是把shellcode当做参数来获取,sc获取加密后的shellcode,zx获取加密后的加载器。

if __name__ == '__main__':
    s=sys.argv[1]
    sc=base64.b64decode(s)
    z=sys.argv[2]
    zx=base64.b64decode(z)
    exec(zx)

测试结果呢,火绒和WD都没有被查杀到,但是火绒运行就会告警,360能查杀到。我怀疑是打包器的问题,我用的是pyinstaller打包的,用py2exe或者nuitka可能效果好很多,但是我懒得测试了,哈哈哈。

http获取

这个之前也是讲过的了,我们把shellcode放在公网上面,然后在代码中去请求这个文件资源。这里说一下就是尽量把文件放到一些绿标网站上去,比如百度后者阿里云这些存储资源的地方,然后请求它就会返回文件资源,这样子一个Waf检测到资源是来自阿里云或者百度就会认为是正常文件。

把上线代码编码成base64。

把111.txt也就是刚刚的base64编码放到公网上,由于我没有阿里云的OSS资源,我就直接放在公网服务器了。

编译成exe试试效果咯,360和WD免杀成功,执行起来也没有掉线啥的,但是火绒还是一执行就会告警,我真TM怀疑是打包器问题。

VT报5个,效果还可以啊。

SOCK管道传输 

这个就是简历一个sock隧道或者说是管道,来进行shellcode的传输,python写的sock传输脚本网上一大堆,这个是服务端,可以看到监听本地的2222端口,执行传输过来的data数据。

这是客户端,连接132主机的2222端口,进行数据传输。

把服务端编译成exe放到靶机上运行,本地再运行客户端传输shellcode。

成功上线。

免杀效果如何呢,用pyinstaller打包的话火绒和360都能查杀到,要是用py2exe只有360能查杀到,火绒的静态查杀是可以过的,至于动态查杀没有试。py2exe要比pyinstaller好用感觉,但是就是老是莫名其妙出问题,烦死了。

py2exe打包的话,VT报8个,中规中矩吧。

图片隐写

这个又是啥玩意呢,就是我把shellcode藏在图片里面,然后再去读取这个图片获取shellcode,其实就和上面的文本加载差不多,只是把文本换成了图片了。

脚本也是网上找的,值得一提的是,这个文章并不是专门用于安全方面,而是一位python研究的博主写的,只是我们把它用于安全方面而已。其实有时候只要思路能打开,很多不是用于免杀的东西,也可以作用到免杀这个领域,这种效果往往是非常好的,就像一般人饿了就去吃饭,而你偏要去吃屎,这谁想得到。

我们试试隐写效果,把wlw这个密文加密到1.png中去,生成一个2.png。

解密效果。

这时我们可以把wlw这个密文换成shellcode,再改一下代码,让它执行解密出来的密文不就可以实现上线了。

我们可以再原来的基础上加上加载器,func就是我们解出的密文,然后再让加载器去加载fun。

运行成功上线。

打包试试效果如何,我发现了一个问题,只要是用pyinstaller打包的exe都会被火绒查杀到,我估计是提取指纹了我操。用py2exe打包的火绒、360、WD都能过,但是我的这个打包器估计出了问题,打包出来的exe运行不了,真的服了。

VT报七个,中规中矩吧。

总结

今天主要是这个分离免杀,其实思路是很不错的,至于脚本那些,可以自己改进,或者说换个其他的语言来实现。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法

ppt压缩文件怎么压缩?当文件体积过大时,分享和传输就会变得困难。许多电子邮件服务对附件的大小有限制,而在网络环境不佳时,上传和下载大文件可能耗时较长。此外,在不同设备上播放时,较大的PPT文件还可能导…

Chromium HTML attribute与c++接口对应关系分析

<a href"https://www.w3school.com.cn" target"_blank">访问 W3School</a>前端这些属性定义在html_attribute_names.json5文件中&#xff1a; third_party\blink\renderer\core\html\html_attribute_names.json5 html_attribute_names.json5…

【前端碎片记录】大文件分片上传

大文件分片上传&#xff0c;主要是为了提高上传效率&#xff0c;避免网络问题或者其他原因导致整个上传失败。 HTML部分没什么特殊代码&#xff0c;这里只写js代码。用原生js实现&#xff0c;框架中可参考实现 // 获取上传文件的 input框 const ipt document.querySelector(…

Richtek立锜科技线性稳压器 (LDO) 选型

一、什么是LDO? LDO也可称为低压差线性稳压器&#xff0c;适合从较高的输入电压转换成较低输出电压的应用&#xff0c;这种应用的功率消耗通常不是很大&#xff0c;尤其适用于要求低杂讯、低电流和输入、输出电压差很小的应用环境。 二、LDO的特性 LDO透过控制线性区调整管…

【每日一坑】pcb出的光绘文件导入到cam350有两个警告

pcb出的光绘文件导入到cam350有两个警告&#xff1a; 1 Warning - Zero radius arc detected. Assuming linear interpolation. 2 Warning - Apertures are used which have a size of 0. 这个 应该检查到处光绘文件时候&#xff0c;默认的线宽是否为0&#xff1b; 通过负片…

面试八股文对校招的用处有多大?C/C++语言篇

前言 1.本系列面试八股文的题目及答案均来自于网络平台的内容整理&#xff0c;对其进行了归类整理&#xff0c;在格式和内容上或许会存在一定错误&#xff0c;大家自行理解。内容涵盖部分若有侵权部分&#xff0c;请后台联系&#xff0c;及时删除。 2.本系列发布内容分为12篇…

单通道 LVDS 差分线路接收器MS21112S

MS21112S 是一款单通道低压差分信号 (LVDS) 线 路接收器。在输入共模电压范围内&#xff0c;差分接收器可以 将 100mV 的差分输入电压转换成有效的逻辑输出。 该芯片可应用于 100Ω 的受控阻抗介质上&#xff0c;进行点对 点基带数据传输。传输介质可以是印刷电路板、…

图像处理(二)——MDPI特刊推荐

特刊征稿 01 期刊名称&#xff1a; Computer Vision and Image Processing, 2nd Edition 截止时间&#xff1a; 投稿截止日期&#xff1a;2024年12月31日 目标及范围&#xff1a; 感兴趣的主题包括但不限于&#xff1a; 用于图像分类和识别的深度学习 对象检测和跟…

EdgeNAT: 高效边缘检测的 Transformer

EdgeNAT: Transformer for Efficient Edge Detection 介绍了一种名为EdgeNAT的基于Transformer的边缘检测方法。 1. 背景与动机 EdgeNAT预测结果示例。(a, b):来自BSDS500的数据集的输入图像。(c, d):对应的真实标签。(e, f):由EdgeNAT检测到的边缘。(e)显示了由于颜色变化…

QT元对象系统特性详细介绍(信号槽、类型信息、动态设置属性)(注释)

目 录 一、元对象系统简介 二、信号和槽 三、类型信息 四、动态设置属性 一、元对象系统简介 QT中的元对象系统Q_OBJECT并不是C标准代码&#xff0c;因此在使用时需要QT的MOC&#xff08;元对象编译器&#xff09;进行预处理&#xff0c;MOC会在编译时期读取C代码中的特定…

暗语源码 复现佛禅翻译系统v2升级版源码

与佛论禅翻译系统 一个翻译佛论的娱乐系统&#xff0c;类似于核心价值观加密 此为升级版&#xff0c;每次加密得到的结果不一样&#xff0c;配合箴言功能&#xff0c;更加安全 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89874751 更多资源下载&a…

现代易货交易:重塑价值,引领未来交易新风尚

在当今经济蓬勃发展的背景下&#xff0c;一种新颖的交易模式——现代易货交易&#xff0c;正逐渐崭露头角并赢得市场的认可。这一模式不仅对传统物品交换方式进行了革新&#xff0c;更在物品价值的评估与交换手段上展现出创新性。那么&#xff0c;现代易货交易究竟是何方神圣&a…

基于SSM的旅游网站【附源码】

基于SSM的旅游网站&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管理 5.1.2 …

比较模拟数据

模拟数据检查器可以比较来自工作区、文件或模拟中的运行和单个信号的数据和元数据。可以使用公差来分析比较结果&#xff0c;并可以通过指定信号属性和比较约束来配置比较行为。此示例使用从模型slexAircraftExample的模拟中记录的数据&#xff0c;演示了以下内容&#xff1a; …

云栖实录 | MaxCompute 迈向下一代的智能云数仓

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 张治国 | 阿里云智能集团研究员、阿里云 MaxCompute 负责人 谢德军&#xff5c;阿里云智能集团资深技术专家 于得水&#xff5c;阿里云智能集团资深技术专家 谌鹏飞&#xff5c…

SpringMVC源码-@ControllerAdvice和 @InitBinder注解源码讲解

1.ControllerAdvice修饰的类何时被加载扫描 被ControllerAdvice修饰的类是作用于全局的 initStrategies 初始化springmvc的9大组件 initStrategies:531, DispatcherServlet (org.springframework.web.servlet) onRefresh:514, DispatcherServlet (org.springframework.web.se…

在线答题系统怎么做?一文为您揭秘!

在线答题系统是一种利用网络技术实现的答题平台&#xff0c;具有高效、便捷、灵活等特点&#xff0c;被广泛应用于教育、培训、考试、竞赛等场景。以下是其详细介绍&#xff1a; 一、 基本功能&#xff1a; 题目录入&#xff1a;支持多种方式录入题目&#xff0c;如手动输入、…

Android15之解决:Dex checksum does not match for dex:services.jar问题(二百三十五)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

前端接收到的日期格式为 2021-12-07T16:44:53.298+00:00 怎么办?

在写项目的时候&#xff0c;给前端发送了一个 Date 类型的数据,发现格式不对&#xff1a; 可以通过在application 配置文件中进行如下配置&#xff1a; spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT8 前端在获取就发现格式正确

登高赏菊迎重阳,与家人共乐同度佳节。

在金风送爽的重阳佳节&#xff0c;让我们登高远望&#xff0c;与亲人共赏菊花&#xff0c;共享团圆时光。愿清风明月&#xff0c;带来幸福与好运&#xff0c;让我们心怀感恩&#xff0c;笑对人生&#xff0c;共度这个美好的重阳节日&#xff01;