Httprint – webserver fingerprinting

***

Ciao a tutti,

eccoci di nuovo tornati a parlare di Finferprinting e questa volta lo faremo a riguardo di un tool molto particolare …l’ HTTPrint.

Httprint è un tool per l’information-gathering di web servers sviluppato dal team Net-Square.

In BackTrack-3.Final è preinstallata la versione 301, in modalità GUI e da linea di comando (le due ovviamente svolgono le stesse funzioni).

Httprint utilizza le caratteristiche dei web servers per identificarli, e tenta di farlo nonostante offuscamenti vari o mediante l’utilizzo di plugins come mod_security o servermask (che servono appunto a mascherare il  web-server in questione).

Il tool, per adempiere a ciò, utilizza delle stringhe di testo che vengono confrontate con le stringhe di risposta ottenute in rete, da ciò scaturisce il risultato; è inoltre molto semplice aggiungere altre stringhe al database predefinito di Httprint modificando il file di testo apposito o utlizzando un database più aggiornato.

***

Per utilizzare il tool in modalità CLI dobbiamo selezionare dal menu Backtrack>Network Mapping>Service Fingerprinting>Httprint
oppure da shell:

______________________________________________________

#cd /pentest/enumeration/www/httprint_301/linux
# httprint

______________________________________________________

Per utilizzare invece la modalità GUI del tool dobbiamo selezionarlo dal percorso:

______________________________________________________

Backtrack –>Network Mapping –> Service Fingerprinting –> Httprint_GUI,

______________________________________________________

Per comodità useremo per il nostro test l’ interfaccia grafica.
La prima cosa che si consiglia di fare prima di utilizzare il tool è di aggiornare il database delle signatures sovrascrivendolo con quello più recente.

Il database lo troviamo nella directory:

/pentest/enumeration/www/httprint_301/linux/

il nome è “signatures.txt”
Scarichiamo il file aggiornato da questo indirizzo: http://www.net-square.com/httprint/signatures.txt
e sovrascriviamolo a quello più datato.
Ora dobbiamo creare il nostro file di input nel quale specificheremo gli obbiettivi che il tool dovrà analizzare.

Il file di input , (input.txt) , si trova nella stessa destinazione di signatures.txt dunque:

/pentest/enumeration/www/httprint_301/linux

Apriamo il file input.txt con l’editor e dovrebbe apparire qualcosa del genere:

***

# inputs for httprint can be:
# – individual IP addresses (default port 80)
# – http://servername:%5Bport%5D/
# – https://servername:%5Bport%5D/
# – IP ranges xx.xx.xx.xx-yy.yy.yy.yy
#
http://www.apache.org/

***

Come possiamo vedere da questo file HTTPrint accetta diversi tipi di input i quali, qualora fossero più di uno, potrebbero essere anche analizzati contemporaneamente dato che ha la possibilità di lavorare su più bersagli in modo parallelo.

Noi faremo delle prove su un solo bersaglio.

L’host da voi designato dunque dovrà essere sovrascritto al posto di http://www.apache.org, noi useremo google.com e apache.org.
Non ci resta che aprire Httprint_GUI. Fatto ciò possiamo notare che Httprint non accetta come input solo files .txt ma anche files di tipo .xml creati dal famoso tool nmap, [(1) – (2)] , è infatti selezionabile questa opzione nella finestra principale; in seguito proveremo anche questa possibilità.
Diamo uno sguardo ora alla parte centrale della GUI dove possiamo osservare le seguenti voci:
Host ; Port ; Banner-Reported ; Banner-Deduced ; Confidence
La prima voce è Host: questa ci darà naturalmente google.com o apache.org, in seguito abbiamo la porta (se non la impostiamo nel nostro file di input manualmente quella di default rimarrà la 80), l’ultima voce sarà il tasso di affidabilità (confidence rating), in questo momento ci indicherà 0 -zero- , perchè ancora non abbiamo iniziato la scansione.
Per iniziare dobbiamo schiacciare il tasto verde nella parte bassa della GUI, ciò farà partire il processo di raccolta informazioni.
Nota: Se hai selezionato bersagli multipli dovrai aspettare un bel pò , ma se vuoi interrompere il processo puoi sempre utilizzare il tasto stop.
Una volta completato dovremmo vedere utilizzati i campi che prima erano vuoti e una finestra popup ci dovrebbe anche informare che il processo è terminato.

Ora dovremmo avere informazioni molto importanti sul nostro bersaglio. Dovremmo avere informazioni sul banner ricevuto , e sul webserver che Httprint ritiene sia il più probabile infine anche qualche info relative all’SSL (se utilizzato).

***

Iniziamo:
Settiamo l’ input file:      z:\pentest\enumeration\www\httprint_301\linux\input.txt
signature file:              z:\pentest\enumeration\www\httprint_301\linux\signatures.txt
e ora il percorso in cui vogliamo salvare il nostro file di report:
z:\root\Desktop\httprintoutput.html
io lo salvo sul desktop.

