Recenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2

A fost odată când am scris despre aceasta, dar puțin concis și confuz. Apoi am decis să extind lista de instrumente din recenzie, să adaug o structură articolului, să iau în considerare criticile (multe mulțumiri Lefty pentru sfaturi) și am trimis-o la concursul de pe SecLab (și am publicat linkul, dar, din motive bine cunoscute, nimeni nu l-a văzut). Concursul s-a încheiat, rezultatele au fost anunțate și pot publica (articolul) pe Habr cu conștiința curată.

Instrumente gratuite pentru pentestarea aplicațiilor web

În acest articol voi vorbi despre cele mai populare instrumente pentru pentesting (teste de penetrare) ale aplicațiilor web conform strategiei «cutiei negre».
Pentru aceasta, vom analiza utilitățile care vor ajuta în acest tip de testare. Vom considera următoarele categorii de produse:

  1. Scanere de rețea
  2. Scanere de vulnerabilități în scripturile web
  3. Exploatarea
  4. Automatizarea injecțiilor
  5. Debuggere (sniffere, proxy locale etc.)


Unele produse au un «caracter» universal, așa că le voi atribui categoria în care obținmarecel mai mare rezultat (opinia subiectivă).

Scanerele de rețea.

Obiectivul principal este de a descoperi serviciile de rețea disponibile, de a stabili versiunile acestora, de a determina sistemul de operare etc.

NmapRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Nmap («Network Mapper») este o utilitate gratuită cu cod sursă deschis pentru analiza rețelei și auditul securității sistemelor. Dușmanii înverșunați ai consolei pot folosi Zenmap, o interfață grafică pentru Nmap.
Nu este doar un «scanner inteligent», este un instrument serios extensibil (dintre «trucurile neobișnuite» — existența unui script pentru verificarea unui nod pentru un vierme "Stuxnet" (menționat aici). Exemplu tipic de utilizare:

nmap -A -T4 localhost

-A pentru a determina versiunea sistemului de operare, scanare folosind scripturi și urmărire
-T4 setarea controlului timpului (mai mult — mai repede, de la 0 la 5)
localhost — gazda țintă
Ceva mai dur?

nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost

Aceasta este o setare din profilul «slow comprehensive scan» în Zenmap. Se execută destul de mult, dar oferă informații mai detaliate despre sistemul țintă. Ghid de referință în limba română, dacă ați decis să aprofundați, precum și recomend să traduceți articolul Ghidul începătorului pentru Nmap.
Nmap a fost desemnat „Produsul de Securitate al Anului” de către reviste și comunități precum Linux Journal, Info World, LinuxQuestions.Org și Codetalker Digest.
Un aspect interesant, Nmap poate fi văzut în filmele „Matrix: Reloaded”, „Die Hard 4”, „The Bourne Ultimatum”, „Hotabich” și altele.

IP-ToolsRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
IP-Tools — un set de diverse utilitare de rețea, livrat cu GUI, „dedicat” utilizatorilor Windows.
Scanner de porturi, resurse comune (imprimante/-foldere partajate), WhoIs/Finger/Lookup, client Telnet și multe altele. Un instrument convenabil, rapid și funcțional.

Nu are sens să analizăm celelalte produse, deoarece există foarte multe utilitare în acest domeniu, iar toate au un principiu de funcționare și funcționalitate similară. Totuși, cel mai des folosit rămâne nmap.

Scanere de vulnerabilități în scripturile web

Încearcă să găsească vulnerabilități populare (SQL inj, XSS, LFI/RFI etc.) sau erori (fișiere temporare neșterse, indexarea directoarelor etc.)

Acunetix Web Vulnerability ScannerRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Acunetix Web Vulnerability Scanner — din link se observă că este un scanner xss, dar nu este chiar așa. Versiunea gratuită, disponibilă prin link, oferă o funcționalitate destul de mare. De obicei, persoana care rulează acest scanner pentru prima dată și primește pentru prima dată raportul despre resursa sa este acoperită de un șoc mic, și veți înțelege de ce, făcând acest lucru. Este un produs foarte puternic pentru analiza diverselor vulnerabilități de pe site și funcționează nu doar cu site-urile noastre obișnuite pe php, ci și pe alte limbi (deși diferența de limbă nu este un indicator). Nu are sens să descriem instrucțiuni, deoarece scannerul doar „prinde” acțiunile utilizatorului. Ceva asemănător cu „următorul, următorul, următorul, gata” în instalarea tipică a unui software.

NiktoRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Nikto este un scanner web Open Source (GPL). Scapă de munca manuală rutinieră. Caută pe site-ul țintă scripturi neșterse (de exemplu test.php, index_.php etc.), instrumente de administrare a bazelor de date (/phpmyadmin/, /pma și similare) etc., adică verifică resursa pentru cele mai frecvente erori, apărute de obicei din cauza factorului uman.
În plus, dacă găsește un script popular, îl verifică pentru exploiturile apărute (cele care sunt în baza de date).
Raportează despre metodele „nedorite” disponibile, de tipul PUT și TRACE
Și așa mai departe. Foarte convenabil, dacă lucrezi ca auditor și analizezi site-uri în fiecare zi.
Printre dezavantaje, aș dori să subliniez procentul ridicat de false alarme. De exemplu, dacă site-ul dvs. returnează în mod constant pagina principală în loc de o eroare 404 (când aceasta ar trebui să apară), atunci scanner-ul va indica că pe site-ul dvs. există toate scripturile și toate vulnerabilitățile din baza sa de date. În practică, acest lucru nu se întâmplă foarte des, dar, ca fapt, multe depind de structura site-ului dvs.
Utilizare clasică:

.\/nikto.pl -host localhost

Dacă trebuie să fiți autentificat pe site, puteți seta cookie-ul în fișierul nikto.conf, variabila STATIC-COOKIE.

WiktoRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Wikto — Nikto pe Windows, dar cu câteva adăugiri, cum ar fi logica 'aproximativă' la verificarea codului pentru erori, folosirea GHDB, obținerea de linkuri și foldere ale resursei, monitorizarea în timp real a cererilor/împărtășirilor HTTP. Wikto este scris în C# și necesită .NET framework.

skipfishRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
skipfish — scanner de vulnerabilități web de la Michal Zalewski (cunoscut sub numele de lcamtuf). Este scris în C, este multiplatformă (pentru Win este necesar Cygwin). Scanează site-ul în mod recursiv (și foarte lent, între 20-40 de ore, deși ultima dată a funcționat timp de 96 de ore) și găsește diverse breșe de securitate. De asemenea, generează foarte mult trafic (câteva GB de intrări/ieșiri). Dar toate metodele sunt acceptabile, mai ales dacă aveți timp și resurse.
Utilizare tipică:

.\/skipfish -o \/home\/reports www.example.com

În folderul „reports” va fi un raport în html, exemplu.

w3af Recenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
w3af — Web Application Attack and Audit Framework, scanner de vulnerabilități web open-source. Are GUI, dar poate fi utilizat și din consolă. Mai exact, este un cadru, cu o mulțime de pluginuri.
Despre avantajele sale se poate vorbi mult, mai bine îl încercați :]
Lucrul tipic cu acesta constă în alegerea unui profil, specificarea obiectivului și, în mod efectiv, lansarea.

