đŸ””âšȘ🔮 Janeleiro, der Zeitreisende: Ein neuer alter Banking‑Trojaner in Brasilien – Content Marketing


ESET Forscher entdecken eine neue Bedrohung, die sich gegen brasilianische Unternehmen aus verschiedenen Branchen richtet.

Seit 2019 beobachten ESET Forscher einen neuen Bankentrojaner in Brasilien, der sich gegen Unternehmensmitarbeiter verschiedener Branchen richtet. Dazu gehören Unternehmen aus dem Ingenieurwesen, dem Gesundheitswesen, dem Einzelhandel, der Finanzen sowie Regierungsorganisationen.

Diese neue Bedrohung, die wir Janeleiro genannt haben, versucht ihre Opfer mit Popup-Fenstern in die Irre zu fĂŒhren, die den Websites einiger der grĂ¶ĂŸten Banken in Brasiliens nachempfunden sind. Die Popups enthalten Phishing-Formulare, mit denen die Opfer der Malware dazu gebracht werden sollen, ihre Bankdaten und persönlichen Informationen einzugeben. Die Malware erfasst und ĂŒbertrĂ€gt diese daraufhin auf ihre C&C-Server. Janeleiro folgt genau dem gleichen Implementierungsmuster wie einige der bekanntesten Malware-Familien, die auf die Region abzielen: Dazu gehören Casbaneiro, Grandoreiro, Mekotio, Amavaldo und Vadokrist.

Im Gegensatz zu diesen bekannten Malware-Familien wurde Janeleiro allerdings in Visual Basic .NET und nicht in der Programmiersprache Delphi geschrieben, die viele Bedrohungsakteure in der Region seit Jahren verwenden. Janeleiro ermöglicht den HintermĂ€nnern der Malware mehr Kontrolle bei der Manipulation und Anpassung ihrer gefĂ€lschten Popup-Fenster. Je nachdem, was sie benötigen, um die Angriffe durchzufĂŒhren, können sie Mausklicks und TastenanschlĂ€ge senden und Benutzereingaben sowie den Bildschirm in Echtzeit aufzeichnen. Dabei zeichnen sich diese Angriffe nicht durch ihre Automatisierung aus, sondern sind eher praxisorientiert: In vielen FĂ€llen muss der Betreiber die Fenster ĂŒber Befehle in Echtzeit anpassen.

Die Betreiber scheinen dabei auf GitHub zu setzen. Sie nutzen den Dienst, um ihre Module zu speichern, ihre Organisationsseite zu verwalten und jeden Tag neue Repositories hochzuladen. Darin befinden sich auch die Dateien mit den C&C-Server-Listen ĂŒber die die Trojaner die Verbindung mit ihren Bedienern herstellen. Es ist interessant, dass die Malware von einer einzigen Quelle abhĂ€ngig ist. Doch noch interessanter ist es, dass die neueste Version von Janeleiro nur einen Tag lebt.

Ziel: Brasilien

Auf Basis unserer Telemetriedaten können wir davon ausgehen, dass diese Malware es nur Unternehmensmitarbeiter abgesehen hat. SchÀdliche E-Mails werden nur an Unternehmen in Brasilien gesendet. Obwohl wir nicht glauben, dass es sich dabei um gezielte Angriffe handelt, scheinen diese Mails nur in kleinen Mengen gesendet zu werden. Laut unseren Daten sind die betroffenen Sektoren Ingenieurwesen, Gesundheitswesen, Einzelhandel, Fertigung, Finanzen, Transport und Regierung.

Ein Beispiel fĂŒr eine Phishing-E-Mail ist in Abbildung 1 dargestellt: Es handelt sich um eine falsche Benachrichtigung bezĂŒglich einer nicht bezahlten Rechnung. Sie enthĂ€lt einen Link, der zu einem kompromittierten Server fĂŒhrt. Die abgerufene Seite leitet zu einem Download eines in Azure gehosteten ZIP-Archivs weiter. Weitere von den Angreifern gesendete E-Mail-Links werden nicht ĂŒber kompromittierte Server geleitet, sondern fĂŒhren direkt zum ZIP-Archiv.

Abbildung 1. Beispiel fĂŒr eine bösartige E-Mail

