Mõnikord tahaks vaadata mõne viiruse kirjutaja silmadesse ja küsida: miks ja milleks? Kuidas me sellega hakkama saame, sellega saame ise hakkama, aga oleks väga huvitav teada, mida mõtles üks või teine pahavara looja. Eriti kui leiame selliseid «pärleid».
Käesoleva artikli kangelane on huvitav näide krüptohjajast. Tundub, et ta mõeldi välja kui järjekordne «lunastaja», kuid tema tehniline teostus sarnaneb pigem kellegi kurjale naljale. Täna räägimegi just sellest teostusest.
Kahjuks on selle kodeerija elutsükli jälgimine praktiliselt võimatu – statistika on tema kohta liiga vähe, kuna ta ei ole, õnneks, laialdaselt levinud. Jätame seega kõrvale päritolu, nakkusmeetodid ja muud mainimised. Räägime vaid meie tutvumisest Wulfric Ransomware ja sellest, kuidas me aitasime kasutajal tema faile päästa.
I. Kuidas kõik algas
Meie viirusetõrje laborisse pöördub sageli inimesi, kes on kannatanud krüpteerijate tõttu. Me aitame, sõltumata sellest, millised viirusetõrje programmid neil on. Seekord pöördus meie poole inimene, kelle failid said tundmatu kodeerija ohvriks.
Tere päevast! Failid salvestuses (samba4) on krüpteeritud, sissepääs on ilma paroolita. Kahtlustan, et viirus tuli tütarde arvutist (Windows 10 koos vaikeseade Windows Defenderiga). Tütarde arvutit ei ole pärast seda sisse lülitatud. Failid on peamiselt .jpg ja .cr2 formaadis. Failide laiend pärast krüptimist: .aef.
Oleme kasutajalt saanud näidiseid krüpteeritud failidest, lunapakkumise märkusest ja faili, mis tõenäoliselt on võti, mida krüpteerija vajab failide dekodeerimiseks.
Siin on kõik meie vihjed:
- 01c.aef (4481K)
- hacked.jpg (254K)
- hacked.txt (0K)
- 04c.aef (6540K)
- pass.key (0K)
Vaatame märkust. Kui palju bitcoine seekord?
Tõlge:
Tähelepanu, teie failid on krüpteeritud!
parool on teie arvutiga ainulaadne.Makske summa 0.05 BTC bitcoiniaadressile: 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
Pärast maksmist saatke mulle kiri, lisades faili pass.key aadressile Wulfric@gmx.com makse kinnitamisega.Pärast kinnitamist saadab ma teile failide dekrüptori.
Saate maksta Bitcoine internetis erinevate meetoditega:
— makse krediitkaardiga
Bitcoinidest:
Kui teil on küsimusi, kirjutage mulle aadressile Wulfric@gmx.com
Lisaboonusena räägin, kuidas teie arvuti löödi ja kuidas seda tulevikus kaitsta.
Patoslik hunt, kelle ülesanne on näidata ohvrile olukorra tõsidust. Kuigi võiks olla hullem.

Joonis 1. -Lisaboonusena räägin, kuidas tulevikus oma arvutit kaitsta. -Tundub usutav.
II. Alustame tööd
Esiteks vaatasime saadetud näidise struktuuri. Üllataval kombel ei olnud see sarnane faili, mis oli olnud krüpteeritud. Avame heksade Redaktori ja vaatame. Esimeses 4 baitis on algne faili suurus, järgmised 60 baiti on täidetud nullidega. Aga huvitavam osa asub lõpus:

Joonis 2. Analüüsime kahjustatud faili. Mis kohe silma paistab?
Kõik osutus üllatavalt lihtsaks: 0x40 baiti pealkirjast viidi faili lõppu. Andmete taastamiseks piisab lihtsalt nende algusesse naasmisest. Failile pääs on taastatud, kuid nime kaitseks on see endiselt krüpteeritud, ja sellega on keerulisem.

Joon. 3. Krüpteeritud nimi Base64-s näeb välja nagu mõtetu sümbolite kogum.
Proovime analüüsida pass.key, mille kasutaja saatis. Sellest näeme 162-baitist sümbolite järjekorda ASCII-s.

Joon. 4. 162 sümbolit, mis jäid ohvri arvutisse.
Kui lähemalt vaadata, siis võib märgata, et sümbolid korduvad teatud perioodilisusega. See võib viidata XOR-i kasutamisele, kus kordumised on iseloomulikud ning nende sagedus sõltub võtme pikkusest. Jagades stringi 6 sümboliks ja XORides seda mõnede XOR-järjekordade variantidega, ei saavutanud me mingit mõistetavat tulemust.

