Undersøgelse af LuminosityLink Remote Access Trojan Configuration

dette indlæg er også tilgængeligt i: Karl (japansk)

i de seneste uger har jeg brugt tid på at undersøge luminositylink Remote Access Trojans (Rat) indlejrede konfiguration. For de uvidende er LuminosityLink en ondsindet familie, der koster $40, der foregiver at være et systemadministrationsværktøj. Når den udføres, udnytter den imidlertid en meget aggressiv keylogger, samt en række andre ondsindede funktioner, der gør det muligt for en angriber at få fuld kontrol over en offermaskine.

LuminosityLink 1

Figur 1 LuminosityLink hjemmeside

på anmodning af en kollega blev jeg bedt om at udtrække konfigurationen af en LuminosityLink-prøve, og selvom jeg simpelthen kunne have udført ondsindet program i et sandkassemiljø og trukket konfigurationen fra hukommelsen, valgte jeg at se, om jeg kunne udføre den samme handling mod den statiske binære.

dette førte til, at jeg forstod, hvordan konfigurationen er krypteret inden for binær, samt hvordan man analyserer denne konfiguration. Jeg har oprettet et script til at udføre denne handling mod en uændret LuminosityLink-prøve, som jeg vil dele i dette blogindlæg. Desuden kiggede jeg på de cirka 18.000 LuminosityLink-prøver, som Palo Alto-netværk har samlet over tid, og ved hjælp af dette script var jeg i stand til at udtrække konfigurationerne på 14.700 prøver. (Disse data kan findes i Appendiksafsnittet i dette indlæg.)

oversigt over LuminosityLink

oprindeligt overfladebehandlet i maj 2015 har Luminositylinks popularitet været stigende, som vist i det følgende diagram. Til dato har Palo Alto-netværk sporet cirka 50.000 forsøg på infektioner af LuminosityLink mod vores kunder.

LuminosityLink 2

figur 2 autofokus graf over LuminosityLink sessioner over tid.

LuminosityLink sælger i øjeblikket for $40 og kan købes direkte fra forfatteren. Denne pakke giver angribere mulighed for at være vært for en LuminosityLink-server samt generere tilpassede binære filer, der er tilsløret med 0.4.0. Det er et open source-projekt, der tilslører det underliggende .NETKODE, hvilket gør det meget vanskeligere for omvendte ingeniører, der dekompilerer det. Dette er vigtigt at bemærke til senere, når vi diskuterer at bestemme, hvordan man reverse-engineer krypteringsprocessen.

som tidligere nævnt er et antal konfigurationsindstillinger inkluderet, som vi kan se i det følgende skærmbillede.

LuminosityLink 3

figur 3 Klientkonfigurationsindstillinger i LuminosityLink

når de er udført, får angribere et væld af muligheder, herunder keylogging, Fjernskrivebord, adgangskodestjæling og interaktion med en skal på enheden.

Reverse-Engineering konfigurationen

det første trin i parsing ud konfigurationen af LuminosityLink er at udtrække det statisk. Jeg åbnede oprindeligt en ren LuminosityLink-prøve ved hjælp af et program ved navn dnSpy for at søge efter spor om, hvor konfigurationen kan gemmes. (Som en hurtig side anbefaler jeg stærkt dnSpy, da det ikke kun gør et godt stykke arbejde med at dekompilere den medfølgende.net binære, men det er også udstyret med en indbygget debugger, som er medvirkende til at tackle problemer som den, vi står overfor.)

da jeg oprindeligt åbnede en prøve binær, forventede jeg ikke meget, da jeg vidste, at prøven var forvirret ved hjælp af forvirring. Men når jeg så på ressourcerne i prøven, så jeg nogle strenge, der så lovende ud.

LuminosityLink 4

figur 4 indlejrede ressourcestrenge i LuminosityLink

som vi kan se, indeholder programmet et antal ressourcer, der igen indeholder, hvad der ser ud til at være Base64-kodede data. Ressourcerne” SMARTLOGS”,” SML “og” CONFIG ” indeholder alle et væld af data, som på dette tidspunkt stadig er ukendt. Desværre resulterer afkodning af disse strenge i affald, hvilket sandsynligvis betyder, at en anden form for kryptering bruges nedenunder.

