Wapiti: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]
Heigo Punapart A21 23.11.2012


[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]
=Sissejuhatus=
== Autor ==
 
Heigo Punapart, A21
'''Wapiti''' ehk ''Web application vulnerability scanner/security auditor'' (veebirakenduste haavatavuste skänner/turvalisuse audiitor) on ''Pythoni'' skript abil saab testida veebirakenduste turvalisust. See teeb ''black-box'' skänneerimist, mis ei uuri rakenduse lähtekoodi vaid otsib veebilehelt skripte ja andmete sisestuskaste. Peale otsingutulemuse saamist käitub Wapiti nagu ''fuzzer''(tarkvara testimise meetod, kus arvutiprogrammi sisestatab erandeid, vigaseid või juhuslike andmeid ning hiljem monitooritakse tulemusi erinevate vigade leidmiseks (näiteks programm lõpetab põhjuseta töö)), koormates skripte üle, et näha selle haavatavusi.
 
=Wapiti omadused=
 
Wapiti kontrollib järgmiseid haavatavusi:
*Faili käistlemise vead
*Andmebaasi ründed
*XSS-i ründed
*LDAP ründed
*Käsu sisestamise jälitamine
*CRLF ründed
 
Wapiti on võimeline eristama punktuaalseid ja püsivaid XSS haavatavusi. Programm väljastab hoiatuse iga kord kui leiab skripti, mis lubab HTTP üleslaadimised. Hoiatus tehakse ka juhul kui väljastatakse HTTP 500 kood (kasulik ASP/IIS jaoks). Wapiti ei põhine haavatavuste andmebaasil, see integreerib oma andmebaasi kui ründena. Wapiti eesmärk on avastada veebirakendustes tundmatuid haavatavusi. Hetkel tuleb kasutada terminalis kuna ei toeta GUI-d. Wapiti on võimaline looma täieliku raporti, mis sisaldab kõiki leitud haavatatavusi ja sellega kaasnevat informatsiooni, et neid parandada.
 
=Eeldused=
 
Wapiti ei ole operatsioonisüsteemist sõltuv, kuna skript on kirjutatud Pythonis, siis see töötab kõikides operatsioonides, mida toetab Python(Windows, Linux, Mac Os jne). Enne kasutamist peaks veenduma, et Python oleks paigaldatud.
 
=Paigaldamine=
 
Järgnev õpetus on tehtud Ubuntu keskkonnas
 
1) Lae alla Wapiti
<pre>http://sourceforge.net/projects/wapiti/</pre>
2) Paki lahti /usr/local/ kausta
<pre>tar xjvf wapiti-2.2.1.tar.bz2 -C /usr/local/
</pre>
3) Vaheta kausta omanik '''root''' kasutajaks
<pre>chown -R root:root /usr/local/wapiti-2.2.1/</pre>
4) Loo wapiti.py ja vulnerability.py failid
<pre>chmod 755 /usr/local/wapiti-2.2.1/src/wapiti.py </pre>
<pre>chmod 755 /usr/local/wapiti-2.2.1/src/vulnerability.py </pre>
5) Loo wapiti skript /usr/bin kausta ning ava fail
<pre>touch /usr/bin/wapiti</pre>
<pre>nano /usr/bin/wapiti </pre>
6) Kirjuta avatud faili järgnev skript
<pre>#!/bin/sh
cd /usr/local/wapiti-2.2.1/src/
./wapiti.py $*</pre>
7) Kontrolli faili kasutusvõimalusi ja omanikku
<pre>ls -ld /usr/bin/wapiti </pre>
<pre>-rwxr-xr-x 1 root root 59 2012-04-10 10:42 /usr/bin/wapiti</pre>
 
=Kasutamine=
'''NB: Kantsulgudes oleva muutuja asemel tuleb panna oma väärtus!'''
<pre>python wapiti.py [url] [parameetrid]</pre>
 
Skriptiga on võimalik kasutada järgnevaid parameetreid: <br/>
 
