Zkoumání konfigurace Trojan pro vzdálený přístup LuminosityLink

tento příspěvek je k dispozici také v: 日本語 (Japonský)

v posledních týdnech jsem strávil čas zkoumáním konfigurace vestavěného trojského koně LuminosityLink Remote Access (RAT). Pro ty, kteří nevědí, LuminosityLink je rodina malwaru, která stojí 40$, což je nástroj pro správu systému. Při spuštění však malware využívá velmi agresivní keylogger a řadu dalších škodlivých funkcí, které útočníkovi umožňují získat plnou kontrolu nad strojem oběti.

 LuminosityLink 1

Obrázek 1 web LuminosityLink

na žádost spolupracovníka jsem byl požádán, abych extrahoval konfiguraci vzorku LuminosityLink, a zatímco jsem mohl jednoduše spustit malware v prostředí s pískem a stáhnout konfiguraci z paměti, rozhodl jsem se zjistit, zda mohu provést stejnou akci proti statickému binárnímu souboru.

to mě vedlo k pochopení toho, jak je konfigurace šifrována v binárním souboru, a jak tuto konfiguraci analyzovat. Vytvořil jsem skript pro provedení této akce proti nezměněnému vzorku malwaru LuminosityLink, který budu sdílet v tomto blogu. Dále jsem se podíval na zhruba 18 000 vzorků LuminosityLink, které Palo Alto Networks shromáždil v průběhu času, a pomocí tohoto skriptu jsem byl schopen extrahovat konfigurace vzorků 14,700. (Tato data lze nalézt v části dodatku tohoto příspěvku.)

přehled LuminosityLink

původně povrch v květnu 2015, Popularita LuminosityLink je na vzestupu, jak ukazuje následující graf. K dnešnímu dni společnost Palo Alto Networks sledovala přibližně 50 000 pokusů o infekce LuminosityLink proti našim zákazníkům.

 LuminosityLink 2

Obrázek 2 autofokus graf LuminosityLink relací v průběhu času.

LuminosityLink v současné době prodává za $ 40 a lze jej zakoupit přímo od jeho autora. Tento balíček umožňuje útočníkům hostit Server LuminosityLink a generovat přizpůsobené binární soubory, které jsou zmatené ConfuserEx 0.4.0. ConfuserEx je open-source projekt, který zamlžuje základní .Čistý kód, což je mnohem obtížnější pro reverzní inženýry, kteří jej dekompilují. To je důležité si uvědomit později, když diskutujeme o určení, jak zpětně analyzovat proces šifrování.

jak již bylo zmíněno, je zahrnuto několik možností konfigurace, jak vidíme na následujícím snímku obrazovky.

 LuminosityLink 3

obrázek 3 možnosti konfigurace klienta v LuminosityLink

po provedení mají útočníci mnoho možností, včetně keyloggingu, vzdálené plochy, krádeže hesel a interakce s shellem v zařízení.

reverzní inženýrství konfigurace

prvním krokem při analýze konfigurace LuminosityLink je jeho statická extrakce. Zpočátku jsem otevřel čistý vzorek LuminosityLink pomocí programu s názvem dnSpy, abych hledal stopy, kde by mohla být konfigurace uložena. (Jako rychlý stranou, vřele doporučuji dnSpy, protože to nejen dělá skvělou práci dekompilovat poskytnuté. Net binární, ale také je vybaven vestavěným debugger, který je pomocný při řešení problémů, jako je ten, kterým čelíme.)

když jsem zpočátku otevíral binární vzorek, nečekal jsem moc, protože jsem věděl, že vzorek byl zmaten pomocí ConfuserEx. Při pohledu na zdroje vzorku jsem však viděl některé řetězce, které vypadaly slibně.

 LuminosityLink 4

obrázek 4 Vložené řetězce zdrojů v LuminosityLink

jak vidíme, malware obsahuje řadu zdrojů, které zase obsahují data kódovaná Base64. Zdroje “SMARTLOGS”, “XML” a “CONFIG” obsahují velké množství dat, která jsou v tomto okamžiku stále neznámá. Bohužel, dekódování těchto řetězců má za následek odpadky, což pravděpodobně znamená, že se pod nimi používá nějaká jiná forma šifrování.

pokračoval jsem ve zkoumání základního kódu, který, i když je zmatený, stále poskytuje představu o tom, co různé třídy dělají. Pomocí importovaných jmenných prostorů, volání API a určitých nezamlžených řetězců jsme schopni získat vodítka o tom, co se děje v programu. Konkrétně vidíme třídu fd() pomocí jmenného prostoru ‘ System.Zabezpečení.Kryptografie”, což si jistě zaslouží vyšetřování, protože jsme měli podezření, že krypto je používáno proti dříve odkazovaným řetězcům zdrojů.

 LuminosityLink 5

obrázek 5 jmenný prostor kryptografie používá LuminosityLink

jak dále zkoumáme tuto třídu, vidíme odkazy na následující třídy a funkce:

  • MD5CryptoServiceProvider
  • ComputeHash
  • FromBase64String
  • RijndaelManaged

v tomto okamžiku jsem se obrátil na svůj debugger ve snaze zjistit, jak byly tyto řetězce zpracovány. Nastavil jsem zarážky na různé dříve zmíněné hovory. Konkrétně bod zlomu na třídě Rijndaelspravované přináší vynikající výsledky.

LuminosityLink 6

obrázek 6 úspěšná obnova klíče AES-128

jsme schopni nejen ověřit, že se používá šifrování AES-128, ale také ověřit, že se používá řetězec prostředků “SMARTLOGS”. Také jsme schopni identifikovat použitý řetězec jako klíč, což je v tomto konkrétním příkladu “\\ecnOnuR\ \ noisreVtnerruC \ \ swodniW \ \ tfosorciM\\erawtfoS”. Další vyšetřování ukazuje, že tento řetězec je hashován pomocí algoritmu MD5. Prvních 15 bajtů tohoto hash je spojeno s celých 16 bajtů hash, následovaných nulovým bajtem. Tento dešifrovací proces můžeme replikovat v Pythonu jako takovém:

1
2
3
4
5
6
7
8
9
10

def decrypt_data (data, key_string):
decoded_data = base64.b64decode (data)
m = hashlib. md5 ()
m. update (key_string)
md5 = m. digest ()
key = md5+md5+ “\x00 ”
mode = AES.MODE_ECB
iv = ‘\x00 ‘ * 16
e=AES . nový (klíč, režim, iv)
návrat e.decrypt (decoded_data)

pomocí výše uvedeného kódu můžeme dále ověřit, že je to správné. V následujícím příkladu byla datová proměnná nastavena s řetězcem kódovaným base64 nalezeným v prostředku” SMARTLOGS ” a proměnná key_string byla nastavena na dříve zmíněný obrácený klíč registru.

1
2

>>> tisk decrypt_data (data, key_string)
172.16.1.100|11111|backup.dns.com|filename.exe|startup_name|folder_name|data_directory_name|backup_startup.exe / df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4 / BuildID / 1idsnb|

pomocí pokusů a omylů jsme schopni úspěšně zmapovat každou proměnnou zaznamenanou ve výše uvedené konfiguraci. Poslední proměnná se ukazuje jako docela zajímavá, protože každý znak kromě ” 1 ” mapuje konkrétní možnost konfigurace. Bylo určeno následující mapování:

  • i: povolit instalaci/spuštění klienta
  • d: modul Persistence klienta: chránit binární klient jasnosti
  • s : Tichý režim (skrýt okno svítivosti na klientském počítači)
  • a : proaktivní Anti-Malware: vyčistěte škodlivé soubory a zrychlete klientský počítač
  • n : Spořič energie: zabraňte režimu spánku a vypněte Monitor po 15 minutách nečinnosti
  • m : odstraňte soubor po spuštění (tavení)
  • v : Anti-virtuální stroje/ladění
  • h : skryjte soubor a adresáře
  • b : spuštění zálohy

pomocí těchto znalostí můžeme analyzovat výše uvedenou konfiguraci, která přináší následující výsledky.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

doména / IP: 172.16.1.100
Port: 11111
zálohování DNS: backup.dns.com
Filename: filename.exe
spouštěcí Název: startup_name
název složky: folder_name
název adresáře dat: data_directory_name
Backup Startup Exe: backup_startup. exe
Mutex: df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4
Build ID: BuildID
nastavení:
povolit instalaci/spuštění klienta
Client Persistence Module: Protect Luminosity ‘ s Client Binary
tichý režim (skrýt okno svítivosti na klientském PC)
proaktivní Anti-Malware: Vyčistěte škodlivé soubory a zrychlete klientský počítač
Spořič energie: zabraňte režimu spánku a vypněte Monitor po 15 minutách nečinnosti
odstraňte soubor po spuštění (roztavení)
Anti-virtuální stroje/ladění
skryjte soubor a adresáře
spuštění zálohy

parsování konfigurací LuminosityLink v měřítku

pomocí těchto znalostí jsme vytvořili skript pro analýzu konfigurace daného vzorku. Skript hledá řetězce, které se zdají být kódovány base64 s délkou větší než 50 a používá přístup hrubou silou. I když to není elegantní, dělá svou práci docela úspěšně. Skript si můžete stáhnout v části dodatku tohoto příspěvku na blogu.

