Soms heb je zo'n behoefte om in de ogen van een virusontwikkelaar te kijken en te vragen: waarom en waarom? We kunnen zelf het antwoord op de vraag 'hoe' vinden, maar het zou erg interessant zijn om te weten waar de maker van deze of gene malware aan dacht. Zeker als we zulke 'pareltjes' tegenkomen.
De held van het artikel van vandaag is een interessante variant van ransomware. Het lijkt erop dat het oorspronkelijk bedoeld was als weer een 'afperser', maar de technische uitvoering lijkt meer op een kwaadaardige grap van iemand. Daarover zullen we het vandaag hebben.
Helaas is het bijna onmogelijk om de levenscyclus van deze encoder te volgen - er is gewoon te weinig statistiek over, omdat het gelukkig niet wijdverspreid is geraakt. Daarom laten we de oorsprong, besmettingsmethoden en andere vermeldingen buiten beschouwing. We zullen alleen vertellen over onze kennismaking met Wulfric Ransomware en hoe we de gebruiker hebben geholpen zijn bestanden te redden.
I. Hoe het allemaal begon
Onze antiviruslaboratorium ontvangt vaak mensen die slachtoffer zijn van ransomware. We bieden hulp ongeacht welke antivirusproducten ze hebben geïnstalleerd. Dit keer nam een persoon contact met ons op wiens bestanden waren aangetast door een onbekende encoder.
Goedemiddag! Bestanden zijn versleuteld op een bestandsopslag (samba4) met een onbeveiligde toegang. Ik vermoed dat de besmetting van de computer van mijn dochter komt (Windows 10 met de standaard Windows Defender). De computer van mijn dochter is sindsdien niet meer aangezet. De bestanden zijn voornamelijk .jpg en .cr2. De bestandsindeling na versleuteling: .aef.
We ontvingen van de gebruiker monsters van versleutelde bestanden, een losgeldbriefje en een bestand dat waarschijnlijk de sleutel is die de auteur van de ransomware nodig heeft om de bestanden te ontsleutelen.
Dit zijn al onze aanwijzingen:
- 01c.aef (4481K)
- hacked.jpg (254K)
- hacked.txt (0K)
- 04c.aef (6540K)
- pass.key (0K)
Laten we eens naar de brief kijken. Hoeveel bitcoins zijn het deze keer?
Vertaling:
Let op, uw bestanden zijn versleuteld!
het wachtwoord is uniek voor uw pc.Betaal 0.05 BTC aan het bitcoinadres: 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
Na betaling, stuur me een e-mail en voeg het bestand pass.key toe aan Wulfric@gmx.com met een betalingsbevestiging.Na bevestiging zal ik u de decryptor voor de bestanden sturen.
U kunt bitcoins online op verschillende manieren betalen:
— betaling met een bankkaart
Over bitcoins:
Als u vragen heeft, stuur me dan een e-mail op Wulfric@gmx.com
Als bonus zal ik u vertellen hoe uw computer is gehackt en hoe u deze in de toekomst kunt beschermen.
Een pompeuze wolf, bedoeld om het slachtoffer de ernst van de situatie te tonen. Het had echter erger gekund.

Figuur 1. -Als bonus zal ik u vertellen hoe u uw computer in de toekomst kunt beschermen. –Lijkt legitiem.
II. We gaan aan de slag
Als eerste hebben we gekeken naar de structuur van het ingezonden voorbeeld. Vreemd genoeg leek het niet op een bestand dat door ransomware was aangetast. We openen de hex-editor en kijken. In de eerste 4 bytes staat de originele bestandsgrootte, de volgende 60 bytes zijn met nullen gevuld. Maar het interessantste bevindt zich aan het einde:

Figuur 2 Analyseren van het beschadigde bestand. Wat valt er meteen op?
Het was verontrustend eenvoudig: 0x40 bytes uit de header waren naar het einde van het bestand verplaatst. Voor gegevensherstel is het voldoende om ze gewoon terug naar voren te brengen. Toegang tot het bestand is hersteld, maar de naam blijft gecodeerd, en dat is ingewikkelder.

Figuur 3. De gecodeerde naam in Base64 ziet eruit als een willekeurige reeks tekens.
Laten we het proberen te ontleden pass.key, verzonden door de gebruiker. We zien een reeks van 162 bytes in ASCII.

Figuur 4. 162 tekens, achtergelaten op de pc van het slachtoffer.
Als je goed kijkt, kun je zien dat de tekens met een bepaalde periodiciteit herhalen. Dit kan wijzen op het gebruik van XOR, waar herhalingen typisch zijn en hun frequentie afhangt van de sleutelgrootte. Door de string in groepen van 6 tekens te splitsen en met enkele varianten van XOR-reeksen XOR te nemen, hebben we geen enkele betekenisvolle uitkomst behaald.

