Lees hier de uitgebreide PDF versie.

Op 27 juni 2017 bereikte ons het nieuws dat internationale bedrijven zoals Maersk, Heritage Valley Health System, TNT Express en snoepfabrikant Mars slachtoffer zijn geworden van ransomware. Wereldwijd heeft deze bedreiging om zich heen geslagen en slachtoffers gemaakt. Dit was een goede aanleiding voor Glasswall om de code van de 2017 versie van Petya te analyseren. Petya lijkt eigenschappen van ransomware te hebben, die mogelijk gebaseerd zijn op eerdere Petya varianten. Deze is aangepast met een payload zoals we die kennen uit de code van bijvoorbeeld ransomware WannaCry. Petya heeft ondertussen verschillende aliassen gekregen:

  • Petya
  • NoPetya
  • NotPetya
  • Petrwrap
  • ExPetr
  • Nyetya
  • Goldeneye

Verspreiding Petya

De verspreiding van Petya geschiedt voor zover bekend via twee kanalen:

1. Verspreiding via de MeDoc updateprocedure

Het lijkt erop dat Petya zich heeft verspreid via de updateprocedure van MeDoc. Dit boekhoudpakket is verplicht voor alle organisaties die belasting in Oekraïne betalen. Het is daarom niet vreemd dat bedrijven zoals Maersk, TNT en Mars mogelijk via deze route zijn besmet. De verschillende kanalen van MeDoc lijken elkaar tegen te spreken betreffende deze infectie methode. Op twitter ontkende MeDoc, maar op de website geven ze toe dat hun updateservers voor een aanval zijn gebruikt. Een aanval via deze route is niet geautomatiseerd door de Petya code zelf. In de code van Petya is geen instructie te vinden die actief een kwetsbaarheid probeert uit te buiten op de servers van MeDoc. Het is dus aannemelijk dat deze route van infectie vooropgezet was en doelgericht tegen een bepaalde groep gebruikers. De infectie via MeDoc is een dropper en geeft deze variant van Petya vooralsnog niet de status van Virus of Worm omdat de zelfreplicerende code ontbreekt. Een dropper plaatst malafide code op een machine.

2. Verspreiding via SMB

(a) D.m.v. EternalBlue exploit
(b) D.m.v. Pass the Hash techniek (WMIC/PSexec)

In deze variant van Petya zit wel degelijk zelfreplicerende code. Deze code maakt gebruik van het SMB (Server Message Block) protocol om zich te verspreiden. De zelfreplicerende code van Petya lijkt dit enkel op de interne omgeving te doen en verspreidt zich niet via het publieke internet. Het bestand verantwoordelijk voor de verspreiding is perfc.dat. Het bestand probeert Anti Virus detectie tegen te gaan door het gebruik van een vals Microsoft certificaat in de Portable Executable.

Petya bepaalt of het draait op een werkstation of domain controller. Een versie van de hackerstool LSADump wordt losgelaten (gedropt) en verzamelt geldige credential hashes. Binnen het subnet van het netwerk wordt het interne netwerk gescand op open SMB machines. Door deze methode is het niet geheel uitgesloten dat Petya op het publieke netwerk terecht kan komen.

Overige functies

De Petya code versleutelt files met de volgende extensies:

.3ds .7z .accdb .ai .asp .aspx .avhd .back .bak .c .cfg .conf .cpp .cs .ctl .dbf .disk .djvu .doc .docx .dwg .eml .fdb .gz .h .hdd .kdbx .mail .mdb .msg .nrg .ora .ost .ova .ovf .pdf .php .pmf
.ppt .pptx .pst .pvi .py .pyc .rar .rtf .sln .sql .tar .vbox .vbs .vcb .vdi .vfd .vmc .vmdk .vmsd .vmx .vsdx .vsv .work .xls .xlsx .xvd .zip

Een ”scheduled task” wordt toegevoegd, zodat er één uur na de infectie een herstart van de machine wordt uitgevoerd.