Mantra Security FrameworkRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Mantra este un vis care a devenit realitate. O colecție de instrumente libere și deschise pentru securitate cibernetică, integrate în browser.
Sunt foarte utile în testarea aplicațiilor web în toate etapele.
Utilizarea constă în instalarea și lansarea browserului.

De fapt, există foarte multe utilitare în această categorie și este destul de greu să se evidențieze o listă specifică. Cel mai adesea, fiecare pentester decide singur setul de instrumente necesar.

Exploatarea

Pentru o utilizare mai automatizată și mai convenabilă a vulnerabilităților din software și scripturi, se scriu exploit-uri, care doar necesită transmiterea parametrilor pentru a utiliza o breșă de securitate. Există, de asemenea, produse care elimină căutarea manuală a exploit-urilor și le aplică „din mers”. Această categorie va fi discutată acum.

Metasploit Framework Recenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Framework-ul Metasploit® — un adevărat monstru în domeniul nostru. Este capabil de atât de multe încât instrucțiunea va lua câteva articole. Vom analiza exploatarea automatizată (nmap + metasploit). Esența este că Nmap va analiza portul necesar, va identifica serviciul, iar metasploit va încerca să aplice exploit-uri pe baza tipului de serviciu (ftp, ssh etc.). În loc de o instrucțiune scrisă, voi insera un videoclip, destul de popular pe tema autopwn.

Redați video

Se poate automatiza pur și simplu munca exploit-ului necesar. De exemplu:

msf > folosește auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > setează RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > execută

De fapt, capacitățile acestui framework sunt foarte vaste, așadar, dacă ați decis să aprofundați, mergeți la linkul

ArmitageRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Armitage — OVA în genul cyberpunk GUI pentru Metasploit. Vizualizează ținta, recomandă exploit-uri și oferă funcții extinse ale acestui framework. Pe scurt, pentru cei care preferă să arate totul frumos și impresionant.
Screencast:

Redați video

Tenable Nessus®Recenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Scannerul de vulnerabilitate Tenable Nessus® — are foarte multe funcții, dar noi avem nevoie de una dintre acestea — determinarea pentru ce servicii există exploit-uri. Versiunea gratuită a produsului este „home only”

Utilizare:

  • Ați descărcat (pentru sistemul vostru), ați instalat, ați înregistrat (cheia vine pe email).
  • Ați pornit serverul, ați adăugat utilizatorul în Nessus Server Manager (butonul Manage users)
  • Accesați adresa
    https://localhost:8834/

    și obțineți clientul flash în browser

  • Scans -> Add -> completați câmpurile (selectând profilul de scanare potrivit) și apăsați Scan

