Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
We vervolgen onze reeks artikelen over malware-analyse. IN eerste Gedeeltelijk vertelden we hoe Ilya Pomerantsev, een malware-analysespecialist bij CERT Group-IB, een gedetailleerde analyse uitvoerde van een bestand dat per post was ontvangen van een van de Europese bedrijven en daar spyware ontdekte Agent Tesla. In dit artikel geeft Ilya de resultaten van een stapsgewijze analyse van de hoofdmodule Agent Tesla.

Agent Tesla is modulaire spionagesoftware die wordt gedistribueerd met behulp van een malware-as-a-service-model onder het mom van een legitiem keylogger-product. Agent Tesla kan gebruikersgegevens uit browsers, e-mailclients en FTP-clients extraheren en naar de server verzenden naar aanvallers, klembordgegevens opnemen en het scherm van het apparaat vastleggen. Op het moment van analyse was de officiële website van de ontwikkelaars niet beschikbaar.

Configuratiebestand

In de onderstaande tabel wordt vermeld welke functionaliteit van toepassing is op het voorbeeld dat u gebruikt:

beschrijving Waarde
KeyLogger-gebruiksvlag waar
ScreenLogger-gebruiksvlag vals
KeyLogger logt verzendinterval in minuten 20
ScreenLogger log verzendinterval in minuten 20
Vlag voor backspace-sleutelafhandeling. Niet waar – alleen loggen. Waar – wist de vorige sleutel vals
CNC-type. Opties: smtp, webpaneel, ftp smtp
Thread-activeringsvlag voor het beëindigen van processen uit de lijst “%filter_list%” vals
UAC-uitschakelvlag vals
Vlag voor uitschakelen van Taakbeheer vals
CMD-uitschakelvlag vals
Voer de vlag voor vensteruitschakeling uit vals
Registerviewer Vlag uitschakelen vals
Schakel de vlag voor systeemherstelpunten uit waar
Vlag voor uitschakelen van het bedieningspaneel vals
MSCONFIG-uitschakelvlag vals
Markeer om het contextmenu in Explorer uit te schakelen vals
Vlag vastzetten vals
Pad voor het kopiëren van de hoofdmodule bij het vastzetten op het systeem %startmap% %insmap%%insnaam%
Vlag voor het instellen van de attributen “Systeem” en “Verborgen” voor de hoofdmodule die aan het systeem is toegewezen vals
Vlag om opnieuw op te starten wanneer deze aan het systeem is vastgemaakt vals
Vlag voor het verplaatsen van de hoofdmodule naar een tijdelijke map vals
UAC-bypass-vlag vals
Datum- en tijdformaat voor loggen jjjj-MM-dd UU:mm:ss
Vlag voor het gebruik van een programmafilter voor KeyLogger waar
Type programmafiltering.
1 – de programmanaam wordt gezocht in de venstertitels
2 – de programmanaam wordt gezocht in de procesnaam van het venster
1
Programmafilter "facebook"
"twitteren"
"gmail"
"instagram"
"film"
"skypen"
"porno"
"hacken"
"whatsappen"
"meningsverschil"

De hoofdmodule aan het systeem bevestigen

Als de overeenkomstige vlag is ingesteld, wordt de hoofdmodule gekopieerd naar het pad dat in de configuratie is opgegeven als het pad dat aan het systeem moet worden toegewezen.

Afhankelijk van de waarde uit de configuratie krijgt het bestand de attributen “Hidden” en “System”.
Autorun wordt verzorgd door twee registervertakkingen:

  • HKCU-softwareMicrosoftWindowsHuidige versieRun%insregname%
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerOpstartenGoedgekeurdUitvoeren %insregname%

Omdat de bootloader in het proces injecteert RegAsm, leidt het instellen van de persistente vlag voor de hoofdmodule tot behoorlijk interessante gevolgen. In plaats van zichzelf te kopiëren, heeft de malware het originele bestand aan het systeem toegevoegd RegAsm.exe, waarbij de injectie werd uitgevoerd.

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2

Interactie met C&C

Ongeacht de gebruikte methode begint netwerkcommunicatie met het verkrijgen van het externe IP-adres van het slachtoffer dat de bron gebruikt checkip[.]amazonaws[.]com/.
Hieronder worden de netwerkinteractiemethoden beschreven die in de software worden gepresenteerd.

webpaneel

De interactie vindt plaats via het HTTP-protocol. De malware voert een POST-verzoek uit met de volgende headers:

  • User-agent: Mozilla/5.0 (Windows U Windows NT 6.1 ru rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)
  • Verbinding: Keep-Alive
  • Inhoudstype: application / x-www-form-urlencoded

