[← INDEX]
REF: #2d134946 www.securitylab.ru
[REPLICA HTML] [EXPORT MD]
ARCHIVAL DOSSIER // 2d1349462a368f97

Пивотинг в аду легаси: MIPS-сервер, BusyBox и ядро 2014 года

INTEGRITY SHA-256: 10168f673c4a69fa573c61d94ffae6b4b0781908b78287fc8c8682817e48c3ff

Представьте: вы получили SSH-доступ к старому серверу на Debian с архитектурой MIPS. Где-то в глубине сети спрятана веб-админка, и ваша задача — просканировать внутреннюю сеть, добраться до неё и подобрать учётные данные. Для пентестера это классика: за первым скомпрометированным хостом часто скрывается целая инфраструктура.

В этой статье разберём всю цепочку: от первичной разведки до настройки проксирования, сканирования сети и атаки на веб-интерфейс. Статья даёт методологию и ключевые приёмы, но не раскрывает готовое решение: конкретные параметры нужно определить самостоятельно.

 Разберём методологию, но лучший способ её усвоить — пройти такой сценарий руками. Ровно эту цепочку, от SSH-доступа на MIPS-хосте до захвата скрытой админки, можно отработать на практике в задачах One Task на [бесплатном курсе «Профессия Белый Хакер»](https://cyber-ed.securitylab.ru/proffesia-belii-hacker/?utm_source=seclab_article&utm_medium=website&utm_campaign=Forgotten_Server). Дальше по тексту будут отсылки к тому, что стоит попробовать самостоятельно.

Архитектура MIPS и почему она меняет правила игры

MIPS не та архитектура, которую вы встретите на ноутбуке. Зато она распространена в маршрутизаторах, IoT-устройствах и встраиваемых системах. Старые Debian-серверы на MIPS — реальность сетей, где оборудование не обновлялось годами.

Для пентестера это означает три вещи: стандартные бинарники из Kali не запустятся; нельзя просто вызвать nmap: нужны MIPS-бинарники или проксирование; работать приходится в минимальном окружении BusyBox без компилятора, с ядром 2014 года.

Первичная разведка: с чего начать

Первое после подключения по SSH — энумерация окружения. uname -a покажет архитектуру и ядро. ip addr и ip route — интерфейсы, IP и шлюз. Проверьте /proc/sys/net/ipv4/ip_forward: если там 0, форвардинг пакетов между интерфейсами отключён, и нужны туннели. На сервере из задачи этот параметр менять нельзя: прав недостаточно.

 Отдельно определите, **какую подсеть вообще нужно сканировать**. Интерфейсы и таблица маршрутизации подскажут соседние сети и шлюз, ведущий во внутренний сегмент, но целевая подсеть обычно задана в условии задачи. Сверьте её внимательно: если перепутать один октет (например, .151 вместо .100), вы будете долго сканировать пустоту. Внимательное чтение условия здесь экономит больше времени, чем любой инструмент.

BusyBox-системы содержат урезанный набор команд. Проверьте наличие wget, curl, scp, ssh, nc. Пакетного менеджера, скорее всего, нет. Именно энумерация определяет весь дальнейший план.

Проксирование: почему SSH-форвардинг не работает и чем его заменить

SSH позволяет создать SOCKS-прокси через динамический форвардинг (-D). Однако в этой задаче такие возможности запрещены в конфигурации SSH-сервера, а прав пользователя не хватает, чтобы её изменить. Это частая ситуация в реальных пентестах.

Универсальный обходной путь — Chisel. Это Go-бинарник, работающий как клиент-серверная пара и создающий TCP-туннель с поддержкой SOCKS5. У Chisel есть сборки под все архитектуры, включая MIPS — как big-endian, так и little-endian.

Схема такая: на своей машине запускаете Chisel-сервер, на MIPS-сервере — Chisel-клиент, который подключается к вам и предоставляет SOCKS5-прокси. Chisel работает в режиме reverse, клиент сам инициирует подключение к вам, а не наоборот. Это необходимо, когда прямое подключение к MIPS-серверу извне невозможно.

Скачивание и запуск

На свою машину скачайте Chisel-сервер под x86_64. На целевую — Chisel-клиент под MIPS. Архитектуру уточните через uname -m. Обычно это mips (big-endian). Важно: mips и mipsel (little-endian) не взаимозаменяемы. Скачанный бинарник удобно сверить командой file, она подтвердит архитектуру и порядок байтов, прежде чем вы зря потратите время на несовместимую сборку. Передайте бинарник через scp или wget с HTTP-сервера. Заодно прикиньте свободную память на хосте. Chisel довольно увесистый, но в типичные несколько сотен мегабайт укладывается.

Версии на клиенте и сервере должны совпадать, иначе ошибки возникнут совместимости. На старых MIPS-системах новые версии Chisel могут падать с segfault: свежие компиляторы генерируют инструкции, которые старое ядро и эмуляция процессора не переваривают. Откатитесь на более раннюю версию, шаг в пару лет назад для таких систем обычно нормален. Если не работает ни одна, используйте SSH-клиент из BusyBox для обратного проброса порта. Менее удобно, но надёжно.

После установления туннеля на вашей машине появится SOCKS5-прокси, через который весь трафик идёт сквозь скомпрометированный хост. Проверьте: curl --socks5 <адрес_прокси> <целевой_URL>. Ответ пришёл — туннель работает.

Сканирование внутренней сети через SOCKS-прокси

Туннель настроен. Теперь нужно обнаружить веб-админку.

nmap через proxychains без правильных флагов даёт мусор: таймауты, ложные срабатывания, пропущенные порты. ICMP-пинг через SOCKS не проходит, поэтому host discovery нужно отключать. На MIPS-серверах и медленном туннеле проблема усугубляется.

Рабочие варианты:

Не жадничайте по скорости: слишком много одновременных подключений — исчерпание файловых дескрипторов и ложные отрицательные результаты. Разумный лимит: порядка 16 параллельных подключений. Через прокси всё медленнее, поэтому повышайте таймауты.

Доступ к админке и подбор пароля

Когда сканирование нашло веб-сервер, выстраивается цепочка:

Firefox → Burp Suite → SOCKS5-прокси → целевая сеть

В Firefox: HTTP-прокси на localhost (порт Burp), а SOCKS-прокси Burp настраивается на адрес Chisel-туннеля, чтобы дальше трафик уходил через SOCKS5.

Просмотрите исходный код страницы админки. В простых формах — POST с полями username и password, без шифрования и CSRF-токенов. Типично для старых внутренних сервисов.

Подбор пароля

Сначала проверьте очевидное: admin/admin в реальных сетях срабатывает чаще, чем кажется. Если не подошло — целевой брутфорс через Burp Intruder или curl с --socks5. Индикатор успеха — изменение длины ответа.

Если Burp нестабилен через прокси-цепочку — упростите схему: Firefox → SOCKS5 напрямую, минуя Burp. Или работайте через curl.

Когда пароль подобран, флаг на экране. Вся сложность задачи не в эксплуатации уязвимости, а в организации доступа к цели через нетипичную архитектуру.

Проверьте знания на практике

Одно дело понимать схему пивотинга на бумаге. Совсем другое, самостоятельно собрать Chisel под MIPS, организовать прокси-цепочку, обнаружить админку и подобрать пароль.

 Попробовать весь сценарий можно в [задаче Forgotten Server](https://learn.cyber-ed.ru/mod/assign/view.php?id=42628) из серии One Task на бесплатном курсе [«Профессия Белый Хакер»](https://cyber-ed.securitylab.ru/proffesia-belii-hacker/?utm_source=seclab_article&utm_medium=website&utm_campaign=Forgotten_Server). Внутри тот же набор ограничений: старый Debian-сервер на MIPS, запрещённый SSH-форвардинг, минимум доступных инструментов и скрытая во внутренней сети веб-админка. Остальное придётся определить самостоятельно, от подходящей версии инструментов до способа добраться до цели и получить флаг.