După un timp, raportul de scanare va apărea în tab-ul Reports
Pentru a verifica practic vulnerabilitatea serviciilor la exploit-uri, puteți utiliza framework-ul Metasploit descris mai sus sau încercați să găsiți un exploit (de exemplu pe Explot-db, packet storm, explot search și altele) și să-l folosiți manual împotriva sistemului vostru
IMHO: prea greoi. L-am menționat ca unul dintre liderii din această direcție în industria software.

Automatizarea injecțiilor

Căutarea de injecții este realizată de multe dintre scanerele de securitate pentru aplicații web, dar acestea sunt, în esență, doar scanere generale. Există însă utilitare care se ocupă specific de căutarea și exploatarea injecțiilor. Despre acestea va fi vorba acum.

sqlmapRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
sqlmap — utilitar open-source pentru căutarea și exploatarea injecțiilor SQL. Suportă servere de baze de date precum: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Utilizarea tipică se rezumă la linia:

python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Sunt suficiente manuale, inclusiv în limba română. Software-ul facilitează foarte mult munca testerilor de penetrare în acest domeniu.
Voi adăuga o demonstrație video oficială:

Redați video

bsqlbf-v2
bsqlbf-v2 — script în Perl, un bruteforcer pentru injecții SQL "oarbe". Funcționează atât cu valori integer în URL, cât și cu valori de tip string.
Suportă baze de date:

  • MS-SQL
  • MySQL
  • PostgreSQL
  • Oracle

Exemplu de utilizare:

.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1

-url www.somehost.com/blah.php?u=5 — link cu parametrii
-blind u — parametru pentru injecție (implicit, este preluat ultimul din șirul URL)
-sql "select table_name from information_schema.tables limit 1 offset 0" — interogarea noastră arbitrară în baza de date
-database 1 — server de baze de date: MSSQL
-type 1 — tipul atacului, injecție "oglindită", bazată pe răspunsuri True și Error (de exemplu, erori de sintaxă)

Debbugere

Aceste instrumente sunt folosite în principal de dezvoltatori, atunci când au probleme cu rezultatele executării codului lor. Totuși, acest domeniu este util și în testarea de penetrare, când putem modifica datele necesare „în zbor”, analizând ce răspunde la parametrii noștri de intrare (de exemplu, în timpul fuzzing-ului) etc.

Burp Suite
Burp Suite — un set de utilitare care ajută la testele de penetrare. Există online o recenzie bună în limba română de la Raz0r (deși din anul 2008).
Versiunea gratuită include:

  • Burp Proxy — un proxy local, care permite modificarea cererilor deja formate de browser
  • Burp Spider — crawler, caută fișiere existente și directoare
  • Burp Repeater — trimiterea manuală a cererilor HTTP
  • Burp Sequencer — analiza valorilor aleatoare în formulare
  • Burp Decoder — un codificator-decodificator standard (html, base64, hex etc.), dintre care sunt mii, care pot fi scrise rapid într-un limbaj oarecare
  • Burp Comparer — componentă de comparare a șirurilor

În principiu, acest pachet rezolvă practic toate sarcinile legate de acest domeniu.

FiddlerRecenzia instrumentelor gratuite pentru pentestarea resurselor web și nu numai v2
Fiddler — Fiddler este un proxy de depanare care înregistrează tot traficul HTTP(S). Permite să investighezi acest trafic, să stabilești breakpoint-uri și să „te joci” cu datele primite sau trimise.

Există de asemenea și Firesheep, monstru Wireshark și altele, alegerea aparține utilizatorului.

Concluzie

Desigur, fiecare pentester are propriul arsenal și set de unelte, deoarece sunt pur și simplu numeroase. Am încercat să prezint unele dintre cele mai convenabile și populare. Dar pentru ca oricine este interesat să poată consulta și alte unelte în acest domeniu, voi oferi linkuri mai jos.

Diverse topuri/lista de scanere și unelte

Distribuții Linux, care includ deja o mulțime de unelte pentru pentesting

upd: Documentația pentru BurpSuite în limba română de echipa „Hack4Sec” (adăugat AntonKuzmin)

P.S. Nu trebuie să omiți XSpider. Nu participă la recenzia, deși este condiționat gratuit (am aflat când am trimis articolul la SecLab, de fapt din acest motiv (lipsa cunoștințelor, dar și a ultimei versiuni 7.8) și nu l-am inclus în articol). Și, în teorie, era planificat să fac o revizuire (am pregătit teste complicate pentru el), dar nu știu dacă va fi văzut de lume.

P.P.S. O parte din material din articol va fi folosită conform destinației originale în viitoarea prezentare la CodeFest 2012 în secțiunea QA, unde vor fi instrumente nespecificate aici (naturale, desigur), precum și un algoritm despre ordinea de utilizare, ce rezultat să aștepți, ce configurații să folosești și diverse sugestii și trucuri la lucru (mă gândesc la prezentare aproape în fiecare zi, voi încerca să împărtășesc tot ce e mai bun în legătură cu tema).
Apropo, pe baza acestui articol a avut loc o activitate la Open InfoSec Days (tag pe Habr, site-ul), poți jefui caravele să arunci o privire materiale.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster