Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības
Pagātnē raksts mēs runājām par Nemesida WAF bezmaksas - bezmaksas rÄ«ks vietņu un API aizsardzÄ«bai pret hakeru uzbrukumiem, un Å”ajā rÄ«kā mēs nolēmām pārskatÄ«t populāru ievainojamÄ«bas skeneri Alnis.

Vietnes ievainojamÄ«bu skenÄ“Å”ana ir nepiecieÅ”ams pasākums, kas kopā ar avota koda analÄ«zi ļauj novērtēt tās droŔības lÄ«meni pret kompromitÄ“Å”anas draudiem. Varat skenēt tÄ«mekļa resursu, izmantojot specializētus rÄ«kus.

Nikto, W3af (rakstÄ«ts Python 2.7, kas vairs netiek atbalstÄ«ts) vai Arachni (vairs netiek atbalstÄ«ts kopÅ” februāra) ir populārākie risinājumi, kas tiek piedāvāti bezmaksas segmentā. Protams, ir arÄ« citi, piemēram, Wapiti, kam nolēmām pievērsties.

Wapiti darbojas ar Ŕāda veida ievainojamībām:

  • failu paplaÅ”ināŔana (lokālais un attālais, fopen, readfile);
  • injekcijas (PHP / JSP / ASP / SQL injekcija un XPath injekcija);
  • XSS (Cross Site Scripting) (atstarojoÅ”s un noturÄ«gs);
  • komandu noteikÅ”ana un izpilde (eval(), system(), passtru());
  • CRLF injekcijas (HTTP atbildes sadalÄ«Å”ana, sesijas fiksācija);
  • XXE (XML ārējās entÄ«tijas) iegulÅ”ana;
  • SSRF (Server Side Request Forgery);
  • zināmu potenciāli bÄ«stamu failu izmantoÅ”ana (pateicoties Nikto datubāzei);
  • vājas .htaccess konfigurācijas, kuras var apiet;
  • rezerves failu klātbÅ«tne, kas atklāj konfidenciālu informāciju (avota koda izpauÅ”ana);
  • Shellshock;
  • atvērt novirzÄ«Å”anu;
  • nestandarta HTTP metodes, kuras var atrisināt (PUT).

Funkcijas:

  • HTTP, HTTPS un SOCKS5 starpniekservera atbalsts;
  • autentifikācija, izmantojot vairākas metodes: Basic, Digest, Kerberos vai NTLM;
  • iespēja ierobežot skenÄ“Å”anas apgabalu (domēns, mape, lapa, URL);
  • automātiska viena parametra noņemÅ”ana URL;
  • vairāki piesardzÄ«bas pasākumi pret nebeidzamām skenÄ“Å”anas cilpām (piemēram: ifor, parametra ierobežojoŔās vērtÄ«bas);
  • iespēja iestatÄ«t prioritāti URL pārbaudei (pat ja tie neatrodas skenÄ“Å”anas zonā);
  • iespēja izslēgt dažus URL no skenÄ“Å”anas un uzbrukumiem (piemēram: URL atteikÅ”anās);
  • importēt sÄ«kfailus (iegÅ«stiet tos, izmantojot wapiti-getcookie rÄ«ku);
  • iespēja aktivizēt/deaktivizēt SSL sertifikāta verifikāciju;
  • iespēja iegÅ«t URL no JavaScript (ļoti vienkārÅ”s JS tulks);
  • mijiedarbÄ«ba ar HTML5;
  • vairākas iespējas, kā pārvaldÄ«t rāpuļprogrammas uzvedÄ«bu un ierobežojumus;
  • skenÄ“Å”anas procesa maksimālā laika iestatÄ«Å”ana;
  • pievienot dažas pielāgotas HTTP galvenes vai iestatÄ«t pielāgotu lietotāja aÄ£entu.

Papildu iespējas:

  • ievainojamÄ«bas ziņojumu veidoÅ”ana dažādos formātos (HTML, XML, JSON, TXT);
  • skenÄ“Å”anas vai uzbrukuma apturÄ“Å”ana un atsākÅ”ana (sesijas mehānisms, izmantojot SQLite3 datu bāzes);
  • fona apgaismojums terminālÄ«, lai izceltu ievainojamÄ«bas;
  • dažādi mežizstrādes lÄ«meņi;
  • Ātrs un vienkārÅ”s veids, kā aktivizēt/deaktivizēt uzbrukuma moduļus.

UzstādīŔana

PaÅ”reizējo Wapiti versiju var instalēt divos veidos:

  • lejupielādējiet avotu no oficiālā сŠ°Š¹Ń‚Š° un palaist instalācijas skriptu, iepriekÅ” instalējot Python3;
  • izmantojot komandu pip3 install wapiti3.

Pēc tam Wapiti būs gatavs darbam.

Darbs ar instrumentu