Joon. 5. Kas näete korduvaid konstante keskel?
Otsustasime uurida konstandte, sest jah, ka nii saab! Ja kõik need viisid lõpuks ühe algoritmini − Batch Encryption. Skripti uurides sai selgeks, et meie rida ei ole midagi muud kui selle töö tulemus. Tuleks mainida, et see ei ole krüptograaf, vaid lihtsalt kodeerija, mis asendab sümbolid 6-baitiliste järjestustega. Ei mingeid võtmeid või muid saladusi 🙁

Joonis 6. Originaalalgoritmi tükk, mille autor ei ole teada.
Algoritm ei töötaks korralikult, kui mitte üks detail:

Joonis 7. Morpheus poolt heaks kiidetud.
Tagasipööramise asendamisega muundame rea pass.key 27 sümbolist tekstiks. Erilist tähelepanu väärib inimlik (tõenäoliselt) tekst ‘asmodat’.

Joonis 8. USGFDG=7.
Google aitab meid taas. Pärast väikest otsingut leiame huvitava projekti GitHubis – Folder Locker, mis on kirjutatud .Net-is ja kasutab ‘asmodat’ raamatukogu teiselt kontolt ‘Git’is.

Joonis 9. Folder Lockeri liides. Kontrollisime kindlasti kahjulikkuse osas.
Utilities on Windows 7 and later serve as encryptors with open-source code. Encryption uses a password that is necessary for subsequent decryption. It allows working with both individual files and entire directories.
Its library uses the symmetric encryption algorithm Rijndael in CBC mode. Notably, the block size has been set to 256 bits, in contrast to the 128-bit limit imposed by the AES standard.
Our key is generated according to the PBKDF2 standard. Here, the password is the SHA-256 of the input string in the utility. You just need to find this string to create the decryption key.
Well, let's return to our already decoded pass.key. Remember the line with the set of numbers and the text ‘asmodat’? We try using the first 20 bytes of the string as a password for Folder Locker.
Look at that, it works! The password fits, and everything decrypted perfectly. Judging by the password symbols – it's the HEX representation of a specific word in ASCII. Let’s try to display the password in text form. We get ‘shadowwolf’. Are you already feeling the symptoms of lycanthropy?
Vaatame nüüd uuesti rikutud faili struktuuri, teades nüüd lukustuse töömehhanismi:
- 02 00 00 00 – failinimede krüpteerimisrežiim;
- 58 00 00 00 – failinime krüpteeritud ja base64-sse kodeeritud pikkus;
- 40 00 00 00 – edastatud päise suurus.
Punase ja kollasega on tähistatud vastavalt krüpteeritud nimi ja edastatud päis.

Kujutis 10. Punasega on välja toodud krüpteeritud nimi, kollasega – edastatud päis.
Ja nüüd võrreldakse krüpteeritud ja dekodeeritud nimesid kuuekümnendlikus esituses.
Dekodeeritud andmete struktuur:
- 78 B9 B8 2E – utiliidi loodud prügi (4 baiti);
- 0C 00 00 00 – dekodeeritud nime pikkus (12 baiti);
- seejärel järgneb nime osa ja täiendatakse nullidega vajaliku ploki pikkuseni (padding).

Kujutis 11. IMG_4114 näeb palju parem välja.
III. Järeldused ja kokkuvõte
Tagasi algusesse. Me ei tea, mida autor Wulfric.Ransomware silmas pidas ja milline oli tema eesmärk. Tavalise kasutaja jaoks tundub isegi sellise krüptori töö tulemus suur katastroof. Failid ei avane. Kõik nimed on kadunud. Harjunud pildi asemel – ekraanil on hunt. Sunnitakse lugema bitcoini kohta.
Tõsi, seekord peitis ''hirmutava kodeerija'' maski taga selline absurdene ja rumal väljapressimisüritus, kus kurjategija kasutab valmisprogramme ja jätab võtmed otse kuriteopaika.
Muide, võtmetest. Meil polnud pahavara ega troojalasi, mille põhjal oleks saanud aru, kuidas see pass.key – faili tekkimise mehhanism nakatunud arvutisse jääb teadmata. Kuid meeles on, et oma märkmes mainis autor parooli unikaalsust. Nii et on seotud kodeeritud sõna on sama unikaalne kui kasutajanimi shadow wolf 🙂
Ja ikkagi, varjuline hunt, miks ja milleks?
Allikas: habr.com
