Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար
Անցյալում Հոդված մենք խոսեցինք Nemesida WAF անվճար - անվճար գործիք վեբկայքերը և API-ները հաքերային հարձակումներից պաշտպանելու համար, և այս մեկում մենք որոշեցինք վերանայել հանրաճանաչ խոցելիության սկաները Վապիտի.

Կայքի խոցելիության սկանավորումը անհրաժեշտ միջոց է, որը զուգորդվում է սկզբնական կոդի վերլուծության հետ, թույլ է տալիս գնահատել դրա անվտանգության մակարդակը փոխզիջման սպառնալիքներից: Դուք կարող եք սկանավորել վեբ ռեսուրսը, օգտագործելով մասնագիտացված գործիքներ:

Nikto-ն, W3af-ը (գրված է Python 2.7-ով, որն այլևս չի աջակցվում) կամ Arachni-ն (այլևս չի աջակցվում փետրվարից) անվճար հատվածում ներկայացված ամենահայտնի լուծումներն են: Իհարկե, կան ուրիշներ, օրինակ՝ Wapiti, որի վրա որոշեցինք կենտրոնանալ։

Wapiti-ն աշխատում է հետևյալ տեսակի խոցելիության հետ.

  • ֆայլի ընդլայնում (տեղական և հեռավոր, բացել, կարդալ ֆայլը);
  • ներարկումներ (PHP / JSP / ASP / SQL ներարկում և XPath ներարկում);
  • XSS (Cross Site Scripting) (արտացոլող և մշտական);
  • հրամանների հայտնաբերում և կատարում (eval(), system(), passtru());
  • CRLF ներարկումներ (HTTP պատասխանի բաժանում, նստաշրջանի ամրագրում);
  • XXE (XML արտաքին սուբյեկտ) ներդրում;
  • SSRF (Server Side Request Forgery);
  • հայտնի պոտենցիալ վտանգավոր ֆայլերի օգտագործումը (Նիկտո տվյալների բազայի շնորհիվ);
  • թույլ .htaccess կոնֆիգուրացիաներ, որոնք կարելի է շրջանցել;
  • պահուստային ֆայլերի առկայությունը, որոնք բացահայտում են գաղտնի տեղեկատվությունը (սկզբնական կոդի բացահայտում);
  • Ցնցակաթված;
  • բաց վերահղումներ;
  • ոչ ստանդարտ HTTP մեթոդներ, որոնք կարող են լուծվել (PUT):

Նկարագրություն:

  • HTTP, HTTPS և SOCKS5 վստահված անձի աջակցություն;
  • նույնականացում՝ օգտագործելով մի քանի մեթոդներ՝ Basic, Digest, Kerberos կամ NTLM;
  • սկանավորման տարածքը սահմանափակելու ունակություն (տիրույթ, թղթապանակ, էջ, URL);
  • URL-ի պարամետրերից մեկի ավտոմատ հեռացում;
  • բազմաթիվ նախազգուշական միջոցներ անվերջ սկանավորման օղակների դեմ (օրինակ՝ ifor, պարամետրի սահմանափակող արժեքներ);
  • URL-ների հետազոտման համար առաջնահերթություն սահմանելու ունակություն (նույնիսկ եթե դրանք սկանավորման տարածքում չեն);
  • որոշ URL-ներ սկանավորումից և հարձակումներից բացառելու ունակություն (օրինակ՝ URL-ից դուրս գալ);
  • ներմուծել թխուկներ (ստացեք դրանք՝ օգտագործելով wapiti-getcookie գործիքը);
  • SSL վկայագրի ստուգումը ակտիվացնելու/անջատելու ունակություն;
  • JavaScript-ից URL-ներ հանելու ունակություն (շատ պարզ JS թարգմանիչ);
  • փոխազդեցություն HTML5-ի հետ;
  • սողացող վարքագծի և սահմանափակումների կառավարման մի քանի տարբերակներ.
  • սկանավորման գործընթացի առավելագույն ժամանակը սահմանելը.
  • ավելացնելով որոշ հարմարեցված HTTP վերնագրեր կամ ստեղծեք հատուկ օգտագործողի գործակալ:

Լրացուցիչ գործառույթներ.

  • խոցելիության մասին հաշվետվությունների ստեղծում տարբեր ձևաչափերով (HTML, XML, JSON, TXT);
  • սկանավորման կամ գրոհի դադարեցում և վերսկսում (սեսիայի մեխանիզմ՝ օգտագործելով SQLite3 տվյալների բազաները);
  • տերմինալի հետին լուսավորություն՝ խոցելիություններն ընդգծելու համար.
  • հատումների տարբեր մակարդակներ;
  • Հարձակման մոդուլները ակտիվացնելու/անջատելու արագ և հեշտ միջոց:

Տեղակայում

Wapiti-ի ընթացիկ տարբերակը կարող է տեղադրվել 2 եղանակով.

  • ներբեռնեք աղբյուրը պաշտոնականից сайта և գործարկեք տեղադրման սցենարը՝ նախապես տեղադրելով Python3;
  • օգտագործելով pip3 install wapiti3 հրամանը:

Դրանից հետո Վապիթին պատրաստ կլինի գնալ:

Գործիքի հետ աշխատելը

Wapiti-ի աշխատանքը ցուցադրելու համար մենք կօգտագործենք հատուկ պատրաստված ստենդ sites.vulns.pentestit.ru (ներքին ռեսուրս), որը պարունակում է տարբեր խոցելիություններ (Injection, XSS, LFI/RFI) և վեբ հավելվածների այլ թերություններ:

Տեղեկատվությունը տրամադրվում է միայն տեղեկատվական նպատակներով: Օրենք մի՛ խախտիր։

Սկաների գործարկման հիմնական հրամանը.

# wapiti -u <target> <options>

Միևնույն ժամանակ, կա բավականին մանրամասն օգնություն մեծ թվով գործարկման տարբերակների հետ, օրինակ.

-- շրջանակը - կիրառման տարածք
Եթե ​​դուք նշեք շրջանակի պարամետրը սկանավորման URL-ի հետ մեկտեղ, կարող եք հարմարեցնել կայքի սողացող տարածքը՝ նշելով և՛ մեկ էջ, և՛ բոլոր էջերը, որոնք կարելի է գտնել կայքում:

-s и -x — հատուկ URL-ներ ավելացնելու կամ հեռացնելու ընտրանքներ: Այս ընտրանքները օգտակար են, երբ դուք պետք է ավելացնեք կամ հեռացնեք որոշակի URL սկանավորման գործընթացում:

-- բաց թողնել — նշված պարամետրը այս ստեղնով կսկանավորվի, բայց հարձակման չի ենթարկվի: Օգտակար է, եթե կան որևէ վտանգավոր պարամետր, որոնք լավագույնս բացառվում են սկանավորման ժամանակ:

--verify-ssl — միացնել կամ անջատել վկայագրի ստուգումը:
Wapiti սկաները մոդուլային է: Այնուամենայնիվ, որոշակի մոդուլներ գործարկելու համար, ներառյալ նրանք, որոնք ավտոմատ կերպով միացված են սկաների աշխատանքի ընթացքում, դուք պետք է օգտագործեք -m անջատիչը և նշեք ձեզ անհրաժեշտները՝ բաժանված ստորակետերով: Եթե ​​բանալին չի օգտագործվում, ապա բոլոր մոդուլները կաշխատեն լռելյայն: Ամենապարզ տարբերակում այն ​​կունենա հետևյալ տեսքը.

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

Օգտագործման այս օրինակը նշանակում է, որ թիրախը սկանավորելիս մենք կօգտագործենք միայն SQL, XSS և XXE մոդուլները: Բացի այդ, դուք կարող եք զտել մոդուլների աշխատանքը՝ կախված ցանկալի մեթոդից: Օրինակ -m «xss: ստանալ, blindsql: post, xxe: post». Այս դեպքում մոդուլը xss կկիրառվի GET մեթոդով ուղարկված հարցումների և մոդուլի վրա blibdsql - POST հարցումներ և այլն: Ի դեպ, եթե ցանկում ընդգրկված ինչ-որ մոդուլ անհրաժեշտ չի եղել սկանավորման ընթացքում կամ շատ երկար է տևում, ապա սեղմելով Ctrl+C համադրությունը կարող եք բաց թողնել ընթացիկ մոդուլի օգտագործումը՝ ինտերակտիվ մենյուում ընտրելով համապատասխան կետը:

Wapiti-ն աջակցում է հարցումների փոխանցումը վստահված անձի միջոցով՝ օգտագործելով բանալի -p և նույնականացում թիրախային կայքում պարամետրի միջոցով -a. Կարող եք նաև նշել նույնականացման տեսակը՝ Հիմնական, Մարսել, Կերբերոս и NTLM. Վերջին երկուսը կարող են պահանջել լրացուցիչ մոդուլների տեղադրում: Բացի այդ, դուք կարող եք ցանկացած վերնագիր տեղադրել հարցումների մեջ (ներառյալ կամայական): Օգտագործողի գործակալ) և շատ ավելին:

Նույնականացում օգտագործելու համար կարող եք օգտագործել գործիքը wapiti-getcookie. Նրա օգնությամբ մենք ձևավորում ենք բուլկի, որը Wapiti-ն կօգտագործի սկանավորելիս: Կազմում բուլկի կատարվում է հրամանով.

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

Ինտերակտիվ աշխատելիս մենք պատասխանում ենք հարցերին և նշում ենք անհրաժեշտ տեղեկությունները, ինչպիսիք են մուտքը, գաղտնաբառը և այլն.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Արդյունքը ֆայլ է JSON ձևաչափով: Մեկ այլ տարբերակ է պարամետրի միջոցով ավելացնել բոլոր անհրաժեշտ տեղեկությունները -d:

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

Արդյունքը նման կլինի.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Սկաների հիմնական ֆունկցիոնալությունը դիտարկելիս մեր դեպքում վեբ հավելվածը փորձարկելու վերջնական խնդրանքը հետևյալն էր.

# 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

որտեղ, ի թիվս այլ պարամետրերի.

-f и -o - հաշվետվության պահպանման ձևաչափը և ուղին.

-m — բոլոր մոդուլները միացնելը խորհուրդ չի տրվում, քանի որ կազդի թեստավորման ժամանակի և հաշվետվության չափի վրա.

- գույն — ընդգծել հայտնաբերված խոցելիությունները՝ կախված դրանց կրիտիկականությունից՝ ըստ Wapiti-ի.

-c - օգտագործելով ֆայլը բուլկի, գեներացվել օգտագործելով wapiti-getcookie;

-- շրջանակը - Հարձակման համար թիրախ ընտրելը. Ընտրելով տարբերակ թղթապանակ Յուրաքանչյուր URL կսկսվի և կհարձակվի՝ սկսած բազայինից: Հիմնական URL-ը պետք է ունենա առաջ շեղ (առանց ֆայլի անուն);

-- flush-sesion — թույլ է տալիս կրկնակի սկանավորում, որի ժամանակ նախորդ արդյունքները հաշվի չեն առնվի.

-A - սեփական Օգտագործողի գործակալ;

-p — անհրաժեշտության դեպքում վստահված սերվերի հասցեն:

Մի փոքր զեկույցի մասին

