Намерете уязвим уеб сървър, хващане на банери в Python

Съдържание

В този урок ще говорим за Грабене на банери, а техника, използвана за получаване на информация за услугите, открити в мрежата. Благодарение на това можем да открием машини в мрежата, които имат услуги, работещи с известни уязвимости, ако искаме да проверим уязвимости, можем да отидем на следната страница: CVE.

За да разберем използването му, ще продължим да правим пример, той ще се опита да провери дали уеб сървърът е уязвим (в този урок ще се съсредоточим само върху мрежата). Нека си представим, че търсим 2 вида уязвимости, затова добавяме следните 2 реда към текстов файл (моят файл ще се нарича уязвим.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
След това въведох кода Python, за версия 3.X, а обяснение е дадено по -долу.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') уязвимо = отворен ("уязвими.txt", "r") е Уязвими = Неверни за услуга в уязвими: s = service.split ("") ако (s [0] в сървъра): печат (хост, "има услуга", s [0], "с възможна уязвимост", s [1]) isVulnsive = True if (not isVulnsive): print (host, "очевидно няма сървър уязвим за това, което търсите")
Сега ще видим обяснение по части от кода, първо импортираме библиотеката http.client че ще имаме нужда от него:
 импортиране на http.client
След това определяме домакин и ние установяваме връзката, с a таймаут 2 секунди.
 host = "localhost" http = http.client.HTTPConnection (хост, изчакване = 2)
Следващата ни стъпка е да направим a Искане за тип HEAD, който няма да върне тялото (данните, но не ни трябват за това). И тогава получаваме отговора.
 http.request ("HEAD", "/") сървър = http.getresponse (). getheader ('сървър')
Сега ще отворим нашия текстов файл в режим на четене (r) с уязвимостите, които да търсим, и създаваме булева променлива, която ни помага да знаем дали уязвимостта е открита (тя ще ни помогне да покажем съобщение или не в края).
 уязвимо = отворено ("уязвимо.txt", "r") esVulnsive = False
В този момент ще направим цикъл, който ще премине през всеки уязвим сървър, който сме поставили във файла, за да проверим дали такъв е използван в консултираната страница. Методът се използва разделяне за да се прекъсне редът в сървъра и уязвимостта, както можете да видите по -горе, файлът е разделен с празно място.
 за услуга при уязвими: s = service.split ("") if (s [0] в сървъра): print (хост, "има услуга", s [0], "с възможна уязвимост", s [1]) е Уязвима = Вярно
Накрая затваряме файла, който имаме отворен, и проверяваме дали сме открили уязвимост, ако не, показваме съобщение на потребителя, за да бъде информиран.
 уязвимо.close () if (not е Уязвимо): print (хост, "очевидно няма сървър уязвим за това, което търсите") 
Е, нека го стартираме срещу 2 цели, първият е solutiontic.com:

И втората и последна цел е моята машина, имам работещ Apache сървър, който може да бъде уязвим, поради версията на Apache, която използва.

Ако искаме да знаем нещо за уязвимостта, на страницата, която оставих в началото, можете да потърсите CVE, който можете да видите в терминала: CVE-2016-4979. Ще кликнете върху Търсене и сваляне и вмъкнете идентификатора Търсете главно копие на CVE, в полето под текста чрез CVE идентификатор и след това щракнете върху Изпращане.

Уязвимостта ще излезе и ще можете да видите обяснение, препратки, дати и т.н.

Тук урокът завършва, тази техника може да се приложи за търсене на уязвими услуги не само за уеб сървъри, можете също да проверите няколко хоста едновременно, за да не се налага да го стартирате няколко пъти, тук за простота е насочено към уеб сървър и един хост. Можете също да направите Banner Grabbing с помощта на Telnet или Netcat, ето изображение на използването на Telnet за премахване на сървъра от моя localhost:

ЗабележкаВ Windows Telnet е деактивиран по подразбиране, ако искате да го активирате, можете да следвате следния урок.

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave