13 основни стъпки при penetration testing на уеб сървър
Без значение дали действително трябва да тествате, или просто ви е любопитно - така изглежда минималното, което можете да направите за един penetration test
При тестването за уязвимости на един уеб сървър е нужно да преминете през три основни етапа – идентификация, анализ и доклад на уязвимостите. Ако ви се налага да изпълните такава задача, но не знаете откъде да започнете (или как да продължите), погледнете 13-те стъпки описани отдолу:
Нужно е да започнете с внимателно планиране – ще е нужно да изпълните серия от методични и лесни за повтаряне тестове. Детайлния план ще намали шанса да пропуснете нещо в тестването на сървъра и приложенията на него.
След като знаете за какво иде реч, можете да продължите с по-интересния етап:
Събиране на информация
1. Използвайте whois инструменти, за да намерите детайли катo IP адреси, административни детайли като име и контакти на съдържател и др. Проучете компанията и разгледайте онлайн за публично достъпна информация, която може да ви послужи.
2. Научете повече за сървъра – чрез различни техники за fingerprinting можете да научите какъв е неговия тип и операционна система, какви приложения се изпълняват в момента и още много. Можете да използвате инструменти като Netcraft, HTTPrecon, ID Serve и други.
3. Използвайте предпочитания си crawler, за да получите информация за наличните уебстраници и да видите дали има полезна информация по тях (като мейл адреси и други контакти). Подходящ инструмент е scapy рамката за Python.
4. Изпълнете енумерация на всички директории на уеб сървъра, за да научите какви функции изпълнява той и да намерите скрити логин форми.
5. Сканирайте за уязвимости, за да идентифицирате слабите места на сървъра, използвайки инструменти като AppScan, WebInspect, Nessus, Nikto2 и др.
6. Ако имате физически достъп, разузнайте дали има безжични мрежи, които имат връзка със сървъра или могат да бъдат използвани за такава.
Анализ на уязвимости
7. Използвайте намерената информация с техники за social engineering, за да тествате срещу най-слабото звено в една система – човешкия фактор. Опитайте се да си издействате данни, които могат да бъдат използвани с криминални цели само чрез разговори със служителите.
8. Тествайте за Path/Directory Traversal атаки срещу сървъра, с цел успешно да изпълните команди извън root директорията на сървъра.
9. Тествайте за HTTP response splitting атаки, в които целта е да изпратите вредни данни към уязвим процес чрез променени HTTP хедъри.
10. Проверете за лошо защитени безжични мрежи, които се използват от служители и добийте достъп до такава чрез инструменти като Reaver и aircrack-ng.
11. Тествайте за MITM (Man in the middle) атаки в мрежата – SQL инжекции, session hijacking, ARP/DNS spoofing и всички други приложими техники. Може да използвате инструменти като Bettercap и Burp Suite за някои от техниките.
12. Тествайте срещу всички софтуерни уязвимости на сървъра, за които подозирате чрез рамки като Metasploit.
Докладване на откритията
13. Съберете данните от всеки един етап, заедно с логовете от самия сървър, за да анализирате реакцията на вече установената защита и това къде има нужда да се подсили. Изгответе детайлен доклад с откритията – примери за такива доклади можете да намерите тук.