Die Server, auf denen diese ZIP-Archive mit Janeleiro gehostet werden, verfĂŒgen ĂŒber URLs, die den gleichen Konventionen entsprechen wie URLs, die wir bei der Bereitstellung anderer Banking-Trojaner-Familien gesehen haben (siehe Abschnitt Indicators of Compromise). In einigen FĂ€llen haben diese URLs sowohl Janeleiro als auch andere, in Delphi geschriebene Banker, zu unterschiedlichen Zeiten verteilt. Dies deutet darauf hin, dass entweder verschiedene kriminelle Gruppen denselben Anbieter fĂŒr den Spam-Versand und das Hosten ihrer Malware verwenden oder, dass sie dieselbe Gruppe sind. Wir haben noch nicht festgestellt, welche Hypothese richtig ist.

Eine Übersicht ĂŒber den Angriff ist in Abbildung 2 dargestellt.

Abbildung 2. Übersicht ĂŒber Janeleiro-Angriffe (vereinfacht)

Das ZIP-Archiv enthĂ€lt ein MSI-Installationsprogramm, das die Haupt-DLL des Trojaners lĂ€dt. Diese Technik wird von mehreren Malware-Familien in der Region bevorzugt. Janeleiro ruft die öffentliche IP-Adresse des Computers ab und versucht diese mithilfe eines Webdienstes zu lokalisieren. Wenn der zurĂŒckgegebene LĂ€ndercode nicht mit BR ĂŒbereinstimmt, wird die Malware beendet. Wenn die GeolokalisierungsprĂŒfung erfolgreich ist, sammelt Janeleiro Informationen ĂŒber die gefĂ€hrdete Maschine, einschließlich:

  • Aktuelles Datum und Uhrzeit
  • Computer- und Benutzername
  • Name des Betriebssystems und die verwendete Architektur
  • Malware-Version
  • Region in Brasilien, in der sich das Opfer befindet

Die Informationen werden auf eine Website hochgeladen, ĂŒber die erfolgreiche Angriffe verfolgt werden können. Danach ruft Janeleiro die IP-Adressen der C&C-Server von einer GitHub-Organisationsseite ab, die anscheinend von den Kriminellen erstellt wurde. Nach diesem Schritt ist das Schadprogramm zur AusfĂŒhrung seiner KernfunktionalitĂ€ten bereit und wartet auf Befehle von seinen Betreibern.

Im Jahr 2020 veröffentlichte ESET ein Whitepaper, in dem die Ergebnisse zur InterkonnektivitĂ€t zwischen den bekanntesten lateinamerikanischen Banking-Trojaner-Familien, darunter Casbaneiro, Grandoreiro und Amavaldo, detailliert beschrieben wurden. Die Ähnlichkeiten betreffen die Implementierung des Trojaners: Zum einen, die Benachrichtigung des Betreibers, wenn ein aktives Fenster mit einem interessanten Namen oder Titel auf der Grundlage einer vordefinierten SchlĂŒsselwortliste erkannt wird. Zum anderen, die Verwendung eines gefĂ€lschten Popup-Fensters, um potenziellen Opfern vorzuspielen, sie gĂ€ben vertrauliche Informationen auf einer legitimen Website ein. Dieser Vorgang wird durch das Flussdiagramm in Abbildung 3 veranschaulicht.

Abbildung 3. Typische Implementierung von Banking-Trojanern aus Lateinamerika

Janeleiro folgt dem genauen Implementierungsmuster wie elf weitere Malware-Familien, die auf Brasilien abzielen. Abbildung 4 zeigt einige der gefÀlschten Popup-Fenster, die von Janeleiro erstellt werden.

Abbildung 4. GefÀlschte Popup-Fenster, die von Janeleiro verwendet werden

Janeleiro in Aktion

Janeleiro beginnt mit der Auflistung von Fenstern und der ÜberprĂŒfung ihrer Namen, um interessante SchlĂŒsselwörter zu finden (siehe Abbildung 5), die auf den Besuch des Benutzers auf der Website einer Bank hinweisen. NatĂŒrlich geht es dabei besonders um die Banken, die Janeleiros Fake Pop-Up-Fenster unterstĂŒtzen.

Abbildung 5. Liste der SchlĂŒsselwörter, nach denen Janeleiro in Fenstertiteln sucht

Wenn eines der SchlĂŒsselwörter gefunden wird, versucht Janeleiro sofort, die Adressen seiner C&C-Server von GitHub abzurufen und stellt eine Verbindung zu ihnen her. Die gefĂ€lschten Popup-Fenster, die im nĂ€chsten Schritt des Angriffs angezeigt werden, werden bei Bedarf dynamisch erstellt und vom Angreifer ĂŒber Befehle an die Malware gesteuert. Sie durchlaufen mehrere Phasen, um den Benutzer auszutricksen. In dieser Zeit empfĂ€ngt der Angreifer in Echtzeit Screenshots, die protokollierten TastenanschlĂ€ge und die Informationen, die in die gefĂ€lschten Formulare eingegeben werden.

