Discussione Divulgazione ransomware cryptor

Stato
Discussione chiusa ad ulteriori risposte.
Quando esegui un file eseguibile, che sia su Linux, Mac o Windows, il sistema operativo crea un processo che eseguirà le istruzioni contenute in quel file. Non ha importanza la cartella da cui viene lanciato, una volta caricato in memoria l'unico limite è quello dei privilegi, ma l'utente normale (medium integrity su windows) è sufficiente per leggere e scrivere sia sulla pendrive che in molte cartelle dell'hard disk, quindi è normale che dalla USB possa agire sul resto, non c'è alcun isolamento, semplicisticamente una volta che lo apri può fare le stesse cose che fai tu che sei davanti al pc.

In quel thread che hai linkato sono stato chiaro, TUTTI i ransomware usano un cipher simmetrico (AES, ChaCha20, Serpent...), e quasi tutti usano anche un cipher asimmetrico (RSA, ECDH...). Quelli simmetrici sono obbligatori perché è l'unico modo per cifrare GB di dati di un harddisk in tempi ragionevoli. Quelli asimmetrici di solito vengono usati solo per cifrare la chiave del cipher simmetrico.
 
Eccoti il PoC di un ransomware scritto in Python: https://github.com/jimmy-ly00/Ransomware-PoC
Ho scelto questo perché è quello che mi è piaciuto di più a fini di studio, ti da la possibilità di osservare il comportamento di un ransomware analizzando il PoC, e puoi manipolare le feature tramite terminal (--encrypt --decrypt)

L'autore ha voluto commentare il codice ma non c'era bisogno, perché quello che fa lo script è talmente evidente da risultare intuitivo. Usando il metodo AES genera un encryption key, poi prende tutti i file dell'env %USERPROFILE% e li cripta recursivamente con la chiave "+KbPeShVmYq3t6w9z$C&F)H@McQfTjWn", usando l'estensione ".wasted". Se sei su Linux, come env path usa %HOME%
Alla fine del processo di encryption l'encryption key viene eliminata dalla memoria per evitare il recovery con app di terze parti (solo il tool conosce la chiave per decriptare i file, simulando più fedelmente un ransomware vero e proprio)

Note legali: https://github.com/jimmy-ly00/Ransomware-PoC/blob/master/LEGAL

Per testarlo ti serve pycryptodome e Python 3.x
Il tizio per qualche ragione ha servito la pappa pronta precompilando il package in un .exe, ma sono stati inviati a VirusTotal a quanto pare :)
 
  • Mi piace
Reazioni: Eletronick
Eccoti il PoC di un ransomware scritto in Python: https://github.com/jimmy-ly00/Ransomware-PoC
Ho scelto questo perché è quello che mi è piaciuto di più a fini di studio, ti da la possibilità di osservare il comportamento di un ransomware analizzando il PoC, e puoi manipolare le feature tramite terminal (--encrypt --decrypt)

L'autore ha voluto commentare il codice ma non c'era bisogno, perché quello che fa lo script è talmente evidente da risultare intuitivo. Usando il metodo AES genera un encryption key, poi prende tutti i file dell'env %USERPROFILE% e li cripta recursivamente con la chiave "+KbPeShVmYq3t6w9z$C&F)H@McQfTjWn", usando l'estensione ".wasted". Se sei su Linux, come env path usa %HOME%
Alla fine del processo di encryption l'encryption key viene eliminata dalla memoria per evitare il recovery con app di terze parti (solo il tool conosce la chiave per decriptare i file, simulando più fedelmente un ransomware vero e proprio)

Note legali: https://github.com/jimmy-ly00/Ransomware-PoC/blob/master/LEGAL

Per testarlo ti serve pycryptodome e Python 3.x
Il tizio per qualche ragione ha servito la pappa pronta precompilando il package in un .exe, ma sono stati inviati a VirusTotal a quanto pare :)
Piccola precisazione, per le var in ambito linux si usa "$", $HOME
 
  • Mi piace
Reazioni: Eletronick

Eletronick

Utente Bronze
12 Giugno 2015
34
7
5
48
Wee buondì, ho visto questo video di divulgazione

Vedi: https://www.youtube.com/watch?v=PeR2_PfzSt0
. Però mi chiedo una cosa nell' ambito della divulgazione. Dato un qualsiasi malware cryptor/file cryptor su pendrive collegata ad un qualunque pc, come fa una volta eseguito a cryptare i file e le cartelle del pc? Considerate che la domanda comprende anche gli algoritmi utilizzati e vale sia per Unix like che per Windows.

https://www.inforge.net/forum/threads/ransomware-base64.599023/ Qui dice che usano cipher simmetrici mentre altrolve c'è scritto assimmetrici. Se è così mi piacerebbe che sia inclusi entrambi nella risposta.
 
Quando esegui un file eseguibile, che sia su Linux, Mac o Windows, il sistema operativo crea un processo che eseguirà le istruzioni contenute in quel file. Non ha importanza la cartella da cui viene lanciato, una volta caricato in memoria l'unico limite è quello dei privilegi, ma l'utente normale (medium integrity su windows) è sufficiente per leggere e scrivere sia sulla pendrive che in molte cartelle dell'hard disk, quindi è normale che dalla USB possa agire sul resto, non c'è alcun isolamento, semplicisticamente una volta che lo apri può fare le stesse cose che fai tu che sei davanti al pc.

Ho capito.

Vorrei sapere, a livello divulgativo, come avviene la realizzazione di un ransomware crypto {con o senza cipher asimmetrico} partendo dal foglio elettronico bianco per arrivare al flowchart o ad uno pseudo-codice. Nello specifico la parte relativa alla cryptazione dei file e le cartelle. Leggendo ora pare che ci siano algoritmi di crittografia che però non li conosco e non so cosa fanno.

In quel thread che hai linkato sono stato chiaro, TUTTI i ransomware usano un cipher simmetrico (AES, ChaCha20, Serpent...), e quasi tutti usano anche un cipher asimmetrico (RSA, ECDH...). Quelli simmetrici sono obbligatori perché è l'unico modo per cifrare GB di dati di un harddisk in tempi ragionevoli. Quelli asimmetrici di solito vengono usati solo per cifrare la chiave del cipher simmetrico.
Ora ho capito.
Anche con gli ssd c'è questo obbligo?
La chiave del cipher simmetrico è sempre quella privata?

Poi prima ho trovato questo articolo https://www.cybersecurity360.it/nuo...oluzione-del-ransomware-cose-e-come-funziona/ che menziona la crittografia emittente che serve per diminuire ancora più i tempi. Mi intessa anche questo dal punto di vista divulgativo però dall' altra a quanto sto leggendo il futuro non è incoraggiante.
 
Non serve un foglio elettronico a meno che non vuoi scrivere il malware in linguaggio VBA.
Per poter scrivere un ransomware per studio ti serve prima informarti meglio sulla crittografia e la logica che sta dietro. La chiave del cipher simmetrico di solito viene generata casualmente direttamente sul PC da cifrare, questa poi viene cifrata con la chiave pubblica del cipher asimmetrico e la versione in chiaro distrutta una volta finito il lavoro. In questo modo solo chi è in possesso della chiave privata asimmetrica può ottenere la chiave simmetrica per decifrare i file.

SSD, HDD e dispositivi USB usano tutti tecnologie diverse, ai fini della cifratura non cambia niente, il ransomware sovrascrive il contenuto del file con la versione cifrata. A livello hardware c'è differenza nella possibilità di recupero dei file ma questo è un topic avanzato e comunque non garantisce di recuperare tutto oltre a essere dispendioso.

La crittografia intermittente è solo una differenza di comportamento: invece di cifrare tutto il file ne cifra solo alcune parti, così il file è comunque inutilizzabile e si riducono i tempi, ma la differenza si nota solo quando i dati da cifrare sono tantissimi (appunto parecchi GB).
 
Non serve un foglio elettronico a meno che non vuoi scrivere il malware in linguaggio VBA.
Non mi ero ricordato che si riferisce a Excell e simili. Mi riferivo a qualsiasi editor di testo, etc...
Per poter scrivere un ransomware per studio ti serve prima informarti meglio sulla crittografia e la logica che sta dietro.
Intendi anche solo in flowchart?
La chiave del cipher simmetrico di solito viene generata casualmente direttamente sul PC da cifrare, questa poi viene cifrata con la chiave pubblica del cipher asimmetrico e la versione in chiaro distrutta una volta finito il lavoro. In questo modo solo chi è in possesso della chiave privata asimmetrica può ottenere la chiave simmetrica per decifrare i file.

SSD, HDD e dispositivi USB usano tutti tecnologie diverse, ai fini della cifratura non cambia niente, il ransomware sovrascrive il contenuto del file con la versione cifrata. A livello hardware c'è differenza nella possibilità di recupero dei file ma questo è un topic avanzato e comunque non garantisce di recuperare tutto oltre a essere dispendioso.

La crittografia intermittente è solo una differenza di comportamento: invece di cifrare tutto il file ne cifra solo alcune parti, così il file è comunque inutilizzabile e si riducono i tempi, ma la differenza si nota solo quando i dati da cifrare sono tantissimi (appunto parecchi GB).
Ho capito :)

@czonta96 Si possono provare le varie combinazioni per trovare la chiave privata assimmetrice? Anche se non voglio fare chiedo: che hardware serve.

Ho pensato ad un ipotesi che però tutto è da dimostrare. Non so è possibile associare almeno due suoni diversi in modo da poter riconoscere, tramite il mini-speaker del pc, se dalla rete al pc stia arrivando un ransomware.
Eccoti il PoC di un ransomware scritto in Python: https://github.com/jimmy-ly00/Ransomware-PoC
Ho scelto questo perché è quello che mi è piaciuto di più a fini di studio, ti da la possibilità di osservare il comportamento di un ransomware analizzando il PoC, e puoi manipolare le feature tramite terminal (--encrypt --decrypt)

Ti ringrazio :)
A parte qualcosina il resto è arabo per me. Per fortuna che non voglio scriverne uno.
Poi ho cercato cosa fosse questo Poc e non capisco perchè in questo caso è PoC. Cosa manca?


L'autore ha voluto commentare il codice ma non c'era bisogno, perché quello che fa lo script è talmente evidente da risultare intuitivo. Usando il metodo AES genera un encryption key, poi prende tutti i file dell'env %USERPROFILE% e li cripta recursivamente con la chiave "+KbPeShVmYq3t6w9z$C&F)H@McQfTjWn", usando l'estensione ".wasted". Se sei su Linux, come env path usa %HOME%
Alla fine del processo di encryption l'encryption key viene eliminata dalla memoria per evitare il recovery con app di terze parti (solo il tool conosce la chiave per decriptare i file, simulando più fedelmente un ransomware vero e proprio)
Con questa sintesi in generale ho capito a parte il significato di env path anche se ho cercato la definizione su

internet.
Per testarlo ti serve pycryptodome e Python 3.x
Il tizio per qualche ragione ha servito la pappa pronta precompilando il package in un .exe, ma sono stati inviati a VirusTotal a quanto pare :)
Se qualcun' altro lo volesse testare ci sono problemi al pc, poi?

Però poi ha scritto quelle note legali. Quindi è un po' un mistero.
 
Ho pensato ad un ipotesi che però tutto è da dimostrare. Non so è possibile associare almeno due suoni diversi in modo da poter riconoscere, tramite il mini-speaker del pc, se dalla rete al pc stia arrivando un ransomware.

Ahahahaha questa ancora la dovevo sentire, molto divertente e originale. Però i ransomware non arrivano tipo gli SMS su vecchio telefono che fa quel suono di inteferenza nelle casse vicine.

