Connect with us

Multilingua

XLoader/FormBook: Encryption Analysis and Malware Decryption

Tempo di lettura: 6 minuti. Xloader is a stealer, the successor of FormBook

Pubblicato

in data

Tempo di lettura: 6 minuti.

Today ANY.RUN’s malware analysts are happy to discuss the encryption algorithms of XLoader, also known as FormBook. And together we’ll decrypt the stealer’s strings and C2 servers.

Xloader is a stealer, the successor of FormBook. However, apart from the basic functionality, the unusual approaches to encryption and obfuscation of internal structures, code, and strings used in XLoader are also of interest. Let’s take a detailed look at the encryption of strings, functions, and C2 decoys.

IceXLoader ha infettato migliaia di vittime in tutto il mondo

Ecco il malware che eluce i blocchi impostati da Microsoft sulle VBA

DotRunpeX diffonde diverse famiglie di malware tramite annunci pubblicitari

Gookit all’attacco di organizzazioni sanitarie e finanziarie

Encryption in XLoader  

First, we should research 3 main cryptographic algorithms used in XLoader. These are the modified algorithms: RC4, SHA1, and Xloader’s own algorithm based on a virtual machine.

The modified RC4 algorithm

The modified RC4 algorithm is a usual RC4 with additional layers of sequential subtraction before and after the RC4 call. In the code one layer of subtractions looks like this:

       # transform 1
       for i in range(len(encbuf) – 1, 0, -1):
           encbuf[i-1] -= encbuf[i]

       # transform 2
       for i in range(0, len(encbuf) -1):
           encbuf[i] -= encbuf[i+1]

The ciphertext bytes are subtracted from each other in sequence from right to left. And then they go from left to right. In the XLoader code it looks like this:

Function performing RC4 encryption

The modified SHA1 algorithm

The SHA1 modification is a regular SHA1, but every 4 bytes are inverted:

   def reversed_dword_sha1(self, dat2hash):
       sha1Inst = SHA1.new()
       sha1Inst.update(dat2hash)
       hashed_data = sha1Inst.digest()
       result = b””
       for i in range(5):
          result += hashed_data[4*i:4*i+4][::-1]
       return result

Xloader’s own virtual machine algorithm

The last algorithm is a virtual machine that generates one to four bytes of plaintext, depending on the current byte of the ciphertext. Usually, this algorithm is used as an additional encryption layer, which will be discussed later. The entry of the VM decryption routine looks like this:

An example of transformations in a virtual machine’s decryption routine

Decrypting XLoader Strings

Next, let’s investigate how the string encryption works in XLoader. All byte arrays containing encrypted strings or key information are ​​located in special kinds of blobs.

An example of a blob with encrypted data

As you can see in the screenshot above, this blob is a function that returns a pointer to itself, below this function are the bytes you are looking for.

In order to decrypt strings, first a key is generated. The key is generated from 3 parts, to which the above-described functions are applied.

Key generation function to decrypt strings

Here K1_blob, K2_blob, and K3_blob are functions that return data from the blocks described above, and the string length is an argument for them.

The functions VM_Decrypt, RC4_with_sub_Layer and sha1_* are modified algorithms that we discussed earlier.

Schematically, the key generation algorithm can be represented by the following diagram.

Here E and K are the data and the key that is fed to the input of the RC4 function, respectively, and K1, K2, and K3 are the data obtained from the K1_blob, K2_blob, and K3_blob functions.

Scheme of key generation to decrypt strings

The strings themselves are also stored as a blob and are covered by two layers of encryption: 

  • VM_decrypt
  • RC4 that uses the key obtained above.

At the same time, RC4 is not used for the whole blob at once.

After removing the first layer, the encrypted strings themselves are stored in the format:

encrypted string length – encrypted string

Consequently, to decrypt the strings, we need to loop through this structure and consistently decrypt all the strings.

Function for decrypting strings

Below is an example of the encrypted data after stripping the first layer. Length/string pairs for the first 3 encrypted strings are highlighted in red.

The first 3 encrypted strings

The same strings after decryption:

The first 3 lines after decoding

Along with the encrypted strings, C2 decoys are also stored there. They are always located at the end of all decrypted strings, beginning and ending with the f-start and f-end strings.

Decrypting XLoader’s C2 Servers

Next, let’s see how the main C2 encryption works. The main C2 is located elsewhere in the code, so you can get it separately from the C2 decoys.

Code snippet demonstrating C2 decryption.

To decrypt it, as well as to decrypt the strings, 3 keys are used. The C2 decryption scheme is shown below:

  • EC2 is the encrypted C2
  • DC2 is the decrypted C2

The algorithm itself is a 3 times sequential application of the RC4 algorithm with 3 different keys.

C2 decoys’ decryption scheme

Also, in newer versions of XLoader C2 decoys, which usually lie along with all the other strings, turn out to be covered by an additional layer of encryption, and, at first glance, it is completely unclear where exactly the decryption of these strings occurs.

Since XLoader has several entry points, each responsible for different non-intersecting functionality, with many functions turning out to be encrypted.

The C2 decoys are decrypted inside the XLoader injected into Explorer.exe. And in this case, it is passed to netsh.exe, which also contains XLoader via APC injection.

The C2 life cycle in different XLoader modules

In order to understand how a C2 decoy is encrypted, first of all, you need to understand how the functions are encrypted.

It’s actually quite simple. RC4 is used as the encryption algorithm. This time, the key is hardcoded and written right in the code and then xored with the 4-byte gamma.

After that, you should find pointers to the start and end of the function. This is how you do it:  a unique 4-byte value is placed at the beginning and end of each encrypted function. The XLoader looks for these values and gets the desired pointers.

Code snippet demonstrating the decryption of the function

Then the function is decrypted, control is given to it, and it similarly searches for and decrypts the next function. This happens until the function with the main functionality is decrypted and executed. So, functions should be decrypted recursively.

The key to decrypting C2 decoys consists of 2 parts and is collected separately at two different exit points. One exit point gets the 20-byte protected key, and the second gets the 4-byte gamma to decrypt the key.

Example of extracted XLoader malware configuration

Applying the above algorithms we can extract the configuration from Xloader, including C2, C2 decoys,  and strings. For your convenience, we have integrated automatic extraction of the Xloader configuration into ANY.RUN interactive sandbox — just run the sample and get all the IOCs in seconds.

Extracted malware configuration in ANY.RUN

Examples of successfully executed samples:

Example 1

Example 2

Example 3

Sum it up

In this article we discussed the encryption in xLoader stealer. It is based on both add-ons to existing algorithms and self-written algorithms.

The main tricky part of the decryption process is the key generation and the fact that the XLoader functionality is split into modules that can be run in different processes. Because of this, in order to extract strings, we have to decrypt the executable code, among other things.

Fortunately, ANY.RUN is already set up to detect this malware automatically, making the relevant configuration details just a click away.

Appendix

Analyzed files

Sample with new C2 decoys encryption

TitleDescription
NameMT10320221808-004. pdf.exe
MD5b7127b3281dbd5f1ae76ea500db1ce6a
SHA16e7b8bdc554fe91eac7eef5b299158e6b2287c40
SHA256726fd095c55cdab5860f8252050ebd2f3c3d8eace480f8422e52b3d4773b0d1c

Sample without C2 decoys encryption

TitleDescription
NameTransfer slip.exe
MD51b5393505847dcd181ebbc23def363ca
SHA1830edb007222442aa5c0883b5a2368f8da32acd1
SHA25627b2b539c061e496c1baa6ff071e6ce1042ae4d77d398fd954ae1a62f9ad3885

Multilingua

Google Pixel 8a: prezzo e custodie svelate

Tempo di lettura: 2 minuti. Scopri i dettagli su prezzo e personalizzazioni del Google Pixel 8a, con opzioni di colore e custodie innovative.

Pubblicato

in data

Google Pixel 8a
Tempo di lettura: 2 minuti.

Recenti informazioni trapelate rivelano dettagli significativi sul prezzo e le opzioni di personalizzazione per il Google Pixel 8a negli Stati Uniti e in India, insieme a nuove varianti di colore per le custodie.

Dettagli sui prezzi del Pixel 8a

Il Google Pixel 8a è previsto al prezzo di $499 per la variante base da 128GB negli Stati Uniti, con un modello da 256GB che raggiunge i $559. Questi prezzi sono allineati con quelli del predecessore, il Pixel 7a, al momento del lancio. Per il mercato indiano, il prezzo del Pixel 8a potrebbe essere leggermente superiore di Rs 1,000-2,000 rispetto al Pixel 7a, posizionandosi intorno a Rs 44,999 o Rs 45,999. Nonostante il costo leggermente più elevato, Google potrebbe offrire delle promozioni introduttive per rendere l’acquisto più allettante.

Variazioni di Colore e Custodie

Le immagini promozionali mostrano il Pixel 8a disponibile in verde, blu e nero (grigio scuro), con una nuova aggiunta potenzialmente in corallo, anche se non è chiaro se questa variante sarà disponibile al lancio. Inoltre, sono state mostrate diverse custodie che corrispondono a queste colorazioni, suggerendo che Google potrebbe puntare su una personalizzazione estetica per attirare un pubblico più ampio.

Con un design accattivante e opzioni di personalizzazione attraverso colori e custodie diverse, il Google Pixel 8a si prepara a essere un forte concorrente nel mercato degli smartphone di fascia media. Gli appassionati di tecnologia e i fedeli della marca Google attendono con impazienza ulteriori dettagli e la conferma ufficiale di queste caratteristiche al lancio.

Prosegui la lettura

Multilingua

TikTok aggira le commissioni dell’App Store di Apple?

Tempo di lettura: 2 minuti. TikTok testa un nuovo metodo per evitare le commissioni dell’App Store di Apple, vendendo direttamente dal suo sito web per ridurre i costi.

Pubblicato

in data

TikTok app store
Tempo di lettura: 2 minuti.

Una recente indagine di TechCrunch ha sollevato dubbi sulle pratiche di TikTok relative alle transazioni in-app, suggerendo che l’app potrebbe stare aggirando le commissioni dell’App Store di Apple. Questo comportamento potrebbe avere implicazioni significative per gli sviluppatori e i consumatori.

Strategia di TikTok per ridurre le commissioni

TikTok sta apparentemente testando un nuovo metodo per consentire agli utenti di acquistare “monete” — utilizzate per dare mance ai creatori — direttamente dal proprio sito web anziché tramite il sistema di acquisto in-app di Apple. Questo approccio suggerisce un risparmio del 25% sulle commissioni di servizio, offrendo agli utenti un incentivo finanziario per scegliere questa via alternativa. L’opzione di acquisto via web non sembra essere disponibile a tutti gli utenti ma limitata a coloro che hanno precedentemente speso cifre significative nell’app.

Implicazioni delle Nuove Linee Guida dell’App Store

Nonostante le modifiche alle linee guida dell’App Store di Apple a gennaio, che permettono agli sviluppatori di indirizzare gli utenti verso metodi di pagamento alternativi, TikTok sarebbe comunque tenuto a pagare una commissione ridotta del 27% per le transazioni effettuate. La discrepanza tra il risparmio offerto agli utenti e la commissione che TikTok dovrebbe ancora pagare solleva interrogativi sulla sostenibilità di tale strategia.

Problemi di conformità e risposta di Apple

L’approccio di TikTok, che non include un messaggio popup per informare gli utenti che stanno per lasciare l’app, potrebbe non essere conforme alle aspettative di Apple riguardo l’uso delle autorizzazioni necessarie. L’assenza di tale messaggio di avviso solleva ulteriori questioni sulla trasparenza e sulla correttezza delle pratiche adottate da TikTok.

Prosegui la lettura

Multilingua

Ex NSA condannato a 21 anni per spionaggio in favore della Russia

Tempo di lettura: 2 minuti. Un ex impiegato NSA è stato condannato a oltre 21 anni di prigione per aver tentato di vendere segreti nazionali alla Russia

Pubblicato

in data

Tempo di lettura: 2 minuti.

Un ex impiegato della National Security Agency (NSA) degli Stati Uniti, Jareh Sebastian Dalke, è stato condannato a 262 mesi (oltre 21 anni) di prigione per aver tentato di agire come spia per la Russia. Il caso evidenzia non solo le severe conseguenze del tradimento della fiducia nazionale ma anche le potenziali lacune nella sicurezza delle informazioni sensibili.

Dettagli del caso

Dalke, che ha lavorato come progettista di sicurezza dei sistemi informativi presso la NSA per meno di un mese tra giugno e luglio 2022, è stato accusato di aver tentato di trasmettere informazioni top secret a un agente straniero. Dopo aver lasciato la NSA, ha cercato di stabilire un contatto con quello che credeva fosse un agente russo, inviandogli frammenti di documenti classificati per dimostrare la sua accessibilità e disponibilità a condividere tali informazioni.

L’incontro e l’arresto

Dalke aveva organizzato un incontro per consegnare fisicamente i documenti, portando con sé un laptop alla Union Station di Denver. Qui, ha trasmesso i documenti via internet a chi credeva fosse l’agente russo, ma in realtà era un agente sotto copertura dell’FBI. L’operazione di controspionaggio si è conclusa con l’arresto di Dalke subito dopo la trasmissione delle informazioni.

Reazioni

Il Procuratore Generale Merrick Garland ha commentato il caso, sottolineando che Dalke, nonostante avesse giurato di difendere il suo paese, ha tentato di tradirlo, e che la sentenza dimostra che chi cerca di tradire gli Stati Uniti sarà punito. La legge prevede che Dalke non potrà scontare le pene per i vari capi di accusa contemporaneamente, quindi sarà in carcere fino al gennaio 2046, quando avrà 53 o 54 anni.

Considerazioni sulla sicurezza

Questo incidente solleva preoccupazioni riguardo a come le informazioni sensibili siano gestite e chi ottenga l’accesso a tali dati. Risulta fondamentale che le agenzie di sicurezza nazionali rivedano e rafforzino i criteri di accesso ai materiali classificati, per prevenire ulteriori tentativi di divulgazione non autorizzata.

Prosegui la lettura

Facebook

CYBERSECURITY

Economia3 giorni fa

Apple, Regno Unito vuole più sicurezza informatica e l’Europa indica iPadOS Gatekeeper

Tempo di lettura: 2 minuti. Apple, nuove sfide normative con l'introduzione del PSTI Act nel Regno Unito e la designazione...

ACN: tutto quello che c'è da sapere sulla relazione annuale 2023 ACN: tutto quello che c'è da sapere sulla relazione annuale 2023
Cyber Security5 giorni fa

ACN: tutto quello che c’è da sapere sulla relazione annuale 2023

Tempo di lettura: 9 minuti. L'ACN presenta la relazione annuale sulle attività della cybersecurity in Italia nel 2023 ed i...

Cisco logo Cisco logo
Cyber Security1 settimana fa

Vulnerabilità critiche nel software Cisco: dettagli e soluzioni

Tempo di lettura: 2 minuti. Cisco affronta vulnerabilità critiche nel suo software ASA e FTD, rilasciando aggiornamenti per prevenire attacchi...

Inchieste1 settimana fa

Managed Service Providers in Italia: numeri di un mercato in crescita

Tempo di lettura: 5 minuti. Nel contesto italiano, caratterizzato da un tessuto imprenditoriale prevalentemente composto da piccole e medie imprese,...

Inchieste1 settimana fa

Mercato ITC in Italia nel 2024: numeri e crescita vertiginosa rispetto al paese

Tempo di lettura: 4 minuti. L’Italia è sempre più digitale grazie al trend globale di trasformazione dei processi analogici verso...

Fortinet: vulnerabilità FortiClient EMS minaccia le aziende media Fortinet: vulnerabilità FortiClient EMS minaccia le aziende media
Cyber Security2 settimane fa

Fortinet: vulnerabilità FortiClient EMS minaccia le aziende media

Tempo di lettura: 2 minuti. Cybercriminali sfruttano CVE-2023-48788 in FortiClient EMS, minacciando aziende con SQL injection.

trasformazione digitale trasformazione digitale
Cyber Security2 settimane fa

Come Nominare il Responsabile per la Transizione Digitale e Costituire l’Ufficio per la Transizione Digitale

Tempo di lettura: 2 minuti. La nomina del RTD può avvenire tramite due modalità principali: Determina del Sindaco o Delibera...

Notizie3 settimane fa

Intensificazione delle operazioni di influenza digitale da parte di Cina e Corea del Nord

Tempo di lettura: 2 minuti. Nuovi report evidenziano l'intensificarsi delle operazioni di influenza digitale da parte di Cina e Corea...

hacker che studia hacker che studia
Cyber Security3 settimane fa

Dove studiare Sicurezza Informatica in Italia: Guida alle migliori opzioni

Tempo di lettura: 2 minuti. Ci sono molte opzioni disponibili per coloro che desiderano studiare sicurezza informatica in Italia. Che...

trasformazione digitale trasformazione digitale
Cyber Security3 settimane fa

Il Ruolo e le Responsabilità del Responsabile per la Transizione Digitale nelle Pubbliche Amministrazioni

Tempo di lettura: 2 minuti. Il Responsabile per la Transizione Digitale svolge un ruolo fondamentale nell'accelerare e guidare la trasformazione...

Truffe recenti

Shein Shein
Truffe online3 settimane fa

Truffa dei buoni SHEIN da 300 euro, scopri come proteggerti

Tempo di lettura: < 1 minuto. La truffa dei buoni SHEIN da 300 euro sta facendo nuovamente vittime in Italia,...

OSINT2 mesi fa

USA interviene per recuperare 2,3 Milioni dai “Pig Butchers” su Binance

Tempo di lettura: 2 minuti. Il Dipartimento di Giustizia degli USA interviene per recuperare 2,3 milioni di dollari in criptovalute...

dimarcoutletfirenze sito truffa dimarcoutletfirenze sito truffa
Inchieste2 mesi fa

Truffa dimarcoutletfirenze.com: merce contraffatta e diversi dalle prenotazioni

Tempo di lettura: 2 minuti. La segnalazione alla redazione di dimarcoutletfirenze.com si è rivelata puntuale perchè dalle analisi svolte è...

sec etf bitcoin sec etf bitcoin
Economia4 mesi fa

No, la SEC non ha approvato ETF del Bitcoin. Ecco perchè

Tempo di lettura: 3 minuti. Il mondo delle criptovalute ha recentemente assistito a un evento senza precedenti: l’account Twitter ufficiale...

Notizie5 mesi fa

Europol mostra gli schemi di fronde online nel suo rapporto

Tempo di lettura: 2 minuti. Europol’s spotlight report on online fraud evidenzia che i sistemi di frode online rappresentano una grave...

Notizie6 mesi fa

Polizia Postale: attenzione alla truffa dei biglietti ferroviari falsi

Tempo di lettura: < 1 minuto. Gli investigatori della Polizia Postale hanno recentemente individuato una nuova truffa online che prende...

app ledger falsa app ledger falsa
Notizie6 mesi fa

App Falsa di Ledger Ruba Criptovalute

Tempo di lettura: 2 minuti. Un'app Ledger Live falsa nel Microsoft Store ha rubato 768.000 dollari in criptovalute, sollevando dubbi...

keepass pubblicità malevola keepass pubblicità malevola
Notizie7 mesi fa

Google: pubblicità malevole che indirizzano a falso sito di Keepass

Tempo di lettura: 2 minuti. Google ospita una pubblicità malevola che indirizza gli utenti a un falso sito di Keepass,...

Notizie7 mesi fa

Nuova tattica per la truffa dell’aggiornamento del browser

Tempo di lettura: 2 minuti. La truffa dell'aggiornamento del browser si rinnova, con i criminali che ora ospitano file dannosi...

Notizie7 mesi fa

Oltre 17.000 siti WordPress compromessi negli attacchi di Balada Injector

Tempo di lettura: 2 minuti. La campagna di hacking Balada Injector ha compromesso oltre 17.000 siti WordPress sfruttando vulnerabilità nei...

Tech

Smartphone 24.2 Smartphone 24.2
Smartphone11 ore fa

LibreOffice 24.2.3 rilasciato: correzioni e stabilità migliorate

Tempo di lettura: < 1 minuto. Scopri LibreOffice 24.2.3 con 79 correzioni per migliorare stabilità e affidabilità. Aggiorna ora alla...

Ultrahuman Ring Air vs Oura Ring Gen 3: quale scegliere? Ultrahuman Ring Air vs Oura Ring Gen 3: quale scegliere?
Tech12 ore fa

Ultrahuman Ring Air vs Oura Ring Gen 3: quale scegliere?

Tempo di lettura: 3 minuti. Scopri le differenze tra Ultrahuman Ring Air e Oura Ring Gen 3 per scegliere il...

VIVO Y38 5G VIVO Y38 5G
Smartphone12 ore fa

Vivo Y38 5G: economico e con batteria potente e doppia fotocamera

Tempo di lettura: 2 minuti. Scopri il Vivo Y38 5G: un telefono economico con display da 6.68", Snapdragon 4 Gen...

Vivo V30e 5G Vivo V30e 5G
Smartphone15 ore fa

Vivo V30e 5G: lancio con specifiche di punta

Tempo di lettura: 2 minuti. Vivo V30e 5G lanciato in India con specifiche di rilievo

Porsche Design Honor Magic 6 RSR Porsche Design Honor Magic 6 RSR
Smartphone15 ore fa

Porsche Design Honor Magic 6 RSR: capolavoro di Design e Tecnologia

Tempo di lettura: 2 minuti. Scopri il Porsche Design Honor Magic 6 RSR: design ispirato alle Porsche, top di gamma...

POCO X6 5G Skyline Blue POCO X6 5G Skyline Blue
Smartphone15 ore fa

POCO X6 5G Skyline Blue: lancio, prezzi e specifiche in India

Tempo di lettura: 2 minuti. POCO X6 5G Skyline Blue arriva in India con le sue prestazioni di spessore e...

LibreElec 12 LibreElec 12
Tech16 ore fa

LibreELEC 12: novità e supporto per Raspberry Pi 5 e GPU AMD e Intel

Tempo di lettura: 2 minuti. Gli utenti di LibreELEC 11 su dispositivi 64-bit che utilizzano Widevine DRM dovranno reinstallarlo a...

Huawei Pura 70 Huawei Pura 70
Smartphone16 ore fa

Huawei la Serie Pura 70 arriva in Europa: ecco i prezzi

Tempo di lettura: 2 minuti. Huawei lancia la sua serie Pura 70 in Europa ed emergono i prezzi per accaparrarsi...

Redmi 13 Redmi 13
Smartphone17 ore fa

Redmi 13: imminente lancio e dettagli tecnici rivelati dalle nuove certificazioni

Tempo di lettura: 2 minuti. Redmi 13 è emerso sotto f orma di certificazioni SDPPI e NTBC che consentono di...

Google Pixel 8a Google Pixel 8a
Smartphone17 ore fa

Google Pixel 8a: fuga di notizie dal poster di Marketing

Tempo di lettura: 2 minuti. Emergono i poster marketing di Google Pixel 8a grazie ai tipster su X che confermano...

Tendenza