Die Tatsache, dass Bedrohungsakteure GitHub missbrauchen, ist nicht neu. Janeleiro macht dies jedoch auf recht interessante Weise: Die Bediener haben eine GitHub-Organisationsseite erstellt, die sie jeden Tag in der Form SLK<dd/mm/yyyy> umbenennen, wobei <dd/mm/yyyy> das aktuelle Datum ist.

Ein Screenshot der GitHub-Organisationsseite vom 15. MĂ€rz 2021 ist in Abbildung 6 dargestellt.

Abbildung 6. GitHub-Organisationsseite mit Repositories, die von den Betreibern von Janeleiro verwendet werden

Der Benutzeraccount novoescritorio1-alberto erstellt tĂ€glich ein neues Repository, dass diesem Namensformat folgt. Der Zweck des Repositorys besteht in der Bereitstellung einer Datei mit der Liste der C&C-Server-Adressen von Janeleiro, die die Malware fĂŒr RĂŒckmeldungen an die Betreiber, zum Empfang von Befehlen und zur Abschöpfung von Informationen in Echtzeit verwendet.Abbildung 7 zeigt einen Screenshot mit einem der Repositories auf der GitHub-Organisationsseite, der Betreiber von Janeleiro, einschließlich des Benutzerkontos, das die Commits ausfĂŒhrt.

Abbildung 7. Hauptzweig mit SLK-Datei fĂŒr Janeleiro Version 3

Ein Screenshot des sekundÀren Zweigs im Repository ist in Abbildung 8 dargestellt.

Abbildung 8. SLK-Zweig mit SLK-Datei fĂŒr Janeleiro Version 2

Wir haben GitHub ĂŒber diese AktivitĂ€t informiert, aber zum Zeitpunkt des Schreibens wurden weder Maßnahmen gegen die Organisationsseite noch gegen das Konto ergriffen, das das Repository mit neuen C&C-Serveradressen erstellt.

In der neuesten Version von Janeleiro, Version 0.0.3, haben die Entwickler eine interessante VerschlĂŒsselungs-/EntschlĂŒsselungsfunktion mit einer Open-Source-Bibliothek namens EncryptDecryptUtils eingefĂŒhrt. Das neue Verfahren zur EntschlĂŒsselung ist in Abbildung 9 dargestellt.

Abbildung 9. EntschlĂŒsselungsverfahren implementiert von Janeleiro Version 0.0.3

Um eine Zeichenfolge zu entschlĂŒsseln, verschlĂŒsselt Janeleiro die aus dem aktuellen Datum resultierende Zeichenfolge. Das Ergebnis wird dann als Passphrase und Salt-Wert verwendet, um einen neuen SchlĂŒssel fĂŒr die EntschlĂŒsselung zu erstellen. Dies hat einen Ă€ußerst wichtigen Effekt: Die neueste Version von Janeleiro kann ihre Zeichenfolgen nur an einem bestimmten Tag entschlĂŒsseln. Dies kann der gleiche Tag sein, an dem die Zeichenfolgen verschlĂŒsselt wurden, oder ein Tag in der Zukunft An jedem anderen Tag schlĂ€gt die EntschlĂŒsselung fehl.

Dies gilt auch fĂŒr den Inhalt der SLK-Datei im Hauptzweig: die verschlĂŒsselte und Base 64-codierte Liste der C&C-Server, wie in Abbildung 10 dargestellt.

Abbildung 10. Inhalt der SLK-Datei im Hauptzweig.

Der Inhalt wird auf die gleiche Weise verschlĂŒsselt: Wenn Janeleiro den Inhalt der Datei entschlĂŒsselt, muss es an einem bestimmten Datum geschehen, damit es wie beabsichtigt funktioniert.

Entwicklung von Janeleiro

Janeleiro verfĂŒgt ĂŒber einen internen Versionswert (wie in Abbildung 11 dargestellt), mit dem die Angreifer ermitteln können, welche Version ihrer Malware einen Computer erfolgreich kompromittiert hat. Bis MĂ€rz 2021 haben wir vier Versionen identifiziert, von denen zwei dieselbe interne Versionsnummer haben.

Abbildung 11. Von Version 0.0.2A ab 2020 verwendete Konfigurationswerte

