Zephyrnet-logotyp

StrongPity-spionagekampanj riktad mot Android-användare

Datum:

ESET-forskare identifierade en aktiv StrongPity-kampanj som distribuerade en trojaniserad version av Android Telegram-appen, presenterad som Shagle-appen – en videochatttjänst som inte har någon appversion

ESET-forskare identifierade en aktiv kampanj som vi har tillskrivit gruppen StrongPity APT. Kampanjen har varit aktiv sedan november 2021 och har distribuerat en skadlig app via en webbplats som imiterar Shagle – en slumpmässig videochatttjänst som tillhandahåller krypterad kommunikation mellan främlingar. Till skillnad från den helt webbaserade, äkta Shagle-sajten som inte erbjuder en officiell mobilapp för att komma åt sina tjänster, tillhandahåller copycat-webbplatsen bara en Android-app att ladda ner och ingen webbaserad streaming är möjlig.

Huvudpunkterna i blogginlägget:

  • Endast en annan Android-kampanj har tidigare tillskrivits StrongPity.
  • Det är första gången som de beskrivna modulerna och deras funktionalitet har dokumenterats offentligt.
  • En copycat-webbplats, som efterliknar Shagle-tjänsten, används för att distribuera StrongPitys mobila bakdörrsapp.
  • Appen är en modifierad version av Telegram-appen med öppen källkod, ompackad med StrongPity-bakdörrskod.
  • Baserat på likheter med tidigare StrongPity-bakdörrskod och appen som signeras med ett certifikat från en tidigare StrongPity-kampanj, tillskriver vi detta hot till StrongPity APT-gruppen.
  • StrongPitys bakdörr är modulär, där alla nödvändiga binära moduler krypteras med AES och laddas ner från dess C&C-server, och har olika spionfunktioner.

Den skadliga appen är i själva verket en fullt fungerande men trojaniserad version av den legitima Telegram-appen, dock presenterad som den obefintliga Shagle-appen. Vi kommer att hänvisa till det som den falska Shagle-appen, den trojaniserade Telegram-appen eller StrongPity-bakdörren i resten av det här blogginlägget. ESET-produkter upptäcker detta hot som Android/StrongPity.A.

Denna StrongPity-bakdörr har olika spionfunktioner: dess 11 dynamiskt utlösta moduler är ansvariga för att spela in telefonsamtal, samla in SMS-meddelanden, listor med samtalsloggar, kontaktlistor och mycket mer. Dessa moduler dokumenteras för allra första gången. Om offret beviljar den skadliga StrongPity-appen tillgänglighetstjänster, kommer en av dess moduler också att ha tillgång till inkommande aviseringar och kommer att kunna exfiltrera kommunikation från 17 appar som Viber, Skype, Gmail, Messenger samt Tinder.

Kampanjen är sannolikt mycket snävt inriktad, eftersom ESET-telemetri fortfarande inte identifierar några offer. Under vår forskning var den analyserade versionen av skadlig programvara tillgänglig från copycat-webbplatsen inte längre aktiv och det var inte längre möjligt att framgångsrikt installera den och utlösa dess bakdörrsfunktion eftersom StrongPity inte har skaffat sitt eget API-ID för sin trojaniserade Telegram-app. Men det kan ändras när som helst om hotaktören skulle besluta sig för att uppdatera den skadliga appen.

Översikt

Denna StrongPity-kampanj kretsar kring en Android-bakdörr som levereras från en domän som innehåller ordet "holländska". Denna webbplats efterliknar den legitima tjänsten som heter Shagle at shagle.com. I figur 1 kan du se startsidorna för båda webbplatserna. Den skadliga appen tillhandahålls direkt från den imiterande webbplatsen och har aldrig gjorts tillgänglig från Google Play Butik. Det är en trojaniserad version av den legitima Telegram-appen, presenterad som om det vore Shagle-appen, även om det för närvarande inte finns någon officiell Shagle Android-app.

Figur 1. Jämföra den legitima webbplatsen till vänster och copycaten till höger

Som du kan se i figur 2 innehåller HTML-koden för den falska webbplatsen bevis på att den kopierades från den legitima shagle.com webbplats den 1 novemberst, 2021, med det automatiserade verktyget HTTrack. Den skadliga domänen registrerades samma dag, så copycat-sidan och den falska Shagle-appen kan ha varit tillgängliga för nedladdning sedan det datumet.

Figur 2. Loggar genererade av HTTrack-verktyget registrerade i den falska webbplatsens HTML-kod

Victimology

