Pensieri Folli

Lun, 02 Mar 2009 12:08:44 +0200

Come creare virus per linux in pochi semplici passi

Filed under: Hacking — Tag:, , , — pacatoegentile @ 12:08:44

Saro’ sincero, il titolo e’ inesatto ma e’ pensato per essere comprensibile ai piu’, e fare piu’ accessi 🙂

Piu’ che di virus infatti parleremo di “esecuzione di codice arbitrario” ossia di far eseguire un programma qualunque – non necessariamente un virus – ; altra cosa e’ che la vulnerabilita’ non e’ relativa a linux ma e’ dovuta ad una cattiva implementazione di Gnome e KDE – i cosidetti WM, Window Manager.

Questo articolo prende ispirazione da qui, tuttavia rispetto all’originale vi aggiunge qualcosa di suo, ma veniamo al succo del problema.

Gnome e Kde possono eseguire programmi mediante il doppio click su file chiamati “launcher”: questi file li trovate comunemente sul vostro desktop e sono fatti cosi:

[Desktop Entry]
Type=Application
Name=Qualchenome
Exec=qualcosa
Icon=path a qualche icona

Questi file hanno lo stesso formato sia sotto gnome che sotto kde e sono stati creati per permettere l’esecuzione dei programmi e l’associazione di nomi in locale e icone al programma o al file.
Il problema di questi file e’ che e’ possibile mascherarvi all’interno un file eseguibile.
Mi spiego meglio: i sistemi unix in generale per eseguire del codice verificano che un file abbia l’attributo di esecuzione ( la ‘x’ che vedete con un ls -la) .
Senza tale attributo il file non viene eseguito.

Quando scaricate dei programmi dal web o dalla mail, a meno che questi non siano in un qualche archivio tar o in uno zip, il programma non mantiene il permesso di esecuzione.
Questa semplice precauzione evita che le persone eseguano programmi senza esserne consapevoli: se hai scaricato qualcosa dal web e vuoi eseguirlo, devi prima fare chmod +x del file, ossia sei consapevole che vuoi eseguire del codice che potenzialmente potrebbe essere dannoso per il tuo computer.

Questo semplice meccanismo di consapevolezza di cio’ che stai mandando in esecuzione e’ stato il principale meccanismo di difesa da trojan virus e backdoor nei sistemi unix.
Ora, grazie ai geni di freedekstop.org kde e gnome, cracker et similia hanno la strada spianata per accedere a molti sistemi.

Se prima infatti dovevo sperare che l’utente scaricasse il mio programma, gli desse i permessi di esecuzione e lo eseguisse consapevolmente, ora semplicemente deve salvarlo sul proprio desktop e la curiosita’ e la distrazione faranno il resto:

come scrivere il virus in pochi semplici passi

– aprite il vostro editor preferito e scrivete all’interno il seguente codice

[Desktop Entry]
Type=Application
Name=Calendario.ppt
Exec=firefox http://www.youfail.org
Icon=/usr/share/icons/hicolor/48x48/apps/ooo-writer.png

– salvate il tutto con un nome generico tipo README
– spedite il file via email o mettetelo sul vostro sito civetta con un link attraente tipo: nuovo calendario veline 2009
– attendete i polli

Il client di posta e il browser proporranno di salvare il file (non ha estensione quindi non sanno come gestirlo) e c’e’ un’alta probabilita’ che questo file venga salvato sul desktop.

A questo punto il file README e’ scomparso e in sua vece trovate un’icona di openoffice e il nome Calendario.ppt.

Spinti da curiosita’ qualcuno ci fara’ sopra un doppio click, e qui e’ l’inghippo, anziche’ aprire openoffice, il programma eseguira’ firefox ridiretto su un sito oppure, con i dovuti accorgimenti, potete mettere qualsiasi esecuzione di programmi, anche un codice scritto da voi che scarica un trojan, un virus e lo esegue.
Questa parte e’ lasciata ai lettori come esercizio.

Il problema
Che cosa e’ successo esattamente ? Detta in parole semplici, il vostro desktop e’ soggetto al vecchio PIF attack, ossia il vostro file manager vi visualizza un file che in apparenza sembra un innocuo file di testo ma in realta’ all’interno contiene codice che viene eseguito, in barba ai permessi di esecuzione di un filesystem ext3.
La vulnerabilita’ e’ stata riportata nel lontano 2006 ma da allora non e’ stato fatto nulla per risolverla.

Condizioni
Le condizioni per cui questo si verifichi non sono banali: la persona deve scaricare il file e metterlo nel proprio desktop e poi farci doppio click sopra.
Deve altresi’ usare il desktop di Gnome/Kde al pari di un desktop windows, se usate terminali/shell o console per vedere ed eseguire i programmi questa vulnerabilita’ non vi affligge.

Soluzione
La soluzione e’ banale: impedire l’esecuzione di un launcher se questo non ha il permesso di esecuzione, in questo modo si evita che una persona non consapevole di quello che sta facendo, esegua codice arbitrario sul proprio computer.

Ringraziamenti
La vulnerabilita’ e’ stata gia’ segnalata e opportunamente ignorata gia’ nel 2006 da
Sam Watkins, vi prego di leggere tutto il thread e di notare il modo in cui il problema viene ignorato il tutto per paura di rendere incompatibili i .desktop file da una versione ad un’altra.

2 commenti

  1. Ottimo, con il tuo commento hai aiutato a capire i così detti bug degli o.s. sei stato molto utile, e penso che avvolte presi da concetti più difficili si tralasciano quelli più semplici.
    Grazie Brown1

    Commento di Brown1 — Dom, 05 Lug 2009 21:06:14 +0200 @ 21:06:14

  2. con che formato metto il file?? A ME NN FUNZIONA! =)

    Commento di alex — Mer, 12 Gen 2011 20:12:50 +0200 @ 20:12:50


RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Blog su WordPress.com.