Andare per tentativi se la chiave privata asimmetrica è RSA a 2048 bit impiegherebbe milioni di anni ad un normale PC di fascia alta odierno (con gli algoritmi conosciuti oggi), in futuro quando i computer quantistici saranno abbastanza potenti e diffusi diventerà fattibile in un tempo molto più ragionevole (si stima in circa un giorno per RSA 2048), ma per allora ci sarà già un nuovo standard quantum-resistant (ci sono già ma ancora sono assai poco usati). Per fare bruteforce sulla chiave simmetrica (>= 256 bit) invece ci vorrebbero miliardi di anni, e la quantistica non ridurrebbe i tempi abbastanza da essere fattibile.

Le env path riguardano l'ambiente del processo: $HOME o %USERPROFILE% sono variabili d'ambiente che contengono il percorso alla cartella dell'utente corrente, il processo può leggere il contenuto di queste e altre variabili per trovare rapidamente i percorsi più comuni e specifici per quel contesto e configurazione.

Puoi creare un flowchart, pseudocodice e quello che vuoi, per poterlo scrivere devi già avere chiari gli step da percorrere, studia bene la crittografia, leggi e sperimenta con i PoC.
 
Ahahahaha questa ancora la dovevo sentire, molto divertente e originale. Però i ransomware non arrivano tipo gli SMS su vecchio telefono che fa quel suono di inteferenza nelle casse vicine.

Oh grazie :) . Non avevo pensato all' SMS ma all' Aprs.
Andare per tentativi se la chiave privata asimmetrica è RSA a 2048 bit impiegherebbe milioni di anni ad un normale PC di fascia alta odierno (con gli algoritmi conosciuti oggi), in futuro quando i computer quantistici saranno abbastanza potenti e diffusi diventerà fattibile in un tempo molto più ragionevole (si stima in circa un giorno per RSA 2048), ma per allora ci sarà già un nuovo standard quantum-resistant (ci sono già ma ancora sono assai poco usati). Per fare bruteforce sulla chiave simmetrica (>= 256 bit) invece ci vorrebbero miliardi di anni, e la quantistica non ridurrebbe i tempi abbastanza da essere fattibile.
Speriamo la situazione migliori per chi non è un cyber-criminale.

Andare per rentativi se la chiave privata è simmetrica?
Fare bruteforce sulla chiava assimmetrica?
Le env path riguardano l'ambiente del processo: $HOME o %USERPROFILE% sono variabili d'ambiente che contengono il percorso alla cartella dell'utente corrente, il processo può leggere il contenuto di queste e altre variabili per trovare rapidamente i percorsi più comuni e specifici per quel contesto e configurazione.
Ho capito ora.

Puoi creare un flowchart, pseudocodice e quello che vuoi, per poterlo scrivere devi già avere chiari gli step da percorrere, studia bene la crittografia, leggi e sperimenta con i PoC.
Ho capito. Non mi interessa creare e scrivere nulla a riguardo. La domanda riguarda solo la divulgazione in attesa di un prossimo video divulgativo, a riguardo :) .

Per quanto riguarda la protezione di un pc domestico con Win10 da ransomware crypto può essere utile criptare i file e le cartelle ?
 
Andare per rentativi se la chiave privata è simmetrica?
Non ci sono attacchi noti per AES che riducano abbastanza il tempo tanto da risultare violabile, quando usato nel modo corretto.

Fare bruteforce sulla chiava assimmetrica?
Fare un bruteforce di un valore a 2048 o 4096 bit significa impiegare più tempo di quanto ne è passato dalla nascita dell'universo.

Per quanto riguarda la protezione di un pc domestico con Win10 da ransomware crypto può essere utile criptare i file e le cartelle ?

No, il ransomware può cifrare anche i dati cifrati, quindi li perderai lo stesso, in quanto adesso andrebbero decifrati due volte: prima dal ransomware poi dalla tua chiave.
La protezione principale è stare attento a cosa esegui sul tuo computer e fare sempre gli aggiornamenti, solo in secondo luogo un buon antivirus, che anche se è l'ultima spiaggia può bloccare una buona percentuale degli attacchi più conosciuti.
 
Non ci sono attacchi noti per AES che riducano abbastanza il tempo tanto da risultare violabile, quando usato nel modo corretto.


Fare un bruteforce di un valore a 2048 o 4096 bit significa impiegare più tempo di quanto ne è passato dalla nascita dell'universo.



No, il ransomware può cifrare anche i dati cifrati, quindi li perderai lo stesso, in quanto adesso andrebbero decifrati due volte: prima dal ransomware poi dalla tua chiave.
La protezione principale è stare attento a cosa esegui sul tuo computer e fare sempre gli aggiornamenti, solo in secondo luogo un buon antivirus, che anche se è l'ultima spiaggia può bloccare una buona percentuale degli attacchi più conosciuti.

Non sono buone notizie.
Non è facile stare attenti e tra l' altro anche sempre.
Sui siti HTTPS si può prendere un ransomware?
Ci deve pur essere un modo che una volta eseguito il malware non vada a decifrare la robba.
Si può criptare un malware prima che cripti i dati?
 
Sui siti HTTPS si può prendere un ransomware?
Certo che si, chiunque può acquistare un certificato SSL, HTTPS serve solo a garantire che nessuno intercetti o alteri i dati scambiati con il sito in questione.

Si può criptare un malware prima che cripti i dati?
Questa domanda non ha senso, come fai a sapere a priori che un programma in realtà è un malware e cosa significa che lo cripti? Se lo sai già puoi benissimo eliminarlo direttamente.

Oltre a quello che avevo già detto prima la difesa più robusta contro i ransomware, soprattutto in ambito corporate, è fare backup periodici su dispositivi esterni. Se il tuo dispositivo dovesse essere cifrato puoi formattare via tutto e ripristinare i backup in poche ore riducendo i danni al minimo. Questo ovviamente non ti difende dalla doppia estorsione (la minaccia che i tuoi file vengano resi pubblici), per questo è più importante stare attenti a cosa apri, dai software a gli allegati delle mail. Impara l'uso delle macchine virtuali, così quando sei in dubbio puoi aprire i documenti lì dentro in tutta sicurezza staccando anche internet alla VM.

Ci deve pur essere un modo che una volta eseguito il malware non vada a decifrare la robba.

No, il modo perfetto non esiste perché da un punto di vista tecnico un ransomware è un programma che legge e scrive file come tanti altri programmi, se impedisci ai programmi di scrivere file non funziona più niente, quindi l'antivirus deve capire che quella scrittura ha fini malevoli, ma essendo una questione fumosa è difficile tracciare una linea su quale scrittura sia pericolosa e quale no, quindi gli antivirus non possono essere infallibili contro questo attacco.
 
Ho capito.

Invece quali sono i requisiti per poter acquistare un ransomware ed utilizzarlo a fine malevolevi ed illegali? Ho letto che la cosa è fattibile anche per chi non è un programmatore. Però nello specifico più una cosa è accessibile o/e pronta all' uso e più ci saranno attacchi o/e addirittura malware, giusto? Non conosco la situazione nello specifico però a seconda di com'è la verità varia la preoccupazione per mia piccola rete domestica.
 
Ci sono i ransomware free che servono solo per studio perché incompleti o rilevati dagli antivirus. Ci sono quelli a pagamento fatti da piccoli cybercriminali. Infine ci sono quelli più diffusi, sofisticati e temuti come Conti, REvil ecc che lavorano tramite sistemi di affiliazione: ovvero il malware non è in vendita ma viene "prestato" ad un gruppo affiliato che lo usa per infettare i sistemi e poi dà una percentuale dei ricavi da riscatto al gruppo dei creatori. Ovviamente non lo prestano a chiunque ma solo a chi ha già una certa reputazione sui siti underground.
 
Stato
Discussione chiusa ad ulteriori risposte.