procházením úložiště vzorků Palo Alto Networks jsme našli zhruba 18 000 souborů označených jako LuminosityLink. Pro tyto vzorky 18,000 jsme použili náš skript pro extrakci statické konfigurace a analýzu a úspěšně jsme získali asi konfigurace 4,500. Zbývající vzorky byly zabaleny nad rámec vestavěné rutiny zmatku ConfuserEx, a jako takový, nebyly přítomny řetězce konfigurace raw.

tyto vzorky byly spuštěny přes lokální instanci open-source Kukačkového pískoviště, kde byly extrahovány procesní skládky. Stejný skript byl aplikován na tyto procesní skládky, kde jsme byli schopni získat dalších 10 200 konfigurací, což nám zanechalo celkem 14 700 analyzovaných konfigurací LuminosityLink.

při zpracování vzorků byly objeveny další klíče, které autor použil. Následující další tři řetězce byly použity ke generování klíčů k vzorkům LuminosityLink.

  • tento conf ‘ ig neobsahuje nic užitečného. Přestaňte se chovat, jako byste byli v pohodě, dešifrováním.
  • zdroje.SMARTLOGS
  • zadejte heslo

zdá se, že autor LuminosityLink není bez smyslu pro humor. Dodatečně, jak jsme analyzovali starší vzorky, bylo zjištěno, že konfigurace se změnila někdy mezi únorem a červnem tohoto roku. V konfiguraci starších vzorků bylo k dispozici méně možností. Poskytnutý skript odpovídá za tyto rozdíly a různé použité klíče.

pomocí agregovaných dat ze 14 700 konfigurací byly vytaženy následující statistiky na vysoké úrovni:

LuminosityLink 7

Figure 7 Prevalence of enabled settings in LuminosityLink configurations

Top C2 TLDs/IP Addresses

  • ddnsnet
  • duckdnsorg
  • no-ipbiz
  • chickenkillercom
  • no-iporg
  • mooocom
  • fishdnscom
  • no-ipinfo
  • ignorelistcom
  • freednssu

Top Build IDs

  • HOME
  • Client
  • crtx1
  • M4CHINATION
  • CSGO
  • NEW
  • Slave
  • CAPO
  • Youtube
  • PROJECT.D

Top Executable Names

  • sysmon.exe
  • client.exe
  • helper.exe
  • repair.exe
  • winlogon.exe
  • svchost.exe
  • Luminosity.exe
  • WinCOMHost.exe
  • chrome.exe
  • windowsbootapp.exe

Horní porty

  • 6318
  • 1400
  • 1604
  • 1337
  • 3175
  • 22028
  • 9045
  • 2122
  • 100
  • 9999

analyzovaná konfigurační data poskytovaná ve formátu CSV jsou volně poskytována bezpečnostní komunitě v naději, že proti této hrozbě budou vytvořeny ochrany.

závěr

LuminosityLink, zatímco prodávaný jako nástroj pro správu systémů, je impozantní keylogger a backdoor používaný velkým počtem zločinců. K dnešnímu dni byla společnost Palo Alto Networks svědkem více než 50 000 pokusů o infekce LuminosityLink, které zahrnovaly 18 000 jedinečných vzorků. Malware je levný a snadno dostupný veřejnosti, což z něj činí nebezpečnou hrozbu jak pro organizace, tak pro jednotlivce.

pomocí reverzních vzorků LuminosityLink jsme byli schopni staticky extrahovat a analyzovat vloženou konfiguraci, což zase poskytuje cenné informace o tom, s jakými hostiteli a porty je malware nakonfigurován pro komunikaci. Poskytuje také informace o nakonfigurovaných ochran nakonfigurovaných v rámci spustitelného souboru, stejně jako informace o instalaci.

zákazníci Palo Alto Networks jsou chráněni před touto hrozbou následujícími způsoby:

značka AutoFocus může být použita ke sledování této rodiny malwaru

  • všechny vzorky LuminosityLink jsou vhodně označeny jako škodlivé v WildFire
  • všechny identifikované domény jsou označeny jako škodlivé
  • síťový provoz je vhodně identifikován a blokován jako ID hrozby #14460 (LumonosityLinkRAT.Gen Command and Control Traffic)

příloha

extrakční a parsovací skript pro vzorky LuminosityLink lze nalézt zde.

skript, který má být použit k analýze prostých konfiguračních řetězců, najdete zde.

soubor CSV obsahující všechna konfigurační data extrahovaná z ukázkové sady Palo Alto Networks najdete zde.

Získejte aktualizace z
Palo Alto
sítě!

přihlaste se k odběru nejnovějších zpráv, informací o kybernetických hrozbách a výzkumu od nás

odesláním tohoto formuláře souhlasíte s našimi Podmínkami použití a berete na vědomí naše prohlášení o ochraně osobních údajů.

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.