Nikto – web server scanner

alienlogoBis eben kannte ich Nikto noch nicht. Ist aber ziemlich cool … Muss ich regelmäßig einsetzen.

Auf der Seite gibt es auch eine default password list.

Hier die Ergebnisse beim ersten Scan auf meinen lokalen Server:

openvas:/opt/nikto# ./nikto.pl -h 212.114.250.32 -C all
- Nikto v2.03/2.04
---------------------------------------------------------------------------
+ Target IP:          212.114.250.32
+ Target Hostname:    DSL01.212.114.250.32.ip-pool.NEFkom.net
+ Target Port:        80
+ Start Time:         2009-01-29 15:41:04
---------------------------------------------------------------------------
+ Server: Apache
- Allowed HTTP Methods: GET, HEAD, POST, OPTIONS 
+ OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons
+ OSVDB-3233: GET /icons/README : Apache default file found.
+ 3577 items checked: 3 item(s) reported on remote host
+ End Time:        2009-01-29 15:43:25 (141 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
 
Test Options: -h 212.114.250.32 -C all
---------------------------------------------------------------------------

Hehe an /icons hätte ich nie gedacht …

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Apache/PHP Paranoia

Manchmal will man aus diversen Gründen nicht verraten welche Version von PHP und Apache bei einem so läuft. Und sei es nur, dass man die paar Bytes spart. Dann muss man es eben ausschalten. Bei Apache mit

#
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of:  Full | OS | Minor | Minimal | Major | Prod
# where Full conveys the most information, and Prod the least.
#
ServerTokens Prod
#
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory 
# listings, mod_status and mod_info output etc., but not CGI generated 
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of:  On | Off | EMail
#
ServerSignature Off

und bei php mit

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
expose_php = Off
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

https Wahnsinn …

Eben bin ich fast ausgeflippt. Mein neu installierter Apache-SSL Server hat nicht funktioniert. Ich war mir sicher, dass Zertifikat und Konfig 100% richtig sind. Hab ich schließlich auch schon ewig oft eingerichtet. Der Test der Konfig war auch ok:

[root@server httpd]# httpd -t
Syntax OK

Trotzdem hat mein Firefox immer folgende Fehlermeldung angezeigt:

Datenübertragung unterbrochen
Die Verbindung wurde erfolgreich aufgebaut, aber während der Datenübertragung unterbrochen. Bitte versuchen Sie es nochmals.

Und woran lag es schließlich? Natürlich eben nicht am SSL sondern am Default Server der war mit

<VirtualHost *>

statt

<VirtualHost *:80>

konfiguriert und hat damit jeden Request auch die SSL Anfragen beantwortet …

Schreib ich mir hier auf, damit es mir kein zweites mal passiert!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Apache und localhost

Bei jedem Neustart des Apache und damit auch bei jedem Logrotate der Apache-Logfiles hatte folgende nervige Fehlermeldung bekommen:

Starting httpd: httpd: Could not determine the server's fully qualified domain 
name, using 127.0.0.1 for ServerName

Anfangs hatte ich vermutet, dass die vielen Hostnamen in der /etc/hosts, die ich definiert hatte dafür verantwortlich sind:

127.0.0.1 localhost edel.localhost typo3.localhost intranet.localhost 
sandbox.localhost compete.localhost boston.localhost chicago.localhost 
webservices.localhost miles.localhost statistics.localhost signup.localhost

Ein Ändern auf

127.0.0.1 localhost.localdomain localhost

Hat aber auch nicht geholfen und zudem wollte ich nicht die praktischen Namen verlieren. Die nehme ich nämlich zum Entwickeln und Debuggen.

Also was war letztendlich der Grund? Die Lösung ist einfach: Auf meiner Ubuntu Kiste war einfach der Domainname nicht ordentlich gesetzt. Das folgende Kommando hat geholfen:

hostname localhost.localdomain

Mit dnsdomainname kann man übrigens die Richtigkeit der Konfig checken. Damit ist klar, das auf den Debian Kisten in /etc/hostname auch die Domain mit reingehört. Bei CentOS ist es über /etc/sysconfig/network geregelt. Auch dort gehört unter HOSTNAME der volle Hostname also inkl. Domain rein.

Der Hammer, dass ich mich erst jetzt darum gekümmert habe …

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)