
Использование большого количества высокоопасных PoC/эксплойтов для быстрого получения доступа к целевому объекту, применяется для пентеста и быстрой разведки в рамках red team.
🦄 POC bomber — это инструмент для обнаружения и эксплуатации уязвимостей, предназначенный для быстрого получения прав на целевом сервере с помощью большого количества POC/EXP высокоопасных уязвимостей
Этот проект собирает из интернета POC/EXP для различных высокоопасных уязвимостей: RCE, произвольная загрузка файлов, десериализация, SQL-инъекции и других, позволяющих получить ключевые права на сервере. Они интегрированы в арсенал POC bomber. С помощью множества высокоопасных POC выполняется фаззинг-тестирование одного или нескольких целей, что позволяет быстро выявлять уязвимые цели среди большого количества активов и получать права на целевых серверах. Сценарии применения включают, но не ограничиваются:
POC'и POC bomber поддерживают обнаружение уязвимостей в таких подверженных атакам компонентах, как weblogic, tomcat, apache, jboss, nginx, struct2, thinkphp2x3x5x, spring, redis, jenkins, PHP-уязвимости, shiro, Weaver OA, Zhiyuan OA, Tongda OA и других. Поддерживается вызов платформы dnslog для обнаружения RCE без отклика (включая обнаружение log4j2), одиночная и пакетная проверка целей. Программа использует высококонкурентный пул потоков, поддерживает импорт собственных poc/exp и формирование отчётов об уязвимостях
По умолчанию POC bomber использует режим проверки. Если в возвращаемом результате значение attack равно True, можно добавить параметр (--attack), чтобы перейти в режим атаки и напрямую вызвать exp для эксплуатации (при этом нужно указать имя poc-файла) — так называемый «getshell в один клик»
Версия POC-bomber v3.0.0 обладает более высокой скоростью сканирования, исправляет зависания, вызванные отдельными POC, и ряд других багов, добавляет цветной вывод и индикатор прогресса, поддерживает указание каталога POC. Подходит для быстрого темпа hvv, добавлены POC для части раскрытых в 2022 году уязвимостей. Поддерживается собственный dnslog-сервер: после настройки своего домена можно с помощью POC-bomber поднять на VPS собственную платформу dnslog для внеполосного DNS-обнаружения некоторых уязвимостей.
python3 pocbomber.py -u http://xxx.xxx
image image

python3 pocbomber.py -u http://xxx.xxx --poc="thinkphp2_rce.py" --attack

git clone https://github.com/tr0uble-mAker/POC-bomber.git
cd POC-bomber
pip install -r requirements.txt
Просмотр справки: python3 pocbomber.py
Режимы:
Получить информацию о poc/exp: python3 pocbomber.py --show
Проверка одной цели: python3 pocbomber.py -u http://xxx.xxx.xx
Пакетная проверка: python3 pocbomber.py -f url.txt -o report.txt
Проверка с указанным POC: python3 pocbomber.py -f url.txt --poc="thinkphp2_rce.py"
Режим атаки через exp: python3 pocbomber.py -u целевой URL --poc="указанный poc-файл" --attack
Параметры:
-u --url URL цели
-f --file Файл со списком URL целей
-o --output Файл для формирования отчёта (по умолчанию отчёт не создаётся)
-p --poc Указать один или несколько POC для проверки: передаётся имя poc-файла, несколько — через запятую (,)
-t --thread Максимальный размер пула потоков (по умолчанию 30)
--show Показать подробную информацию о poc/exp
--attack Использовать exp из poc-файла для атаки
--dnslog Использовать платформу dnslog для обнаружения уязвимостей без отклика (по умолчанию выключено, можно включить в файле конфигурации)
/inc/config.py
--dnslogdnslog_flag в True +--------- poc_bomber.py (запуск POC-bomber)
|
+--------- inc (каталог с основными файлами, обеспечивающими работу каркаса POC-bomber)
|
\--------- pocs (список POC)----------- framework (POC для уязвимостей фреймворков)
|
|------ middleware (POC для уязвимостей промежуточного ПО)
|
|------ ports (POC для уязвимостей распространённых портов и служб хоста)
|
\----- webs (POC для уязвимостей распространённых веб-страниц)
POC bomber поддерживает создание собственных POC
Все POC должны быть написаны на Python3 и иметь две функции: verify и attack (attack необязательна) — для проверки и атаки соответственно.
Имя функции — verify, параметр — URL цели
Результат возвращается в виде словаря и должен содержать ключи name и vulnerable: name — название уязвимости, vulnerable — статус наличия уязвимости (True/False)
Если уязвимость существует, установите значение vulnerable в True и добавьте URL цели, а также информацию, связанную с эксплуатацией уязвимости
Используйте try для проверки; при отправке запросов через requests и т.п. обязательно устанавливайте тайм-аут, чтобы POC не зависал
def verify(url):
relsult = {
'name': 'Thinkphp5 5.0.22/5.1.29 Remote Code Execution Vulnerability',
'vulnerable': False,
'attack': False, # 如果有exp支持attack模式将attack的值置为True
}
try:
......
(用任意方法检测漏洞)
......
if 存在漏洞:
relsult['vulnerable'] = True # 将relsult的vulnerable的值置为True
relsult['url'] = url # 返回验证的url
relust['xxxxx'] = 'xxxxx' # 可以添加该漏洞相关来源等信息
......
return relsult # 将vulnerable值为True的relsult返回
else: # 不存在漏洞
return relsult # 若不存在漏洞将vulnerable值为False的relsult返回
execpt:
return relsult