Detects

Detections #

Detections varie per Windows.

Cartelle particolari #

Ci sono cartelle da controllare molto utili:

  • C:\$Recycle.bin;

    É la cartella del cestino. Si usa per controllare l’ultima eliminazione e svuotamento del cestino. Per visualizzare tali informazioni è necessario fare la seguente azione:

    Opzioni > Visualizzazione > Nascondi file protetti di sistema > Off
    
  • shell:recent;

    É la cartella degli oggetti recenti di Windows, una funzione che permette di visualizzare alcuni file con cui Windows e l’utente ha avuto a che fare. A volte si possono trovare .dll, magari injection clients.

  • %temp%;

    É la cartella dei file temporanei di Windows e si utilizza principalmente per trovare il file .dll che rilasciano gli autoclicker scritti in Java, che utilizzano la libreria JNativeHook.

  • prefetch.

    Apre la cartella che Windows utilizza per immagazzinare i file prefetch .pf.

Macro #

Programmi come XMouse e altri simili sono bannabili (Timer resolution non rientra in questa categoria). I software proprietari dei vari mouse salvano le loro impostazioni delle macro nelle seguenti cartelle:

  • Logitech;

    %localappdata%\Logitech\Logitech Gaming Software\settings
    %localappdata%\LGHUB\settings
    
  • Red Dragon;

    %homepath%\Documents\M--- Gaming Mouse\MacroDB
    

    Nota bene: I trattini indicano la possibilità di numeri diversi in base al modello del mouse

  • Glorius;

    %appdata%\BY-COMBO2
    
  • Roccat;

    %appdata%\ROCCAT\SWARM\macro\custom_macro_list
    
  • Steel Series;

    %localappdata%\steelseriesengine-3-client\Local Storage\LevelDB
    
  • Razer.

    C:\ProgramData\Razer\synapse\Accounts
    %localappdata%\Razer\Synapse3\Log
    

Debounce timer #

Il debounce timer è una funzionalità dei mouse che è stata implementata, originariamente, per prevenire un difetto di con i tasti.

Il tasto è essenzialmente una molla, e come potete immaginare, sappiamo che le molle rimbalzano. Se il mouse viene cliccato in un modo particolare, questa molla rimbalza così vigorosamente che il mouse registra più click. Questo problema è noto da tempo come double click.

Minecraft è uno dei pochi giochi, se non l’unico, in cui la velocità di click fa la differenza tra vincere o perdere, perciò i giocatori cercano modi per cliccare sempre più velocemente. Un giorno dei giocatori con mouse difettosi, non disposti di funzionalità per prevenire il double click come il debounce timer, hanno iniziato a cliccare in modi particolari, e hanno scoperto che il mouse registrava più click di quante volte il tasto veniva realmente premuto. Questi metodi fanno parte della categoria che oggi è conosciuta come mouse abuse.

Il debounce timer, non è altro che un timer, che parte quando il mouse registra un click, e dura in genere 10 o 16 milliseconi. Durante tutta la durata del timer, il mouse blocca ogni altro input registrato.

Alcuni mouse hanno la possibilità di modificare il debounce timer. Solo con i metodi di click mouse abuse, ovvero:

  • Butterfly click;
  • Drag click.

i giocatori possono abusare di questo difetto del mouse. Il debounce timer è una funzionalità che ogni mouse implementa in modo differente e proprietario, perciò non esiste un programma generico per modificare tale funzionalità.

  • Glorius;

    I mouse Glorius hanno il debounce timer modificabile a livello software tramite uno slider, questo implica che la modifica di BYCOMBO-2 come abbiamo visto prima per le macro è tutto quello necessario per trovare qualsiasi modifica prima del controllo delle impostazioni.

  • Cooler Master;

    Stesso discorso per i mouse Glorius, i cooler master implementano il debounce timer modificabile tramite slider, e tutto questo si verifica nello stesso modo delle macro.

  • Roccat;

    I mouse Roccat implementano il debounce timer con uno switch (zero debounce time on/off). Il problema dei mouse Roccat è che sono tutti, dal primo all’ultimo, difettosi e indipendentemente dalla funzionalità indicata, hanno un debounce time base inferiore a 10 millisecondi.

  • Bloody;

    I mouse Bloody implementano il debounce timer modificabile tramite uno slider, ma hanno lo stesso problema dei Roccat, sono tutti difettosi, e anche se lo slider è a 16 millisecondi, la durata del debounce timer reale è sotto i 10 millisecondi.

  • RedDragon;

    I mouse RedDragon implementano il debounce timer su alcuni mouse, tramite slider, e il metodo di controllo è il medesimo di quello delle macro.

  • MadCatz;

    I mouse MadCatz, per quanto rari, hanno questa peculiarità di non avere direttamente nessun tipo di debounce timer e/o prevenzione per il double click.

  • Mars Gaming.

    I mouse della Mars Gaming implementano il debounce timer tramite slider, e il metodo di controllo è uguale a quello per le macro.