WĂ€hrend wir im Jahr 2021 die Versionen 0.0.2 und 0.0.3 gesehen haben, waren wir auf der Suche nach einem fehlenden SchlĂŒsselstĂŒck in der Entwicklung von Janeleiro: Version 0.0.1, die Ende 2019 oder Anfang 2020 hĂ€tte existieren sollen Überraschenderweise fanden wir stattdessen Samples der Version 0.0.4 aus dem Jahr 2019. Diese neuen Samples wurden ĂŒber eine DLL-Loader-Komponente in Verbindung mit einem Passwort-Stealer bereitgestellt, was bedeutet, dass die Gruppe hinter Janeleiro auch ĂŒber andere Tools verfĂŒgt.

Eine Übersicht ĂŒber Janeleiros Versionen von 2019 bis 2021 ist in Abbildung 12 dargestellt.

Abbildung 12. Janeleiros seltsame Entwicklungszeitleiste, basierend auf der internen Version der Malware

The inconsistency in the timeline and internal versioning of the malware suggests that it was under development as far back as 2018, and in 2020 they decided to switch to a previous version of their code and to improve that and refine its command processing for the operator to have better control of the trojan during the attack.

Die Inkonsistenz in der Zeitleiste und der internen Versionierung der Malware lĂ€sst darauf schließen, dass sie bereits 2018 entwickelt wurde. 2020 beschloss man dann auf eine frĂŒhere Version des Codes umzusteigen und diese zu verbessern sowie die Befehlsverarbeitung fĂŒr den Bediener zu verfeinern, um wĂ€hrend des Angriffs bessere Kontrolle ĂŒber den Trojaner zu haben.

Traditionen und TraditionsbrĂŒche

Obwohl Janeleiro dem gleichen Implementierungsmuster folgt, das andere Malware-Familien der Region verwenden, unterscheidet er sich in mehrfacher Hinsicht von diesen:

  • Er ist in Visual Basic .NET geschrieben: MerkwĂŒrdigerweise ist es in Brasilien so, dass es hauptsĂ€chlich von in Delphi entwickelten Banking-Trojanern angegriffen wird. Dies ist die Programmiersprache der Wahl fĂŒr mehrere Bedrohungsakteure, die offenbar zusammenarbeiten und Tools und Infrastruktur gemeinsam nutzen. Janeleiros PrĂ€ferenz fĂŒr VB.NET ist eine bemerkenswerte Abweichung von der fĂŒr die Region ĂŒblichen Norm.
  • Keine binĂ€re Verschleierung: WĂ€hrend Janeleiro eine einfache Verschleierungstechnik nutzt, indem er zufĂ€llige Namen fĂŒr seine Klassen, Module, Methodennamen, Parameter und ZeichenfolgenverschlĂŒsselung generiert, werden keine Packer verwendet, um die Erkennung und Analyse zu erschweren. Andere Trojaner wie Grandoreiro, Mekotio, Ousaban, Vadokrist und Guildma verwenden hĂ€ufig Themida und binĂ€re Padding-Techniken.
  • Keine benutzerdefinierten VerschlĂŒsselungsalgorithmen: Die Entwickler von Janeleiro verlassen sich auf kryptografische Funktionen, die von .NET Framework bereitgestellt werden, sowie auf Open-Source-Projekte fĂŒr die VerschlĂŒsselung und EntschlĂŒsselung von Zeichenfolgen, wobei AES- und RSA-Algorithmen bevorzugt werden. Trojaner wie Casbaneiro, Grandoreiro, Amavaldo, Mispadu und Guildma verwenden unter anderem benutzerdefinierte VerschlĂŒsselungsalgorithmen, einschließlich Verschleierungstechniken unter Verwendung von Zeichenfolgentabellen.
  • Einfache AusfĂŒhrungsmethode: Das MSI-Installationsprogramm stellt keine anderen Komponenten als die Haupt-Trojaner-DLL bereit und fĂŒhrt keine anderen Anweisungen als das Laden und AusfĂŒhren eines der Exporte der DLL aus, die sich selbst im System installiert. Wir haben keine Beispiele fĂŒr ein MSI-Installationsprogramm gefunden, das verschleierte Skripte ausfĂŒhrt, Support-Tools oder Komponenten fĂŒr DLL-Side-Loading entpackt, was bei anderen Malware-Familien in der Region beliebt ist.
  • Keine Verteidigung gegen Sicherheitssoftware: Einige der grĂ¶ĂŸten brasilianischen Banken verlangen, dass ihre Kunden ein Sicherheitsmodul installieren, bevor sie online auf ihre Bankkonten zugreifen können. Zum Beispiel dies Warsaw BetrugsbekĂ€mpfungssoftware. Es ist hĂ€ufig der Fall, dass Banking-Trojaner aus LATAM versuchen, herauszufinden, ob eine solche Software auf dem gefĂ€hrdeten Computer installiert ist, und sie den Angreifern melden. Einige Malware-Familien wie Grandoreiro und Guildma versuchen, sie in der Windows-Firewall zu deaktivieren oder den Treiber zu deaktivieren.
  • Verwendet Code von NjRAT: Janeleiro ist weit davon entfernt, eine weitere Inkarnation des bekannten NjRAT zu sein, verwendet jedoch die SocketClient– und Remotedesktop-Erfassungsfunktionen von NjRAT sowie diverse andere Funktionen. NjRAT wird – zumindest von LATAM-Backtrojanern – nicht hĂ€ufig verwendet, möglicherweise weil sie in Delphi programmierte Trojaner bevorzugen. Neben anderer Malware wurde NjRAT jedoch in Operation Spalax verwendet, einer Kampagne, die speziell auf Kolumbien abzielt

Befehle

Mit Parametern versehene Befehle werden vom C&C-Server in verschlĂŒsselter Form empfangen. Dabei wird derselbe Algorithmus genutzt, der zum VerschlĂŒsseln von Zeichenfolgen verwendet wird (siehe Anhang A). Ein typisches Befehlsformat lautet wie folgt: %CommandName%%PredefinedSeparatorKeyword%%Parameters%.

Nach der EntschlĂŒsselung wird der Befehl in ein Array von Zeichenfolgen aufgeteilt. Jeder Teil des Befehls wird durch ein vordefiniertes SchlĂŒsselwort getrennt, das in der Konfiguration der Malware fest codiert ist. Alle von uns analysierten Versionen verwenden | ‚meio‘ |, das den Befehlsnamen und jeden Parameter trennt.

Abbildung 13 zeigt, wie Janeleiro den Namen des Befehls ĂŒberprĂŒft und die angeforderte Aktion ausfĂŒhrt.

Abbildung 13. Beispiel fĂŒr den Verarbeitungsbefehl startinfo der Version 0.0.2B

Wenn Janeleiro Daten an den Operator zurĂŒcksendet, geschieht dies in einem Ă€hnlichen Format:% CommandName %% PredefinedSeparatorKeyword %% Encoded data%.

Die meisten Befehle von Janeleiro dienen zur Steuerung von Fenstern, Maus und Tastatur sowie der gefĂ€lschten Popup-Fenster. Mit der Weiterentwicklung von Version 0.0.2A auf 0.0.3 wurden weitere Befehle hinzugefĂŒgt, die dem Bediener eine verfeinerte Steuerung boten:

  • Befehle zum Steuern eines bestimmten Fensters
  • Auflisten und Senden von Informationen zu Fenstern (Titel, Klasse, Handle)
  • Anpassung spezifischer FenstergrĂ¶ĂŸen, Minimierung und Maximierung
  • Abmessungen des Bildschirms
  • Beendigung aller Chrome.exe-Prozesse und Neustart von Chrome.exe  mit den Argumenten –disable-gpu
  • Erfassung des Bildschirms in Echtzeit
  • Keylogging in Echtzeit
  • Senden von TastenanschlĂ€gen und Mausklicks
  • Anzeigen oder Schließen eines bestimmten gefĂ€lschten Popup-Fensters
  • Verschiedene Befehle wie: Datum und Uhrzeit senden, Socket trennen, eigenen Prozess beenden

Fazit

Der experimentelle Charakter von Janeleiro, der zwischen verschiedenen Versionen hin und her wechselt, deutet auf einen Akteur hin, der immer noch nach dem richtigen Weg sucht, aber nicht weniger erfahren ist als die Konkurrenz: Janeleiro folgt dem einzigartigen Implementierungsmuster vieler LATAM-Banking-Trojaner fĂŒr gefĂ€lschte Popup-Fenster. Dies scheint kein Zufall oder bloße Inspiration zu sein: Dieser Bedrohungsakteur verwendet und verteilt Janeleiro ĂŒber dieselbe Infrastruktur, die auch einige der bekanntesten Malware-Familien in der Region nutzen. Wir werden die AktivitĂ€ten dieses Bedrohungsakteurs weiter beobachten. Die Zeit wird zeigen, welche neuen Entwicklungen sie in Zukunft machen werden.

FĂŒr Anfragen oder Sample-Einreichungen zum Thema wenden Sie sich bitte an threatintel@eset.com.

Besonderer Dank geht an Jonathan Camargo Zacarias von der ItaĂș Bank fĂŒr seine Hilfe bei den Nachforschungen.

Indicators of Compromise (IoCs)

A comprehensive list of Indicators of Compromise (IoCs) and samples can be found in our GitHub repository.

SHA-1 hashes

Version 0.0.4

SHA-1 Description ESET detection name
CF117E5CA26594F497E0F15106518FEE52B88D8D MSI file MSIL/TrojanDownloader.Agent.FSC
D16AC192499192F06A3903192A4AA57A28CCCA5A Console.exe loader MSIL/TrojanDownloader.Agent.FSC
462D6AD77860D3D523D2CAFBC227F012952E513C MSIL/Kryptik.TBD
0A5BBEC328FDD4E8B2379AF770DF8B180411B05D LoadDllMSI.dll loader MSIL/TrojanDownloader.Agent.FSC
0AA349050B7EF173BFA34B92687554E81EEB28FF System.Logins.Initial.dll MSIL/Agent.TIX
5B19E2D1950ADD701864D5F0F18A1111AAABEA28
186E590239083A5B54971CAB66A58301230164C2 System.Modules.Initial.dll
E1B2FD94F16237379E4CAD6832A6FCE7F543DC40 System.Modules.Initial.dll MSIL/Janeleiro.A
4061B2FBEB7F1026E54EE928867169D1B001B7A5

Version 0.0.2A

SHA-1 Description ESET detection name
8674E61B421A905DA8B866A194680D08D27D77AE Main Trojan Loader MSIL/Agent.AAI
2E5F7D5F680152E738B8910E694651D48126382A MSIL/Janeleiro.A
06E4F11A2A6EF8284C6AAC5A924D186410257650 Main Trojan MSIL/Agent.AAI

Version 0.0.2B

SHA-1 Description ESET detection name
291A5F0DF18CC68FA0DA1B7F401EAD17C9FBDD7F MSI file MSIL/Janeleiro.A
FB246A5A1105B83DFA8032394759DBC23AB81529
6F6FF405F6DA50B517E82FF9D1A546D8F13EC3F7 Main trojan
742E0AEDC8970D47F16F5549A6B61D839485DE3C

Version 0.0.3

SHA-1 Description ESET detection name
455FAF2A741C28BA1EFCE8635AC0FCE935C080FF MSI file MSIL/Janeleiro.A
D71EB97FC1F5FE50D608518D2820CB96F2A3376F
158DA5AB85BFAC471DC2B2EE66FD99AEF7432DBB Main trojan
6BFAEFCC0930DA5A2BAEC19723C8C835A003D1EC

 

Download URLs

In the following <NNNNNNNNNNN> is a random number between 10000000000 and 90000000000.

Downloading only Janeleiro

  • https://recuperaglobaldanfeonline.eastus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNNN>
  • https://protocolo-faturamento-servico.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://acessoriapremierfantasiafaturas.eastus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>

Downloading Janeleiro and other Delphi banking trojans

  • https://portalrotulosfechamento.eastus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://servicosemitidosglobalnfe.southcentralus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://emissaocomprovanteatrasado.eastus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>

Downloading Delphi bankers

  • https://emitidasfaturasfevereiro.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://dinamicoscontratosvencidos.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://arquivosemitidoscomsucesso.eastus.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://fatura-digital-arquiv-lo.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://nota-eletronica-servicos.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>
  • https://eletronicadanfe.brazilsouth.cloudapp.azure[.]com/nfedown.php?dw=<NNNNNNNNNN>

C&C servers

These are the IP addresses of the C&C servers where Janeleiro connects to report, receive commands and send data:

  • 52.204.58[.]11
  • 35.174.60[.]172

These are the tracking URLs where Janeleiro sends information about the compromised system during installation:

  • http://tasoofile.us-east-1.elasticbeanstalk[.]com/count
  • http://slkvemnemim.us-east-1.elasticbeanstalk[.]com/count
  • http://checa-env.cf3tefmhmr.eu-north-1.elasticbeanstalk[.]com/cnt/

These are the URLs used by System.Logins.dll to exfiltrate the harvested data:

  • http://comunicador.duckdns[.]org/catalista/emails/checkuser.php
  • http://comunicador.duckdns[.]org/catalista/lixo/index.php

IPs associated with the domain:

  • 178.79.178[.]203
  • 138.197.101[.]4