På juli 18th, 2022, en av våra YARA-regler på VirusTotal utlöstes när en skadlig app och en länk till en webbplats som härmar shagle.com laddades upp. Samtidigt fick vi besked om Twitter om det provet, även om det var felaktigt tillskrivas Bahamut. ESET-telemetridata identifierar fortfarande inga offer, vilket tyder på att kampanjen sannolikt har varit snävt inriktad.

Erkännande

APK-filen som distribueras av copycat Shagle-webbplatsen är signerad med samma kodsigneringscertifikat (se figur 3) som en trojaniserad syrisk e-gov-app som upptäcktes 2021 av Trend Micro, som också tillskrevs StrongPity.

Figur 3. Detta certifikat signerade den falska Shagle-appen och den trojaniserade syriska e-gov-appen

Skadlig kod i den falska Shagle-appen sågs i den tidigare mobilkampanjen av StrongPity, och implementerar en enkel, men funktionell, bakdörr. Vi har sett att denna kod endast används i kampanjer som genomförs av StrongPity. I figur 4 kan du se några av de tillagda skadliga klasserna där många av de fördunklade namnen till och med är desamma i koden från båda kampanjerna.

Figur 4. Klassnamnsjämförelse för den trojaniserade syriska e-gov-appen (vänster) och den trojaniserade Telegram-appen (höger)

Jämför bakdörrskoden från den här kampanjen med den från den trojaniserade syriska e-gov-appen (SHA-1: 5A5910C2C9180382FCF7A939E9909044F0E8918B), den har utökad funktionalitet men med samma kod som används för att tillhandahålla liknande funktioner. I figur 5 och figur 6 kan du jämföra koden från båda proverna som är ansvarig för att skicka meddelanden mellan komponenter. Dessa meddelanden är ansvariga för att utlösa bakdörrens skadliga beteende. Därför tror vi starkt att den falska Shagle-appen är kopplad till StrongPity-gruppen.

Figur 5. Meddelandesändare ansvarig för att utlösa skadlig funktionalitet i den trojaniserade syriska e-gov-appen

Figur 6. Meddelandeavsändare ansvarig för att utlösa skadlig funktionalitet i den falska Shagle-appen

Teknisk analys

Första åtkomst

Som beskrivs i avsnittet Översikt i det här blogginlägget har den falska Shagle-appen varit värd på Shagle copycat-webbplatsen, från vilken offren var tvungna att välja att ladda ner och installera appen. Det fanns inget som tydde på att appen var tillgänglig från Google Play och vi vet inte hur potentiella offer lockades till eller på annat sätt upptäckte den falska webbplatsen.

Verktygset

Enligt beskrivningen på copycat-webbplatsen är appen gratis och avsedd att användas för att träffa och chatta med nya människor. Den nedladdade appen är dock en telegram-app med skadlig uppsåt, närmare bestämt Telegram version 7.5.0 (22467), som var tillgänglig för nedladdning runt den 25 februarith2022

Den ompaketerade versionen av Telegram använder samma paketnamn som den legitima Telegram-appen. Paketnamnen ska vara unika ID:n för varje Android-app och måste vara unika på en given enhet. Detta betyder att om den officiella Telegram-appen redan är installerad på enheten för ett potentiellt offer, så kan denna bakdörrsversion inte installeras; se figur 7. Detta kan betyda en av två saker – antingen kommunicerar hotaktören först med potentiella offer och tvingar dem att avinstallera Telegram från sina enheter om det är installerat, eller så fokuserar kampanjen på länder där Telegram-användning är sällsynt för kommunikation.

Figur 7. Om den officiella Telegram-appen redan är installerad på enheten kan den trojaniserade versionen inte installeras framgångsrikt

StrongPitys trojaniserade Telegram-app borde ha fungerat precis som den officiella versionen gör för kommunikation, med standard-API:er som är väldokumenterade på Telegrams webbplats – men appen fungerar inte längre, så vi kan inte kontrollera.

Under vår forskning var den aktuella versionen av skadlig programvara tillgänglig från copycat-webbplatsen inte längre aktiv och det var inte längre möjligt att framgångsrikt installera den och utlösa dess bakdörrsfunktion. När vi försökte registrera oss med vårt telefonnummer kunde den ompaketerade Telegram-appen inte få API-ID från servern och fungerade därför inte korrekt. Som framgår av figur 8 visade appen en API_ID_PUBLISHED_FLOOD fel.

Figur 8. Fel visas vid registrering med telefonnummer

Baserat på Telegrams feldokumentation, verkar det som att StrongPity inte har fått sitt eget API-ID. Istället har den använt exempel-API-ID som ingår i Telegrams öppen källkod för initiala teständamål. Telegram övervakar API ID-användning och begränsar provet API ID, så dess användning i en släppt app resulterar i felet som visas i figur 8. På grund av felet är det inte möjligt att registrera sig och använda appen eller utlösa dess skadliga funktionalitet längre . Detta kan betyda att StrongPity-operatörer inte tänkte igenom detta, eller så kanske det fanns tillräckligt med tid för att spionera på offer mellan publicering av appen och att den avaktiverades av Telegram för överanvändning av APP-ID. Eftersom ingen ny och fungerande version av appen någonsin gjordes tillgänglig via webbplatsen, kan det tyda på att StrongPity framgångsrikt distribuerade skadlig programvara till sina önskade mål.

Som ett resultat var den falska Shagle-appen som var tillgänglig på den falska webbplatsen vid tidpunkten för vår forskning inte längre aktiv. Detta kan dock ändras när som helst om hotaktörerna skulle besluta sig för att uppdatera den skadliga appen.

Komponenter av, och behörigheter som krävs av, StrongPity-bakdörrskoden läggs till i Telegram-appens AndroidManifest.xml fil. Som kan ses i figur 9 gör detta det enkelt att se vilka behörigheter som krävs för skadlig programvara.

Figur 9. AndroidManifest.xml med komponenter och behörigheter för StrongPity-bakdörren markerad

Från Android-manifestet kan vi se att skadliga klasser lades till i org.telegram.messenger paketet ska visas som en del av den ursprungliga appen.

Den initiala skadliga funktionen utlöses av en av tre sändningsmottagare som exekveras efter definierade åtgärder – BOOT_COMPLETED, SVAGT BATTERI, eller USER_PRESENT. Efter den första starten registrerar den dynamiskt ytterligare sändningsmottagare att övervaka SCREEN_ON, SKÄRM AVoch CONNECTIVITY_CHANGE evenemang. Den falska Shagle-appen använder sedan IPC (interprocess communication) för att kommunicera mellan dess komponenter för att utlösa olika åtgärder. Den kontaktar C&C-servern med HTTPS för att skicka grundläggande information om den komprometterade enheten och tar emot en AES-krypterad fil som innehåller 11 binära moduler som kommer att exekveras dynamiskt av den överordnade appen; se figur 10. Som framgår av figur 11 lagras dessa moduler i appens interna lagring, /data/user/0/org.telegram.messenger/files/.li/.

Figur 10. StrongPity bakdörr tar emot en krypterad fil som innehåller körbara moduler

Figur 11. Moduler mottagna från servern lagrade i StrongPity-bakdörrens interna lagring

Varje modul ansvarar för olika funktioner. Listan över modulnamnen lagras i lokala delade inställningar i sharedconfig.xml fil; se bild 12.

Moduler triggas dynamiskt av den överordnade appen när det behövs. Varje modul har sitt eget modulnamn och ansvarar för olika funktioner som:

  • libarm.jar (cm-modul) – spelar in telefonsamtal
  • libmpeg4.jar (nt-modul) – samlar in text från inkommande aviseringsmeddelanden från 17 appar
  • local.jar (fm/fp-modul) – samlar in fillista (filträd) på enheten
  • telefon.jar (ms-modul) – missbrukar tillgänglighetstjänster för att spionera på meddelandeappar genom att exfiltrera kontaktnamn, chattmeddelande och datum
  • resources.jar (sm-modul) – samlar in SMS-meddelanden lagrade på enheten
  • tjänster.jar (lo modul) – erhåller enhetens plats
  • systemui.jar (sy-modul) – samlar in enhets- och systeminformation
  • timer.jar (ia-modul) – samlar en lista över installerade appar
  • toolkit.jar (cn-modul) – samlar kontaktlista
  • watchkit.jar (ac-modul) – samlar in en lista över enhetskonton
  • wearkit.jar (cl-modul) – samlar in en lista med samtalsloggar

Figur 12. Lista över moduler som används av StrongPity-bakdörren

All inhämtad data lagras i clear in /data/user/0/org.telegram.messenger/databases/outdata, innan den krypteras med AES och skickas till C&C-servern, som du kan se i figur 13.

Figur 13. Krypterad användardata exfiltrerad till C&C-servern

Denna StrongPity-bakdörr har utökade spionfunktioner jämfört med den första StrongPity-versionen som upptäcktes för mobil. Den kan begära att offret aktiverar tillgänglighetstjänster och får åtkomst till meddelanden; se figur 14. Om offret aktiverar dem kommer skadlig programvara att spionera på inkommande meddelanden och missbruka tillgänglighetstjänster för att exfiltrera chattkommunikation från andra appar.

Figur 14. Skadlig programvara begär aviseringsåtkomst och tillgänglighetstjänster från offret

Med aviseringsåtkomst kan skadlig programvara läsa mottagna aviseringsmeddelanden som kommer från 17 riktade appar. Här är en lista över deras paketnamn:

  • Budbärare (com.facebook.orca)
  • messenger lite (com.facebook.mlite)
  • Viber – Säkra chattar och samtal (com.viber.voip)
  • Skype (com.skype.raider)
  • LINE: Samtal och meddelanden (jp.naver.line.android)
  • Kik — Messaging & Chat App (kik.android)
  • tango-live stream och videochatt (com.sgiggle.production)
  • Hangouts (com.google.android.talk)
  • telegram (org.telegram.messenger)
  • WeChat (com.tencent.mm)
  • Snapchat (com.snapchat.android)
  • Tinder (com.tinder)
  • Vandringsnyheter och innehåll (com.bsb.vandring)
  • Instagram (com.instagram.android)
  • Twitter (com.twitter.android)
  • Gmail (com.google.android.gm)
  • imo-internationella samtal och chatt (com.imo.android.imoim)

Om enheten redan är rotad försöker skadlig programvara tyst ge behörigheter till WRITE_SETTINGS, WRITE_SECURE_SETTINGS, REBOOT, MOUNT_FORMAT_FILESYSTEMS, MODIFY_PHONE_STATE, PACKAGE_USAGE_STATS, READ_PRIVILEGED_PHONE_STATE, för att aktivera tillgänglighetstjänster och för att bevilja aviseringsåtkomst. StrongPity-bakdörren försöker sedan inaktivera SecurityLogAgent-appen (com.samsung.android.securitylogagent), som är en officiell systemapp som hjälper till att skydda säkerheten för Samsung-enheter och inaktiverar alla appaviseringar som kommer från själva skadlig programvara som kan visas för offret i framtiden vid appfel, krascher eller varningar. StrongPity-bakdörren försöker inte själv rota en enhet.

AES-algoritmen använder CBC-läge och hårdkodade nycklar för att dekryptera de nedladdade modulerna:

  • AES-nyckel – aaaanothingomöjligtbbb
  • AES IV – aaaanothingimpos

Slutsats

Mobilkampanjen som drivs av StrongPity APT-gruppen efterliknade en legitim tjänst för att distribuera sin Android-bakdörr. StrongPity packade om den officiella Telegram-appen för att inkludera en variant av gruppens bakdörrskod.

Den skadliga koden, dess funktionalitet, klassnamn och certifikatet som används för att signera APK-filen är desamma som från föregående kampanj; Därför tror vi med stor tillförsikt att denna verksamhet tillhör StrongPity-gruppen.

Vid tidpunkten för vår forskning var provet som var tillgängligt på copycat-webbplatsen inaktiverat på grund av API_ID_PUBLISHED_FLOOD fel, vilket resulterar i att skadlig kod inte utlöses och att potentiella offer eventuellt tar bort den icke-fungerande appen från sina enheter.

Kodanalys avslöjar att bakdörren är modulär och ytterligare binära moduler laddas ner från C&C-servern. Detta innebär att antalet och typen av moduler som används kan ändras när som helst för att passa kampanjförfrågningarna när de drivs av StrongPity-gruppen.

Baserat på vår analys verkar detta vara den andra versionen av StrongPitys skadliga program för Android; jämfört med den första versionen missbrukar den också tillgänglighetstjänster och aviseringsåtkomst, lagrar insamlad data i en lokal databas, försöker köra su kommandon, och för det mesta av datainsamlingen använder man nedladdade moduler.

IOCS

Filer

SHA-1 Filnamn ESET-detekteringsnamn Beskrivning
50F79C7DFABECF04522AEB2AC987A800AB5EC6D7 video.apk Android/StrongPity.A StrongPity bakdörr (legitim Android Telegram-app ompackad med skadlig kod).
77D6FE30DAC41E1C90BDFAE3F1CFE7091513FB91 libarm.jar Android/StrongPity.A StrongPity mobilmodul som ansvarar för att spela in telefonsamtal.
5A15F516D5C58B23E19D6A39325B4B5C5590BDE0 libmpeg4.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in text från mottagna aviseringar.
D44818C061269930E50868445A3418A0780903FE local.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in en fillista på enheten.
F1A14070D5D50D5A9952F9A0B4F7CA7FED2199EE telefon.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att missbruka tillgänglighetstjänster för att spionera på andra appar.
3BFAD08B9AC63AF5ECF9AA59265ED24D0C76D91E resources.jar Android/StrongPity.A StrongPity mobilmodul som ansvarar för att samla in SMS som lagras på enheten.
5127E75A8FAF1A92D5BD0029AF21548AFA06C1B7 tjänster.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att erhålla enhetens plats.
BD40DF3AD0CE0E91ACCA9488A2FE5FEEFE6648A0 systemui.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in enhets- och systeminformation.
ED02E16F0D57E4AD2D58F95E88356C17D6396658 timer.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in en lista över installerade appar.
F754874A76E3B75A5A5C7FE849DDAE318946973B toolkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in kontaktlistan.
E46B76CADBD7261FE750DBB9B0A82F262AFEB298 watchkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in en lista över enhetskonton.
D9A71B13D3061BE12EE4905647DDC2F1189F00DE wearkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarig för att samla in en lista med samtalsloggar.

nätverks

IP Provider Först sett Detaljer
141.255.161[.]185 Namecheap 2022-07-28 intagrefedcircuitchip[.]com C&C
185.12.46[.]138 Fläskbulle 2020-04-21 nätverksprogramvarusegment[.]com C&C

MITER ATT & CK tekniker

Detta bord byggdes med hjälp av version 12 av MITER ATT & CK -ramverket.

Taktik ID Namn Beskrivning
Persistens T1398 Start- eller inloggningsinitieringsskript StrongPity-bakdörren tar emot BOOT_COMPLETED sändningsavsikt att aktiveras vid start av enheten.
T1624.001 Händelseutlöst exekvering: Broadcast-mottagare StrongPity-bakdörrsfunktionen utlöses om någon av dessa händelser inträffar: SVAGT BATTERI, USER_PRESENT, SCREEN_ON, SKÄRM AV, eller CONNECTIVITY_CHANGE.
Försvarsflykt T1407 Ladda ner ny kod vid Runtime StrongPity-bakdörren kan ladda ner och köra ytterligare binära moduler.
T1406 Fördubblade filer eller information StrongPity-bakdörren använder AES-kryptering för att fördunkla nedladdade moduler och för att dölja strängar i sin APK.
T1628.002 Dölj artefakter: Användarflykt StrongPity-bakdörren kan inaktivera alla appaviseringar som kommer från själva skadlig programvara för att dölja dess närvaro.
T1629.003 Försämra försvar: Inaktivera eller ändra verktyg Om StrongPity-bakdörren har root inaktiverar den SecurityLogAgent (com.samsung.android.securitylogagent) om närvarande.
Discovery T1420 Arkiv- och katalogupptäckt StrongPity-bakdörren kan lista tillgängliga filer på extern lagring.
T1418 Software Discovery StrongPity-bakdörren kan få en lista över installerade applikationer.
T1422 System Network Configuration Discovery StrongPity-bakdörren kan extrahera IMEI, IMSI, IP-adress, telefonnummer och land.
T1426 Systeminformation upptäckt StrongPity-bakdörren kan extrahera information om enheten inklusive typ av internetanslutning, SIM-serienummer, enhets-ID och allmän systeminformation.
Samling T1417.001 Input Capture: Keylogging StrongPity-bakdörren loggar tangenttryckningar i chattmeddelanden och samtalsdata från riktade appar.
T1517 Åtkomstmeddelanden StrongPity-bakdörren kan samla in aviseringsmeddelanden från 17 riktade appar.
T1532 Arkivera insamlade data StrongPity-bakdörren krypterar exfiltrerad data med AES.
T1430 Platsspårning StrongPity-bakdörren spårar enhetens plats.
T1429 Audio Capture StrongPity-bakdörren kan spela in telefonsamtal.
T1513 Screen Capture StrongPity-bakdörren kan spela in enhetens skärm med hjälp av MediaProjectionManager API.
T1636.002 Skyddad användardata: Samtalsloggar StrongPity-bakdörren kan extrahera samtalsloggar.
T1636.003 Skyddad användardata: Kontaktlista StrongPity-bakdörren kan extrahera enhetens kontaktlista.
T1636.004 Skyddad användardata: SMS-meddelanden StrongPity-bakdörren kan extrahera SMS-meddelanden.
Command and Control T1437.001 Application Layer Protocol: webbprotokoll StrongPity-bakdörren använder HTTPS för att kommunicera med sin C&C-server.
T1521.001 Krypterad kanal: Symmetrisk kryptografi StrongPity-bakdörren använder AES för att kryptera sin kommunikation.
exfiltration T1646 Exfiltrering över C2 -kanal StrongPity-bakdörren exfiltrerar data med hjälp av HTTPS.
plats_img

Senaste intelligens

plats_img