<=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=>
      <=-=>                                                       <=-=>
      <=-=>                  -=> Lord Shinva <=-                  <=-=>
      <=-=>                                                       <=-=>
      <=-=>                  -DiGiTAL::ALLiANCE-                  <=-=>
      <=-=>                                                       <=-=>
      <=-=>   C : 0 . N : F . E : D . E : R . A : T . i : 0 . N   <=-=>
      <=-=>                                                       <=-=>
      <=-=>                                                       <=-=>
      <=-=>              Enciclopedia dell' Hacking               <=-=>
      <=-=>              ``````````````````````````               <=-=>
      <=-=>                   .:[ Volume 6 ]:.                    <=-=>
      <=-=>                                                       <=-=>
      <=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=><=-=>



TECNICHE DI BASE: MISCELLANEA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nel volume precedente abbiamo visto come sfruttare alcuni problemi di
sicurezza del software server.

Dal momento che e` necessario conoscere tipo e versione del software e
sistema operativo, dobbiamo sapere come avere tali informazioni.

Ancora una volta ci torna comodo utilizzare Telnet.  Bastera` infatti
collegarsi alla porta del servizio interessato per ottenere quasi sempre
informazioni preziose.

Ad esempio, se ci colleghiamo alla porta HTTP, FTP o SMTP, il server ci
"salutera`" indicandoci tipo e versione del software, data locale e altre
utili informazioni.
Altre ancora possiamo ottenerle tramite il programma "finger", che serve a
mostrare informazioni su un dato utente di un dato sistema.
Alcuni siti inoltre ci risparmiano la fatica di cercare: infatti, i Webmaster
dopo aver acquistato un "potente" software server, scrivono orgogliosi sulle
loro pagine "questo sito utilizza il software xxxxx versione yyyyy"...

Un'ulteriore nota sulla porta HTTP: i vecchi server (versioni fino alla 1.3)
di httpd (per Unix e Linux) possono essere crashati richiedento un URL con
un formato sbagliato.  Esistono in giro diversi exploit sull'argomento, e
pertanto vi rimando alle mailing list sulla sicurezza su Internet.

NOTA: da ora in poi quando parlero` di Unix mi riferiro` anche a Linux, AIX,
Solaris, ecc. a meno che sia diversamente specificato.

Prima di procedere vorrei farvi notare che non e` necessario scrivere in
tempo reale i vostri comandi in Telnet (anche perche` correte il rischio di
sbagliare e non poter cancellare).  Moltissimi client hanno le funzioni Copy
e Paste (Copia e Incolla), che potete usare unitamente a un programma di
videoscrittura (come il Block Notes di Windows) per velocizzare le operazioni
(e ridurre il numero di cifre sulla vostra bolletta telefonica).
Vi bastera` infatti scrivere tutti i comandi nel block notes, usare Copy e
poi, una volta in Telnet, usare Paste.  Un consiglio: non usate testi troppo
lunghi, perche` alcuni server potrebbero non essere abbastanza veloci per
riceverli.

Altri programmi vulnerabili a un attacco tramite Telnet sono Finger, Ping,
Gopher, Pine e altri; in pratica, per quasi tutti quelli esistenti esiste
un hack su misura.

Ovviamente per capire di cosa sto parlando vi serviranno i programmi in
questione.  Iniziamo da finger.

Usando @ oppure 0 (o uno degli username standard come root, bin, ftp, system,
demo, guest, ecc.) nell'effettuare una richiesta tramite finger e` possibile
ottenere (specie con i vecchi server) svariate informazioni.

