Ultima modifica:
INTRODUZIONE
Greetz everybody,Mi presento, sono un ragazzo di 16 anni, non sono totalmente italiano ma lo parlo abbastanza bene. Sono un appassionato di informatica, Sono stato sempre nel vuoto, in poche parole tutti mi mettevano da parte, migliori amici, e semplici amici.
Nonostante ciò oggi, sono qui per rilasciare una sorprendente guida per te/voi. Con questa guida appunto da come si legge dal titolo vi aiuterò a creare il vostro crypter personale.
I am your senpai, and i will treat you real nice, my inforge-chan
UNA PICCOLA INTRODUZIONE SUI CRYPTER
- Cosa sono i Crypter?I Crypter sono dei programmi creati per "Obfuscare" (nascondere) Il codice sorgente da un file. Possono cryptare il codice binario di un file con un algoritmo di crittografia come DES, AES... Di questi algoritmi potete leggerne moltissimi altri su Wikipedia.
- Quali tipi di crypter esistono?
Ci sono due grandi differenze trai crypter: Quello standard, crypter che appunto cryptano la source di un file e un obfuscatore, il crypter che impareremo a fare, che crypta il file e aggiunge alcuni codici per decryptire il file appena si apre. Esistono due tipi di categorie di crypter:
Lo Scantime Crypter: Questo crypter crypta il file e aggiunge una parte per decifrarla sull'hard disk quando viene aperto. Viene chiamato "SCANTIME" perchè ha la capacità di bypassare gli AV quando sono attivati e fanno una scansione.
Il Runtime Crypter: Il Runtime crypter è come lo Scantime crypter ma può anche bypassare gli AV quando il programma è in funzione. Decodifica il programma in memoria (RAM) e lo crypta di nuovo quando è chiuso.
-Alcuni esempi:
Questi sono alcuni esempi di diversi crypter:
CarrotCrypter
RazorCrypt
Penso di non averti insegnato molto con tutto quel che ti ho detto, ma adesso impareremo molte altre cose su questi crypter, sopratutto: la teoria per crearne uno tuo!
COME FUNZIONA UN CRYPTER
Ogni crypter funziona in un modo diverso, noi andremo a vedere come funziona un crypter basilare:CarrotCrypter
RazorCrypt
Penso di non averti insegnato molto con tutto quel che ti ho detto, ma adesso impareremo molte altre cose su questi crypter, sopratutto: la teoria per crearne uno tuo!
COME FUNZIONA UN CRYPTER
Prima di tutto abbiamo bisogno di un vocabolario:
Crypter GUI: Questa è la interfaccia del crypter, con tutte le opzioni etc...
Stub: Questa è la parte generata dal crypter e cioè per decryptare il payload in esecuzione.
Firma del virus/virus signature: Una parte del codice binario di un file che è rilevato da un av.
Quindi, ora possiamo vedere la base di un crypter con questi disegni fatti da me:
Riassumendo il tutto: il payload viene cryptato dal crypter e compilato insieme allo stub, che decrypta la sorgente cryptata e lo esegue (runtime) o lo conserva (scantime).
Ok, adesso che conosci la teoria su come funziona un crypter ora puoi iniziare a gestire il tuo spazio di lavoro. È il nuovo capitolo di questa guida.
CREA IL TUO CRYPTER
Per creare il tuo crypter devi conoscere alcune cose: la prima funzionalità dei Crypter è quella di cryptare i file per bypassare gli AV quindi se il tuo stub viene rilevata dagli AV come una minaccia, il tuo crypter non sarà più un "crypter" perchè verrà rilevato. Per evitare ciò, devi sapere quanto segue:- Dovrai provare il tuo crypter spesso sulle pagine di scansione MultiAV per vedere se non è rilevabile, il problema è che alcune di queste scansioni i siti web distribuiscono il tuo file alle società degli AV. Quindi non provare i tuoi file cryptati su VirusTotal o qualsiasi cosa che trovi su google dopo una semplice ricerca, utilizzate:
- http://Pscan.xyz (probabilmente tutt'ora chiuso/inesistente)
- http://NoDistribute.com
-Il tuo AV può distribuire copie dei tuoi stub, perchè è sul tuo computer, se non sai che sarebbe inutile creare un crypter. Devi disattivare questa funzione sul tuo AV, (questo è per Avira)
Nei giorni d'oggi, lo scantime è inutile, perchè ogni AV può fermare il tuo payload quando è in esecuzione, quindi ti insegnerò a creare il tuo runtime crypter.
La funzione principale di un runtime stub è la funzione RunPE. Questa funzione sarà necessaria per ogni crypter di runtime create a meno che qualcuno (o te stesso) non abbia trovato un altro modo per bypassare gli AV in RAM.
RunPE è una funzione che crea un processo in memoria per il tuo programma o semplicemente injecta il tuo programma in un processo esistente. Nel nostro esempio sopra, la funzione RunPE è la funzione "Esegui", che legge il binario e lo esegue nella RAM.
Con queste informazioni potrai creare il tuo primo crypter, ti consiglio alcuni linguaggi di programmazione per creare il tuo crypter:
-AutoIT: È molto facile da imparare ed è abbastanza buono per creare un crypter perchè hai molti tutorial a disposizione, fonti e alcune ottime funzioni esistenti.
-vb.net: tutti i crypter esistenti sono scritti in vb.net (Non "tutti" ma la maggiorparte), è molto semplice da imparare.
-ASM: Se sai ASM puoi fare qualunque cosa
-C++/C/C#: Buono anche per la disponibilità
Non ti darò alcune fonti, basta cercare da solo se vuoi veramente, ma penso che dovresti pensare un po' per imparare. E sai, la sensazione migliore di tutto il mondo è terminare il tuo primo crypter funzionante, anche se è totalmente rilevabile dagli AV, perchè una volta che hai questa base, puoi aggiungere quello che vuoi per rendere il tuo crypter FUD, che approfondiremo adesso:
RENDERE IL TUO CRYPTER FUD
FUD: Sta per "Fully undetectable" tradotto "completamente irrilevabile" ciò significa che Nessun AV (0) può detectare/rilevare il tuo file e stub cryptato.Una volta terminato il tuo primo crypter base, sarà UD: non rilevabile, ma non FUD.
In ordine per rendere il tuo crypter FUD hai alcune opzioni da aggiungere al tuo crypter:
-Junk code
-Information and Icon changer
-File Bumper
-Random stub
-Private stub
-etc...
(li ho scritti direttamente in inglese perchè in italiano fa veramente schifo)
1)Junk code
Il Junk code è come il nome sta dicendo "codice no-sense" da aggiungere al tuo stub. Spesso, dovrai creare uno script che crea stringhe casuali, funzioni, variabili, chiamate ecc... Questo codice non cambiarà il funzionamento del tuo programma, ma aggiungerà alcuni codici in più da far analizzare dall'AV (codice normale, che non viene rilevato dall'AV e sembra legit)
Alcuni esempi:
Come puoi vedere ci sono variabili (l.1), funzioni etc... con nomi random. Sono senza senso.
2)Information and Icon changer
Questo può aiutarti a bypassare alcuni AV e altro: puoi creare versioni di file random, copyrights, descrizioni etc.... "L'icon changer" è molto importante, perchè alcuni AV rilevano le icone sospette, devono essere alte di risoluzione.
3)File bumper:
Il File bumper diciamo "bumpa"(non so quale altro termine utilizzare) il tuo file su un numero di Kb. A volte aiuta a bypassare gli AV.
4)Random Stub
Spesso, il modulo RunPE viene abusato perchè gli sviluppatori dei crypter copiano/incollano le sorgenti. Questo rende al modulo di essere rilevato dagli AV.
Ciò consente di sciegliere tra due opzioni:
- Lo Crei da solo (senza fare copia ed incolla) il tuo RunPE (consigliato)
- Modifichi il modulo RunPE che hai
Una volta che hai fatto questo, è possibile che alcuni AV possono ancora rilevare il tuo RunPE. Per evitare questo è necessario randomizzarli: creando nomi di variabili casuali, nomi di funzioni ecc... Cambiare tutto ciò che puoi modificare con una funzione che randomizza il modulo RunPE.
Esempio => “_RunBinary()” to “_Rgd55YHjst5rfsqM()”
5)Private stub
Questa è la migliore alternativa: Mai creare gli stessi stubs due volte, Sta a te scoprire come (ci sono molte opzioni)
Ciò consente di evitare il rilevamento del scantime, ma la rilevazione di runtime è un'altra cosa. Il crypter non sarebbe in grado di garantire il rilevamento di runtime se il file è un rat/virus con tutte le impostazioni possibili.
Ok, adesso che hai il tuo crypter, forse FUD o no, dovresti aggiungere alcune funzionalità.
FUNZIONALITÀ DEL CRYPTER
Adesso parlerò di alcune funzionalità che dovresti costruire dentro il tuo crypter per renderlo FUD, o almeno per cryptare i file molto meglio:USG: È la parte del crypter che genera stub random e privati.
Delay: Puoi aggiungere un delay dopo l'esecuzione del tuo script. Può aiutarti per bypassare il rilevamento del runtime dagli AV e da sandbox integrati
Anti memory scan: Un altro modo per bypassare i rilevamenti del runtime è appunto "l'anti memory scan", che nega l'accesso in cui il file è in esecuzione.
EOF: Per evitare il danneggiamento dei file, è necessario talvolta conservare la "End of file - Fine del file". Così aggiungilo!
Startup: Questa funzione aggiunge al tuo file tra i programmi di windows che si avvia non appena viene acceso il pc.
LeftToRight: Un semplice modo per creare un'altra estensione per il file .exe.
Binder: Funzione molo utile, ti permette di bindare (o legare) il tuo file cryptato con un'altro, come un jpg.
Custom msgBox: Ti lascio indovinare di cosa si tratta. È un semplice msgBox personalizzato all'esecuzione del file.
Antis: Anti sandboxie, wireshark etc...
Una volta che il tuo crypter è FUD hai vinto!
Se il tuo crypter non è più FUD, non ti preoccupare non ci vuole molto per reFUD il tuo crypter, basta cambiare alcune cose e provarle! Funzionerà.
Per evitare il rilevamento del crypter:
- Non scannarlo in scanner distribuiti.
- Non mettere i file su skype, mediafire, google drive, o dropbox.
Questa è la fine di questa fantastica guida! Spero che tu sia riuscito a capirci qualcosa e che sei riuscito a creare il tuo Crypter personale!
Se hai alcune domande o altre richieste, basta scrivermi su
inforge.net, Sono Anna-Senpai.
FINE
Se hai alcune domande o altre richieste, basta scrivermi su
inforge.net, Sono Anna-Senpai.
FINE