jeg fortsatte med at undersøge den underliggende kode, som, selvom den er forvirret, stadig giver en ide på højt niveau om, hvad forskellige klasser laver. Ved hjælp af importerede navneområder, API-opkald og visse un-tilslørede strenge, vi er i stand til at få fingerpeg om, hvad der foregår i programmet. Specifikt ser vi FD () – klassen ved hjælp af navneområdet for ‘System.Sikkerhed.Kryptografi’, som bestemt fortjener undersøgelse, da vi mistænkte, at krypto blev brugt mod de tidligere refererede ressourcestrenge.

LuminosityLink 5

figur 5 kryptografi navneområde bruges af LuminosityLink

når vi yderligere undersøger denne klasse, ser vi henvisninger til følgende klasser og funktioner:

  • MD5CryptoServiceProvider
  • ComputeHash
  • FromBase64String
  • RijndaelManaged

på dette tidspunkt vendte jeg mig til min debugger i et forsøg på at se, hvordan disse strenge blev håndteret. Jeg sætter breakpoints på forskellige opkald, der tidligere er nævnt. Specifikt giver breakpoint på RijndaelManaged-klassen fremragende resultater.

LuminosityLink 6

figur 6 vellykket gendannelse af AES-128-tasten

vi er i stand til ikke kun at kontrollere, at AES-128-kryptering bruges, men også kontrollere, at ressourcestrengen “SMARTLOGS” bruges. Vi er også i stand til at identificere den streng, der bruges som nøglen, som i dette særlige eksempel er “\\ecnOnuR\\noisreVtnerruC\\tfosorcim\\eravtfos”. Yderligere undersøgelse afslører, at denne streng hashes ved hjælp af MD5-algoritmen. De første 15 bytes af denne hash er sammenkædet med hele 16 bytes af hash, efterfulgt af en null byte. Vi kan replikere denne dekrypteringsproces i Python som sådan:

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.opdatering (key_string)
md5 = m.digest ()
key = md5+md5+”\H00″
mode = AES.MODE_ECB
iv = ‘\H00’ * 16
e = AES.ny (nøgle, tilstand, iv)
retur e.decrypt (decoded_data)

vi kan yderligere kontrollere, at dette er korrekt ved hjælp af ovenstående kode. I det følgende eksempel er datavariablen indstillet med den base64-kodede streng, der findes i ressourcen “SMARTLOGS”, og key_string-variablen er indstillet til den omvendte registreringsdatabasenøgle, der tidligere er nævnt.

1
2

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

ved hjælp af forsøg og fejl kan vi med succes kortlægge hver variabel, der er vidne til i ovenstående konfiguration. Den sidste variabel viser sig at være ganske interessant, da hvert tegn undtagen ‘1’ kortlægger en bestemt konfigurationsmulighed. Følgende kortlægning blev bestemt:

  • i: aktiver Klientinstallation / opstart
  • d: klient Persistensmodul: Beskyt Luminosity ‘ S Client Binary
  • s : Lydløs tilstand (Skjul Luminositetsvindue på klient-PC)
  • a : proaktiv Anti-ondsindet program: rengør ondsindede filer og fremskynde klient-PC
  • n : strømbesparelse: forhindre dvaletilstand og sluk for skærmen efter 15 minutters inaktivitet
  • m : Fjern fil efter udførelse (smelte)
  • v : Anti-virtuelle maskiner/fejlfinding
  • h : skjul fil og mapper
  • B : backup startup

ved hjælp af denne viden kan vi analysere ovenstående konfiguration, som giver følgende resultater.

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

domæne / IP: 172.16.1.100
Port: 11111
Backup DNS: backup.dns.com
filnavn: filnavn.eks
Opstartsnavn: startup_name
mappenavn: folder_name
data mappenavn: data_directory_name
Backup opstart eks: backup_startup.eks
Muteks: df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4
Byg ID: BuildID
indstillinger:
aktiver Klientinstallation/opstart
klient Persistensmodul: Beskyt luminosity ‘ s client Binary
lydløs tilstand (Skjul luminositetsvindue på klient-pc)
proaktiv: Rengør ondsindede filer og fremskynde klient-PC
strømbesparelse: forhindre dvaletilstand og sluk for skærmen efter 15 minutters inaktivitet
Fjern fil efter udførelse (smelte)
Anti-virtuelle maskiner/Debugging
skjul fil og mapper
Backup opstart

analyse af LuminosityLink-konfigurationer i skala

ved hjælp af denne viden oprettede vi et script til at analysere konfigurationen af en given prøve. Scriptet søger efter strenge, der ser ud til at være base64-kodet med en længde større end 50 og tager en brute-force tilgang. Selvom det ikke er elegant, gør det jobbet ganske succesfuldt. Scriptet kan hentes i afsnittet Appendiks i dette blogindlæg.

går gennem Palo Alto netværk repository af prøver, fandt vi omkring 18.000 filer mærket som LuminosityLink. For disse 18.000 prøver anvendte vi vores statiske konfigurationsekstraktions-og analysescript og hentede med succes omkring 4.500 konfigurationer. De resterende prøver blev pakket ud over den indbyggede Forvrængningsrutine, og som sådan var de rå konfigurationsstrenge ikke til stede.

disse prøver blev kørt gennem en lokal forekomst af open source gøg sandkasse, hvor processen lossepladser blev ekstraheret. Det samme script blev anvendt på disse procesdumper, hvor vi var i stand til at opnå yderligere 10.200 konfigurationer, hvilket efterlod os i alt 14.700 parsede LuminosityLink-konfigurationer.

da prøverne blev behandlet, blev yderligere nøgler opdaget at blive brugt af forfatteren. Følgende yderligere tre strenge blev brugt til at generere nøglerne til LuminosityLink-prøver.

  • denne conf ‘ ig indeholder intet nyttigt. Afslut handler som om du er cool ved at dekryptere det.
  • ressourcer.SMARTLOGS
  • Angiv en adgangskode

det ser ud som om forfatteren af LuminosityLink ikke er uden sans for humor. Derudover, da vi analyserede ældre prøver, det blev opdaget, at konfigurationen foretog en ændring engang mellem februar og juni i år. Færre muligheder var tilgængelige i konfigurationen af ældre prøver. Det medfølgende script tegner sig for disse forskelle og forskellige anvendte nøgler.

ved hjælp af de aggregerede data fra de 14.700 konfigurationer blev følgende statistikker på højt niveau trukket:

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.eks

Top Porte

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

de parsede konfigurationsdata, der leveres i CSV-filformatet, leveres frit til sikkerhedssamfundet i håb om, at der oprettes beskyttelse mod denne trussel.

konklusion

LuminosityLink, mens det markedsføres som et systemadministrationsværktøj, er en formidabel keylogger og bagdør, der bruges af et stort antal kriminelle. Til dato har Palo Alto-netværk været vidne til over 50.000 forsøg på infektioner af LuminosityLink, der omfatter 18.000 unikke prøver. Det er billigt og let tilgængeligt for offentligheden, hvilket gør dette til en farlig trussel for både organisationer og enkeltpersoner.

ved reverse engineering LuminosityLink samples var vi i stand til Statisk at udtrække og analysere den indlejrede konfiguration, hvilket igen giver værdifuld information om, hvilke værter og porte programmet er konfigureret til at kommunikere. Det giver også oplysninger om konfigurerede beskyttelser konfigureret i den eksekverbare, samt installationsoplysninger.

Palo Alto-netværkskunder er beskyttet mod denne trussel på følgende måder:

et autofokus-tag kan bruges til at spore denne ondsindede programfamilie

  • alle LuminosityLink-prøver er korrekt markeret som ondsindede i løbeild
  • alle identificerede domæner er markeret som ondsindede
  • netværkstrafik identificeres og blokeres korrekt som trussel id #14460 (lumonositylinkrat.General Command and Control Traffic)

Appendiks

et ekstraktions-og analysescript for LuminosityLink-prøver kan findes her.

et script, der skal bruges til at analysere almindelige konfigurationsstrenge, kan findes her.

en CSV-fil, der indeholder alle konfigurationsdata udvundet fra Palo Alto netværk prøve sæt kan findes her.

Få opdateringer fra
Palo Alto
netværk!

Tilmeld dig for at modtage de seneste nyheder, cyber threat intelligence og forskning fra os

ved at indsende denne formular accepterer du vores brugsbetingelser og anerkender vores fortrolighedserklæring.

Write a Comment

Din e-mailadresse vil ikke blive publiceret.