Finden Sie gefährdete Webserver, Banner Grabbing in Python

In diesem Tutorial werden wir uns mit Banner Grabbing befassen , einer Technik, mit der Informationen über die im Netzwerk gefundenen Dienste abgerufen werden . Dank dessen können wir Computer im Netzwerk erkennen, auf denen Dienste mit bekannten Schwachstellen ausgeführt werden. Wenn wir Schwachstellen untersuchen möchten, können wir die folgende Seite aufrufen: CVE .

Um zu verstehen, wie es verwendet wird, wird anhand eines Beispiels geprüft, ob ein Webserver anfällig ist (in diesem Lernprogramm konzentrieren wir uns nur auf das Web). Stellen wir uns vor, wir suchen nach zwei Arten von Sicherheitslücken und fügen einer Textdatei die folgenden zwei Zeilen hinzu (meine Datei heißt vulnerable.txt ):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438 

Als nächstes habe ich den Code in Python für Version 3.X eingefügt und eine Erklärung dazu finden Sie weiter unten.

 Importieren Sie http.client host = "localhost" http = http.client.HTTPConnection (Host, Timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') vulnerable = open ("vulnerable.txt", "r") isVulnerable = False für schutzbedürftige dienste: s = service.split ("") if (s [0] im Server): print (Host, "hat Dienst", s [0], "mit möglicher Verwundbarkeit", s [1]) isVulnerable = True if (not is Vulnerable): print (Host, "hat anscheinend keinen Server, der für das, wonach Sie suchen, anfällig ist") 

que la vamos a necesitar: Wir werden jetzt eine Erklärung von Teilen des Codes sehen, zuerst importieren wir die Bibliothek http.client , die wir brauchen werden:

 Importieren Sie http.client 

Als nächstes definieren wir den Host und stellen die Verbindung mit einem Timeout von 2 Sekunden her.

 host = "localhost" http = http.client.HTTPConnection (Host, Timeout = 2) 

Unser nächster Schritt ist eine HEAD-Anfrage , die den Body nicht zurückgibt (die Daten, aber dafür brauchen wir sie nicht). Und dann bekommen wir die Antwort.

 http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') 

Jetzt öffnen wir unsere Textdatei im Lesemodus ( r ) mit den zu durchsuchenden Schwachstellen und erstellen eine boolesche Variable, mit deren Hilfe wir feststellen können, ob eine Schwachstelle gefunden wurde (es ist hilfreich, wenn wir am Ende eine Meldung anzeigen oder nicht).

 vulnerable = open ("vulnerable.txt", "r") isVulnerable = False 

In diesem Moment führen wir eine Schleife durch, die jeden anfälligen Server durchläuft, den wir in die Datei aufgenommen haben, um zu überprüfen, ob auf der aufgerufenen Seite etwas verwendet wird. para partir la línea en servidor y vulnerabilidad, como se pudo ver más arriba el fichero están separados con un espacio en blanco. Die Aufteilungsmethode wird verwendet, um die Zeile in den Server und die Sicherheitsanfälligkeit aufzuteilen. Wie wir oben gesehen haben, wird die Datei durch ein Leerzeichen getrennt.

 für schutzbedürftige dienste: s = service.split ("") if (s [0] im Server): print (Host, "hat Dienst", s [0], "mit möglicher Verwundbarkeit", s [1]) isVulnerable = True 

Schließlich schließen wir die Datei, die wir geöffnet haben, und prüfen, ob wir eine Sicherheitslücke gefunden haben. Andernfalls zeigen wir dem Benutzer eine Meldung an, um darüber informiert zu werden.

 Vulnerable.close () if (not is Vulnerable): print (Host, "hat anscheinend keinen Server, der für das, wonach Sie suchen, anfällig ist") 

Nun, lassen Sie es uns gegen 2 Ziele ausführen, das erste ist solvetic.com:

See also  Ersetzen Sie den GRUB-Boot durch den Ubuntu BURG-Loader

noVulnerable.jpg

Und das zweite und letzte Ziel ist mein Computer, auf dem ein Apache-Server ausgeführt wird, der aufgrund der von ihm verwendeten Apache-Version verwundbar sein könnte.

possible_vulnerability.jpg

Wenn wir etwas über die Sicherheitsanfälligkeit wissen möchten, können Sie auf der Seite, die ich zu Beginn verlassen habe, nach dem CVE suchen, das im Terminal angezeigt wird: CVE-2016-4979. Klicken Sie auf Search & Donwloads und geben Sie die Kennung in Search Master Copy of CVE in das Feld unter dem Text von CVE Identifier ein und klicken Sie dann auf Submit.

cve1.jpg

Die Sicherheitsanfälligkeit wird behoben, und Sie können eine Erklärung, Referenzen, Daten usw. anzeigen.

cve2.jpg

Hier schließt das Tutorial ab. Diese Technik kann angewendet werden, um nach anfälligen Diensten zu suchen, nicht nur nach Webservern. Sie können auch mehrere Hosts gleichzeitig überprüfen, sodass Sie sie nicht mehrmals starten müssen. Hier haben Sie sich der Einfachheit halber an einen Webserver und einen einzelnen Host gewandt . Sie können Banner Grabbing auch mit Hilfe von Telnet oder Netcat durchführen . Dann hinterlasse ich Ihnen ein Bild von der Verwendung von Telnet, um den Server von meinem localhost zu entfernen:

telnet_informacion.jpg

Hinweis
In Windows Telnet ist es standardmäßig deaktiviert. Wenn Sie es aktivieren möchten, können Sie dem folgenden Tutorial folgen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *