Undersöka LuminosityLink Remote Access Trojan Configuration

detta inlägg finns också tillgängligt i: Macau (japanska)

under de senaste veckorna har jag spenderat tid på att undersöka luminositylink Remote Access Trojan (Rat) inbäddad konfiguration. För de omedvetna är LuminosityLink en malware-familj som kostar $40 som utger sig för att vara ett systemadministrationsverktyg. Men när den körs utnyttjar skadlig programvara en mycket aggressiv keylogger, liksom ett antal andra skadliga funktioner som gör det möjligt för en angripare att få full kontroll över en offermaskin.

LuminosityLink 1

Figur 1 LuminosityLink webbplats

på begäran av en kollega blev jag ombedd att extrahera konfigurationen av ett LuminosityLink-prov, och medan jag helt enkelt kunde ha utfört skadlig programvara i en sandboxad miljö och drog konfigurationen från minnet valde jag att se om jag kunde utföra samma åtgärd mot den statiska binären.

detta ledde till att jag förstod hur konfigurationen är krypterad inom binären, liksom hur man analyserar den konfigurationen. Jag har skapat ett skript för att utföra denna åtgärd mot ett oförändrat LuminosityLink malware-prov, som jag kommer att dela i det här blogginlägget. Dessutom tittade jag på de ungefär 18 000 LuminosityLink-proverna Palo Alto Networks har samlat över tiden, och med hjälp av detta skript kunde jag extrahera konfigurationerna av 14 700 prover. (Dessa uppgifter Finns i avsnittet bilaga i detta inlägg.)

översikt över LuminosityLink

ursprungligen ytbehandling i maj 2015 har Luminositylinks popularitet ökat, vilket visas i följande diagram. Hittills har Palo Alto Networks spårat cirka 50 000 försök till infektioner av LuminosityLink mot våra kunder.

LuminosityLink 2

Figur 2 autofokus diagram över LuminosityLink sessioner över tiden.

LuminosityLink säljer för närvarande för $40 och kan köpas direkt från författaren. Detta paket tillåter angripare att vara värd för en LuminosityLink-server samt generera anpassade binärer, som är förvirrade med ConfuserEx 0.4.0. ConfuserEx är ett open source-projekt som fördunklar det underliggande .NET-kod, vilket gör det mycket svårare för omvända ingenjörer som dekompilerar det. Detta är viktigt att notera för senare när vi diskuterar att bestämma hur man reverserar krypteringsprocessen.

som tidigare nämnts ingår ett antal konfigurationsalternativ, som vi kan se i följande skärmdump.

LuminosityLink 3

Figur 3 Klientkonfigurationsalternativ i LuminosityLink

när de har körts får angripare en mängd alternativ, inklusive keylogging, fjärrskrivbord, lösenordsstöld och interaktion med ett skal på enheten.

Reverse-Engineering konfigurationen

det första steget i att analysera konfigurationen av LuminosityLink är att extrahera den statiskt. Jag öppnade ursprungligen ett rent LuminosityLink-prov med ett program som heter dnSpy för att söka efter ledtrådar om var konfigurationen kan lagras. (Som en snabb sida rekommenderar jag starkt dnSpy, eftersom det inte bara gör ett bra jobb med att dekompilera den medföljande.Net-binären, men den är också utrustad med en inbyggd debugger, vilket är avgörande för att hantera problem som den vi står inför.)

när jag först öppnade ett prov binärt, förväntade jag mig inte mycket eftersom jag visste att provet var obfuscated med ConfuserEx. Men när jag tittade på provets resurser såg jag några strängar som såg lovande ut.

LuminosityLink 4

Figur 4 inbäddade resurssträngar i LuminosityLink

som vi kan se innehåller skadlig programvara ett antal resurser som i sin tur innehåller vad som verkar vara Base64-kodade data. Resurserna” SMARTLOGS”, “XML” och “CONFIG” innehåller alla en mängd data, som vid denna tidpunkt fortfarande är okänd. Tyvärr resulterar avkodning av dessa strängar i skräp, vilket sannolikt innebär att någon annan form av kryptering används under.

jag fortsatte att undersöka den underliggande koden, som, trots att den är obfuscated, fortfarande ger en hög nivå uppfattning om vad olika klasser gör. Med hjälp av importerade namnrymder, API-anrop och vissa un-förvrängda strängar, vi kan få ledtrådar om vad som händer inom programmet. Specifikt ser vi fd () – klassen med hjälp av namnområdet ‘System.Säkerhet.Kryptografi’, som verkligen förtjänar utredning eftersom vi misstänkte att krypto användes mot de tidigare refererade resursträngarna.

LuminosityLink 5

Figur 5 Cryptography namespace används av LuminosityLink

när vi ytterligare undersöker denna klass ser vi referenser till följande klasser och funktioner:

  • MD5CryptoServiceProvider
  • ComputeHash
  • FromBase64String
  • RijndaelManaged

vid denna tidpunkt vände jag mig till min debugger i ett försök att se hur dessa strängar hanterades. Jag ställer in brytpunkter på olika samtal som tidigare nämnts. Specifikt ger brytpunkten på RijndaelManaged-klassen utmärkta resultat.

LuminosityLink 6

Figur 6 framgångsrik återställning av AES-128-tangenten

vi kan inte bara verifiera att AES-128-kryptering används, utan också verifiera att resurssträngen “SMARTLOGS” används. Vi kan också identifiera strängen som används som nyckel, vilket i det här exemplet är “\\ecnOnuR\\noisreVtnerruC\\swodniW\\tfosorciM\\erawtfoS”. Ytterligare undersökning visar att denna sträng hashas med MD5-algoritmen. De första 15 byte av denna hash sammanfogas med hela 16 byte av hash, följt av en null byte. Vi kan replikera denna dekrypteringsprocess 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.uppdatering (key_string)
md5 = m.digest ()
key = md5+md5+”\x00″
mode = AES.MODE_ECB
iv = ‘\x00’ * 16
e = AES.ny (nyckel, läge, iv)
retur e.dekryptera (decoded_data)

vi kan vidare verifiera att detta är korrekt med hjälp av ovanstående kod. I följande exempel har datavariabeln ställts in med den base64-kodade strängen som finns i resursen “SMARTLOGS” och key_string-variabeln har ställts in på den omvända registernyckeln som tidigare nämnts.

1
2

>>> Skriv ut 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|

med hjälp av försök och fel kan vi framgångsrikt kartlägga varje variabel som bevittnas i ovanstående konfiguration. Den sista variabeln visar sig vara ganska intressant, eftersom varje tecken förutom ‘1’ kartor till ett visst konfigurationsalternativ. Följande kartläggning bestämdes:

  • i: aktivera klientinstallation / start
  • d: Client Persistence Module: skydda Luminositys klient binär
  • s : Tyst läge (dölj Luminosity-fönstret på klientdatorn)
  • a : proaktiv Anti-Malware: rengör skadliga filer och snabba upp klientdatorn
  • n : Strömsparare: förhindra viloläge och stäng av skärmen efter 15 minuters inaktivitet
  • m : ta bort filen efter körning (smälta)
  • v : Anti-virtuella maskiner/felsökning
  • h : dölj fil och kataloger
  • b : backup startup

med hjälp av denna kunskap kan vi analysera ovanstående konfiguration, vilket ger följande resultat.

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

domän/IP: 172.16.1.100
Port: 11111
Backup DNS: backup.dns.com
filnamn: filnamn.exe
Startnamn: startup_name
mappnamn: mappnamn
Datakatalognamn: data_directory_name
Backup start Exe: backup_startup.exe
Mutex: Df5e0e1c667c399588b014cb9b4ae7b33c9c0b4cac9d4169f39197e41e9a43a4
Bygg-ID: BuildID
Inställningar:
aktivera klientinstallation/start
client Persistence Module: skydda luminositys klient binär
tyst läge (dölj luminositetsfönstret på klientdatorn)
proaktiv Anti-Malware: Rengör skadliga filer och snabba upp klientdatorn
energisparare: förhindra viloläge och stäng av skärmen efter 15 minuters inaktivitet
ta bort filen efter körning (smälta)
Anti-virtuella maskiner / felsökning
dölj fil och kataloger
Backup start

analysera LuminosityLink-konfigurationer i Skala

med hjälp av denna kunskap skapade vi ett skript för att analysera konfigurationen av ett givet prov. Skriptet söker efter strängar som verkar vara base64-kodade med en längd större än 50 och tar en brute-force-strategi. Även om det inte är elegant, gör det jobbet ganska framgångsrikt. Skriptet kan laddas ner i avsnittet bilaga I detta blogginlägg.

genom att gå igenom Palo Alto Networks repository of samples hittade vi ungefär 18 000 filer taggade som LuminosityLink. För dessa 18 000 prover tillämpade vi vårt statiska konfigurationsutvinnings-och analysskript och hämtade framgångsrikt cirka 4 500 konfigurationer. De återstående proverna packades bortom den inbyggda Förvirringsrutinen, och som sådan var de råa konfigurationssträngarna inte närvarande.

dessa prover kördes genom en lokal instans av Göksandlådan med öppen källkod, där processdumparna extraherades. Samma skript applicerades på dessa processdumpar, där vi kunde få ytterligare 10 200 konfigurationer, vilket gav oss totalt 14 700 analyserade LuminosityLink-konfigurationer.

när proverna bearbetades upptäcktes ytterligare nycklar som användes av författaren. Följande ytterligare tre strängar användes för att generera nycklarna till LuminosityLink-prover.

  • denna conf ‘ ig innehåller inget användbart. Sluta agera som om du är cool genom att dekryptera den.
  • resurser.SMARTLOGS
  • ange ett lösenord

det verkar som om författaren till LuminosityLink inte är utan humor. Dessutom, när vi analyserade äldre prover, upptäcktes att konfigurationen gjorde en förändring någon gång mellan februari och juni i år. Färre alternativ fanns tillgängliga i konfigurationen av äldre prover. Det medföljande skriptet står för dessa skillnader och olika nycklar som används.

med hjälp av aggregerade data från de 14 700 konfigurationerna drogs följande statistik på hög nivå:

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

topp portar

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

de tolkade konfigurationsdata, som tillhandahålls i CSV – filformatet, tillhandahålls fritt till säkerhetsgemenskapen i hopp om att skydd kommer att skapas mot detta hot.

slutsats

LuminosityLink, medan marknadsförs som ett system administration verktyg, är en formidabel keylogger och bakdörr som används av ett stort antal brottslingar. Hittills har Palo Alto Networks bevittnat över 50 000 försök till infektioner av LuminosityLink, som omfattar 18 000 unika prover. Malware är billigt och lättillgängligt för allmänheten, vilket gör detta till ett farligt hot mot både organisationer och individer.

genom reverse-engineering LuminosityLink-prover kunde vi statiskt extrahera och analysera den inbäddade konfigurationen, vilket i sin tur ger värdefull information om med vilka värdar och portar skadlig programvara är konfigurerad att kommunicera. Det ger också information om konfigurerade skydd konfigurerade inom den körbara, samt installationsinformation.

Palo Alto Networks-kunder skyddas från detta hot på följande sätt:

en autofokus-tagg kan användas för att spåra denna malware-familj

  • alla LuminosityLink-prover markeras på lämpligt sätt som skadliga i WildFire
  • alla identifierade domäner flaggas som skadliga
  • nätverkstrafik identifieras på lämpligt sätt och blockeras som hot-ID #14460 (lumonositylinkrat.Gen kommando och kontroll trafik)

bilaga

ett extraktions-och analysskript för LuminosityLink-prover finns här.

ett skript som ska användas för att tolka vanliga konfigurationssträngar kan hittas här.

en CSV-fil som innehåller alla konfigurationsdata extraherade från Palo Alto Networks provuppsättning kan hittas här.

Få uppdateringar från
Palo Alto
nätverk!

registrera dig för att få de senaste nyheterna, cyberhot intelligens och forskning från oss

genom att skicka in det här formuläret godkänner du våra användarvillkor och bekräftar vår Sekretesspolicy.

Write a Comment

Din e-postadress kommer inte publiceras.