Het serveradres wordt gespecificeerd door de waarde %PostURL%. Het gecodeerde bericht wordt verzonden in de parameter «P». Het versleutelingsmechanisme wordt in sectie beschreven "Coderingalgoritmen" (methode 2).

Het verzonden bericht ziet er als volgt uit:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nclient={8}nlink={9}nusername={10}npassword={11}nscreen_link={12}

Parameter type dan: geeft het berichttype aan:

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
hoog — er wordt een MD5-hash geregistreerd op basis van de waarden van het serienummer van het moederbord en de processor-ID. Waarschijnlijk gebruikt als gebruikers-ID.
niet de tijd of — dient voor het doorgeven van de huidige tijd en datum.
pcnaam - gedefinieerd als /.
loggegevens — loggegevens.

Bij het verzenden van wachtwoorden ziet het bericht er als volgt uit:

type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nscreen_link={8}n[passwords]

Hieronder volgen beschrijvingen van de gestolen gegevens in het formaat nclient[]={0}nlink[]={1}gebruikersnaam[]={2}nwachtwoord[]={3}.

smtp

De interactie vindt plaats via het SMTP-protocol. De verzonden brief is in HTML-formaat. Parameter LICHAAM heeft de vorm:

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
De kop van de brief heeft de algemene vorm: / . De inhoud van de brief, evenals de bijlagen, zijn niet gecodeerd.

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
De interactie vindt plaats via het FTP-protocol. Een bestand met de naam wordt overgebracht naar de opgegeven server _-_.html. De inhoud van het bestand is niet gecodeerd.

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2

Encryptie-algoritmen

In dit geval worden de volgende versleutelingsmethoden gebruikt:

De 1-methode

Deze methode wordt gebruikt om strings in de hoofdmodule te coderen. Het algoritme dat wordt gebruikt voor de codering is AES.

De invoer is een decimaal getal van zes cijfers. De volgende transformatie wordt erop uitgevoerd:

f(x) = (((x >> 2 - 31059) ^ 6380) - 1363) >> 3

De resulterende waarde is de index voor de ingebedde gegevensarray.

Elk array-element is een reeks DWORD. Bij het samenvoegen DWORD er wordt een array van bytes verkregen: de eerste 32 bytes zijn de encryptiesleutel, gevolgd door 16 bytes van de initialisatievector, en de overige bytes zijn de gecodeerde gegevens.

De 2-methode

Gebruikt algoritme 3DES in de modus ECB met opvulling in hele bytes (PKCS7).

De sleutel wordt gespecificeerd door de parameter %urlsleutel%codering maakt echter gebruik van de MD5-hash.

Schadelijke functionaliteit

Het onderzochte voorbeeld gebruikt de volgende programma's om de kwaadaardige functie ervan te implementeren:

KeyLogger

Als er een overeenkomstige malware-vlag is die de WinAPI-functie gebruikt Stel WindowsHookEx wijst zijn eigen handler toe voor toetsaanslaggebeurtenissen op het toetsenbord. De handlerfunctie begint met het ophalen van de titel van het actieve venster.

Als de applicatiefiltervlag is ingesteld, wordt er gefilterd afhankelijk van het opgegeven type:

  1. de programmanaam wordt gezocht in de venstertitels
  2. de programmanaam wordt opgezocht in de procesnaam van het venster

Vervolgens wordt een record aan het logboek toegevoegd met informatie over het actieve venster in het formaat:

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
Vervolgens wordt informatie over de ingedrukte toets vastgelegd:

sleutel Record
Backspace Afhankelijk van de Backspace-sleutelverwerkingsvlag: False – {BACK}
Waar – wist de vorige sleutel
CAPS LOCK {CAPS LOCK}
ESC {ESC}
PageUp {Pagina omhoog}
Beneden
VERWIJDEREN {DEL}
" "
F5 {F5}
& &
F10 {F10}
TAB {TAB}
< <
> >
Spatiebalk
F8 {F8}
F12 {F12}
F9 {F9}
ALT + TAB {ALT+TAB}
EINDE {EINDE}
F4 {F4}
F2 {F2}
CTRL {CTRL}
F6 {F6}
Rechts
Up
F1 {F1}
Links
PageDown {PageDown}
Invoegen {Invoegen}
overwinning {Winnen}
NumLock {NumLock}
F11 {F11}
F3 {F3}
HOME {THUIS}
ENTER {BINNENKOMEN}
ALT + F4 {ALT+F4}
F7 {F7}
Andere sleutel Het teken is in hoofdletters of kleine letters, afhankelijk van de positie van de CapsLock- en Shift-toetsen

Met een bepaalde frequentie wordt het verzamelde logboek naar de server verzonden. Als de overdracht mislukt, wordt het logboek in een bestand opgeslagen %TEMP%log.tmp in formaat:

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
Wanneer de timer afgaat, wordt het bestand naar de server overgebracht.

ScreenLogger

Op een bepaalde frequentie maakt de malware een screenshot in het formaat Jpeg met betekenis Kwaliteit gelijk aan 50 en slaat het op in een bestand %APPDATA %.jpg. Na de overdracht wordt het bestand verwijderd.

KlembordLogger

Als de juiste vlag is ingesteld, worden vervangingen in de onderschepte tekst uitgevoerd volgens de onderstaande tabel.

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
Hierna wordt de tekst in het log ingevoegd:

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2

WachtwoordStealer

De malware kan wachtwoorden downloaden van de volgende applicaties:

Browsers Mail-clients FTP-clients
Chrome Outlook FileZilla
Firefox Thunderbird WS_FTP
IE/Edge Foxmail WinSCP
Safari Opera Mail KernFTP
Opera Browser IncrediMail FTP-navigator
Yandex Pocomail FlashFXP
Comodo Eudora SmartFTP
ChromePlus De vleermuis FTPCommander
Chromium Brievenbus
Fakkel KlauwenMail
7Star
Amigo
BraveSoftware Jabber-klanten VPN-clients
CentBrowser Psi/Psi+ Open VPN
Chedot
CocCoc
Elementenbrowser Beheerders downloaden
Epische privacybrowser Internet Download Manager
Komeet JDownloader
orbitum
Spoetnik
uCozMedia
Vivaldi
SeaMonkey
Flock browser
UC Browser
Zwarte havik
Cyber ​​Fox
K-Meleon
ijs kat
Icedragon
Flauwe maan
Watervos
Falkon-browser

Tegenreactie op dynamische analyse

  • De functie gebruiken Slaap. Hiermee kunt u bepaalde sandboxen omzeilen door een time-out
  • Een draad vernietigen Zone.Identificatie. Hiermee kunt u het feit verbergen dat u een bestand van internet downloadt
  • In de parameter %filterlijst% specificeert een lijst met processen die de malware met tussenpozen van één seconde zal beëindigen
  • ontkoppeling UAC
  • Taakbeheer uitschakelen
  • ontkoppeling CMD
  • Een venster uitschakelen "Loop"
  • Het Configuratiescherm uitschakelen
  • Een hulpmiddel uitschakelen RegEdit
  • Systeemherstelpunten uitschakelen
  • Schakel het contextmenu in Verkenner uit
  • ontkoppeling MSCONFIG
  • Bypass UAC:

Inactieve functies van de hoofdmodule

Tijdens de analyse van de hoofdmodule werden functies geïdentificeerd die verantwoordelijk waren voor de verspreiding over het netwerk en het volgen van de positie van de muis.

Worm

Gebeurtenissen voor het verbinden van verwisselbare media worden in een aparte thread gevolgd. Bij verbinding wordt de malware met de naam gekopieerd naar de hoofdmap van het bestandssysteem scr.exe, waarna het zoekt naar bestanden met de extensie lnk. Ieders team lnk veranderd naar cmd.exe /c start scr.exe&start & afsluit.

Elke map in de root van de media krijgt een attribuut "Verborgen" en er wordt een bestand gemaakt met de extensie lnk met de naam van de verborgen map en de opdracht cmd.exe /c start scr.exe&explorer /root,"%CD%" en sluit af.

MuisTracker

De methode voor het uitvoeren van onderschepping is vergelijkbaar met die voor het toetsenbord. Deze functionaliteit is nog in ontwikkeling.

Bestandsactiviteit

Pad beschrijving
%Temp%temp.tmp Bevat een teller voor UAC-bypass-pogingen
%startmap%%insmap%%insnaam% Pad dat moet worden toegewezen aan het HPE-systeem
%Temp%tmpG{Huidige tijd in milliseconden}.tmp Pad voor back-up van de hoofdmodule
%Temp%log.tmp Logbestand
%AppData%{Een willekeurige reeks van 10 tekens}.jpeg Schermafbeeldingen
C:UsersPublic{Een willekeurige reeks van 10 tekens}.vbs Pad naar een vbs-bestand dat de bootloader kan gebruiken om aan het systeem te koppelen
%Temp%{Aangepaste mapnaam}{Bestandsnaam} Pad dat door de bootloader wordt gebruikt om zichzelf aan het systeem te koppelen

Aanvaller profiel

Dankzij hardgecodeerde authenticatiegegevens konden we toegang krijgen tot het commandocentrum.

Opkomst mislukt: laten we AgentTesla blootstellen aan schoon water. Deel 2
Hierdoor konden we de laatste e-mail van de aanvallers identificeren:

junaid[.]in***@gmail[.]com.

De domeinnaam van het commandocentrum is geregistreerd op de post sg***@gmail[.]com.

Conclusie

Tijdens een gedetailleerde analyse van de malware die bij de aanval werd gebruikt, konden we de functionaliteit ervan vaststellen en de meest complete lijst met indicatoren van compromissen verkrijgen die relevant zijn voor deze zaak. Inzicht in de mechanismen van netwerkinteractie tussen malware maakte het mogelijk om aanbevelingen te doen voor het aanpassen van de werking van informatiebeveiligingstools, en om stabiele IDS-regels te schrijven.

belangrijkste gevaar: Agent Tesla net als DataStealer omdat het zich niet aan het systeem hoeft te binden of op een besturingscommando hoeft te wachten om zijn taken uit te voeren. Eenmaal op de machine begint het onmiddellijk privé-informatie te verzamelen en deze over te dragen aan CnC. Dit agressieve gedrag is in sommige opzichten vergelijkbaar met het gedrag van ransomware, met als enige verschil dat deze laatste niet eens een netwerkverbinding vereisen. Als u deze familie tegenkomt, moet u, nadat u het geïnfecteerde systeem van de malware zelf heeft gereinigd, zeker alle wachtwoorden wijzigen die, althans theoretisch, kunnen worden opgeslagen in een van de hierboven genoemde applicaties.

Laten we voor de toekomst zeggen dat aanvallers verzenden Agent Tesla, wordt de initiële bootloader heel vaak gewijzigd. Hierdoor kunt u onopgemerkt blijven door statische scanners en heuristische analysatoren op het moment van een aanval. En de neiging van deze familie om onmiddellijk met hun activiteiten te beginnen, maakt systeemmonitors nutteloos. De beste manier om AgentTesla te bestrijden is een voorlopige analyse in een sandbox.

In het derde artikel van deze serie zullen we kijken naar andere gebruikte bootloaders Agent Tesla, en bestudeer ook het proces van hun semi-automatische uitpakken. Mis niet!

Hachee

SHA1
A8C2765B3D655BA23886D663D22BDD8EF6E8E894
8010CC2AF398F9F951555F7D481CE13DF60BBECF
79B445DE923C92BF378B19D12A309C0E9C5851BF
15839B7AB0417FA35F2858722F0BD47BDF840D62
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD

C&C

URL
sina-c0m[.]icu
smtp[.]sina-c0m[.]icu

RegKey

register
HKCUSoftwareMicrosoftWindowsCurrentVersionRun{Scriptnaam}
HKCUSoftwareMicrosoftWindowsCurrentVersionRun%insregname%
HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun%insregname%

mutex

Er zijn geen indicatoren.

Bestanden

Bestandsactiviteit
%Temp%temp.tmp
%startmap%%insmap%%insnaam%
%Temp%tmpG{Huidige tijd in milliseconden}.tmp
%Temp%log.tmp
%AppData%{Een willekeurige reeks van 10 tekens}.jpeg
C:UsersPublic{Een willekeurige reeks van 10 tekens}.vbs
%Temp%{Aangepaste mapnaam}{Bestandsnaam}

Monsters Info

Naam Onbekend
MD5 F7722DD8660B261EA13B710062B59C43
SHA1 15839B7AB0417FA35F2858722F0BD47BDF840D62
SHA256 41DC0D5459F25E2FDCF8797948A7B315D3CB0753
98D808D1772CACCC726AF6E9
Type PE (.NET)
Maat 327680
Originele naam AZZRIDKGGSLTYFUUBCCRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe
Datumstempel 01.07.2019
Compiler VB.NET

Naam IELibrary.dll
MD5 BFB160A89F4A607A60464631ED3ED9FD
SHA1 1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD
SHA256 D55800A825792F55999ABDAD199DFA54F3184417
215A298910F2C12CD9CC31EE
Type PE (.NET DLL)
Maat 16896
Originele naam IELibrary.dll
Datumstempel 11.10.2016
Compiler Microsoft Linker(48.0*)

Bron: www.habr.com

Voeg een reactie