Wapiti darba demonstrÄ“Å”anai izmantosim Ä«paÅ”i sagatavotu stendu sites.vulns.pentestit.ru (iekŔējais resurss), kas satur dažādas ievainojamÄ«bas (Injection, XSS, LFI/RFI) un citus tÄ«mekļa aplikāciju trÅ«kumus.

Informācija tiek sniegta tikai informatīviem nolūkiem. Nepārkāp likumu!

Pamata komanda skenera palaiŔanai:

# wapiti -u <target> <options>

Tajā paŔā laikā ir diezgan detalizēta palÄ«dzÄ«ba ar daudzām palaiÅ”anas opcijām, piemēram:

-- joma - pielietojuma zona
Ja norādāt tvēruma parametru kopā ar rāpuļprogrammas URL, varat pielāgot vietnes pārmeklÄ“Å”anas apgabalu, norādot gan vienu lapu, gan visas vietnē atrodamās lapas.

-s Šø -x ā€” iespējas pievienot vai noņemt konkrētus URL. Å Ä«s opcijas ir noderÄ«gas, ja pārmeklÄ“Å”anas procesa laikā jāpievieno vai jānoņem konkrēts URL.

-- izlaist ā€” norādÄ«tais parametrs ar Å”o atslēgu tiks skenēts, bet netiks uzbrukts. NoderÄ«gi, ja ir kādi bÄ«stami parametri, kurus vislabāk izslēgt skenÄ“Å”anas laikā.

--verify-ssl ā€” iespējot vai atspējot sertifikāta verifikāciju.
Wapiti skeneris ir modulārs. Tomēr, lai palaistu noteiktus moduļus, tostarp tos, kas tiek automātiski savienoti skenera darbÄ«bas laikā, jums ir jāizmanto slēdzis -m un jānorāda nepiecieÅ”amie moduļi, atdalot tos ar komatiem. Ja atslēga netiek izmantota, visi moduļi darbosies pēc noklusējuma. VienkārŔākajā versijā tas izskatÄ«sies Ŕādi:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

Å is lietoÅ”anas piemērs nozÄ«mē, ka, skenējot mērÄ·i, mēs izmantosim tikai SQL, XSS un XXE moduļus. Turklāt jÅ«s varat filtrēt moduļu darbÄ«bu atkarÄ«bā no vēlamās metodes. Piemēram -m ā€œxss: iegÅ«t, blindsql: izlikt, xxe: izliktā€. Å ajā gadÄ«jumā modulis xss attieksies uz pieprasÄ«jumiem, kas nosÅ«tÄ«ti, izmantojot GET metodi, un moduli blibdsql - uz POST pieprasÄ«jumiem utt. Starp citu, ja kāds modulis, kas bija iekļauts sarakstā, skenÄ“Å”anas laikā nebija vajadzÄ«gs vai aizņem ļoti ilgu laiku, tad, nospiežot kombināciju Ctrl+C, var izlaist paÅ”reizējā moduļa lietoÅ”anu, interaktÄ«vajā izvēlnē atlasot atbilstoÅ”o vienumu.

Wapiti atbalsta pieprasÄ«jumu pārsÅ«tÄ«Å”anu caur starpniekserveri, izmantojot atslēgu -p un autentifikācija mērÄ·a vietnē, izmantojot parametru -a. Varat arÄ« norādÄ«t autentifikācijas veidu: Pamata, Sagremot, Kerberos Šø NTLM. Pēdējiem diviem var bÅ«t nepiecieÅ”ams instalēt papildu moduļus. Turklāt pieprasÄ«jumos varat ievietot jebkuras galvenes (tostarp patvaļīgas User-Agent) un daudz vairāk.

Lai izmantotu autentifikāciju, varat izmantot rÄ«ku wapiti-getcookie. Ar tās palÄ«dzÄ«bu mēs veidojam cepums, ko Wapiti izmantos skenÄ“Å”anas laikā. VeidoÅ”anās cepums darÄ«ts ar komandu:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

Strādājot interaktÄ«vi, mēs atbildam uz jautājumiem un norādām nepiecieÅ”amo informāciju, piemēram, pieteikumvārdu, paroli utt.:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Izvade ir fails JSON formātā. Vēl viena iespēja ir pievienot visu nepiecieÅ”amo informāciju, izmantojot parametru -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

Rezultāts būs līdzīgs:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Apsverot skenera galveno funkcionalitāti, mÅ«su gadÄ«jumā pēdējais tÄ«mekļa lietojumprogrammas testÄ“Å”anas pieprasÄ«jums bija:

# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128

kur starp citiem parametriem:

-f Šø -o ā€” atskaites saglabāŔanas formāts un ceļŔ;

-m ā€” nav ieteicams savienot visus moduļus, jo ietekmēs pārbaudes laiku un atskaites lielumu;

-- krāsa ā€” izcelt atrastās ievainojamÄ«bas atkarÄ«bā no to kritiskuma saskaņā ar paÅ”u Wapiti;

