pc-facile.com
http://www.pc-facile.com/guide/metodi_esecuzione_virus_spyware_malware/130.htm



Virus: hydra 20 Dicembre 04 @ 00:01 am

2. Esecuzione all'Avvio

Le metodologie di "auto" esecuzione sono molteplici, alcune semplici altre brutali e complesse.
Ecco come e dove si possono trovare eseguibili ( o collegamenti ad essi ) che verranno caricati senza chiedere nessun tipo di autorizzazione da parte dell'utente :

C:\WINDOWS\Menu Avvio\Programmi\Esecuzione automatica
C:\WINDOWS\All Users\Menu Avvio\Programmi\Esecuzione automatica


Entrambe le cartelle possono contenere sia eseguibili che collegamenti. La prima contiene files che vengono caricati qualora l'utente X si logghi, mentre la seconda ne contiene altri che vengono eseguiti in seguito al login di qualsiasi utente in ambiente windows.
Per eliminare l'eventuale eseguibile nocivo, è semplicemente necessario rimuoverlo o cancellarlo. Ricordo inoltre che l'eseguibile nocivo può semplicemente esser unito ad uno lecito ( come spiegherò più avanti ), pertanto è possibile che un file da voi ritenuto innocuo, in realtà, non lo sia.

All'interno del file :

C:\WINDOWS\WIN.INI ( che appartiene alla famiglia dei documenti di inizializzazione editabili con il notepad come fossero normali files di testo txt ) qualsiasi scrittura del tipo :

[windows]
load=patch.exe
run=patch.exe

permetterà l'esecuzione del file patch.exe.
Normalmente sotto [windows] ( la cui presenza è invece giustificata ) non sono presenti comandi del tipo "load" o "run", diffidare quindi degli eseguibili, se presenti, dopo questi comandi.
Per modificare il file ini ed eliminare eventuali richiami infetti è necessario cancellarne il nome ( se si è aggiunto il comando load o run manualmente per altri fini ) o l'intera stringa ( load/run=patch.exe se non si è creato manualmente il comando per altri eseguibili utili ); una volta cancellato il codice nocivo è ora di salvare il tutto come si trattasse di un normale txt mantenendo però l'estensione ini ( in modo da riottenere un file win.ini aggiornato ).
E' sempre una buona abitudine, prima di modificare files o chiavi di registro, farne una copia di backup.

Un discorso analogo lo si può fare per il file C:\WINDOWS\SYSTEM.INI dove una scrittura del tipo :

[boot]
Shell=Explorer.exe patch.exe


permetterà l'esecuzione di patch.exe. Diffidare quindi di qualsiasi eseguibile che segua ( separato da uno spazio ) Explorer.exe.

Diversamente, all'interno del file C:\WINDOWS\WININIT.INI è possibile trovare un file che verrà eseguito una ed una sola volta per poi esser cancellato. Viene utilizzato da molti programmi, prevalentemente durante la fase di installazione ( dove viene richiesto il riavvio del pc ).
Editandolo è possibile trovare una situazione del genere :

[Rename]
NUL=C:\Temp\patch.exe


in questo modo il file verrà eseguito e poi cancellato ( causa NUL ).

Modificando i files :
C:\WINDOWS\WINSTART.BAT e C:\AUTOEXEC.BAT è possibile caricare arbitrariamente eseguibili. Utilizzando l'autoexec.bat il file verrà eseguito in ambiente DOS prim'ancora che il sistema operativo venga caricato ( questo risulta particolarmente limitante ma facilmente dannoso,come nel caso di alcuni vecchi virus ).
E' anche possibile sfruttare una falla del file SYSTEM.INI ( e del sistema in generale ) che, non specificando il percorso del file EXPLORER.EXE da eseguire, permette l'esecuzione del file patch.exe rinominato in explorer.exe e posizionato in C:\ .
Infatti il sistema andrà a cercare l' explorer.exe e lo troverà prima in C:\ che in C:\WINDOWS dove normalmente risiede. Se si verifica questa eventualità, il file patch.exe rinominato, sarà "stato precedentemente fuso" ( tramite appositi programmi ) con il file explorer.exe presente in C:\WINDOWS ( o lo richiamerà al suo interno ) per permettere un apparente normale funzionamento e caricamento del sistema.

Andiamo ora ad analizzare le chiavi del registro di sistema
( raggiungibile tramite il file C:\WINDOWS\REGEDIT.EXE ) responsabili dell'esecuzione di files all'avvio del s.o.

Innanzitutto le chiavi :

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]


possono contenere valori del genere "Nome"="c:\cartella\patch.exe" e sono responsabili dell'esecuzione di patch.exe .
Le chiavi CURRENT_USER si riferiscono all'utente X , mentre le LOCAL_MACHINE si riferiscono a qualsiasi utente connesso.
Le chiavi terminanti con RUN, a differenza di quelle terminanti con RUNSERVICES, eseguono i files e ne rendono disponibile il nome ( sotto forma di processo attivo ) all'interno della finestrella di controllo che appare premendo CTRL+ALT+CANC. Sia il RUNONCE che il RUNSERVICESONCE eseguono la patch una sola volta. ( Con un comportamento analogo al wininit.ini )

Situazione simile ma comando diverso si nota nella stringa :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000x]

dov'è possibile trovare una scrittura del genere :

"Esegui"="||patch.exe"


il comando è del formato : "DllFileName|FunctionName|CommandLineArguements" oppure "||command parameters"

Altra metodologia, piuttosto brutale, consiste nella modifica di una stringa relativa all'esecuzione delle famiglie di files EXE, BAT, COM, PIF e HTA. Modificando il valore <"%1" %*>, ( default per ogni tipo di eseguibile) aggiungendo il nome dell' eseguibile infetto patch.exe "%1 %*" quest'ultimo verrà eseguito ogni volta che un file con estensione exe, bat, com, pif o hta ( a seconda della stringa modificata ) venga caricato.

Di conseguenza le stringhe interessate sono :

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
[HKEY_CLASSES_ROOT\comfile\shell\open\command]
[HKEY_CLASSES_ROOT\batfile\shell\open\command]
[HKEY_CLASSES_ROOT\htafile\shell\open\command]
[HKEY_CLASSES_ROOT\piffile\shell\open\command]

[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\command]
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command]


Per riparare le stringhe è necessario rimuovere il nome dell'eseguibile e ripristinare il valore iniziale (<"%1" %*>).
Una volta fatto bisogna procedere alla creazione di un file di testo con all'interno quanto segue ( dove TIPOfile può essere exefile, comfile ecc... ) :

REGEDIT4

[HKEY_CLASSES_ROOT\TIPOfile\shell\open\command] @="\"%1\" %*"


oppure

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\CLASSES\TIPOfile\shell\open\command] @="\"%1\" %*"


e rinominare il file creato con l'estensione .reg . Ora, salvato in c:\ e riavviato il pc in modalità DOS è semplicemente necessario digitare REGEDIT nomecheavetedato.reg per riparare il danno.

E' anche possibile lanciare un eseguibile sfruttando una chiave del registro riservata ai componenti Active-X. Infatti utilizzando una subpath del tipo :

StubPath=C:\cartella\patch.exe in una stringa dedicata quale :

HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\KeyName

l'eseguibile verrà lanciato ancor prima che si carichino quelli presenti nelle "chiavi run" ( particolare attenzione poiché è così possibile precedere gli antivirus ).





© 2000-2024 pc-facile.com