Guide: passo per passo
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 ).
Indice 1. Introduzione 2. Esecuzione all'Avvio 3. Esecuzione ad evento prestabilito 4. Strumenti di controllo |
Guide correlate a "": |