-c - izmantojot failu ar cepums, ģenerēts, izmantojot wapiti-getcookie;

-- joma ā€” uzbrukuma mērÄ·a izvēle. Izvēloties opciju mape Katrs URL tiks pārmeklēts un uzbrukts, sākot ar pamata URL. Pamata URL ir jābÅ«t slÄ«psvÄ«trai uz priekÅ”u (bez faila nosaukuma);

-- skaloÅ”anas sesija ā€” ļauj veikt atkārtotu skenÄ“Å”anu, kurā iepriekŔējie rezultāti netiks ņemti vērā;

-A - savējie User-Agent;

-p ā€” starpniekservera adrese, ja nepiecieÅ”ams.

Mazliet par atskaiti

SkenÄ“Å”anas rezultāts tiek parādÄ«ts detalizēta ziņojuma veidā par visām atrastajām ievainojamÄ«bām HTML lapas formātā, skaidrā un viegli lasāmā formā. Ziņojumā tiks norādÄ«tas atrasto ievainojamÄ«bu kategorijas un skaits, to apraksti, pieprasÄ«jumi, komandas cirtot un padomi, kā tos aizvērt. Lai atvieglotu navigāciju, kategoriju nosaukumiem tiks pievienota saite, uz kuras noklikŔķinot uz tās var pāriet:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

BÅ«tisks ziņojuma trÅ«kums ir tÄ«mekļa lietojumprogrammu kartes kā tādas neesamÄ«ba, bez kuras nebÅ«s skaidrs, vai visas adreses un parametri ir analizēti. Pastāv arÄ« viltus pozitÄ«vu rezultātu iespējamÄ«ba. MÅ«su gadÄ«jumā pārskatā ir iekļauti ā€œdublējuma failiā€ un ā€œpotenciāli bÄ«stami failiā€. To skaits neatbilst realitātei, jo serverÄ« nebija Ŕādu failu:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Iespējams, nepareizi strādājoÅ”i moduļi laika gaitā tiks salaboti. Vēl viens ziņojuma trÅ«kums ir atrasto ievainojamÄ«bu krāsojuma trÅ«kums (atkarÄ«bā no to kritiskuma) vai vismaz to sadalÄ«Å”ana kategorijās. VienÄ«gais veids, kā mēs varam netieÅ”i saprast atrastās ievainojamÄ«bas kritiskumu, ir izmantot parametru -- krāsa skenÄ“Å”anas laikā, un pēc tam atrastās ievainojamÄ«bas tiks iekrāsotas dažādās krāsās:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Bet pats ziņojums nesniedz Ŕādu krāsojumu.

Ievainojamības

SQLi

Skeneris daļēji tika galā ar SQLi meklÄ“Å”anu. Meklējot SQL ievainojamÄ«bas lapās, kur autentifikācija nav nepiecieÅ”ama, problēmas nerodas:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Nevarēja atrast ievainojamÄ«bu lapās, kurām var piekļūt tikai pēc autentifikācijas, pat izmantojot derÄ«gu cepums, jo visticamāk pēc veiksmÄ«gas autentifikācijas viņu sesija tiks ā€œatrakstÄ«taā€ un cepums kļūs nederÄ«gs. Ja autorizācijas atcelÅ”anas funkcija tiktu ieviesta kā atseviŔķs skripts, kas ir atbildÄ«gs par Ŕīs procedÅ«ras apstrādi, tad to bÅ«tu iespējams pilnÄ«bā izslēgt, izmantojot parametru -x, un tādējādi novērst tās aktivizÄ“Å”anu. Pretējā gadÄ«jumā nebÅ«s iespējams izslēgt tā apstrādi. Tā nav problēma ar konkrētu moduli, bet gan ar rÄ«ku kopumā, taču Ŕīs nianses dēļ slēgtā resursa zonā nebija iespējams noteikt vairākas injekcijas.

XSS

Skeneris lieliski tika galā ar doto uzdevumu un atrada visas sagatavotās ievainojamības:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

LFI/RFI

Skeneris atrada visas pamatā esoŔās ievainojamības:

Wapiti - vietnei atseviŔķi tiek pārbaudītas ievainojamības

Kopumā, neskatoties uz viltus pozitÄ«viem rezultātiem un trÅ«kstoÅ”ajām ievainojamÄ«bām, Wapiti kā bezmaksas rÄ«ks uzrāda diezgan labus veiktspējas rezultātus. Jebkurā gadÄ«jumā ir vērts atzÄ«t, ka skeneris ir diezgan jaudÄ«gs, elastÄ«gs un daudzfunkcionāls, un, pats galvenais, tas ir bezmaksas, tāpēc to ir tiesÄ«bas izmantot, lai palÄ«dzētu administratoriem un izstrādātājiem iegÅ«t pamatinformāciju par tÄ«mekļa droŔības statusu. pieteikumu.

Esiet veseli un aizsargāti!

Avots: www.habr.com

Pievieno komentāru