***

***

Diamo l’avvio col tasto verde
Ecco i risultati:
Banner reported: Apache/2.2.9(Unix)
Banner deduced:  Apache/2.0.x

con una confidence rating del del 78,31%, quindi abbastanza alta.
Dunque le informazioni ricevute direttamente dal server web ci dicono che esso è un Apache 2.2.9 mentre il nostro Httprint  in base al confronto fra le stringhe di testo ricevute e quelle presenti nel suo database ci dice che il server è un  Apache 2.0.x. Risultato soddisfacente considerando l’alto tasso di confidence rating, l’unica divergenza è la versione che oscilla tra la 2.0 e la 2.2, cosa del tutto naturale considerando che quando si fa un fingerprinting è quasi impossibile avere la certezza matematica di ciò con cui si ha a che fare.
Questo è il report file:

***

***

Ora facciamo una prova utilizzando un file di output di nmap:
Il comando di input che darò a nmap sarà il seguente:

#nmap http://www.google.com -p 80 -oX /root/aaa.xml

L’ host che utilizzeremo sarà: http://www.google.com , la porta sarà la 80, il file creato si chiamerà aaa.xml e la sua destinazione sarà nella cartella root/

***

***

Apriamo a questo punto Httprint_GUI e selezioniamo “nmap nella parte dedicata all’input file, premiamo il tasto sfoglia e selezioniamo il file aaa.xml , infine col tasto “load” lo carichiamo.

L’unica cosa da fare a questo punto sarà premere il tasto verde di avvio.
Una volta terminato possiamo constatare che , mettendo in correlazione la stringa catturata e quelle del nostro database, Httprint ipotizza che il web-server da noi analizzato possa essere un WebSitePro/2.3.18 , con un tasso di affidabilità del 39,76% , dunque non molto affidabile.

Solo al secondo posto troviamo come risultato gws , (google web server) , cioè l’informazione che abbiamo ottenuto direttamente dal server che stavamo analizzando (come si può vedere dalla foto in basso).

In questo caso credo che il secondo sia il risultato più accreditabile dato che tutti sanno che google.com utilizza web-server del tipo gws (web-server particolari per far fronte all’enorme traffico di cui è oggetto).

***

***

Possiamo aprire a questo punto il “Report File” che dovrebbe fornirci qualche info in più.
Alla prossima.

15 commenti

  1. bella redbar0n…

    bravo.

  2. Sisi ottimo tool, peccato che le stringhe-firme nn siano aggiornate dal 2004😦

  3. Bellissima guida :} da un po di tempo che sono qui a leggere guide e mi sono anche installato backtrack sulla penna usb devo dire che tutti svolgono un ottimo lavoro vorrei che tutti voi che vedete qeusto commento mi aggiungessero :}}} il mio contatto e Crash.2007@hotmail.it🙂 mi raccomando piu mi aggiungete meglio asd.

  4. Ciao a tutti e auguri di buone feste
    volevo sapere se ci sono novita’ per l’apertura del nuovo sito
    auguri ancora
    Ciao

  5. ciao Liio,

    ti rimando alla nostra mailinglist , dove appena possibile scriverò tutto quello che c’é da sapere…

    ciao e buone feste 🙂

  6. dimenticavo…

    http://groups.google.it/group/backtrack-it?hl=it

    hola !

  7. scusa che programma devo usare per registrare desktop…GRAZIE

  8. gtk-recordmydesktop

  9. si questo l’ho uso in ubuntu ma sulla BackTrack dove lo trovo …
    GRAZIE…..

  10. in ubuntu dove lo trovi?

    devi installarlo.

  11. con il comando sudo apt-get insatall gtk-recordmydesktop
    mente per la BackTrack nn so’ come fare essendo che l’ho istallata da poco….

    • ho capito ma gira un attimo , vai nella sezione /install del blog e vedi come installare programmi in backtrack no?

      guarda la prima cosa che esce da Google

      ciao

  12. scusa se- ti rompo .sono riuscito ad insattare gtk-recordmydesktop pero- quando vado per registrare nella home si crea un file con questo dentro..

    #This is the command given at initialization:
    recordmydesktop -o /root/Desktop/rosa –fps 15 –no-sound –no-shared -x 266 -y 164 –width 854 –height 478 –channels 2 –freq 22050 –v_quality 25 –s_quality 10 –workdir /root/Desktop –use-jack –no-frame

    #recordMyDesktop stderror output:

    Error parsing arguments.
    Type –help or -h for usage.

    cosa significa grazie,,,,,,,,,,

    • Per aiuti e domande dovete usare la mailinglist oppure il canale irc , quì sul blog solo discussioni , non Help-Desk.

  13. […] di web servers sviluppato dal team Net-Square . In BackTrack-3. blog: Back|track~blog | leggi l'articolo Per help e visualizzare le immagini abilitare javascript. Scrivi un […]


Comments RSS TrackBack Identifier URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...