Nikto – Webalkalmazás-sérülékenység és CGI-szkenner webszerverekhez
A Nikto Web Scanner egy másik jó eszköz a Linux rendszergazdák arzenáljához. Ez egy GPL-licenc alatt kiadott nyílt forráskódú webszkenner, amely átfogó tesztek elvégzésére szolgál webszervereken több elem, köztük több mint 6500 potenciálisan veszélyes fájl/CGI tekintetében. .
Javasolt olvasmány: WPSeku – Sebezhetőség-ellenőrző a WordPress biztonsági problémáinak felderítésére
Chris Solo és David Lodge írta a sebezhetőség értékelésére, ellenőrzi, hogy vannak-e elavult verziók több mint 1250 webszerveren és több mint 270 verzióspecifikus problémák. Ezenkívül megvizsgálja és jelentéseket készít az elavult webszerver-szoftverekről és bővítményekről.
A Nikto Web Scanner jellemzői
- Támogatja az SSL-t
- Támogatja a teljes HTTP-proxyt
- Támogatja a szöveget, a HTML-t, az XML-t és a CSV-t a jelentések mentéséhez.
- Több port keresése
- Több kiszolgálón is képes szkennelni azáltal, hogy bemeneteket vesz be olyan fájlokból, mint az nmap kimenet
- Támogassa a LibWhisker IDS-t
- Eléggé képes azonosítani a telepített szoftvereket fejlécekkel, fájlokkal és kedvenc ikonokkal
- A Metasploits naplói
- Jelentések a „szokatlan” fejlécekről.
- Apache és cgiwrap felhasználók felsorolása
- A gazdagépek hitelesítése Basic és NTLM segítségével
- A szkennelés egy adott időpontban automatikusan szüneteltethető.
Nikto követelmények
Az alapvető Perl, Perl modulok és OpenSSL telepítésű rendszernek lehetővé kell tennie a Nikto futtatását. Alaposan tesztelték Windows, Mac OSX és különféle Unix/Linux disztribúciókon, mint például a Red Hat, Debian, Ubuntu, BackTrack stb.
Nikto Web Scanner telepítése Linuxra
A legtöbb mai Linux rendszer előre telepített Perl, Perl Modules és OpenSSL csomagokkal érkezik. Ha nem tartalmazza, telepítheti őket az alapértelmezett yum vagy apt-get nevű rendszercsomagkezelő segédprogrammal.
Red Hat/CentOS/Fedora rendszeren
[root@tecmint ]# yum install perl perl-Net-SSLeay openssl
Debian/Ubuntu/Linux Mint rendszeren
[root@tecmint ]# apt-get install perl openssl libnet-ssleay-perl
Ezután klónozza a legújabb stabil Nikto forrásfájlokat a Github-tárhelyről, lépjen a Nikto/programs/ könyvtárba, és futtassa a perl használatával:
git clone https://github.com/sullo/nikto.git
cd nikto/programs
perl nikto.pl -h
Minta kimenet
Option host requires an argument
-config+ Use this config file
-Display+ Turn on/off display outputs
-dbcheck check database and other key files for syntax errors
-Format+ save file (-o) format
-Help Extended help information
-host+ target host
-id+ Host authentication to use, format is id:pass or id:pass:realm
-list-plugins List all available plugins
-output+ Write output to this file
-nossl Disables using SSL
-no404 Disables 404 checks
-Plugins+ List of plugins to run (default: ALL)
-port+ Port to use (default 80)
-root+ Prepend root value to all requests, format is /directory
-ssl Force ssl mode on port
-Tuning+ Scan tuning
-timeout+ Timeout for requests (default 10 seconds)
-update Update databases and plugins from CIRT.net
-Version Print plugin and database versions
-vhost+ Virtual host (for Host header)
+ requires a value
Note: This is the short help output. Use -H for full help text.
Az „Option host igényel argumentumot” egyértelműen jelzi, hogy a teszt során nem vettük fel a szükséges paramétereket. Tehát hozzá kell adnunk egy alapvető szükséges paramétert a teszt futtatásához.
Alapvető tesztelés
Az alapvető vizsgálathoz egy megcélozni kívánt gazdagépre van szükség, alapértelmezés szerint a 80 portot vizsgálja, ha nincs megadva. A gazdagép lehet egy rendszer gazdaneve vagy IP-címe. A gazdagépet a „-h ” opcióval adhatja meg.
Például egy 172.16.27.56 IP-címen szeretnék végezni egy vizsgálatot a 80 TCP-porton.
[root@tecmint nikto-2.1.5]# perl nikto.pl -h 172.16.27.56
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 172.16.27.56
+ Target Hostname: example.com
+ Target Port: 80
+ Start Time: 2014-01-10 00:48:12 (GMT5.5)
---------------------------------------------------------------------------
+ Server: Apache/2.2.15 (CentOS)
+ Retrieved x-powered-by header: PHP/5.3.3
+ The anti-clickjacking X-Frame-Options header is not present.
+ Server leaks inodes via ETags, header found with file /robots.txt, inode: 5956160, size: 24, mtime: 0x4d4865a054e32
+ File/dir '/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ "robots.txt" contains 1 entry which should be manually viewed.
+ Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.22). Apache 1.3.42 (final release) and 2.0.64 are also current.
+ Multiple index files found: index.php, index.htm, index.html
+ DEBUG HTTP verb may show server debugging information. See http://msdn.microsoft.com/en-us/library/e8z01xdh%28VS.80%29.aspx for details.
+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ OSVDB-3233: /phpinfo.php: Contains PHP configuration information
+ OSVDB-12184: /index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-3092: /test.html: This might be interesting...
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ /connect.php?path=http://cirt.net/rfiinc.txt?: Potential PHP MySQL database connection string found.
+ OSVDB-3092: /test.php: This might be interesting...
+ 6544 items checked: 0 error(s) and 16 item(s) reported on remote host
+ End Time: 2014-01-10 00:48:23 (GMT5.5) (11 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Ha másik portszámon szeretne szkennelni, adja hozzá a „-p ” [-port] opciót. Például a 172.16.27.56 IP-címen, a 443-as TCP-porton szeretnék végezni egy vizsgálatot.
[root@tecmint nikto-2.1.5]# perl nikto.pl -h 172.16.27.56 -p 443
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 172.16.27.56
+ Target Hostname: example.com
+ Target Port: 443
---------------------------------------------------------------------------
+ SSL Info: Subject: /O=*.mid-day.com/OU=Domain Control Validated/CN=*.mid-day.com
Ciphers: DHE-RSA-AES256-GCM-SHA384
Issuer: /C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./OU=http://certificates.starfieldtech.com/repository/CN=Starfield Secure Certification Authority/serialNumber=10688435
+ Start Time: 2014-01-10 01:08:26 (GMT5.5)
---------------------------------------------------------------------------
+ Server: Apache/2.2.15 (CentOS)
+ Server leaks inodes via ETags, header found with file /, inode: 2817021, size: 5, mtime: 0x4d5123482b2e9
+ The anti-clickjacking X-Frame-Options header is not present.
+ Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.22). Apache 1.3.42 (final release) and 2.0.64 are also current.
+ Server is using a wildcard certificate: '*.mid-day.com'
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ 6544 items checked: 0 error(s) and 8 item(s) reported on remote host
+ End Time: 2014-01-10 01:11:20 (GMT5.5) (174 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Megadhat gazdagépeket, portokat és protokollokat is a teljes URL szintaxis használatával, és a rendszer megvizsgálja.
[root@tecmint nikto-2.1.5]# perl nikto.pl -h http://172.16.27.56:80
Szkennelhet bármilyen webhelyet. Például itt végeztem egy vizsgálatot a google.com oldalon.
[root@tecmint nikto-2.1.5]# perl nikto.pl -h http://www.google.com
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 173.194.38.177
+ Target Hostname: www.google.com
+ Target Port: 80
+ Start Time: 2014-01-10 01:13:36 (GMT5.5)
---------------------------------------------------------------------------
+ Server: gws
+ Cookie PREF created without the httponly flag
+ Cookie NID created without the httponly flag
+ Uncommon header 'x-frame-options' found, with contents: SAMEORIGIN
+ Uncommon header 'x-xss-protection' found, with contents: 1; mode=block
+ Uncommon header 'alternate-protocol' found, with contents: 80:quic
+ Root page / redirects to: http://www.google.co.in/?gws_rd=cr&ei=xIrOUomsCoXBrAee34DwCQ
+ Server banner has changed from 'gws' to 'sffe' which may suggest a WAF, load balancer or proxy is in place
+ Uncommon header 'x-content-type-options' found, with contents: nosniff
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ File/dir '/groups/' in robots.txt returned a non-forbidden or redirect HTTP code (302)
….
A fenti parancs egy csomó http kérést (azaz több mint 2000 tesztet) hajt végre a webszerveren.
Több port tesztelése
Ugyanabban a munkamenetben több port vizsgálatát is végrehajthatja. Ha több portot szeretne megvizsgálni ugyanazon a gazdagépen, adja hozzá a „-p” [-port] opciót, és adja meg a portok listáját. A portok megadhatók tartományként (pl. 80-443) vagy vesszővel elválasztva (pl. 80 443). Például egy 80 és 443 portot szeretnék átvizsgálni a 172.16.27.56 gazdagépen.
[root@tecmint nikto-2.1.5]# perl nikto.pl -h 172.16.27.56 -p 80,443
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ No web server found on cmsstage.mid-day.com:88
---------------------------------------------------------------------------
+ Target IP: 172.16.27.56
+ Target Hostname: example.com
+ Target Port: 80
+ Start Time: 2014-01-10 20:38:26 (GMT5.5)
---------------------------------------------------------------------------
+ Server: Apache/2.2.15 (CentOS)
+ Retrieved x-powered-by header: PHP/5.3.3
+ The anti-clickjacking X-Frame-Options header is not present.
---------------------------------------------------------------------------
+ Target IP: 172.16.27.56
+ Target Hostname: example.com
+ Target Port: 443
---------------------------------------------------------------------------
+ SSL Info: Subject: /O=*.mid-day.com/OU=Domain Control Validated/CN=*.mid-day.com
Ciphers: DHE-RSA-AES256-GCM-SHA384
Issuer: /C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./OU=http://certificates.starfieldtech.com/repository/CN=Starfield Secure Certification Authority/serialNumber=10688435
+ Start Time: 2014-01-10 20:38:36 (GMT5.5)
---------------------------------------------------------------------------
+ Server: Apache/2.2.15 (CentOS)
+ All CGI directories 'found', use '-C none' to test none
+ Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.22). Apache 1.3.42 (final release) and 2.0.64 are also current.
.....
Proxy használata
Tegyük fel, hogy egy rendszer, ahol a Nikto fut, csak HTTP proxyn keresztül fér hozzá a célállomáshoz, a tesztet továbbra is két különböző módon lehet végrehajtani. Az egyik a nikto.conf fájl használata, a másik módja pedig a közvetlen futtatás a parancssorból.
Nikto.conf fájl használata
Nyissa meg a nikto.conf fájlt bármelyik parancssori szerkesztővel.
[root@localhost nikto-2.1.5]# vi nikto.conf
Keresse meg a „PROXY” változót, és távolítsa el a „#” megjegyzést a sorok elejétől az ábrán látható módon. Ezután adja hozzá a proxy gazdagépet, a portot, a proxy felhasználót és a jelszót. Mentse és zárja be a fájlt.
Proxy settings -- still must be enabled by -useproxy
PROXYHOST=172.16.16.37
PROXYPORT=8080
PROXYUSER=pg
PROXYPASS=pg
Most hajtsa végre a Nikto parancsot a „-useproxy” opcióval. Kérjük, vegye figyelembe, hogy minden kapcsolat aHTTP proxyn keresztül kerül továbbításra.
root@localhost nikto-2.1.5]# perl nikto.pl -h localhost -p 80 -useproxy
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2014-01-10 21:28:29 (GMT5.5)
---------------------------------------------------------------------------
+ Server: squid/2.6.STABLE6
+ Retrieved via header: 1.0 netserv:8080 (squid/2.6.STABLE6)
+ The anti-clickjacking X-Frame-Options header is not present.
+ Uncommon header 'x-squid-error' found, with contents: ERR_CACHE_ACCESS_DENIED 0
+ Uncommon header 'x-cache-lookup' found, with contents: NONE from netserv:8080
Parancssor használata
A Nikto futtatása közvetlenül a parancssorból a „-useproxy” opció használatával, a proxy argumentumként történő beállításával.
root@localhost nikto-2.1.5]# perl nikto.pl -h localhost -useproxy http://172.16.16.37:8080/
Minta kimenet
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2014-01-10 21:34:51 (GMT5.5)
---------------------------------------------------------------------------
+ Server: squid/2.6.STABLE6
+ Retrieved via header: 1.0 netserv:8080 (squid/2.6.STABLE6)
+ The anti-clickjacking X-Frame-Options header is not present.
+ Uncommon header 'x-squid-error' found, with contents: ERR_CACHE_ACCESS_DENIED 0
+ Uncommon header 'x-cache-lookup' found, with contents: NONE from netserv:8080
Nikto frissítése
A Nikto-t automatikusan frissítheti a legújabb bővítményekre és adatbázisokra, egyszerűen futtassa a „-update” parancsot.
[root@localhost nikto-2.1.5]# perl nikto.pl -update
Ha új frissítések állnak rendelkezésre, megjelenik a letöltött új frissítések listája.
+ Retrieving 'nikto_report_csv.plugin'
+ Retrieving 'nikto_headers.plugin'
+ Retrieving 'nikto_cookies.plugin'
+ Retrieving 'db_tests'
+ Retrieving 'db_parked_strings'
+ Retrieving 'CHANGES.txt'
+ CIRT.net message: Please submit Nikto bugs to http://trac2.assembla.com/Nikto_2/report/2
A Nikto bővítményeket és adatbázisokat manuálisan is letöltheti és frissítheti a http://cirt.net/nikto/UPDATES/ webhelyről.
Referencia hivatkozások
Nikto Honlap