MITRE ATT&CK techniques

Note: This table was built using version 8 of the MITRE ATT&CK framework.

Tactic ID Name Description
Resource Development T1584.004 Compromise Infrastructure: Server In some cases, malicious emails sent to targets contain links to a compromised server that redirects to the download of Janeleiro.
Initial Access T1566.002 Phishing: Spearphishing Link Attackers send malicious emails that have a download link for Janeleiro malware.
Execution T1204.001 User Execution: Malicious Link Phishing emails sent by the attackers contain a link to download a ZIP archive that holds an MSI installer with Janeleiro malware.
Persistence T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder Janeleiro achieves persistence by adding itself to the Run registry key (in v0.0.3 of the malware).
T1547.009 Boot or Logon Autostart Execution: Shortcut Modification Janeleiro creates a LNK file for persistence (in v0.0.4, v0.0.2A and v0.0.2B of the malware).
Defense Evasion T1140 Deobfuscate/Decode Files or Information Janeleiro v0.0.2B is obfuscated and its strings are RSA-encrypted. Version 0.0.3 uses AES for string encryption.
Credential Access T1555.003 Credentials from Password Stores: Credentials from Web Browsers Janeleiro v0.0.4 can download a DLL that steals passwords from Chrome, Firefox and Opera browsers.
T1552.001 Unsecured Credentials: Credentials In Files Janeleiro v0.0.4 can download a DLL that obtains passwords stored in files from several applications such as FileZilla, Pidgin and Thunderbird.
Discovery T1087.003 Account Discovery: Email Account Janeleiro v0.0.4 can download a DLL that collects Gmail addresses.
T1010 Application Window Discovery Janeleiro collects information about open windows so the attacker can decide to inject pop-ups.
T1082 System Information Discovery Janeleiro collects information from the victim’s machine, such as username, OS and architecture.
T1033 System Owner/User Discovery Janeleiro collects the username from the victim’s machine.
T1124 System Time Discovery Janeleiro collects current date and time when the victim is compromised.
Collection T1115 Clipboard Data Janeleiro uses a clipboard event handler to access clipboard data.
T1056.001 Input Capture: Keylogging Janeleiro can perform keylogging.
T1113 Screen Capture Janeleiro can capture screenshots of the victim’s desktop.
T1056.002 Input Capture: GUI Input Capture Janeleiro displays fake forms on top of banking sites to intercept credentials from victims.
Command and Control T1095 Non-Application Layer Protocol Janeleiro uses TCP for C&C communications.
T1102.001 Web Service: Dead Drop Resolver Janeleiro uses GitHub repositories to store C&C information.
Exfiltration T1041 Exfiltration Over C2 Channel Janeleiro exfiltrates data over the same channel used for C&C.

Appendix A: Overview of Janeleiro’s malware family

Here is each incarnation we have found of Janeleiro from 2019 until March 2021.

Version 0.0.4

  • Period of activity: 2019 – Possibly still active.
  • The first version of Janeleiro – that we know of – came in the form of an MSI installer and at least two variants:
    • Variant 1: MSI installer loads a DLL called LoadDllMSI.dll internally
    • Variant 2: MSI installer executes Console.exe, which checks privileges and loads an embedded DLL assembly called LoadSystem.dll.

Both LoadDllMSI.dll and LoadSystem.dll perform the same tasks:

  • Create an installation folder
  • Download and store two modules: Logins.Initial.dll and System.Modules.Initial.dll. The two modules are downloaded from a GitHub account that, at the time of writing, has been closed.
  • Create several Shortcuts in strategic places
  • Log the successful compromise of the system to a tracking website

System.Logins: It is a password stealer for Google Chrome, FileZilla, Mozilla Firefox, Opera, Pidgin, and Mozilla Thunderbird. Additionally, it harvests email information from Gmail. All the information is exfiltrated to two websites. Version 0.0.4 is the only one that is deployed with this malicious tool.

System.Modules: Janeleiro’s main trojan, implemented as a Windows Forms application compiled as DLL. This version had the capacity to dynamically create fake pop-up windows using several Forms for several banking entities, including banks operating in Mexico, but it is unknown if this version was distributed in Mexico at any point.

This version used two GitHub organization pages to download the IP addresses of its C&C servers: the names of the pages are generated by encrypting the current date with SLK as suffix as shown in Figure 14.

Figure 14. Version 0.0.4 attempts to read file in a GitHub repository that contains the encrypted list of C&C servers

At the time of writing, we believe that the operators have abandoned this version of the malware. We couldn’t find any active GitHub pages by following the name generation algorithm used by Janeleiro.

Many commands for the trojan were left unimplemented, some were implemented and other discarded in newer versions used in 2020 and 2021.

Version 0.0.2A

  • Period of activity: 2020 – Unknown.
  • Internal Malware Version: 0.0.2

The MSI installer loads a DLL that borrows from LoadSystem installation and persistence procedures but unpacks the embedded main trojan DLL from its resources. The main trojan was implemented as a Windows Forms application compiled as DLL.

This version of Janeleiro only uses one Form to create the fake pop-up windows with more commands supported by the operator but with fewer targets: Mexican banking entities were discarded. All of the images used to cover the screen and trick the user are for Brazilian banks.

This version also appears to have been abandoned and cannot contact its C&C servers by retrieving the IP lists from a GitHub page. It uses the same algorithm as Version 0.0.4 with the same key vhpjzqqtpo, suggesting that the operators where using the same GitHub page as for Version 0.0.4. Figure 15 shows the code that attempts to retrieve the list from GitHub.

Figure 15. Version 0.0.2A attempts to download a new list of C&C servers from a repository on a GitHub organization page

Version 0.0.2B

  • Period of activity: 2021 – Still active.
  • Internal Malware Version: 0.0.2

New characteristics of this version:

  • Implemented as a Windows Presentation Foundation application
  • Major restructuration of the code combining the loader code with the main trojan
  • Geolocation of the compromised machine
  • Implementation of clipboard hijacking to replace bitcoin addresses
  • Expanded set of supported commands
  • Strings encrypted/decrypted with the RSA algorithm

Figure 16 shows the implementation of clipboard hijacking by Janeleiro; when a bitcoin address is found, it randomly picks one from its own list of bitcoin addresses and replaces it.

Figure 16. Janeleiro’s implementation of clipboard hijacking

In this version a simplified procedure was implemented to retrieve the addresses of its C&C servers from a GitHub organization page; the name scheme this time is a simple concatenation of SLK with the current date time without the slashes, as shown in Figure 17.

Figure 17. Version 0.0.2B procedure to retrieve its list of C&C servers. We have decrypted some strings for clarity.

The code attempts to download the contents of a file in a secondary branch. The file contains, in plaintext, the list of the C&C IP addresses and ports. At the time of writing, the GitHub organization pages can be found using the procedure as they continue to operate with this recent version of Janeleiro.

Version 0.0.3

  • Period of activity: Since March 2021 – Still active.
  • Internal Malware Version: 0.0.3

New characteristics of this version:

  • Implemented as a Windows Forms application
  • A recombination of Version 0.0.2A and 0.0.2B code and technique implementations
  • New persistence method using Windows Registry Run Key
  • Expanded set of supported commands
  • Uses AES algorithm to encrypt/decrypt its strings

This version uses the same procedure as Version 0.0.2B to get the C&C servers from the GitHub organization page, with the difference that it uses the main branch within the repository and the list is encrypted and encoded with base64 as shown in Figure 18.

Figure 18. Main repository containing an encrypted list of C&C servers

This procedure is also used when decrypting the list of C&C servers, therefore there must exist a repository containing the file in the main branch, with the encrypted list intended for that day. Otherwise this version cannot contact the operators as decryption will fail.

Appendix B: Third-party tools used by Janeleiro

Janeleiro uses several third-party, open-source libraries for various purposes:

Tool Description Used by
Fody Used to load every other third-party tool, or trojan component, such as LoadSystem in version 0.0.4. All versions including System.Logins
Mimekit, Mailkit, Xnet, BouncyCastle, uPREC Used to collect emails and login information. System.Logins
SharpClipboard Used for clipboard hijacking: when the user copies a bitcoin address, Janeleiro replaces it with one randomly chosen from a list of its own.

Interestingly, the Janeleiro developers don’t seem to have downloaded SharpClipboard’s source code to compile their own version: they obtained a compiled copy from another GitHub repository; we don’t believe that user is in any way related to the development of this threat.

Version 0.0.2B
Version 0.0.3
SharpVectors Used to load SVG images contained in resources. These images are logos of several banks used by the fake pop-up windows. Version 0.0.2B
Version 0.0.3
Newtonsoft JSON Used to parse the data returned by the geoPlugin web service. Version 0.0.2B
Version 0.0.3
EncryptDecryptUtils Used to encrypt and decrypt its strings. Functions were modified to contain the key, so it’s not present in the trojan’s code. Version 0.0.3



Publié par