Semplici ma obsoleti esempi di hacking

Questo documento fa parte di un lavoro di ricerca che ho preparato assieme ai miei colleghi Raffaele Spangaro e Walter Vendraminetto per il corso di Reti di Calcolatori. Il contenuto è tratto principalmente da una pagina trovata casualmente sul Web.

I sistemi Unix, data la loro grande diffusione come server di rete, sono sempre stati oggetto di studio, soprattutto da parte di chi voleva trovare una breccia, un baco che gli permettesse di guadagnare dei privilegi maggiori, magari quelli di super-user.

Qui di seguito si riportano solo pochi esempi degli innumerevoli attacchi che sono stati sferrati ai sistemi Unix. Anche se sono semplici e, data la loro pericolosità, già corretti, possono dare almeno l'idea di come vengono attuati, dato che, spesso, se ne sente parlare senza sapere di preciso di cosa si tratti.

Finger

Sembra incredibile, ma praticamente tutti i sistemi Unix possono essere violati da chiunque senza bisogno di password né di particolari conoscenze tecniche. Con un semplice telnet, infatti, è possibile penetrare in un sistema qualsiasi; il problema è che, dall'altra parte, c'è un demone ad aspettarci e a rispondere alle nostre richieste. Se riuscissimo a procargli un crash, avremmo guadagnato un accesso, solitamente come root, visti i privilegi con cui sono lanciati questo tipo di applicazioni.

Il fingerd, ad esempio, deve girare con i permessi di super-user, in quanto ha la necessità di leggere file utente come .project e .profile. Alcune versioni, sensibili a particolari sequenze di caratteri, provocavano un segmentation fault se si richiedeva loro informazioni circa utenti come "///*S". A questo punto ci si era guadagnati un accesso come root ed il gioco era fatto.

Sendmail

Sendmail è stato una fonte inesauribile di attacchi da parte di hacker di ogni tipo, esperti o neofiti. Forse la motivazione è da ricercare nella sua larghissima diffusione, forse nella sua notevole (ed universalmente riconosciuta) complessità. Certo è che bachi di sicurezza come il seguente, di cui era affetta la versione 8.6.7, sono veramente disarmanti:

/usr/lib/sendmail -oE/etc/shadow bounce

Questo semplice comando permetteva a chiunque di leggere qualsiasi file di sistema, compresi i file delle password o anche quelle delle shadow password, come riportato nell'esempio. Veramente disarmante.

Altri bachi permettevano di leggere qualsiasi file binario del sistema lanciando sendmail con alcuni new line nella riga di comando, mentre altri fornivano la possibilità di creare un qualsiasi file (ad esempio l'.rhosts) con contenuto a piacere (ad esempio myhost.com).

LPR

Anche il comando lpr era soggetto ad attacchi dall'interno. Il programma, infatti, poteva essere utilizzato per sovrascrivere o creare (e quindi diventarne proprietari) di ogni file del sistema. lpr -s permetteva agli utenti di creare link simbolici nella directory di spool di lpd (tipicamente /var/spool/lpd). Dopo mille invocazioni di lpr, il comando riutilizzava il nome di file in tale directory e seguiva il link precedentemente installato. In questo modo era possibile accedere al file al quale il link puntava.


Lorenzo Cappelletti
Last modified: Mon May 24 15:59:28 CEST 1999