schtasks %ws/Create /SC once /TN “” /TR “%ws” /ST %02d:%02d,at %02d:%02d %ws shutdown.exe /r /f /RU “SYSTEM” dllhost.dat,u%s \\%s -accepteula -s -d C:\Windows\System32\rundll32.exe “C:\Windows\%s”,#1wbem\wmic.exe %s /node:”%ws” /user:”%ws” /password:”%ws” process call create “C:\Windows\System32\rundll32.exe \”C:\Windows\%s\” #1 \\%s\admin$\\%ws\admin$\%ws

De Windows logbestanden worden opgeschoond om detectie te verhinderen.

wevtutil cl Setup & wevtutil cl System & wevtutil cl Security & wevtutil cl Application & fsutil usn deletejournal /D %c:

Tijdens de herstart versleutelt Petya de MFT (Master File Table) en laat een CHKDSK venster zien wat in werkelijkheid de daadwerkelijke versleuteling is. Petya overschrijft de MBR (Master Boot Record) met de ransomware melding, zodat deze melding wordt weergegeven na een herstart van de machine.

Conclusie

Er is een hoop te doen omtrent Petya. Een kijkje in de code van deze variant geeft niet echt duidelijkheid over het doel van Petya. De zelfreplicatie methode lijkt alleen bedoeld te zijn voor het locale netwerk. De infecties die vanaf het internet zijn binnen gekomen, komen hoofdzakelijk via de MeDoc update procedure. Er zijn tevens meldingen dat er via mail en een bepaalde website infecties hebben plaatsgevonden. Dit kunnen wij alleen niet bevestigen. In de code zelf zitten geen instructies om via deze kanalen te verspreiden. Dit doet enigszins de wenkbrauwen fronsen en doet vermoeden dat het om een gerichte cyberaanval gaat.

Ook zoals Petya met de versleuteling van bestanden en disks omgaat doet enige vragen opwerpen over het doel van Petya. Tijdens het versleutelen van de schijf worden de eerste 24 sector blokken van de schijf onherstelbaar gecodeerd. De vraag is of dat deze code het resultaat is van slecht coderen of dat het moedwillig is gecodeerd.

Er wordt momenteel veel gespeculeerd over de herkomst en het doel van deze variant van Petya. Wanneer je puur naar de code kijkt, kan daar weinig tot niets over worden gezegd.

Wat te doen?

  • Installeer Windows update MS17-010.
  • Zorg voor een up-to-date Windows systeem.
  • Zorg voor een up-to-date virusscanner.
  • Maak geen gebruik van het oude SMBv1 protocol.
  • Geef gebruikers niet meer rechten dan nodig.
  • Maak regelmatig back-ups.
  • Zorg dat het administrator account op het LAN verschillende wachtwoorden heeft.
  • Zet het systeem meteen uit als het CHKDSK venster verschijnt. Dit is de eigenlijke encryptie routine.
  • Betaal niet, decryptie is onmogelijk!

Methode om versleuteling tegen te gaan

Er is een methode om er voor te zorgen dat het systeem zich niet versleutelt. Petya controleert of er de perfc bestanden aanwezig zijn in de windows directory. Als deze er zijn staakt Petya de versleuteling. Onderstaande powerscript maakt deze bestanden aan.

$strFilter = “computer”
$objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain $objSearcher.SearchScope = “Subtree” $objSearcher.PageSize = 1000
$objSearcher.Filter = “(objectCategory=$strFilter)”
$colResults = $objSearcher.FindAll()
foreach ($i in $colResults) {
$objComputer = $i.GetDirectoryEntry()
echo $objComputer.Name
Set-Service -Name “winrm” -Status Running -ComputerName $objComputer.Name Invoke-Command -ComputerName $objComputer.Name -ScriptBlock {
echo “Do not remove as it protects you from being encrypted by Petya.” > c:\windows\perfc echo “Do not remove as it protects you from being encrypted by Petya.” > c:\windows\perfc.dll echo “Do not remove as it protects you from being encrypted by Petya.” > c:\windows\perfc.dat attrib +R c:\windows\perfc
attrib +R c:\windows\perfc.dll
attrib +R c:\windows\perfc.dat
} }

Note: verspreiding via SMB kwetsbaarheden wordt hier niet gestopt. Hierdoor blijft het risico op infectie aanwezig.