System Informer #

Parleremo esclusivamente di System Informer, poichè il suo predecessore, Process Hacker, è ormai deprecato.

Fix permessi #

A volte System Informer non permette l’accesso a memorie di processi di basso livello (esempio: csrss.exe). Per rendere nuovamente accessibile quella regione di memoria, dobbiamo andare nelle opzioni di System Informer ed abilitare la Kernel-Driver mode, che da pieno accesso alle risorse del computer. Questo consente anche a computer con versioni moderne di Windows di accedere ala memoria di processi bloccati/critici.

explorer.exe #

Il primo processo che si va a controllare, essendo quello che ha il “rate di volatibilità” più alto:

  • Parola (case insensitive) > pcaclient;

    Una lista degli ultimi 10 programmi eseguiti. Questo è un metodo vecchio e deprecato. Nonostante la sua inefficacia contro i cheat moderni, rimane un ottimo artefatto iniziare un controllo.

  • Parola (case insensitive) > file:///;

    La lista di file che sono stati visualizzati dall’esplora risorse di Windows.

  • Regex (case insensitive) > ^[A-Z]:\\.+:.

    Un vecchio modo per detectare un metodo bypass (Wmic, nel prossimo capitolo). Questa è una stringa deprecata e se ne sconsiglia l’utilizzo.

csrss.exe #

  • Regex (case insensitive) > ^[A-Z]:\\.+.exe$;

    Questo filtro trova ogni singolo path degli eseguibili .exe che sono stati avviati nel sistema.

  • Regex (case insensitive) > ^[A-Z]:\\.+.dll$;

    Questo filtro trova ogni singolo path degli eseguibili .dll che sono stati avviati nel sistema.

  • Regex (case insensitive) > ^[A-Z]:\\((?!exe|dll).)*$.

    Questo filtro trova ogni singolo percorso di eseguibili che hanno un estensione diversa da .exe, .dll che sono stati avviati. Se appare qualcosa, è un ban quasi sicuro.

svchost.exe (-s dps) #

  • Regex (case insensitive) > ^!!(?!svchost|dwm|csrss|explorer|taskhostw|ctfmon|rundll32|conhost|lsass|usoclient|sihost|dashost|nissrv|smss|sc|servicehost|settingsynchost|consent|dllhost|sppsvc|wermgr).+.exe;

    Questa regex di dimensioni comicamente grandi, trova ogni file .exe eseguito, di cui il dps tiene traccia, escludendo dalla lista i nomi dei processi che si trovano tra le parentesi.

  • Regex (case insensitive) > ^!![A-Z]+(.*)[A-Z]:;

    Questa regex trova tracce dell’esecuzione di un metodo bypass (Wmic, nel prossimo capitolo). Come metodo è deprecato.

  • Regex (case insensitive) > ^!![A-Z](.)((?!Exe|dll).)*$.

    Questa regex trova ogni file che è stato eseguito, ma non ha l’estensione di un eseguibile (Estensioni spoofate, nel prossimo capitolo).

fsutil #