Ma supponiamo ora di voler crashare il server finger.  Per quale motivo?
Siamo tutti hackers.malicious o crackers? ;)  No, il motivo e` un altro:
se il server finger (per Unix) dovesse crashare, noi avremmo accesso root.
Perche`?  Se il server crasha, non avremo piu` un "interprete" dall'altra
parte che "filtra" i nostri comandi e ci da informazioni quando scriviamo
finger... ma avremo una specie di connessione diretta alla shell dei comandi
con il livello d'accesso massimo (root, per l'appunto).

Ecco come si fa: (non sbavate, siamo ancora al principio ;)
utilizzando Telnet, il cui scopo e` fornire una connessione e lasciarla nelle
nostre mani, ci colleghiamo alla porta 79 (finger) del server desiderato
(assicuriamoci pero` prima che il sistema operativo sia effettivamente Unix e
che abbia il server finger attivato).
Ora, quello che fa un normale client finger e` semplicemente inviare il
comando "finger nomeutente" e visualizzare le informazioni ricevute.
Nient'altro.  E` uno spreco... tanto potere buttato al vento =)
E pensare che finger ha anche accesso a tutte le directory degli utenti, e
a saperlo controllare si potrebbero anche "ritoccare" i vari files...

Ma noi, che abbiamo ben altre intenzioni (buone... lo dico per il NOPT, il
Nucleo Operativo di Polizia Telematica ;) possiamo fare di meglio.

Scrivendo ///* seguito dalla combinazione Ctrl-S accederete a root e
paralizzerete il server (Ctrl-S e` un codice di controllo detto "freeze",
cioe` "congela").  A questo punto la connessione e` in mano vostra.

Il client finger puo` essere usato per un attacco di tipo D.O.S. (Denial Of
Service, cioe` negare l'accesso a un servizio disattivandolo).
Se usiamo finger per collegarci a un server troppe volte (lasciando "aperta"
ogni connessione) dopo un po` il server rifiutera` a chiunque altro di
collegarsi, e l'intero server del sito verra` rallentato; in alcuni casi
potrebbe addirittura crashare.
Per fare una cosa del genere bisognerebbe chiamare decine di volte lo stesso
programma... una soluzione migliore consiste nel programmare da se` una
utility che effettui molte connessioni alla stessa porta dello stesso server.

Se il vostro client lo consente, potete nascondere il vostro IP Address
effettuando un "bounce" (rimbalzo).  In pratica si tratta di richiedere a
un server di fare la stessa richiesta a un altro server, per far risultare
come "richiedente" il suo IP Address anziche` il nostro.
Il comando e` nel formato: finger @[email protected]

Non preoccupatevi se non avete capito tutto: vi torneranno utili quando
dovrete studiare un attacco e conoscerete meglio l'Arte.

Nota su finger: alcuni siti (mi sembra di ricordare quello della Microsoft)
disabilitano finger per evitare problemi... in alcuni casi pero` si limitano
a disabilitarlo, NON a cancellarlo dalla directory del server.
Potrete quindi accedervi usando questo URL:

  http://www.sito.com/cgi-bin/finger

e per passare i parametri aggiungete "?" e i vostri comandi con il metodo
della codifica degli URL descritta nei volumi precedenti.

Personalmente non ho provato la tecnica del ///*^S su server non-Unix (come
Windows NT e 95) in quanto essa e` basata sulla struttura di Unix.  Comunque
potrebbe essere interessante provare; da cosa nasce cosa...

Passiamo ora a Ping.

Combinato a Finger, Ping e` eccellente per effettuare un attacco D.O.S. in
quanto e` utilizzato praticamente ovunque, e non correte il rischio di non
poterlo utilizzare come accade in alcuni casi con Finger.

Per chi non lo conosce, diciamo che Ping e` un programma per controllare la
presenza di un sito su Internet e valutare la sua velocita` di collegamento.

Il funzionamento e` molto simile: aprire molte connessioni a un server, fino
a che questo collassera` per il troppo lavoro richiesto alla CPU.
Se avete la possibilita` di scegliere tra Ping e Ping-f vi consiglio di
scegliere quest'ultimo, in quanto e` estremamente piu` veloce.

Linux e` inoltre vulnerabile a un particolare attacco: da un computer che usi
Windows 95 o NT si puo` usare questo comando:

   ping -l 65510 sito.com

dove sito.com e` un sito che usa Linux (versioni fino alla 2.0.20 esclusa).
La macchina si blocchera` e si riavviera` automaticamente.
Potete sperimentare anche altri valori tra 65508 e 65527 in luogo di 65510.

Le vecchie versioni di Gopher hanno un serio bug: creando un file .links su
un server gopher pubblico, contenente queste linee di testo:

Type=8
Name=Sceglimi
Host=;/bin/sh
Port=
Path=

potete collegarvi a Gopher, entrare nella directory dove avete piazzato il
file .links e scegliere la voce "Sceglimi".  Il comando messo dopo "Host=;"
verra` eseguito (nel nostro caso, una shell com accesso root).

Dal prossimo volume inizieremo con tecniche raffinate che vi consentiranno
di fare cose impensabili.  Siate certi di aver prima imparato quelle sin qui
descritte, o non potrete apprendere quelle piu` complesse.


+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-

                           Copyright (C) 1997 by

                             :: LoRD SHiNVA ::

                      -Digital Alliance Confederation-

                http://members.tripod.com/~helghast/dac.htm

+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-