
利用大量高威胁poc/exp快速获取目标权限,用于渗透和红队快速打点
🦄 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
Если есть exp, можно написать функцию attack как функцию атаки.
Имя функции — attack, параметр — URL цели
Внутри try напишите код exp для атаки; допустим интерактивный ввод от пользователя
После завершения установите значение attack в словаре-результате функции verify в True
При успешной атаке верните True, при неудаче по любой причине — False
def attack(url):
try:
........................................
攻击代码(执行命令或反弹shell上传木马等)
........................................
return True
except:
return False
Готовый POC можно поместить в любое место каталога /pocs — он будет вызван рекурсивно!
Проект постоянно обновляется, приглашаем мастеров вносить свой вклад в области кибербезопасности!
По вопросам оставляйте сообщения в issues: https://github.com/tr0uble-mAker/POC-bomber/issues
Контакт: [email protected]
Данный инструмент предназначен только для легальных действий по обеспечению безопасности корпоративных активов. Если вам нужно проверить его работоспособность, разверните собственную лабораторную среду. При использовании инструмента для проверок вы должны убедиться, что ваши действия соответствуют местному законодательству и что у вас есть достаточные разрешения. Не сканируйте цели без авторизации. Если вы совершаете любые противоправные действия при использовании этого инструмента, вы несёте соответствующие последствия самостоятельно; мы не несём юридической или иной ответственности.