Bypass

Metodi bypass #

Metodi bypass per Windows.

Partizioni #

Possiamo creare delle partizioni all’interno del disco, in modo da non flaggare in alcun modo il journal del disco di default, per poi successivamente eliminare le partizioni. Questo sarebbe un buon metodo, se non fosse che viene segnalata ogni creazione ed eliminazione di partizione sul database degli eventi:

  • Eliminazione o creazione di una partizione: Registri applicazione e servizi > Microsoft > Windows > VolumeSnapshot-Driver > 116 o 117.

Javaedit #

I javaedit, sono delle versioni di minecraft apparentemente vanilla, ma che sono state modificate apposta in modo da contenere, per esempio, una reach integrata, difficile da individuare in primo luogo, ma molto facile da controllare. Essendo i javaedit, molto vicini all’esperienza vanilla, essi provano in tutti i modi a fingersi una versione vanilla, ma una cosa le tradisce tutte: la SHA256. Per trovare un javaedit, bisogna confrontare la SHA256 del client utilizzato dal player, con la SHA256 della stessa identica versione che il player pretende di utilizzare. Esempio: player ha la forge-1.7.10-29174, noi dobbiamo confrontarlo con la SHA256 della forge-1.7.10-29174, non con la forge-1.7.10-27865 o la forge-1.8.9 o la vanilla 1.7.10 e così via, ci vuole la esatta versione, non una a random sennò si ottengono dei falsi positivi.

Java -jar #

Tramite il comando java -jar, noi possiamo avviare qualsiasi file che ha al suo interno, del java bytecode. Questo comando ci evita di utilizzare l’explorer, cosa molto utile ma sopratutto nel prefetch è meno evidente l’esecuzione di un .jar. Il jar può essere rinominato anche con un estensione spoofata, ma l’importante è che il contenuto sia del java bytecode. Non posso avviare un vero eseguibile con java -jar, ma un 7clicker.jar rinominato tagliani.exe lo possiamo avviare. Per trovarlo, basta controllare i file prefetch del java.exe, e nei vari argomenti, controllare per file sospetti.

Wmic #

Il wmic è un metodo bypass che consiste nel utilizzare due comandi e una funzionalità particolare di windows. I file possiedono diverse stream (flussi) di dati. Questi flussi possono essere creati a piacimento e possono contenere diverse informazioni. Ciò può essere un problema perché tramite questo metodo noi possiamo mettere cheat come perfino la vape all’interno di un file .txt, senza che esso sembri strano allo staffer o niente, tutti questo perché si trova all’interno di un altra stream di dati, che in primo luogo è invisibile allo staffer. Il metodo bypass sfrutta il comando type, per scrivere tutti i bytes di un file, nella stream alternativa di un altro, e il comando wmic per richiamare i bytes della stream alternativa. Questo metodo si può detectare in due modi principali:

  • Analizzare il disco per file con più stream alternative (AlternativeStreamView di NirSoft);

  • Controllare il journal, per la modifica anomala di data stream per alcuni file sospetti.

Tutti questi due metodi sono molto efficaci, diversi in esecuzione ma pursempre efficaci. Ci sono vari metodi deprecati che includono stringhe su process hacker e noi li sconsigliamo, ma intanto sapete che esistono.

Cacls #

Il cacls è una utility per modificare in modo particolare, i permessi delle cartelle e dei file. Questa utility può essere utilizzata per mettere in sola lettura la cartella C:\Windows\Prefetch e quindi far si che i file prefetch non si registrino, rimanendo però apparentemente indetectata come azione. Piccola premessa prima del detect, il cacls gioca con i permessi di sistema, rendendo il tutto estremamente pericoloso da effettuare, specialmente se non sapete cosa fate. State attenti se lo provate. Il metodo detect però non rompe il sistema operativo, e consiste nel controllare tramite il journal, la modifica di permessi di determinate cartelle, tutto alla fine relativamente semplice. Questa query al journal può servire per trovare eventuali modifiche ai permessi avvenuti alla cartella prefetch:

fsutil usn readjournal c: csv \ findstr /i /C:"0x00000800" /i /C:"0x80000800" \ findstr /i /C:"Prefetch" 

Replace #

Il replace è un metodo generico, che consiste nel rimpiazzare un file con un altro, in modo da confondere la persona che ti sta controllando. Esistono tante varianti di replace, ma il modo più facile per individuare ogni movimento sospetto è senza dubbio l’utilizzo del journal. Possiamo usare le informazioni del journal per vedere che movimenti ci sono stati dentro una cartella o relativi ad un singolo file. Alcune nozioni necessarie per il journal e il corretto utilizzo durante la ricerca di un replace, è l’utilizzo delle file hash e del comando fsutil file queryFileNameById C:\ 0x..., che indica la cartella nella quale un determinato file, flaggato nel journal, si trovava. Per maggiori informazioni, guarda la parte dei detect generici per capire meglio di cosa si sta parlando.

Spoof estensioni #

