Znajdź podatny serwer WWW, przechwytywanie banerów w Pythonie

Spisie treści

W tym samouczku będziemy rozmawiać Chwytanie banerów, a technika służąca do pozyskiwania informacji o usługach znalezionych w sieci. Dzięki temu możemy wykryć maszyny w sieci, które posiadają usługi działające ze znanymi podatnościami, jeśli chcemy sprawdzić podatności możemy przejść do następującej strony: CVE.

Aby zrozumieć jego użycie, przejdziemy do przykładu, spróbuje sprawdzić, czy serwer sieciowy jest podatny na ataki (w tym samouczku skupimy się tylko na sieci). Wyobraźmy sobie, że szukamy 2 rodzajów podatności, więc dodamy następujące 2 wiersze do pliku tekstowego (mój plik będzie się nazywał podatny.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Następnie wstawiam kod Pyton, dla wersja 3.X, a wyjaśnienie podano poniżej.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse ().getheader ('server') podatny = open ("vulnerable.txt", "r") isVulnerable = False dla usługi w podatnym: s = service.split ("") if (s [0] na serwerze): print (host, "ma usługę", s [0], "z możliwą podatnością", s [1]) isVulnerable = True if (not isVulnerable): print (host, "najwyraźniej nie ma serwera podatnego na to, czego szukasz")
Zobaczymy teraz wyjaśnienie części kodu, najpierw zaimportujemy bibliotekę http.klient że będziemy tego potrzebować:
 importuj http.client
Następnie definiujemy gospodarz i nawiązujemy połączenie, z koniec czasu 2 sekundy.
 host = "localhost" http = http.client.HTTPConnection (host, timeout = 2)
Naszym kolejnym krokiem jest wykonanie Żądanie typu HEAD, który nie zwróci treści (danych, ale nie potrzebujemy ich do tego). I wtedy otrzymujemy odpowiedź.
 http.request ("HEAD", "/") serwer = http.getresponse ().getheader ('server')
Teraz otworzymy nasz plik tekstowy w trybie odczytu (r) z szukanymi lukami, a my tworzymy zmienną logiczną, która pomaga nam dowiedzieć się, czy luka została znaleziona (pomoże nam to wyświetlić komunikat na końcu lub nie).
 podatny = otwarty ("vulnerable.txt", "r") esVulnerable = False
W tym momencie zrobimy pętlę, która przejdzie przez każdy podatny serwer, który umieściliśmy w pliku, aby sprawdzić, czy jest on używany na konsultowanej stronie. Stosowana jest metoda podział aby złamać linię serwera i podatności, jak widać powyżej, plik jest oddzielony spacją.
 dla usługi w podatności: s = service.split ("") if (s [0] na serwerze): print (host, "ma usługę", s [0], "z możliwą podatnością", s [1]) isVulnerable = Prawda
Na koniec zamykamy otwarty plik i sprawdzamy, czy nie znaleźliśmy luki, jeśli nie, wyświetlamy komunikat do użytkownika, aby został o tym poinformowany.
 sensitive.close() if (not isVulnerable): print (host, "najwyraźniej nie ma serwera podatnego na to, czego szukasz") 
Cóż, zmierzmy się z 2 celami, pierwszym z nich jest solvetic.com:

Drugim i ostatnim celem jest moja maszyna, mam uruchomiony serwer Apache, który może być podatny na ataki ze względu na używaną wersję Apache.

Jeśli chcemy dowiedzieć się czegoś o luce, na stronie, którą zostawiłem na początku, możesz poszukać CVE, które widzisz w terminalu: CVE-2016-4979. Klikniesz Wyszukiwanie i pobieranie i wstaw identyfikator w Wyszukaj kopię główną CVE, w polu pod tekstem przez identyfikator CVE a następnie kliknij Prześlij.

Luka wyjdzie i będziesz mógł zobaczyć wyjaśnienie, odniesienia, daty itp.

Tu kończy się samouczek, technikę tę można zastosować do wyszukiwania podatnych usług nie tylko dla serwerów internetowych, można również sprawdzić kilka hostów jednocześnie, aby nie musieć uruchamiać go kilka razy, tutaj dla uproszczenia został skierowany do serwera WWW i jednego hosta . Możesz także zrobić Banner Grabbing za pomocą Telnet lub Netcat, oto obraz użycia Telnetu do usunięcia serwera z mojego lokalnego hosta:

NotatkaW systemie Windows Telnet jest domyślnie wyłączony, jeśli chcesz go aktywować, możesz postępować zgodnie z poniższym samouczkiem.

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave