Туннельное мышление: зачем pivoting пентестеру

erid: 2SDnjcjDGxK
Туннельное мышление: зачем pivoting пентестеру
Туннельное мышление: зачем pivoting пентестеру
13.02.2024

статья 2 (2).png
Сергей Зыбнев

Пентестер Awillix, автор Telegram-канала «Похек»


Пивотинг — это набор техник, которые позволяют атакующему получить доступ к внутренним ресурсам, минуя сетевые средства защиты. В этой статье я расскажу об инструментах пивотинга и примерах их применения на проектах по пентесту.

Рivoting может в пять раз ускорить процесс пентеста

Начнем сразу с примера из практики. Не так давно я участвовал в пентесте для российского подразделения крупной зарубежной компании, у которой прокаченная инфраструктура с жесткой сегментацией.

Цель — пробить АСУ ТП SCADA, которая находится во внутреннем контуре в изолированной сети, в которую был доступ только через один jump host. В него в свою очередь доступ через RDP. Доступ к RDP был только у одного хоста в сети, но карты сети у нас нет, поэтому мы искали в Confluence или Jira, но безуспешно.

Jump host был на компьютере у одного единственного администратора сети. Нам очень долго пришлось искать, какой же компьютер и какая виртуалка имеет доступ. Я постоянно таскал на атакуемую виртуальную машину различные инструменты, к примеру nuclei, naabu, nmap.

Можно было сделать гораздо проще, если бы тогда я владел pivoting — просто закинуть ligolo-ng агента. Так как я имел DA, то мог открывать powershell от лица других пользователей или под своим аккаунтом и тем самым сделать pivoting на свою тачку и вообще никуда не уходить. Но в тот момент я подключался по RDP к каждой тачке, закидывал на нее все бинари и сканировал. Это было максимально неэффективно. Хотя та сеть была сложная и в какой-то момент все равно пришлось бы переносить бинари, но тогда pivoting бы ускорил процесс раз в пять. Неделю я возился с этой АСУ ТП, а доменного админа взял достаточно быстро.

Мини-вывод — надо знать сеть и сегментацию сетей, как все устроено, потому что не всегда попадается заказчик, у которого плоская сеть и видно сразу принтеры, 1С, доменного контроллера и т. д., такое бывает редко.

Больше информации для изучения pivoting с точки зрения сетей можно узнать в этом видео.
Лаборатория пивотинга

Я сделал собственную лабораторию для отработки навыков pivoting. В ней есть атакующая виртуальная машина, с которой можно атаковать сервер, делать RCE или command injection, повышать привилегии. Далее можно продолжить таскать бинари на тачку, к примеру с помощью wget или curl через file upload, как угодно, но можно сделать и лучше.

Закинуть всего лишь один агент на Linux и получить доступ к сервисам находящимся во внутреннем контуре, при этом выполняя действия с атакующей машины. Это удобно. Тот, кто пытался ставить инструменты на старенькую Ubuntu меня поймут, когда у тебя есть библиотеки Ubuntu, которые не хотят компилироваться под твои инструменты. Я несколько раз пытался на своих тестовых стендах провернуть это и ломал стенд. Только с четвертого раза получилось, но я не запомнил последовательность действий и скорее делал по наитию.  Поэтому тренироваться можно на своей тачке.

1224353465464.png

Здесь есть две Ubuntu внутренняя (intern) и внешняя (external). На внутреннем контуре развернут докер. В докере развернут небольшой http сервер для имитации веб-сервера во внутреннем контуре, где может находится Confluence или Jira, какой-нибудь еще сервер, куда нельзя получить доступ извне, и естественно внешняя виртуальная машина, которая находится в DMZ.

Инструменты

Proxychains-ng — классический инструмент для pivoting.

Chisel — тоже популярный инструмент на Go. Могут быть проблемы при использовании разных версиях на клиентской или серверной стороне.

Shadowsocks-Windows — ShadowSocks на C#

Gost — как и Chisel, тулза сделана на Go, но помимо стандартной прокси, у вас есть возможность поставить прокси с аутентификацией, multiple-ports, а также сделать как просто forward proxy, так и многоуровневый forward proxy.

FRP — инструмент на Go. Он позволяет нам использовать какой-то конфиг файл, token/oidc аутентификация, bandwidth лимит, поддержка KCP/QUIC и много чего другого.

ligolo-ng — вместо SOCKS, создает виртуальный интерфейс на сервере и пропускает трафик через него. Важным преимуществом является отсутствие необходимости в правах администратора или root на атакуемой машине, только на вашем атакующем сервере.

Pivoting VS SOC

Играйте аккуратно и скрытно при столкновении с SOC. Можно прятать наш трафик под легитимный, что позволит обходить не только отдел мониторинга, но и некоторые средства защиты. Сейчас активно развиваются поведенческий анализ, EDR и т. д. Для обхода средств защиты стоит использовать lolbins, это некие исполняемые файлы, которые есть в Windows, Linux и MacOS «из коробки». На них СЗИ обращают меньше внимания, т. к. та же Windows запускает множество процессов и никто не знает за что отвечает каждый отдельный процесс.

Например, на одном проекте пентестеры нашли бэкдор, который получал команды через DNS запросы в зашифрованном виде. Это не только позволило хакерам долго оставаться незамеченными, но и после обнаружения шифрование мешало расследовать инцидент.

В моей практике был кейс, когда заказчик был очень хорошо защищен. Стоял и RDP, и KES, и копировать ничего нельзя, все отключено. В итоге я с командой добавили свой атакующий сервер во внутреннюю сеть и сканировали с нее. Взяли доменного админа за час! Получилось что 100 слоев защиты (Firewall, NGFW, WAF, Citrix, Checkpoint, CISCO, DLP) вообще не нужны. Нужно иметь свою методологию и «прочувствовать проект», тогда результат будет соответствующим. Важно не торопиться особенно если это red team и сроки не сильно ограничены. Вы можете долго раскуривать потенциальный уязвимый endpoint.

Выводы

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

Также, с помощью пивотинга атакующие могут снизить заметность своих действий и быть эффективнее в рамках проектов, где есть противостояние с SOC-ом заказчика.

Pivoting нужен не только при анализе защищенности внутренней сети, но и при «пробиве» с внешнего контура заказчика. А это нужно уметь делать, чтобы вам, как пентестерам было удобно работать, в первую очередь. Действуйте «как все», чтобы меньше попадаться на глаза команде защиты.

Подборка инструментов для pivoting и передачи данных между машинами.


Популярные публикации

Комментарии 0