Finden Sie anfälligen Webserver, Bannergrabbing in Python

Inhaltsverzeichnis

In diesem Tutorial werden wir darüber sprechen Bannergrabbing, ein Technik, die verwendet wird, um Informationen über die im Netzwerk gefundenen Dienste zu erhalten. Dadurch können wir Maschinen im Netzwerk entdecken, auf denen Dienste mit bekannten Schwachstellen ausgeführt werden. Wenn wir Schwachstellen überprüfen möchten, können wir auf die folgende Seite gehen: CVE.

Um seine Verwendung zu verstehen, werden wir ein Beispiel erstellen. Es wird versuchen zu überprüfen, ob ein Webserver anfällig ist (wir konzentrieren uns in diesem Tutorial nur auf das Web). Stellen wir uns vor, wir suchen nach 2 Arten von Sicherheitslücken, also fügen wir die folgenden 2 Zeilen zu einer Textdatei hinzu (meine Datei heißt anfällig.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Als nächstes füge ich den Code ein Python, für die Version 3.X, und eine Erklärung wird unten gegeben.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse ().getheader ('server') anfällig = open ("vulnerable.txt", "r") isVulnerable = False für service in anfällig: s = service.split ("") if (s [0] in server): print (host, "hat service", s [0], "mit möglicher Schwachstelle", s [1]) isVulnerable = True if (not isVulnerable): print (host, "hat anscheinend keinen Server, der anfällig für das ist, wonach Sie suchen")
Wir werden jetzt eine Erklärung durch Teile des Codes sehen, zuerst importieren wir die Bibliothek http.client dass wir es brauchen werden:
 http.client importieren
Als nächstes definieren wir die Gastgeber und wir stellen die Verbindung her, mit a Auszeit 2 Sekunden.
 host = "localhost" http = http.client.HTTPConnection (Host, Timeout = 2)
Unser nächster Schritt ist, ein KOPF-Typ-Anfrage, die den Körper nicht zurückgibt (die Daten, aber wir brauchen sie dafür 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 Schwachstellen, nach denen gesucht werden soll, und wir erstellen eine boolesche Variable, die uns hilft zu wissen, ob die Schwachstelle gefunden wurde (sie hilft uns, am Ende eine Nachricht anzuzeigen oder nicht).
 angreifbar = offen ("vulnerable.txt", "r") esVulnerable = False
In diesem Moment machen wir eine Schleife, die jeden verwundbaren Server durchläuft, den wir in die Datei eingefügt haben, um zu überprüfen, ob einer auf der konsultierten Seite verwendet wird. Die Methode wird verwendet Teilt Um die Zeile in Server und Schwachstelle zu unterbrechen, wie Sie oben sehen konnten, wird die Datei mit einem Leerzeichen getrennt.
 für service in anfällig: s = service.split ("") if (s [0] in server): print (host, "hat service", s [0], "mit möglicher vulnerability", s [1]) isVulnerable = wahr
Schließlich schließen wir die geöffnete Datei und prüfen, ob wir eine Schwachstelle gefunden haben. Wenn nicht, zeigen wir dem Benutzer eine Nachricht an, damit er informiert wird.
 vulnerable.close () if (not isVulnerable): print (host, "hat anscheinend keinen Server, der anfällig für das ist, wonach Sie suchen") 
Nun, lassen Sie uns es gegen 2 Ziele laufen, das erste ist Soletic.com:

Und das zweite und letzte Ziel ist mein Computer, ich habe einen Apache-Server am Laufen, der aufgrund der verwendeten Apache-Version anfällig sein könnte.

Wenn wir etwas über die Schwachstelle wissen möchten, können Sie auf der Seite, die ich am Anfang verlassen habe, nach dem CVE suchen, das Sie im Terminal sehen können: CVE-2016-4979. Du klickst auf Suchen und herunterladen und füge die Kennung in ein Master-Kopie von CVE . durchsuchen, im Kasten unter dem Text nach CVE-Kennung und klicken Sie dann auf Senden.

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

Hier endet das Tutorial, diese Technik kann angewendet werden, um nach anfälligen Diensten nicht nur für Webserver zu suchen, Sie können auch mehrere Hosts gleichzeitig überprüfen, um sie nicht mehrmals starten zu müssen, hier wurde der Einfachheit halber verwiesen zu einem Webserver und einem einzelnen Host . Sie können Banner Grabbing auch mit Hilfe von Telnet oder Netcat durchführen, hier ist ein Bild der Verwendung von Telnet, um den Server von meinem localhost zu entfernen:

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

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave