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

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

Как через старый SSH-хост добраться до закрытой сети, настроить прокси и найти спрятанную веб-админку.

image

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

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

Разберём методологию, но лучший способ её усвоить — пройти такой сценарий руками. Ровно эту цепочку, от SSH-доступа на MIPS-хосте до захвата скрытой админки, можно отработать на практике в задачах One Task на бесплатном курсе «Профессия Белый Хакер». Дальше по тексту будут отсылки к тому, что стоит попробовать самостоятельно.

Архитектура 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-серверах и медленном туннеле проблема усугубляется.

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

  • proxychains + nmap с обязательными флагами: -sT (полный TCP-connect, единственный тип, проходящий через прокси), -Pn (без ICMP-пинга) и -n (без DNS). Работает, хоть и медленно.
  • Запуск nmap прямо на MIPS-хосте. Понадобится статический MIPS-бинарник. Если есть права суперпользователя, на самом хосте можно запустить и masscan-подобные решения — так быстрее, чем гонять трафик через прокси.
  • Лёгкий SOCKS5-совместимый сканер портов вместо nmap.
  • Минимальное сканирование ключевых портов (80, 443, 8080, 8443), чтобы не гонять весь диапазон через узкий туннель.

Не жадничайте по скорости: слишком много одновременных подключений — исчерпание файловых дескрипторов и ложные отрицательные результаты. Разумный лимит: порядка 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 из серии One Task на бесплатном курсе «Профессия Белый Хакер». Внутри тот же набор ограничений: старый Debian-сервер на MIPS, запрещённый SSH-форвардинг, минимум доступных инструментов и скрытая во внутренней сети веб-админка. Остальное придётся определить самостоятельно, от подходящей версии инструментов до способа добраться до цели и получить флаг.

QUANTUM
Сегодня в канале
В Пекине бар наливает пиво и бесплатный ИИ
IBM собирает квантовый компьютер из «холодильников»
Обычный день в «Изобретая будущее»
Подписаться
Реклама