Категория > Новости > Беззащитная защита. Изучаем уязвимость, дающую встроить бэкдор в FortiGate - «Новости»
Беззащитная защита. Изучаем уязвимость, дающую встроить бэкдор в FortiGate - «Новости»13-11-2023, 08:28. Автор: Никифор |
CVE-2022-42475, в котором происходит переполнение кучи. Уязвимость приводит к выполнению произвольного кода. Я решил попробовать реализовать PoC, но мне помешало отсутствие лицензии. Перед тем как реализовывать этот PoC, необходимо установить бэкдор на FortiGate с использованием уязвимости CVE-2019-5587. В статье я расскажу, как сделать этот бэкдор и как он работает.warningСтатья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону. Читайте также - Остеопороз – это разрежение кости за счет вымывания из нее кальция, вызванное старческой инволюцией (старением). Фармакологи ухватились за слово «кальций», не обращая внимания на истинную причину деминерализации костей (потери микроэлементов) – инволюцию - остеопороз по доступным ценам. FortiGate — межсетевой экран с возможностью маршрутизации нового поколения. Он включает в себя большинство традиционных сервисов, таких как проверка трафика, антивирус, VPN, системы предотвращения вторжений, и другие функции обеспечения безопасности. Для демонстрации уязвимости и дальнейших исследований необходимо подготовить стенд с использованием FortiGate. Готовим стендДля ресерча была выбрана версия FortiGate VM64 v6.4.5 build1828 (GA). Стенд разворачиваю на VMware ESXI, а образы маршрутизатора должны иметь расширения После распаковки архива мы получим следующие файлы. В дальнейшем для реверса и исследования бинарей нам понадобится диск виртуальной машины В VMware ESXI нужно импортировать существующую виртуальную машину, поэтому следует выбрать режим Теперь надо указать следующие файлы для загрузки виртуальной машины:
Имя у виртуалки может быть произвольным, я назвал ее просто FortiGate. Перейдем к настройкам сети. Все сетевые адаптеры, кроме первого, выключим, потому что будем работать только с одним. Также изменим интерфейс с Запускаем виртуальную машину, вводим логин — По умолчанию FortiGate настроен на использование в качестве NTP-сервера. Необходимо отключить NTP-синхронизацию для перехода в пробный режим. infoNTP — сетевой протокол для синхронизации внутренних часов компьютера посредством использования сетей с переменной латентностью. config system ntp set ntpsync disable set type custom end Здесь
Теперь настало время настроить маршрутизатор. Настраивать будем удаленное подключение и доступ к веб‑интерфейсу фортика. Удаленное подключениеНастраивать SSH, HTTP, HTTPS, Telnet будем в CLI FortiGate. Для удаленного подключения нужно настроить интерфейс, который мы оставили включенным: config system interface edit port1 set mode static set role lan set allowaccess http https telnet ssh ping set ip 192.168.0.217/24 show end Здесь
Вот так выглядит результат работы команды Теперь настраиваем статическую маршрутизацию для доступа из других сетей к Web и CLI: config router static edit 1 set gateway 192.168.0.255 set device port1 set dst 0.0.0.0 0.0.0.0 set status enable next end Здесь
Команда S* 0.0.0.0/0 [10/0]via 192.168.0.255,port1 C 192.168.0.0/24 is directly connected,port1 Этот вывод говорит о том, что для всех устройств, находящихся в сети, шлюз по умолчанию будет После этого подключаемся к веб‑интерфейсу через браузер по адресу Получаем бэкдорПосле успешной подготовки стенда настало время для бэкдора. Зайдем в директорию с образом виртуальной машины и виртуальными дисками FortiGate. В моем случае виртуальный диск называется Дальше наступает часть монтирования и отравления sudo modprobe nbd max_part=16 sudo mkdir/mnt/fortios sudo qemu-nbd -r -c/dev/nbd1 ./forti_6_4_5-disk1.vmdk sudo mount /dev/nbd1p1 /mnt/fortios Здесь
infoNBD (Network Block Device) — сетевой протокол, который можно использовать для пересылки блочного устройства (обычно жесткого диска или раздела) с одного компьютера на другой. Например, локальный компьютер может получить доступ к жесткому диску, подключенному к другому компьютеру. В нашем случае протокол используется для подключения виртуального жесткого диска к компьютеру. QEMU умеет экспортировать виртуальный образ диска, используя протокол NBD. В результате Перейти обратно к новости |