obsidian auto-sync 2026-04-24 15:30:00
This commit is contained in:
@@ -8,9 +8,12 @@ originSessionId: 8c23ee07-26c7-4c9d-b7cc-8fd9d2b3c266
|
|||||||
|
|
||||||
- Hostname: finlandit5870.com
|
- Hostname: finlandit5870.com
|
||||||
- Ubuntu 22.04, 3.8GB RAM, 30GB disk (42% used)
|
- Ubuntu 22.04, 3.8GB RAM, 30GB disk (42% used)
|
||||||
- SSH: root / vb8Se9VMdwh1P692PZ (обновлён 2026-04-13)
|
- SSH: **только ключ** (PasswordAuthentication=no с 2026-04-24 после инцидента XorDDoS)
|
||||||
- Доступ через: LXC 137 (openclaw, 10.0.0.239) с SSH-ключом
|
- Root пароль: `Ztey8pwWBiNNiMU09y76` (в /root/.new_root_pw, но по SSH уже не работает)
|
||||||
- ICMP заблокирован (ping не работает, но это нормально)
|
- Доступ: `ssh -i ~/.ssh/id_ed25519 root@78.17.4.225` (с Mac и openclaw)
|
||||||
|
- ICMP разрешён (ping работает)
|
||||||
|
- **fail2ban active**, SSH с docker-сетей заблокирован iptables INPUT DROP
|
||||||
|
- См. [[decisions/2026-04-24-finland-vps-malware-cleanup]]
|
||||||
|
|
||||||
### Сервисы (Docker)
|
### Сервисы (Docker)
|
||||||
|
|
||||||
|
|||||||
76
decisions/2026-04-24-finland-vps-malware-cleanup.md
Normal file
76
decisions/2026-04-24-finland-vps-malware-cleanup.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-24
|
||||||
|
type: incident
|
||||||
|
tags: [niikn, vpn, security, malware, finland]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Finland VPS 78.17.4.225 — инцидент XorDDoS + очистка
|
||||||
|
|
||||||
|
## Обстоятельства
|
||||||
|
- 24 Apr провайдер adminvps.ru заблокировал сервер за **14 ТБ трафика за ~11 дней** (~1.27 ТБ/день)
|
||||||
|
- Олег доплатил +8 ТБ, сервер снова в сети
|
||||||
|
- AmneziaVPN НИИКН (клиенты через OpenWrt 10.8.1.16) всё это время работал, но на фоне шёл malware
|
||||||
|
|
||||||
|
## Диагноз
|
||||||
|
Семейство **Linux/XorDDoS** (или близкий вариант). Маскировки:
|
||||||
|
- `/usr/bin/zneirjeklr` — главный бинарь, cmdline `[rcu_gp]` (под kernel thread)
|
||||||
|
- `/etc/init.d/zneirjeklr` — SysV init persistence (автогенерит systemd unit)
|
||||||
|
- `/etc/cron.hourly/gcc.sh` — backup persistence, cp из `/lib/libudev.so` в `/lib/libudev.so.6` и запуск
|
||||||
|
- `/usr/local/bin/lvm2-monitor` — под LVM monitor
|
||||||
|
- `/lib/libudev.so` + `/usr/lib/libudev.so` — под libudev
|
||||||
|
- `/tmp/*` + `/var/tmp/*` — дропперы с числовыми именами (3.2 МБ каждый)
|
||||||
|
- `/var/tmp/QvqDAQNp` — UPX-packed дроппер (14 МБ)
|
||||||
|
- cmdline `hald-runner` / `mingetty tty1` — фейковые имена процессов
|
||||||
|
|
||||||
|
## Хронология (по mtime)
|
||||||
|
| Дата | Событие |
|
||||||
|
|------|---------|
|
||||||
|
| 28 Mar 23:59 | Первый успешный `Accepted password` с 172.18.0.3 (panel-web legitimate или уже compromised) |
|
||||||
|
| 7 Apr 19:44 | Дроппер `/var/tmp/QvqDAQNp` создан |
|
||||||
|
| 13 Apr 5:54-5:59 | Массовое создание 7 дропперов в `/var/tmp/` |
|
||||||
|
| 17 Apr 17:33 | Ещё волна (EXT4 remount в dmesg) |
|
||||||
|
| 20 Apr 02:13 | `zneirjeklr.service` активирован (systemd-sysv-generator) |
|
||||||
|
| 23 Apr 14:49 | Провайдер остановил сервер (квота) |
|
||||||
|
| 24 Apr 11:40 | Олег оплатил, сервер поднялся — malware сразу запустился |
|
||||||
|
| 24 Apr 12:00-12:30 | Очистка |
|
||||||
|
|
||||||
|
## C2 инфраструктура
|
||||||
|
- 141.98.10.115:1531
|
||||||
|
- 170.168.103.27:29205
|
||||||
|
- 64.89.161.144:40778
|
||||||
|
|
||||||
|
## Точка входа
|
||||||
|
**RCE в PHP-панели AmneziaVPN (`amnezia-panel-web`)** — НЕ SSH brute-force.
|
||||||
|
Доказательство: единственные успешные `Accepted password` в auth.log — с 176.62.183.186 (Олег) и 172.18.0.3 (панель, легитимный `collect_metrics.php`). **Ни одного Accepted с внешнего malware-IP.**
|
||||||
|
|
||||||
|
Брут извне был (91.142.77.101: 67k, 91.142.78.60: 66k, 91.142.78.8: 36k попыток) — НЕ пробил.
|
||||||
|
|
||||||
|
## Что сделано
|
||||||
|
1. **Блок C2** — `iptables -I OUTPUT -d <C2> -j DROP` × 3
|
||||||
|
2. **Kill + empty + chattr +i** на все 10 malware-файлов (пересоздаются но с нулевым содержимым и immutable — записаться не могут)
|
||||||
|
3. **SSH усилен:**
|
||||||
|
- Убран `PubkeyAuthentication no` из `/etc/ssh/sshd_config.d/99-cloud-init.conf` (cloud-init ставил по умолчанию — вот почему раньше входили только паролем)
|
||||||
|
- `PasswordAuthentication no` везде
|
||||||
|
- Новый root пароль `Ztey8pwWBiNNiMU09y76` (сохранён в `/root/.new_root_pw`), но по сути пароль уже не используется
|
||||||
|
4. **Docker→host SSH заблокирован:** `iptables -I INPUT -s 172.17.0.0/16 -p tcp --dport 22 -j DROP` (× 4 сети). **Важно:** это ломает `amnezia-panel/collect_metrics.php` — панель больше не получает метрики хоста. ВПН-туннели работают.
|
||||||
|
5. **fail2ban** установлен, active. Whitelist для docker сетей добавлен в `/etc/fail2ban/jail.d/docker-ignore.conf`.
|
||||||
|
6. **iptables-persistent** — правила сохранены в `/etc/iptables/rules.v4`, выживут reboot.
|
||||||
|
|
||||||
|
## Forensic артефакты (на сервере)
|
||||||
|
- `/root/forensic-20260424/zneirjeklr.bin` — копия бинарника
|
||||||
|
- `/root/forensic-20260424/1380609993.bin` — копия второй стадии
|
||||||
|
- `/root/clean-*.log` — лог очистки
|
||||||
|
- `/root/.ssh/authorized_keys.bak-20260424` — бэкап authorized_keys до дедупликации
|
||||||
|
|
||||||
|
## Что ещё надо (не сделано)
|
||||||
|
1. **Обновить/пересобрать amnezia-panel-web** — там PHP-RCE, может вернуться (текущий образ `amneziavpnphp_web` из `/opt/amneziavpnphp/docker-compose.yml`)
|
||||||
|
2. **Восстановить метрики панели** — либо положить SSH-ключ из контейнера в authorized_keys хоста, либо отключить `collect_metrics.php`
|
||||||
|
3. Мониторинг: `vnstat -d` раз в сутки, алерт при >50 ГБ/день
|
||||||
|
4. Через ~24 часа проверить `iptables -nvL OUTPUT | grep DROP` — если счётчики всё ещё растут = остался watchdog
|
||||||
|
5. Проверить другие контейнеры (amnezia-panel-db, vpn-nginx) на заражение
|
||||||
|
|
||||||
|
## Как заходить теперь
|
||||||
|
```bash
|
||||||
|
ssh -i ~/.ssh/id_ed25519 root@78.17.4.225 # только ключ
|
||||||
|
# Пароль sshpass больше не работает (PasswordAuthentication=no)
|
||||||
|
```
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-24
|
||||||
|
type: claude-session
|
||||||
|
session_id: f99ed5c6-44c9-4986-8a34-eaf14d361956
|
||||||
|
started: 2026-04-24T11:37:44.973Z
|
||||||
|
ended: 2026-04-24T12:29:10.015Z
|
||||||
|
messages: 5
|
||||||
|
tools: [Bash, Edit, Glob, Grep, Monitor, Read, TodoWrite, ToolSearch, Write]
|
||||||
|
tags: [claude, session]
|
||||||
|
---
|
||||||
|
|
||||||
|
# адача: Разобраться с высоким расходом трафика на VPS Finland (78.17.4.225, admin
|
||||||
|
|
||||||
|
## Запрос
|
||||||
|
|
||||||
|
адача: Разобраться с высоким расходом трафика на VPS Finland (78.17.4.225, adminvps.ru)
|
||||||
|
|
||||||
|
Проблема:
|
||||||
|
VPN сервер в Финляндии быстро исчерпывает трафик/квоту, хотя на других VPS такого не было.
|
||||||
|
|
||||||
|
Сервер:
|
||||||
|
|
||||||
|
• IP: 78.17.4.225
|
||||||
|
• Hostname: finlandit5870.com
|
||||||
|
• Провайдер: adminvps.ru (Финляндия)
|
||||||
|
• OS: Ubuntu 22.04, 3.8GB RAM, 30GB disk
|
||||||
|
• SSH: root / vb8Se9VMdwh1P692PZ (или 1qaz!QAZ)
|
||||||
|
• Статус: Сейчас недоступен (все порты закрыты, включая SSH)
|
||||||
|
|
||||||
|
Сервисы на сервере (Docker):
|
||||||
|
|
||||||
|
• Outline VPN: порт 64444
|
||||||
|
• Telegram MTProto: порт 443 (через HAProxy SNI google.com)
|
||||||
|
• WhatsApp Proxy: порт 7777, 5222, 587, 443
|
||||||
|
• Telegram SOCKS5: порт 1080
|
||||||
|
• AmneziaWG: UDP 39202
|
||||||
|
• VLESS/XRay: порт 9443 (через HAProxy SNI www.googletagmanager.com)
|
||||||
|
• HAProxy: порт 443 (SNI routing)
|
||||||
|
|
||||||
|
Что нужно сделать:
|
||||||
|
|
||||||
|
1. Проверить статус сервера в панели adminvps.ru:
|
||||||
|
• Включён ли сервер
|
||||||
|
• Статистика трафика за последние 7-30 дней
|
||||||
|
• Квота трафика (лимит и использование)
|
||||||
|
• Уведомления от провайдера
|
||||||
|
2. Если сервер доступен через SSH:
|
||||||
|
• Установить/проверить vnstat: apt install vnstat -y && vnstat -d
|
||||||
|
• Проверить текущий трафик: iftop -i eth0 или nethogs
|
||||||
|
• Статистика Docker контейнеров: docker stats --no-stream
|
||||||
|
• Логи HAProxy/nginx: проверить активность по портам
|
||||||
|
3. Сравнить с другими VPS:
|
||||||
|
• Какие сервисы там запущены
|
||||||
|
• Сколько трафика они потребляют
|
||||||
|
• Есть ли квоты у провайдера
|
||||||
|
4. Выявить причину:
|
||||||
|
• Какой сервис потребляет больше всего (WhatsApp proxy? VLESS? AmneziaWG?)
|
||||||
|
• Есть ли утечка трафика (неправильный NAT/routing)
|
||||||
|
• Возможно, DDoS или злоупотребление доступом
|
||||||
|
5. Рекомендации по оптимизации:
|
||||||
|
• Ограничить bandwidth для отдельных сервисов
|
||||||
|
• Настроить мониторинг трафика
|
||||||
|
• Возможно, перенести часть сервисов на другой VPS
|
||||||
|
|
||||||
|
Документация:
|
||||||
|
|
||||||
|
• /root/knowledge-base/claude-memory/niikn-vpn-status.md
|
||||||
|
• /root/knowledge-base/projects/niikn/vpn.md
|
||||||
|
|
||||||
|
Результат: Отчёт с причиной высокого расхода трафика и рекомендациями по решению.
|
||||||
|
|
||||||
|
## Итог (последний ответ Claude, до 500 симв.)
|
||||||
|
|
||||||
|
## ГОТОВО ✅
|
||||||
|
|
||||||
|
**Сервер очищен, защищён, AmneziaVPN работает.**
|
||||||
|
|
||||||
|
### Итог
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| Malware | 3 процесса убиты, 10 файлов → 0-byte + `chattr +i` (ловушка от повторной записи) |
|
||||||
|
| C2 | 3 IP в OUTPUT DROP (196 пакетов уже заблокировано) |
|
||||||
|
| SSH | Только ключ `~/.ssh/id_ed25519`, пароль выкл, docker-сети в INPUT DROP |
|
||||||
|
| fail2ban | Active, whitelist docker |
|
||||||
|
| iptables | Сохранены в `/etc/iptables/rules.v4`, переживут reboot |
|
||||||
|
| AmneziaVPN | handshake активен, клиенты онлайн, 28.74 MiB переда
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автосохранено из session [`f99ed5c6`](file:///Users/ai/.claude/projects/-Users-ai-knowledge-base/f99ed5c6-44c9-4986-8a34-eaf14d361956.jsonl) — 5 сообщ., тулы: Bash, Edit, Glob, Grep, Monitor, Read, TodoWrite, ToolSearch, Write*
|
||||||
@@ -15,7 +15,8 @@ tags: [niikn, network]
|
|||||||
| Hostname | finlandit5870.com |
|
| Hostname | finlandit5870.com |
|
||||||
| Провайдер | adminvps.ru (Финляндия) |
|
| Провайдер | adminvps.ru (Финляндия) |
|
||||||
| OS | Ubuntu 22.04, 3.8GB RAM |
|
| OS | Ubuntu 22.04, 3.8GB RAM |
|
||||||
| SSH | root / 1qaz!QAZ |
|
| SSH | **только ключ** (`~/.ssh/id_ed25519`); PasswordAuthentication=no с 2026-04-24 |
|
||||||
|
| Root pw | `Ztey8pwWBiNNiMU09y76` (для консоли adminvps.ru, SSH не принимает) |
|
||||||
|
|
||||||
### Docker-контейнеры
|
### Docker-контейнеры
|
||||||
| Контейнер | Назначение | Порты |
|
| Контейнер | Назначение | Порты |
|
||||||
|
|||||||
Reference in New Issue
Block a user