News... | Hack-Acad | Downloads | Web-Projekte | Kontakt
HACKACAD - Internet Open (Proxy)

Eines der bekannteren Tools zum knacken von Passwortgeschützten Bereichen ist AccessDiver. Es gibt aber auch diverse andere Anwendungen bei denen ein Internet Zugriff aus der eigenen Applikation sehr nützlich ist. Um den Ansatz erst einmal zu erhalten zeigt das folgende Beispiel einen Zugriff auf die Seite simple.showmyip.com.

Der erste Aufruf erfolgt über einen anonymen Proxy, sollte daher eine andere IP liefern als die, die wir mittels des regulären Internetaufrufes erhalten:

 
 // Ausgeführtes Programm, braucht eventuell etwas Zeit um das Ergebnis der Proxy
 // Verbindung zu erhalten... sollte rein gar nichts passieren einen anderen Proxy
 // auskommentieren, oder per google einen neuen anonymen Proxy suchen... 
  
 #include <windows.h>
 #include <wininet.h>
 #include <stdio.h>

 #pragma comment(lib, "Ws2_32.lib")
 #pragma comment(lib, "wininet.lib")

 void XS_401();

 void main()
 {
   XS_401();
 }

 void XS_401()
 {
  HINTERNET hInet, hInetConn, hUrl;
  DWORD     dwCode, dwLen;

  CHAR      cData[256];
  // IP eines Anonymen Proxy Servers - nur einen der drei...
  //char szProxy[] = "80.25.181.33"; 
  //char szProxy[] = "148.244.150.58";
  char szProxy[] = "80.33.191.159";

  if(NULL == (hInet = InternetOpen(TEXT("InetURL:/1.0"),INTERNET_OPEN_TYPE_PROXY , szProxy, NULL, 0)))
   printf("Unsuccessful InternetOpen with Proxy\r\n");
  else
  {
     printf("Successful InternetOpen with Proxy\r\n");

     if(NULL != (hUrl = InternetOpenUrl(hInet, "http://simple.showmyip.com",
                 NULL, 0, INTERNET_FLAG_RELOAD, 0)))
     {
          dwCode = 0;
          dwLen  = sizeof(dwCode);

          HttpQueryInfo(hUrl, HTTP_QUERY_STATUS_CODE, &dwCode, &dwLen, 0);

          if((dwCode == '002') || (dwCode == '203'))
          {
               if(InternetReadFile(hUrl, cData, 256, &dwLen))
               {
                    cData[255] = '\0';
                    printf("%s\n", strtok(cData, " "));
               }
          }
          InternetCloseHandle(hUrl);

      }
      else
      printf ("Apparently no valid url!\r\n");
   }

   InternetCloseHandle(hInet);


   printf("\r\n\r\nSecond call:\r\n");

   if(NULL == (hInet = InternetOpen(TEXT("InetURL:/1.0"),INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0)))
     printf("Unsuccessful InternetOpen\r\n");
   else
   {
     printf("Successful InternetOpen\r\n");

     if(NULL != (hUrl = InternetOpenUrl(hInet, "http://simple.showmyip.com",
                 NULL, 0, INTERNET_FLAG_RELOAD, 0)))
     {
     dwCode = 0;
     dwLen  = sizeof(dwCode);

        HttpQueryInfo(hUrl, HTTP_QUERY_STATUS_CODE, &dwCode, &dwLen, 0);
        if((dwCode == '002') || (dwCode == '203'))
        {
          if(InternetReadFile(hUrl, cData, 256, &dwLen))
          {
               cData[255] = '\0';
               printf("%s\n", strtok(cData, " "));
          }
        }
        InternetCloseHandle(hUrl);

     }
     else
     printf ("Apparently no valid url!\r\n");
   }

   InternetCloseHandle(hInet);


 return;
 }



Dieses Beispiel liefert also die eigene IP Adresse wie sie im Internet auftaucht zurück. Die Variable dwCode liefert die Browser Meldung, anhand dieser läßt sich feststellen ob wir die Seite fehlerfrei aufrufen konnten, oder nicht. Bereits im Sourcecode angemerkt ist der nächste logische Schritt. Warum rufen wir wohl die Funktion XS_401() auf ?

Statt simple.showmyip.com kann jede beliebige Seite aufgerufen werden. Eine durch HTACCESS geschützte Seite liefert in der Regel die Fehlermeldung 401. Beispielsweise members.deluxepass.com. (gegebenfalls dwCode per wpsrintf in einen String wandeln und per strcmp mit 401 abfragen). Ruft man eine solche Seite nun aber mit http://username:userpwd@members.deluxepass.com auf, kann man aus dem Programm eben einen Usernamen und dessen Passwort mitliefern. Anhand der Rückmeldung stellt man fest ob es gültige Angaben sind, oder nicht. "401" bei falschen Angaben, ...

Vom Prinzip her fehlt also nur noch eine Username/Passwort Liste, die schön der Reihe nach alle Kombinationen austestet. Bruteforce braucht aber viel Zeit, mit wenig Ertrag !!

Einige Seite blockieren IP Adressen wenn Sie sich zu oft falsch anmelden. Hier kommen die anonymen Proxys zum Einsatz. Ausreichend Proxys verschleiern unsere IP und lassen somit einen Bruteforce Angriff zu. Um anonyme Proxys zu finden reicht bereits eine 10 Sekunden Google Suche..