Figuur 5. Zie je herhalende constanten in het midden?
We besloten constanten te googelen, omdat ja, dat kan ook! En al deze leidden uiteindelijk naar één algoritme - Batch Encryption. Na bestudering van het script werd duidelijk dat onze string niets anders was dan het resultaat van zijn werk. Het moet worden opgemerkt dat dit absoluut geen ransomware is, maar slechts een encoder die tekens vervangt door 6-byte reeksen. Geen sleutels of andere geheimen 🙁

Figuur 6. Een stuk van het originele algoritme van onbekende oorsprong.
Het algoritme zou niet goed werken zonder één detail:

Figuur 7. Morpheus goedgekeurd.
Met behulp van inverse substitutie transformeren we de string in pass.key in tekst van 27 tekens. Bijzondere aandacht verdient de menselijke (waarschijnlijk) tekst ‘asmodat’.

Figuur 8. USGFDG=7.
Google helpt ons opnieuw. Na een kleine zoektocht vinden we een interessant project op GitHub – Folder Locker, geschreven in .Net en gebruikmakend van de ‘asmodat’ bibliotheek van een ander account op ‘Git’.

Figuur 9. De interface van Folder Locker. Zeker gecheckt op kwaadwilligheid.
De tool is een encryptor voor Windows 7 en hoger, die wordt verspreid met open source code. Bij het versleutelen wordt een wachtwoord gebruikt dat nodig is voor de daaropvolgende ontsleuteling. Het staat ons toe om zowel met afzonderlijke bestanden als met hele directories te werken.
De bibliotheek maakt gebruik van het symmetrische encryptie-algoritme Rijndael in CBC-modus. Opmerkelijk is dat de blokgrootte is gekozen als 256 bits – in tegenstelling tot de in de AES-standaard aangenomen maximum van 128 bits.
Onze sleutel wordt gevormd volgens de PBKDF2-standaard. Hierbij fungeert het wachtwoord als de SHA-256 van de ingevoerde string in de tool. We moeten alleen deze string vinden om de ontsleutelsleutel te vormen.
Laten we terugkeren naar onze al gedecodeerde pass.key. Versteed je die regel met cijfers en de tekst ‘asmodat’? We proberen de eerste 20 bytes van de string als wachtwoord voor Folder Locker te gebruiken.
Kijk eens aan, het werkt! Het wachtwoord is correct en alles is perfect ontsleuteld. Gezien de symbolen van het wachtwoord – dit is een HEX-representatie van een bepaald woord in ASCII. Laten we het wachtwoord in tekstvorm tonen. We krijgen ‘shadowwolf’. Voel je de symptomen van lycantropie al?
Laten we nogmaals naar de structuur van het aangetaste bestand kijken, nu we het werkingsmechanisme van de locker kennen:
- 02 00 00 00 – modus voor het versleutelen van namen;
- 58 00 00 00 – lengte van de versleutelde en in base64 gecodeerde bestandsnaam;
- 40 00 00 00 – grootte van de overgedragen header.
In het rood en geel zijn respectievelijk de versleutelde naam en de overgedragen header gemarkeerd.

Figuur 10. In het rood is de versleutelde naam gemarkeerd, in het geel de overgedragen header.
Laten we nu de versleutelde en ontsleutelde namen vergelijken in hexadecimale weergave.
Structuur van de ontsleutelde gegevens:
- 78 B9 B8 2E – rommel, aangemaakt door de tool (4 bytes);
- 0C 00 00 00 – lengte van de ontsleutelde naam (12 bytes);
- verder volgt de naam van het bestand en wordt deze aangevuld met nullen tot de vereiste bloklengte (padding).

Figuur 11. IMG_4114 ziet er veel beter uit.
III. Conclusies en aanbevelingen
Terug naar het begin. We weten niet wat de auteur Wulfric.Ransomware heeft gedreven en welk doel hij voor ogen had. Voor de gemiddelde gebruiker lijkt het resultaat van zo'n ransomware ongetwijfeld een grote tragedie. Bestanden zijn niet toegankelijk. Alle namen zijn verdwenen. In plaats van een vertrouwde afbeelding is er een wolf op het scherm. Ze dwingen je om over bitcoin te lezen.
Maar deze keer stond er achter de schijn van een ‘angstige encoder’ een onzinnige en nutteloze poging tot afpersing, waarbij de dader gebruikmaakt van kant-en-klare programma's en de sleutels op de plaats delict achterlaat.
Over sleutels gesproken. We hadden geen kwaadaardig script of trojan die ons meer inzicht kon geven in hoe dit pass.key – mechanisme voor het ontstaan van het bestand op de geïnfecteerde pc blijft onbekend. Maar ik herinner me dat de auteur in zijn notitie sprak over de uniekheid van het wachtwoord. Het codewoord voor decryptie is net zo uniek als de gebruikersnaam shadow wolf 🙂
En toch, schaduw wolf, waarom en waarvoor?
Bron: habr.com
