A closer look at the Locky ransomware

A deep and technical look into the latest ransomware called Locky.

This new file encryptor, targeting PC users, has most likely been created by authors of the well-known Dridex botnet and is spread the same way.

Locky uses all “top class” features, such as a domain generation algorithm, custom encrypted communication, TOR/BitCoin payment, strong RSA-2048+AES-128 file encryption and can encrypt over 160 different file types, including virtual disks, source codes and databases.

We monitored the Locky family this past month and discovered a second variant of the malware, which has new features and program code improvements. Locky’s authors added a new hard-coded seed to the domain generation algorithm, which allows them to deactivate Locky on Russian PCs.

Infection vector

Locky is spreading via spam email campaigns that are similar to those used by the Dridex botnet. They use similar file names, obfuscation, email content and structure of download URLs.

We have observed three different campaign versions of Locky and have described them below.

Below is an example of one of the spam emails. The emails are designed to make people believe they were sent from large companies such as Nordstrom, Symantec and Crown Holdings.


infected phishing email

We found different malicious documents (Word, Excel, etc.) attached to the emails that include macros with obfuscated Visual Basic Script (VBS). The malware authors use social engineering to get people to enable the by default disabled macros. The malicious code contains autoopen() sub, which triggers the VBS to automatically run once the macros have been enabled.

doc_macro_autoopen.png

Campaign version one

camp_01.png

The authors of Locky used uncommon obfuscation via the CallByName function and a significant string to generate the VBS code.

camp_01_string.png

The obfuscation is simple and is the same obfuscation as found inside Dridex email campaigns. The download  URL is “encrypted” and hard-coded as an array.

VBS after deobfuscation:

malicious ransomware code

Campaign version two

camp_02.png

 

In the second campaign, the author used more complicated obfuscation over script files and added more steps before downloading the final PE binary file.

Obfuscated batch file:

camp_02_batch_obf.png

Final deobfuscation Visual Basic Script:

camp_02_deobf.png

Execution script and hard-coded plaintext download URL:

camp_02_url.png

Campaign version three

camp_03.png

We also spotted emails with a very generic obfuscated JavaScript downloader inside the Zip archives.

camp_03_obf.png

Here, we saw the same downloader that was featured in Campaign version two. In this case, however, it was just rewritten in JavaScript language.

Here is the JavaScript after deobfuscation:

camp_03_deobf.png

Downloading and executing the Locky malware is the last and final step of all of the three mentioned campaigns.

We also spotted two specific types of download URLs inside the infected documents and archives.



Domain Type 1

Domain Type 2

ecoledecorroy.be/1/1.exe

onigirigohan.web.fc2.com/1/1.exe

killerjeff.free.fr/2/2.exe

lasmak.pl/2/2.exe

animar.net.pl/3/3.exe

uponor.otistores.com/3/3.exe

premium34.tmweb.ru/4/4.exe

suicast.de/4/4.exe

bebikiask.bc00.info/5/5.exe

ratgeber-beziehung.de/5/5.exe

proteusnet.it/6/6.exe

test.rinzo.biz/6/6.exe

avp-mech.ru/7/7.exe

luigicalabrese.it/7/7.exe

173.214.183.81/~tomorrowhope/09u8h76f/65fg67n

66.133.129.5/~chuckgilbert/09u8h76f/65fg67n

iynus.net/~test/09u8h76f/65fg67n


mondero.ru/system/logs/56y4g45gh45h  

neways-eurasia.com.ua/system/logs/7647gd7b43f43.exe

tcpos.com.vn/system/logs/56y4g45gh45h

tramviet.vn/system/logs/7647gd7b43f43.exe

www.bag-online.com/system/logs/56y4g45gh45h

choobyta.com/system/logs/23f3rf33.exe

bitmeyenkartusistanbul.com/system/logs/87h754/

shop.havtoto.bget.ru/system/logs/45g456jhyfg


www.iglobali.com/34gf5y/r34f3345g.exe

www.jesusdenazaret.com.ve/34gf5y/r34f3345g.exe

www.southlife.church/34gf5y/r34f3345g.exe

www.villaggio.airwave.at/34gf5y/r34f3345g.exe


Malicious documents from campaign version two use a very specific Base64 decode function written in Visual Basic Script, which we also discovered inside other Banker/Banload/RAT malware campaigns in Brazil.

vbs_debase.png

Locky file cryptor

We first saw samples of Locky spreading without a PE packer, which is strange as malware usually contains generic PE packers to avoid AV detections.

Below is a graph of newly infected countries, day by day (DD/MM/YYYY). There are three peaks, which represent new campaigns targeting different geo-locations. The total count of infected countries is over 160.


country_hits.png



Date

Count

Infected countries

18.02. 2016

18

Brazil, Viet Nam, South Africa, Ghana, Lithuania, Bulgaria, Kuwait, Croatia, Namibia, Germany, France, Spain, Ukraine, Peru, Mexico, Chile, Ecuador, United States

19.02. 2016

24

Philippines, India, Austria, Lebanon, South Korea, Thailand, Slovenia, Czech Republic, Hungary, Moldova, Belgium, Italy, Greece, Romania, Netherlands, Indonesia, Poland, Morocco, Ireland, Kenya, Bolivia, Costa Rica, Jamaica, Colombia

20.02. 2016

2

Malaysia, Paraguay

21.02. 2016

1

Argentina

22.02. 2016

4

Serbia, Luxembourg, Singapore, Bangladesh

23.02. 2016

2

Finland, Puerto Rico

24.02.2016

12

Sri Lanka, Saudi Arabia, Brunei Darussalam, Pakistan, Cambodia, Great Britain, Taiwan, Guatemala, Curacao, Canada, Portugal, Japan

25.02. 2016

4

Bosnia and Herzegovina, Azerbaijan, Tunisia, Slovakia

26.02. 2016

22

Australia, Hong Kong, Israel, Kyrgyzstan, Turkey, Switzerland, Estonia, Sweden, Denmark, Guadeloupe, Russian Federation, Malta, Egypt, Reunion, Norway, China, Martinique, Macedonia, United Arab Emirates, Barbados, Cyprus, Venezuela

27.02. 2016

4

Quatar, Maledives, Zimbabwe, Algeria

28.02. 2016

5

Panama, Jordan, Djibouti, Congo, Uruguay

29.02. 2016

7

Georgia, Latvia, Uganda, Gabon, Angola, Nigeria, Cameroon

01.03. 2016

6

Comoros, Congo, Senegal, Nicaragua, New Caledonia, El Salvador

02.03. 2016

6

New Zealand, Botswana, Niger, Madagascar, Haiti, Côte d’Ivoire

03.03. 2016

5

Belarus, Kazakhstan, Iraq, Armenia, Dominican Republic

04.03. 2016

3

Mauritius, Benin, Honduras

05.03. 2016

22

Zambia, Mali, Liechtenstein, Cabo Verde, Iceland, Yeman, Guernsey, Macao, Palestine, Monaco, Tanzania, Guyana, Bahamas, Bahrain, Togo San Marino, Cook Islands, Malawi, Vatican City State, Vanuatu, Grenada, French Polynesia

06.03. 2016

11

Northern Mariana Islands, Oman, Seychelles, Nepal, Liberia, Libya, Gibraltar, Andorra, Montenegro, Åland Islands, Saint Kitts and Nevis

07.03. 2016

9

French Guiana, Mongolia, Lao People’s Democratic Republic, Tonga, Turkmenistan, Ethiopia, Mozambique, Albania, Swaziland



The top 10 countries that have encountered Locky are: France, Italy, Germany, Spain, USA, Great Britain, Poland, Japan, Czech Republic, and Canada.

Persistence

After its execution, the Locky binary is copied to the %TEMP% directory and renamed to svchost.exe, to make it difficult for people to find and delete. The malware then removes the :Zone.Identifier flag from the newly created svchost.exe file (to bypass the “File Downloaded from the Internet” warning) and executes it.

zone_ident.png

The first downloaded Locky binary is moved to the %TEMP% directory, renamed as “sys*.tmp” and deleted by cmd.exe.

cmd_del_origin.png

Locky also sets a registry value to Software\Microsoft\Windows\CurrentVersion\Run in case the infected PC is restarted before the malware encrypts all the files. In this case, Locky encrypts the files during the next session.

currentversion_run.png

The malware creates a new process with the CommandLine value “vssadmin.exe Delete Shadows /All /Quiet” and deletes stored data from Volume Shadow Copy Service. This action prevents a backup retrieval or system restore from previous saved data on an infected computer.

mountvol_olly.png

The malware then adds a “completed=1” value to the Locky registry key and deletes the previously added ..\CurrentVersion\Run value after encrypting all possible files. It also opens an instruction text file,creates an image file from txt and sets an instruction image as the computer’s desktop wallpaper.

completed_after_encrypt.png

The malware’s process is closed and the malicious svchost.exe file is deleted from the %TEMP% directory in the last step.

C&C servers

Locky contains hard-coded IP addresses of C&C (Command and Control) servers and also uses a domain generation algorithm, which is probably used as a backup in case the main hard-coded IPs are blocked.

C&C servers are used for reporting infections and to exchange encryption keys.

communication_wire.png

Domain Generation Algorithm (DGA)

The original domain generation algorithm was based on two hard-coded seeds and the current system time of an infected machine. This DGA version generates six unique domains every two days.

dga.png

The authors decided to change the DGA by a less deterministic algorithm after a quick domains block or sinkhole from AVs. This version of DGA is now based on seed value hard-coded to malware binary and this seed can be changed at any time or in every sample. It also generates eight unique domains every two days.

dga2.png

Both versions use the following Top Level Domains:

.be, .de, .eu, .fr, .in, .it, .nl, .pm, .pw, .ru, .tf, .uk, .us, .yt.

You can download both DGA Python scripts here and here.

List of hard-coded IP addresses:


Hard-coded IP

ISP/Organization/Geolocation

Resolved IP

5.34.183.136

Ua Servers, UA

skaldin.uaservers.net

31.41.47.3

RelinkRoute, Relink LTD, RU

31.41.47.3

31.41.47.37

RelinkRoute, Relink LTD, RU

casader.ce

31.184.233.106

Virty.io Network, Virty.io, RU

31.184.233.106

46.4.239.76

Hetzner-rz-fks, ObjectNova, DE

static.76.239.4.46.clients.your-server.de

85.25.138.187

PlusServer AG, BSB-Service GmbH, DE

echo509.dedicatedpanel.com

86.104.134.144

One Telecom SRL, MD

144.onetelecom.md

91.121.97.170

Ovh Isp, Ovh Sas, FR

ns353643.ip-91-121-97.eu

91.195.12.185

Host4.Biz, PE Astakhov Pavel Viktorovich, UA

91-195-12-185.net.host4.biz

91.234.33.206

FOP Sedinkin Olexandr Valeriyovuch, UA

client.thehost.com.ua

94.242.57.45

NET Network & vStoike.com DC, RU

mail.hsaworkshop.ru

95.181.171.58

Qwarta.ru, QWARTA LLC, RU

95.181.171.58

109.237.111.168

Adman, Krek Ltd., RU

109.237.111.168

109.234.38.35

Vdsina, RU

qikos.sa

185.14.29.188

Camper Solutions, NL

skaldin11.example.com

185.14.30.97

Camper Solutions, NL

vepliok.pq

185.46.11.239

Agava, RU

kvm17915.hv9.ru

185.82.216.213

Itldc1-sof1, BG

skaldin21.example.com

188.138.88.184

Plusserver AG, intergenia AG, DE

xray730.dedicatedpanel.com

192.71.213.69

RIPE Network Coordination Center. FR

335.ES.multiservers.xyz

192.121.16.196

EDIS GmbH, AT

335.NL.multiservers.xyz

193.124.181.169

MAROSNET Telecommunication Company Network, RU