Il modo più comune per interagire con il journal $USNJrnl:$J è senza ombra di dubbio tramite fsutil, strumento fornito da Windows per analizzare i dischi con il file system NTFS. Molto spesso i comandi per analizzare il journal che troviamo online sono suddivisi in questo modo:

  1. fsutil usn readjournal c: csv;

    La prima parte traduce i dati contenuti in modo compresso all’interno del file $USNJrnl:$J, in un contenuto leggibile, per l’esattezza gli specifichiamo di mettere in output i dati, sotto forma di un file .csv.

  2. |;

    Il simbolo della barretta verticale è detto pipe. Prende l’output del comando alla sua sinistra e lo reindirizza nell’input del comando alla destra di esso.

  3. findstr /...;

    Con la terza parte si possono filtrare i dati dell’output .csv, con l’utility findstr, fornita anche essa da Windows. Gli argomenti principalmente usati nel findstr sono:

    • /i: Se il filtro che specifichiamo deve essere case sensitive;
    • /R: Se il filtro che specifichiamo è una regex;
    • /C: Stringa effettiva per cui noi filtriamo (il filtro).
  4. >.

    Questa parte reindirizza l’output del comando di sinistra in un file specificato alla destra dell’operatore. Per avere uno spazio di lavoro più ordinato, è molto comodo.

Comandi noti #

  • Il seguente comando, elenca ogni file di tipo eseguibile e le loro azioni, quindi eliminazione, spostamento o modifica:
fsutil usn readjournal c: csv | findstr /i /C:"0x80000200" /i /C:"0x00001000" /i /C:"0x00002000" | findstr /i /C:".exe" /i /C:".dll" /i /C:".pf" /i /C:".com" /i /C:".cmd" /i /C:".jar" /i /C:".pif" /i /C:".bat" /i /C:"?"
  • Filtra risultati per un metodo bypass (Cacls), cercando particolari modifiche ai permessi della cartella prefetch:
fsutil usn readjournal c: csv | findstr /i /C:"0x00000800" /i /C:"0x80000800" | findstr /i /C:"Prefetch"
  • Trova tracce di un metodo bypass (Wmic), cercando delle modifiche a flussi di dati alternativi dei files:
fsutil usn readjournal c: csv | findstr /i /C:"0x--------" /i /C:"0x--------"

Powershell #

La history dei comandi dati al cmd non è salvata da nessuna parte, ma non si può dire lo stesso di Powershell. Per trovare tutti i comandi eseguiti da powershell, basta fare il seguente comando su di essa:

cat (get-PSReadlineoption).Historysavepath

Command prompt #

Alcuni strumenti per riga di comando sono molto utili per avere informazioni fondamentali. Ad inizio controllo, per esempio, bisognerebbe sempre fare un veloce:

  • sc query dps
  • sc query sysmain

Il comando sc query, controlla lo stato del servizio, e indica se sono stati riavviati o arrestati. Se uno di questi risulta arrestato o riavviato, si può facilmente bannare.

L’utilizzo del comando dir è fondamentale per scovare metodi bypass con i permessi dei file. Per trovare la maggior parte dei file nascosti, con pochissime eccezioni:

  • dir /ar
  • dir /ah

Regedit #

I registri di Windows sono pieni di informazioni importanti, quindi ecco alcune chiavi di registro e raccolte di chiavi da analizzare durante un controllo

  1. Questa chiave di registro indica se il prefetch è attivo o meno;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
  1. Questa cartella ha un registro di eseguibili letti dagli strumenti di Windows per la compatibilità (non indica l’esecuzione, solo la presenza sul disco);
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
  1. Una delle detect per il metodo bypass Wmic (Deprecato);
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings\
  1. Indica gli ultimi 20 file aperti e salvati;
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU\
  1. Tutte le estensioni dei file che sono presenti sul computer;
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
  1. Tutti gli archivi che WinRAR ha aperto / utilizzato.
HKEY_CURRENT_USER\SOFTWARE\WinRAR\ArcHistory

Event viewer #

Nel visualizzatore di eventi possiamo trovare tanti eventi che indicano azioni più o meno malevole, includendo informazioni per un possibile ban:

  • Registri windows > Sicurezza > 4616;

    Indica un cambio di orario

  • Registri windows > Applicazione > 3079;

    Eliminazione del journal

  • Registro windows > Sicurezza > 4798;

    Cambio dell’eredità dell’eventvwr

  • Registro windows > Sicurezza > 1102.

    Eliminazione di eventi dall’eventvwr