W a v e r ' s . H e a v y . I n d u s t r i e s . 2 0 0 0


v1.5


0. Legal Stuff

Non mi ritengo responsabile dell'uso che sarà fatto di questo materiale. Il codice sorgente, come il binario sono stati distribuiti con un unico scopo e cioè quello didattico-informativo. L'unica funzione di DarkFTP è quella di descrivere il funzionamento di una backdoor basata sia su un client IRC che su un server FTP. Ogni utilizzo diverso da quello didattico non è contemplato e le conseguenze derivanti da esso non devono in alcun modo essere ricollegate all'autore di questa applicazione. Pertanto l'uso di questo materiale per uno scopo diverso da quello didattico solleva l'autore da ogni responsabilità e implica che si accetti questa condizione.

1. Cosa è DarkFTP
DarkFTP è un trojan (o meglio, è la sua parte invisibile) che si installa nella macchina sulla quale viene lanciato e vi attiva un servizio di ftp serving tramite il quale sono possibili operazioni di lettura e scrittura su qualsiasi file o directory del filesystem della macchina; contemporaneamente viene attivato un piccolo client IRC che si collega ad un IRC server, entra in un canale e vi rimane fino a quando viene a mancare la connessione o la macchina viene riavviata, un po nello stile di un bot. Mediante una sorta di chat col Dark, attraverso IRC, è possibile impartire una serie di comandi che vengono eseguiti sulla macchina ospite e che sono atti alla gestione completa del trojan.

2. Principali funzionalità
- Accesso completo al filesystem della macchina ospite (con WinNT limitato ai diritti dell'utente loggato in quel momento)
- Controllo remoto tramite IRC
- Possibilità di esecuzione (locale) da remoto di comandi o applicazioni
- Capacità di bypassare il firewall WRQ AtGuard agendo in locale sulle chiavi del registro
- Completa configurabilità
- Tool di configurazione incluso

3. Configurazione
La configurazione può essere eseguita sia a mano che tramite il tool di configurazione. A differenza delle versioni precedenti in cui era possibile editare facilmente l'eseguibile attraverso un hexeditor, in questa versione è un po' più complicato. Tuttavia chi non resiste al fascino dell'esadecimale può trovare una stringa di configurazione all'offset 0x00058090 . Tale stringa contiene tutti i dati di configurazione di cui il Dark ha bisogno. Si tratta di una stringa di 105 bytes suddivisa in campi di lunghezza fissa. Se si opera direttamente su questa stringa è necessario conoscere alcune cose; prima di tutto la sua suddivisione in campi:

Campo
Nome
Lunghezza
Descrizione
1.
IRC Server
30 bytes
Nome (o indirizzo ip) del server da utilizzare per la connessione ad IRC.
2.
IRC Server Port
5 bytes
Numero della porta per il server IRC
3.
IRC Channel
30 bytes
Nome del canale in cui entrare
4.
IRC Enabled
1 bytes
Switch per attivare o disattivare la funzione IRC
5.
FTP Port
5 bytes
Numero della porta sulla quale sarà attivo il servizio FTP
6.
FTP Max Users
2 bytes
Numero di connessioni contemporanee ammesse
7.
FTP User
16 bytes
Username per accedere al servizio FTP
8.
FTP Password
16 bytes
Password per accedere al servizio FTP

E' molto importante fare attenzione alla lunghezza dei campi in quanto se si oltrepassa la lunghezza di un campo il successivo risulta illeggibile o errato e può causare talvolta il crash dell'applicazione. Se vi è passata la voglia di usare l'hexeditor ma non volete ancora usare il tool potete creare manualmente la stringa che viene costruita dal tool e che deve essere "appesa" all'exe finale. Si tratta in pratica di scrivere su una unica riga la configurazione riempendo con degli spazi i byte che sono superflui facendo in modo che la lunghezza finale di ogni singolo campo sia sempre fissa. Tale stringa deve cominciare con le lettere CFG e deve essere lunga 107 bytes (3+105). Qui vi è una stinga valida. Una volta costruita è sufficiente appenderla alla fine dell'eseguibile tramite un semplice COPY /B exenonconfigurato.exe + cfg.txt execonfigurato.exe
Tramite IRC è possibile agire sulla configurazione in ogni suo parametro. Le modifiche saranno salvate nel registro di Windows e riutilizzate ogni volta che DarkFTP si avvierà. Se anche questa strada vi sembra complicata rimane solo il tool il cui utilizzo è intuitivo e perciò non viene trattato. :)

4. Comandi IRC
Il set di comandi si è molto esteso rispetto alle versioni precedenti. La modalità di utilizzo è comunque la solita; si possono inviare comandi al Dark attraverso una semplice query (non DCC) facendo precedere ogni comando dalla stringa USER:PASSWORD. Facendo un esempio supponiamo chel'username che ho scelto nella configurazione sia "linux" (senza apici), la password sia "rulez" e che volglia inviare il comando "ABOUTYOU" ad un DarkFTP. In query scriverò:

linux:rulez aboutyou

Se la sintassi del comando è corretta e sia l'username che la password coincidono con quelle della configurazione ottengo una risposta dal Dark che mi informa sul suo stato attuale. Nel caso in cui il comando non sia corretto ottengo un messaggio di errore, mentre nel caso in cui abbia sbagliato user o password, ottengo una risposta un po' più "umana" che mi consiglia di levarmi dai piedi... :)
Per quanto riguarda l'user è importante ricordare che se si tratta di "anonymous" come è di default non è necessario inviare la stringa USER:PASS bensì è sufficiente il comando e il suo eventuale parametro. Detto questo vediamo la lista dei comandi:

COMANDO
DESCRIZIONE

CHUP newusr:newpwd

Cambia l'username e la password con quelli specificati. Vale la stessa regola precedente ovvero si deve inviare l'username e la password nel formato USER:PASS. Sia l'user che la password non possono essere più lunghi di 16 caratteri ciascuno.

CHFTPPORT port

Cambia la porta dell'FTP con quella specificata. Le connessioni attive al momento non vengono reimpostate e possono proseguire.

CHUSEIRC [Y/N]

Attiva o disattiva la funzione IRC. Il parametro deve essere una tra le lettere Y o N che rispettivamente attivano o disattivano la funzione. Inviando un CHUSEIRC N non si perde comunicazione col Dark all'istante ma al suo riavvio.
CHCHAN chan
Cambia il canale. Anche qui è richiesto un riavvio.
CHIRCSRV srv
Cambia il nome o l'ip del server IRC da usare. Valida solo al prossimo collegamento.
CHIRCPORT port
Cambia la porta per il server IRC.
CHMAXUSER maxusr
Cambia il numero di connessioni contemporanee ammessse. Non richiede alcun riavvio.
DESTROY
Distrugge l'intero trojan. Viene rimossa la chiave che lo attiva all'avvio di Windows e viene terminato.
SHUTDOWN
Termina il trojan che però ripartira al riavvio del sistema.
RESTART
Riavvia il Dark implementando il comando CLOSEALL.
CLOSEALL
Disconnette tutte le connessioni FTP attive al momento.
FTPRESTART
Riavvia il server FTP.
DRIVES
Elenca i drives collegati alla macchina fornendo il nome del volume.
GEOMETRY drv
Fornisce la geometria del drive specificato. E' necessario specificare solo la lettera dell'unità.
ABOUTYOU
Invia alcune informazioni utili sullo stato del server e sulla versione.
VIEWCFG
Mostra la configurazione corrente.
SWAPEXE path
Scambia le applicazioni. Viene usato per fare aggiornamenti; in pratica si carica attraverso l'FTP una nuova versione del Dark in una directory dell'host e poi si lancia questo comando che provvede a terminare il Dark corrente ed avviare quello appena caricato. E' necessario specificare il percorso completo del file da lanciare. Può essere usato anche con applicazioni diverse dal Dark.
EXEC path
Lancia l'applicazione specificata nel path.
HELPME
Mostra la lista dei comandi disponibili.



5. Comprimere l'exe
E' possibile comprimere l'exe usando un compressore per eseguibili quale ad esempio WWPack 32 ricordando però che la configurazione "appesa" va fatta solamente *DOPO* aver compresso il file. Infatti se si comprime il file già configurato il compressore comprimerà anche la stringa alla fine del file rendendola illeggibile per il Dark. Se invece si modifica direttamente l'exe allora non ci sono problemi. Bisogna ricordare però che se sarà presente una stringa di configurazione alla fine del file, la stringa interna sarà ignorata.

6. Sorgenti
I sorgenti presenti nel pacchetto ovviamente sono completamente free e sono di pubblico dominio. Potete farci quello che vi pare, dal copiaincolla al SelezionaTutto-Taglia-Salva :)
Ho cercato di essere abbastanza chiaro nello scriverli e talvolta ho aggiunto anche dei commenti. Sono inclusi anche alcuni file non miei che però fanno parte del Dark. Si tratta delle librerie per il controllo del Winsock e per la gestione del server FTP. Sono stati scritti da François PIETTE che voglio ringraziare infinitamente per il suo ottimo lavoro. I componenti (per Delphi) sono disponibili gratuitamente all'indirizzo http://www.rtfm.be/fpiette.

7.Ringraziamenti
In conclusione vorrei ringraziare ancora una volta in particolar modo Francois Piette, StolenByte che ha fornito un valido supporto in formato HTML, la WRQ che ha prodotto @Guard, uno dei firewall più robusti per Windows 9x, la Borland per aver prodotto il Delphi 4 (a mio avviso una delle migliori suite di programmazione esistenti sul mercato), Opium, Made, Ginny, Vale, Sdra che si sono prestati a pesanti fasi di betatesting (talvolta senza neppure saperlo ;). Spero che questo materiale possa servire a chi ha voglia di imparare e spero possa nuocere a chi ha voglia di fare il lamer.

-= WaVeR of WHI =-
http://www.whi.cjb.net


Made with