WannaCry.exe - An Analysis
The final course objective of Matt Kiely’s Practical Malware Analysis & Triage was to create a triage report for any sample in the course.
I chose the WannaCry
Ransomware.
Executive Summary
HashType | Sum |
---|---|
sha256 | 24D004A104D4D54034DBCFFC2A4B19A11F39008A575AA614EA04703480B1022C |
WannaCry.exe
is ransomware that appeared in 2017. It consists of one executable that contains several other binaries in it. Once executed with Administrative privieges, the ransomware begins encrypting the files on the victim’s storage. WannaCry
also attempts to reach out to other hosts on the netork via SMB and attempts to infect them. Once infected, the host will begin seeing a changed background and message dialog alerting them that their files have been encrypted and where they can send payment if they want them decrypted.
The YARA rule to identify WannaCry.exe
is the last section of this report.
High Level Technical Summary
"Execute as Administrator" -> Check www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com/
If "Host can resolve address" then
--> [Yes] "Do nothing"
else
--> [Cannot be reached] "Enabled persistence"
--> "Begin encrypting files"
--> "Display Ransom notices"
--> "Continue encrypting any new files"
--> "Attempt to spread via SMB port 445"
Endif
Malware Composition
WannaCry
or in this instance Ransomware.wannacry.exe
is a single binary that executes on the system and creates all necessary assets on the system for encryption of all files.
1
2
3
4
5
6
7
8
9
10
11
skin rose
skinparam componentStyle uml2
class WannaCry {
Creates MS Service for persistence
..
Unpack resources for Ransom notice
..
Encrypt files
}
Analysis
Basic Static Analysis
HashType | Sum |
---|---|
md5 | DB349B97C37D22F5EA1D1841E3C89EB4 |
sha1 | E889544AFF85FFAF8B0D0DA705105DEE7C97FE26 |
sha256 | 24D004A104D4D54034DBCFFC2A4B19A11F39008A575AA614EA04703480B1022C |
32-bit Portable Executable
Original filename of sample:
lhdfrgui.exe
Interesting Strings
The following strings in the binary have been found noteworthy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
%s -m security
C:\%s\qeriuwjhrf
C:\%s\%s
tasksche.exe
icacls . /grant Everyone:F /T /C /Q
\\172.16.99.5\IPC$
\\192.168.56.20\IPC$
WanaCrypt0r
WANACRY!
mssecsvc.exe
cmd.exe /c "%s"
DeleteCriticalSection
attrib +h .
There were also four references to:
1
!This program cannot be run in DOS mode.
This could be an indication that there are other, complete binaries in the package.
Basic Dynamic Analysis
No Internet Detonation
At execution, queries are being made to domains:
In particulr:
www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com: type A, class IN
Constant checking of connection
Is this querying for NFS and SMB shares?
WannaCry popup comes back if you close it
Internet Detonation
DNS Queried Succeessfully > executes GET against http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
Advanced Static Analysis
Kill Switch
InternetOpenA
prepares the application for future calls (Source: https://learn.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetopena)
InternetOpenUrlA
tests the connection to www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
using the call:
If it can, reach the destination, the program calls InternetCloseHandle
to end the internet connection and returns out without malicious action
If the Kill Switch is not activated
fcn.00408090
is called
Reaching for persistence
ChangeServiceConfig2A
is often used to change service properties and allow malware to persist.
This is WannaCry
’s pathway to calling ChangeServiceConfig2A
.
Encryption of files
The following seems to be the pathway to looping through all files and begining the encrytion process.
Execute fcn.00407f20
Which creates a Microsoft Security Center Service
, if it can open OpenSCManagerA
Then proceed to encrypting files
Finding, loading, locking and analyzing the size of resources
Moving them to their new file extension
Encrypt.
Advanced Dynamic Analysis
Because the test edi, edi
/ call to open the InternetURL was successful ZF
is 0
Flipping that to 1
allows for the execution of the ransomware to happen, despite INetSim being up
Indicators of Compromise
Network
GET against http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
Checking for networked SMB shares
Host-based
Hidden folder:
Looks like staging environment:
Also now a service – likely to encrypt that is added to the OS after detonation
YARA Rule
Below is a YARA rule that show be able to identify WannaCry in your environment.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
rule WannaCry {
meta:
last_updated = "2023-06-25"
author = "close"
description = "YARA rule for WannaCry"
strings:
$wanacryptor = "WanaCrypt0r" wide
$wanacry = "WANACRY!" fullword
$msseccenter = "mssecsvc.exe" fullword
$filepermissions_all = "icacls . /grant Everyone:F /T /C /Q" fullword
$killurl = "www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com" fullword
$tasksche = "tasksche.exe" fullword
$smb1 = "\\\\172.16.99.5\\IPC$" wide
$smb2 = "\\\\192.168.56.20\\IPC$" wide
$templatedpath = "C:\\%s\\qeriuwjhrf"
$hidden_folder = "attrib +h ."
$PE_magic_byte="MZ"
condition:
$PE_magic_byte at 0
and $wanacryptor
and $wanacry
and $msseccenter
and $filepermissions_all
and $killurl
and $tasksche
and $smb1
and $smb2
and $templatedpath
and $hidden_folder
}