Alustamise url-i määramine
<pre>
-s [url]
--start [url] </pre>
Url-i ära jätmine otsingust (näiteks väljalogimise skript)
<pre>-x [url]
--exclude [url] </pre>
Proxy seadistamine <br/>
<pre>-p [url_proxy]
--proxy [url_proxy]</pre>
'''Näiteks:'''<pre> -p http://proxy:port/</pre>
Küpsiste kasutamine
<pre>-c [cookie_file}
--cookie [cookie_file]</pre>
Et määrata aegumine (sekundites)
<pre>-t [timeout]
--timeout [timeout]</pre>
Määrab mandaadid HTTP autentimiseks<br/>
Ei tööta koos Python 2.4-ga
<pre>-a [login%password]
--auth [login%password]</pre>
URL-ilt parameetrite eemaldamine
<pre>-r [parameter_name]
--remove [parametri_name]</pre>
Sama lugemiskujundiga URL-ile limiidi määramine<br/>
Saab kasutada lõpmatuse vältimiseks<br/>
Peab olema suurem kui 0
<pre>-n [limit]
--nice [limit]</pre>
Mooduli ja HTTP meetodite ründe määramine<br/>
<pre>-m [module_options]
--module [module_options]</pre>
'''Näiteks:'''<pre> -m "-all,xss:get,exec:post"</pre>
Kasutab värve, et välja tuua haavatavuse parameetrid väljundis
<pre>-u
--underline </pre>
Määrab sõnarohkuse taseme
0: vaikne(algseade), 1: väljasta iga url, 2: väljasta iga rünne
<pre>-v [level]
--verbose [level]</pre>
Määrab skännimise ulatuse:<br/>
+"page": analüüsib ainult URL-iga määratud lehe<br/>
+"folder": analüüsib kõik lingid, mis on määratud URL-iga samaskaustas<br/>
+"domain": analüüsib kõik lingid, mis on määratud URL-iga samas domeenis
<pre>-b [scope]
--scope [scope]</pre>
Raporti tüübi määramine<br/>
XML: Raport XML formaadis<br/>
HTML: Raport HTML formaadis
<pre>-f [file_type]
--reportType [file_type]</pre>
Rapordifaili nime määramine<br/>
Kui valitud raport on "html" formaadis, siis see parameeter peab olema kaust
<pre>-o [output]
--output [output_file]</pre>
See parameeter jätkab Wapiti viimast skänneerimist määratud failist, antud fail peab sisaldama andmeid eelnevast skännimiseest<br/>
Fail on valikuline, kui faili pole määratud, Wapiti võtab algse faili \"scans\" kaustast
<pre>-i [file]
--continue [file]</pre>
Antud parameeter jätkab rünnete tegemist ilma uuesti skännimiseta ning andmete jälgimist failist<br/>
Fail on valikuline, kui faili pole määratud, Wapiti võtab algse faili \"scans\" kaustast
<pre>-k [file]
--attack [file]</pre>
Väljastab antud teksti
<pre>-h
--help </pre>
 
=Kasutatud materjalid=
 
http://wapiti.sourceforge.net/<br/>
http://www.ict-romulus.eu/web/wapiti<br/>
http://hacktivision.com/index.php/2007/12/18/how-to-use-wapiti-in-ubuntu-1?blog=2<br/>

Revision as of 14:38, 23 November 2012

Heigo Punapart A21 23.11.2012

Sissejuhatus

Wapiti ehk Web application vulnerability scanner/security auditor (veebirakenduste haavatavuste skänner/turvalisuse audiitor) on Pythoni skript abil saab testida veebirakenduste turvalisust. See teeb black-box skänneerimist, mis ei uuri rakenduse lähtekoodi vaid otsib veebilehelt skripte ja andmete sisestuskaste. Peale otsingutulemuse saamist käitub Wapiti nagu fuzzer(tarkvara testimise meetod, kus arvutiprogrammi sisestatab erandeid, vigaseid või juhuslike andmeid ning hiljem monitooritakse tulemusi erinevate vigade leidmiseks (näiteks programm lõpetab põhjuseta töö)), koormates skripte üle, et näha selle haavatavusi.

Wapiti omadused

Wapiti kontrollib järgmiseid haavatavusi:

  • Faili käistlemise vead
  • Andmebaasi ründed
  • XSS-i ründed
  • LDAP ründed
  • Käsu sisestamise jälitamine
  • CRLF ründed

Wapiti on võimeline eristama punktuaalseid ja püsivaid XSS haavatavusi. Programm väljastab hoiatuse iga kord kui leiab skripti, mis lubab HTTP üleslaadimised. Hoiatus tehakse ka juhul kui väljastatakse HTTP 500 kood (kasulik ASP/IIS jaoks). Wapiti ei põhine haavatavuste andmebaasil, see integreerib oma andmebaasi kui ründena. Wapiti eesmärk on avastada veebirakendustes tundmatuid haavatavusi. Hetkel tuleb kasutada terminalis kuna ei toeta GUI-d. Wapiti on võimaline looma täieliku raporti, mis sisaldab kõiki leitud haavatatavusi ja sellega kaasnevat informatsiooni, et neid parandada.