test.ru

195.154.241.208

Online SAS, FR

304.worldit.xyz

212.47.223.19

LINXTELECOM Linx Telecommunications B.V., EE

ought-scan.retirecompet.com.223.47.212.in-addr.arpa


Nine servers are located in Russia, three in Germany and the rest is in France, Ukraine, the Netherlands, Austria, Bulgaria, Estonia and Moldova.

C&C communication

All C&C requests are in a specific format:

HTTP/1.1 POST http://{hardcoded_IP_or_DGA}/.main.php?{parameters}

Parameters

The malware computes a User ID and gathers some information about the infected machine. The User ID isn't randomly generated, but is instead computed as a MD5 hash of volume mount point GUID from the infected machine’s hard disk. The GUID can be displayed if the cmd.exe is run and the “mountvol” command is entered.

mountvol_olly.png

Locky checks the infected device’s operating system version and checks if it is a 32/64 bit version, has the original installed service pack and which language the PC is set to, to determine in which language it should show the ransom message. The parameters AffiliateID, C&C command and two others parameters &corp= and &serv= are also requested by the C&C server. The Affiliate ID value is hard-coded inside Locky’s binary. We found AffiliateIDs with the values 0, 1 and 3.

All parameters merged together:

request.png

Parameters of Locky C&C command “&act=”:


Parameter

Action

getkey

Request public RSA key.

stats&path + encrypted, failed, length

Global statistics of encryption and paths of encrypted files.

report&data

List of all encrypted files.

gettext&lang

Request Locky language files.


The entire malware traffic is encrypted with two different algorithms for incoming and outgoing data -- both algorithms contain specific hard-coded keys. Both incoming and outgoing traffic data includes a MD5 hash as a CRC of the data content.

traffic_decrypt.png

File encryption

The malware starts encrypting files only after it reports the infection to the C&C server and gets back the RSA public key. Locky does not begin encrypting files without a requested RSA key or when a device is disconnected from the Internet. Public and private RSA keys for every infection are generated on the server’s side, so manual decryption is impossible.

Attackers use RSA-2048 + AES-128 cipher with ECB mode for file encryption. All encrypted files are renamed to form {USERID}{random_hash} with .locky extension.

crypto.png

Affected file types

Locky malware can encrypt 164 file types that can be broken down into 11 categories:


Office/Document files (62x):

.123, .602, .CSV, .dif, .DOC, .docb, .docm, .docx, .DOT, .dotm, .dotx, .hwp, .mml, .odg, .odp, .ods, .odt, .otg, .otp, .ots, .ott, .pdf, .pot, .potm, .potx, .ppam, .pps, .ppsm, .ppsx, .PPT, .pptm, .pptx, .RTF, .sldm, .sldx, .slk, .stc, .std, .sti, .stw, .sxc, .sxd, .sxi, .sxm, .sxw, .txt, .uop, .uot, .wb2, .wk1, .wks, .xlc, .xlm, .XLS, .xlsb, .xlsm, .xlsx, .xlt, .xltm, .xltx, .xlw, .xml

Scripts/Source codes (23x):

.asm, .asp, .bat, .brd, .c, .class, .cmd, .cpp, .cs, .dch, .dip, .h, .jar, .java, .js, .pas, .php, .pl, .rb, .sch, .sh, .vb, .vbs

Media files (20x):

.3g2, .3gp, .asf, .avi, .fla, .flv, .m3u, .m4u, .mid, .mkv, .mov, .mp3, .mp4, .mpeg, .mpg, .swf, .vob, .wav, .wma, .wmv

Graphic/Image files (14x):

.bmp, .cgm, .djv, .djvu, .gif, .jpeg, .jpg, .NEF, .png, .psd, .raw, .svg, .tif, .tiff

Database files (14x):

.db, .dbf, .frm, .ibd, .ldf, .mdb, .mdf, .MYD, .MYI, .odb, .onenotec2, .sql, .SQLITE3, .SQLITEDB

Archives (11x):

.7z, .ARC, .bak, .gz, .PAQ, .rar, .tar, .bz2, .tbk, .tgz, .zip

CAD/CAM/3D files (8x):

.3dm, .3ds, .asc, .lay, .lay6, .max, .ms11, .ms11 (Security copy)

Certificates (5x):

.crt, .csr, .key, .p12, .pem

Virtual HDD (4x):

.qcow2, .vdi, .vmdk, .vmx

Data encryption (2x):

.aes, .gpg

Virtual currency (1x):

wallet.dat

Because the file type range is very wide, this malware can also affect a large number of businesses. Especially interesting are the.ms11 file types, which are created by the CAD application used for printed circuit boards. File types from the Virtual HDD category are also interesting, as they are used by many developers, testers or virtualized business solutions.

Locky also adds “_Locky_recover_instructions.txt” file to every directory with encrypted files and also sets “_Locky_recover_instructions.bmp” as desktop wallpaper.

Locky encrypts files on all fixed drives, removable drives and also on RAM disk drives. Remote drives are not affected.

affecting_disks.png

We discovered some changes inside the newer Locky binary version. The algorithm is more precious and accurate now.

affecting_disks2.png

Exclusion of Russian PCs

The newer version of the malware contains a new hard-coded config value to disable Locky’s encryption on PCs whose locale is set to Russia or whose language is set to Russian (0x19). The hard-coded config value also determines how long Locky should remain dormant after its execution to avoid sandbox detections.

exclude_ru.png

Configuration structure

Malware samples from the newer version contain hard-coded configuration data. Included are AffiliateID (DWORD), DGA seed value (DWORD), count of second for Sleep (DWORD), create %TEMP%\svchost.exe (BYTE), set Locky to \CurrentVersion\RUN registry (BYTE), exclude RU machines and list of hard-coded IPs.

config.png

Locky payment method

Locky’s payment system for decrypting files is the same as that of numerous other ransomwares. Locky’s website is hidden inside the Tor network and the ransom can only be paid with BitCoins. The decryption price is likely based on how many files are encrypted and the ransom value typically starts at 0.5 BitCoins.

Locky’s decryptor can be found on the following TOR sites:

6dtxgqam4crv6rr6.onion

i3ezlvkoi7fwyood.onion

lpholfnvwbukqwye.onion

twbers4hmi6dc65f.onion

Locky’s authors changed the design of the decryptor webpage during its campaign.

Original design:

tor_page.png

New design:


tor_page_new.png

You can download the Locky decryptor after the payment has been verified. The decryptor contains a hard-coded private RSA key and it’s also possible to decrypt files with other stored key files using the /key: parameter.

decryptor.png

Traces

Inside some of Locky’s malicious documents, we uncovered several strings which shed light on the malware’s authors. As previously mentioned, the Locky creators are probably the same or closely connected to the Dridex group, as they use the same obfuscation techniques and spam email campaign.

We also suspect that the authors are from Russia, because many of their C&C servers are there and because they added a function to the newer Locky binary to exclude Locky from infecting Russian PCs.

While taking a close look at Locky’s strings, we discovered that certain malicious documents contained file path strings that include PC user names. Yikes!

trace_01.png

trace_02.png

Conclusions

Locky ransomware is currently a big player in the malware sphere. When looking into Locky, we can see all top features, such as a time-based DGA system, huge spam email campaigns, various scripting languages, generic PE packers, server-side encryption key generation and Tor/BitCoin payment.

The authors of Locky are skilled and are developing Locky further. They reacted to the AV industry blocking their C&C server infrastructure by changing the DGA algorithm and also patched some minor bugs in the newer version.

File encryption malware is currently very popular and can be very profitable. We therefore predict new ransomware families will emerge this year.

How to stay safe

  • As always, don’t open suspicious attachments (e.g. .doc, .xls, and .zip files)
  • Disable Microsoft Office macros by default and never enable macros in strange/unknown attachments that you receive via email
  • Keep recent backup copies of important data in a secure place either online or offline
  • Ensure that your system and applications are fully updated and patched
--> -->