Սկանավորման արդյունքը ներկայացված է HTML էջի ձևաչափով հայտնաբերված բոլոր խոցելիությունների վերաբերյալ մանրամասն հաշվետվության տեսքով, պարզ և հեշտ ընթեռնելի ձևով: Զեկույցը ցույց կտա հայտնաբերված խոցելիության կատեգորիաները և քանակը, դրանց նկարագրությունները, հարցումները, հրամանները գալար և խորհուրդներ, թե ինչպես դրանք փակել: Նավիգացիայի հեշտության համար կատեգորիաների անուններին կավելացվի հղում, որի վրա սեղմելով կարող եք գնալ դրան.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Զեկույցի զգալի թերությունը վեբ հավելվածի քարտեզի բացակայությունն է որպես այդպիսին, առանց որի պարզ չի լինի, թե արդյոք բոլոր հասցեներն ու պարամետրերը վերլուծված են: Կա նաև կեղծ պոզիտիվների հավանականություն։ Մեր դեպքում, զեկույցը ներառում է «պահուստային ֆայլեր» և «պոտենցիալ վտանգավոր ֆայլեր»: Նրանց թիվը չի համապատասխանում իրականությանը, քանի որ սերվերում նման ֆայլեր չեն եղել.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Միգուցե սխալ աշխատող մոդուլները ժամանակի ընթացքում կշտկվեն: Զեկույցի մեկ այլ թերություն է հայտնաբերված խոցելի կետերի գունավորման բացակայությունը (կախված դրանց կրիտիկականությունից), կամ գոնե դրանք կատեգորիաների բաժանելը։ Միակ ճանապարհը, որով մենք կարող ենք անուղղակիորեն հասկանալ հայտնաբերված խոցելիության կարևորությունը, պարամետրն օգտագործելն է - գույն սկանավորման ընթացքում, այնուհետև հայտնաբերված խոցելիությունները կգունավորվեն տարբեր գույներով.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Բայց զեկույցն ինքնին նման երանգավորում չի տալիս։

Խոցելիություններ

Քահանա

Սկաները մասամբ հաղթահարեց SQLi որոնումը: SQL խոցելիություններ որոնելիս այն էջերում, որտեղ նույնականացում չի պահանջվում, խնդիրներ չեն առաջանում.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Հնարավոր չեղավ գտնել խոցելիություն էջերում, որոնք հասանելի են միայն վավերացումից հետո, նույնիսկ օգտագործելով վավերը բուլկի, քանի որ, ամենայն հավանականությամբ, հաջող վավերացումից հետո նրանց նիստը «դուրս կգա» և բուլկի անվավեր կդառնա: Եթե ​​ապալիազորման գործառույթն իրականացվեր որպես առանձին սկրիպտ, որը պատասխանատու է այս ընթացակարգի մշակման համար, ապա հնարավոր կլիներ ամբողջությամբ բացառել այն -x պարամետրի միջոցով և դրանով իսկ կանխել դրա գործարկումը: Հակառակ դեպքում հնարավոր չի լինի բացառել դրա վերամշակումը։ Սա կոնկրետ մոդուլի խնդիր չէ, այլ ամբողջ գործիքի հետ կապված, բայց այս նրբերանգի պատճառով հնարավոր չեղավ հայտնաբերել մի քանի ներարկումներ փակ ռեսուրսների տարածքում:

XSS

Սկաները հիանալի հաղթահարեց տրված առաջադրանքը և գտավ բոլոր պատրաստված խոցելիությունները.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

LFI/RFI

Սկաները գտել է բոլոր հիմքում ընկած խոցելիությունները.

Wapiti - ինքնուրույն ստուգում է կայքը խոցելիության համար

Ընդհանուր առմամբ, չնայած կեղծ պոզիտիվներին և բացակայող խոցելի կողմերին, Wapiti-ն, որպես անվճար գործիք, ցույց է տալիս բավականին լավ կատարողական արդյունքներ: Ամեն դեպքում, հարկ է գիտակցել, որ սկաները բավականին հզոր է, ճկուն և բազմաֆունկցիոնալ, և ամենակարևորը, այն անվճար է, ուստի իրավունք ունի օգտագործել՝ օգնելու ադմինիստրատորներին և ծրագրավորողներին ստանալ հիմնական տեղեկատվություն վեբի անվտանգության կարգավիճակի մասին: դիմումը.

Եղեք առողջ և պաշտպանված:

Source: www.habr.com

Добавить комментарий