Eeldused

Wapiti ei ole operatsioonisüsteemist sõltuv, kuna skript on kirjutatud Pythonis, siis see töötab kõikides operatsioonides, mida toetab Python(Windows, Linux, Mac Os jne). Enne kasutamist peaks veenduma, et Python oleks paigaldatud.

Paigaldamine

Järgnev õpetus on tehtud Ubuntu keskkonnas

1) Lae alla Wapiti

http://sourceforge.net/projects/wapiti/

2) Paki lahti /usr/local/ kausta

tar xjvf wapiti-2.2.1.tar.bz2 -C /usr/local/

3) Vaheta kausta omanik root kasutajaks

chown -R root:root /usr/local/wapiti-2.2.1/

4) Loo wapiti.py ja vulnerability.py failid

chmod 755 /usr/local/wapiti-2.2.1/src/wapiti.py 
chmod 755 /usr/local/wapiti-2.2.1/src/vulnerability.py 

5) Loo wapiti skript /usr/bin kausta ning ava fail

touch /usr/bin/wapiti
nano /usr/bin/wapiti 

6) Kirjuta avatud faili järgnev skript

#!/bin/sh
cd /usr/local/wapiti-2.2.1/src/
./wapiti.py $*

7) Kontrolli faili kasutusvõimalusi ja omanikku

ls -ld /usr/bin/wapiti 
-rwxr-xr-x 1 root root 59 2012-04-10 10:42 /usr/bin/wapiti

Kasutamine

NB: Kantsulgudes oleva muutuja asemel tuleb panna oma väärtus!

python wapiti.py [url] [parameetrid]

Skriptiga on võimalik kasutada järgnevaid parameetreid:

Alustamise url-i määramine

-s [url]
--start [url] 

Url-i ära jätmine otsingust (näiteks väljalogimise skript)

-x [url]
--exclude [url] 

Proxy seadistamine

-p [url_proxy]
--proxy	[url_proxy]

Näiteks:

 -p http://proxy:port/

Küpsiste kasutamine

-c [cookie_file}
--cookie [cookie_file]

Et määrata aegumine (sekundites)

-t [timeout]
--timeout [timeout]

Määrab mandaadid HTTP autentimiseks
Ei tööta koos Python 2.4-ga

-a [login%password]
--auth [login%password]

URL-ilt parameetrite eemaldamine

-r [parameter_name]
--remove [parametri_name]

Sama lugemiskujundiga URL-ile limiidi määramine
Saab kasutada lõpmatuse vältimiseks
Peab olema suurem kui 0

-n [limit]
--nice [limit]

Mooduli ja HTTP meetodite ründe määramine

-m [module_options]
--module	[module_options]

Näiteks:

 -m "-all,xss:get,exec:post"

Kasutab värve, et välja tuua haavatavuse parameetrid väljundis

-u
--underline 

Määrab sõnarohkuse taseme 0: vaikne(algseade), 1: väljasta iga url, 2: väljasta iga rünne

-v [level]
--verbose [level]

Määrab skännimise ulatuse:
+"page": analüüsib ainult URL-iga määratud lehe
+"folder": analüüsib kõik lingid, mis on määratud URL-iga samaskaustas
+"domain": analüüsib kõik lingid, mis on määratud URL-iga samas domeenis

-b [scope]
--scope [scope]

Raporti tüübi määramine
XML: Raport XML formaadis
HTML: Raport HTML formaadis

-f [file_type]
--reportType [file_type]

Rapordifaili nime määramine
Kui valitud raport on "html" formaadis, siis see parameeter peab olema kaust

-o [output]
--output [output_file]

See parameeter jätkab Wapiti viimast skänneerimist määratud failist, antud fail peab sisaldama andmeid eelnevast skännimiseest
Fail on valikuline, kui faili pole määratud, Wapiti võtab algse faili \"scans\" kaustast

-i [file]
--continue [file]

Antud parameeter jätkab rünnete tegemist ilma uuesti skännimiseta ning andmete jälgimist failist
Fail on valikuline, kui faili pole määratud, Wapiti võtab algse faili \"scans\" kaustast

-k [file]
--attack [file]

Väljastab antud teksti

-h
--help 	

Kasutatud materjalid

http://wapiti.sourceforge.net/
http://www.ict-romulus.eu/web/wapiti
http://hacktivision.com/index.php/2007/12/18/how-to-use-wapiti-in-ubuntu-1?blog=2