Un metodo per nascondere l’esistenza di un file eseguibile, cambiando la sua estensione da .exe a .tmp o altro, qualsiasi estensione. Poi utilizzando l’utility di windows Start-Process, si può eseguire tale file. Il detect è molto semplice, essendo che nella cartella prefetch appare un file che non ha l’estensione .exe, esempio: TEST-EXECUTABLE.TMP-366708B5.pf. Se si vede una roba del genere, verificare che tale file sia effettivamente un cheat e procedere con le giuste misure.

Cambi d’ora #

Molto spesso i cheater sono simpatici e si divertono a cambiare l’orario del computer, per trollare lo staffer. In questo caso ci sono diversi metodi per trovare il cambio di orario:

  • Utilizzo dell’eventvwr: Registri windows > Sicurezza > 4616;
  • Utilizzo del journal: <TODO>.

Process hollowing #

Il process hollowing è un metodo molto simpatico, dove un processo viene sfruttato per “nascondere” per così dire un altro processo, generalmente il caro e vecchio cheat. Ci sono tanti modi per sgamarlo ma fin ora quelli più generici e affidabili per detectarlo, riteniamo siano due:

  • vedere se il path dell’eseguibile indicato in un file prefetch è vuoto o meno. Se esso è vuoto c’è una buonissima possibilità che sia avvenuto un qualche tipo di process hollowing;

  • fare un live kernel dump con System Informer, e successivamente filtrare i risultati utilizzando un programma di Sysinternals strings64.exe e la seguente stringa:

strings64.exe -accepteula -n 4 %dump da process hacker% | findstr ".exe" > %file filtrato di output%.

Successivamente aprire quel file e cercare la presenza della seguente stringa: nul 2>&1 e voilà, in caso hai dei risultati, controlla tutti i file che appartengono alla stessa riga e vedi se sono dei cheat o meno (spesso li puoi trovare sotto estensioni come .dat o altro).

Registrazioni nascoste #

Molto spesso un bypasser poco divertente decide di utilizzare dei software custom o diversi dai soliti OBS Studio, NVIDIA Shadowplay etc. che siamo soliti a controllare. Per trovare qualsiasi tipo di registrazione nascosta che sta accadendo in background, ci basta vedere l’utilizzo del disco tramite process hacker. Il disk usage ci mostra tutti i file che stanno venendo letti / scritti in tempo reale, perciò ci basta individuare estensioni video comuni come .mkv, .mp4, .mov etc…

Cmd disabilitato #

A volte uno sporco cheater decide di farci uno scherzetto, disabilitando il prompt dei comandi. Non avere paura però, non ha disabilitato niente, semplicemente ha deciso di mettere una procedura che spegne il processo del cmd ogni volta che esso viene aperto. Per trovare questa simpatica tecnica, ci basta visitare la chiave di registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

Vedere cosa si può trovare nella chiave Autorun. Se c’è roba come taskkill, etc…, basta eliminare la chiave di registro con tasto destro.

DLL non firmate #

Una questione a lungo dibattuta negli SS è il metodo per trovare i cheat DLL. Dopo tanto tempo e molte discussioni, un metodo è stato trovato. Le DLL non sono altro che librerie dinamiche, e sono molto pericolose se usate per scopi maligni, come virus o altro. Da questa esigenza nel campo dei virus e malware, si è iniziato ad implementare un sistema di firme digitali, dove le DLL certificate e ufficiali vengono firmate digitalmente per contrassegnare il fatto che sono sane e non dei possibili virus o altro. Una DLL con mancata firma digitale è spesso simbolo di uno sviluppatore scarso che non si è preoccupato di firmare digitalmente la propria libreria. Perciò per trovare tutte le DLL sospette, conviene analizzare il processo csrss.exe e ottenere tutte le stringhe con i filtri C: e .dll.

Successivamente assicurarsi che i risultati siano in linea e tutti ordinati, per poi procedere e utilizzare il programma BinarySignatureStatus, per verificare la presenza di una firma digitale e tutti i suoi attributi. Dopo aver ottenuto tutti i risultati, ricercare le DLL dove la firma non è presente e controllarle manualmente.

Chiavette o dischi esterni #

Una tecnica molto comune tra i bypasser, almeno quelli scarsi e di una volta, era usare un cheat che si trovava in una chiavetta esterna. Questa cosa agiava il bypasser in due modi differenti:

  • Le chiavette sono generalmente formattate con FAT32, che non prevede alcuno sistema di journaling;

  • Si poteva estrarre la chiavetta e ripulirla senza fare risultare niente.

Per evitare di farsi bypassare in questo modo, bisogna controllare come prima cosa, la presenza in passato di una chiavetta o altro, facilmente consultabile con il programma USBDeview, di NirSoft. Se si individua una chiavetta recentemente scollegata prima del controllo, sarebbe da ban. Se invece la chiavetta è ancora collegata ed essa è formattata con FAT32, anche li i può bannare, mentre invece nel caso di una chiavetta formattata con NTFS, basta usare il tool fsutil per leggere il journal della chiavetta interessata, specificando la drive letter corretta.