
利用大量高威胁poc/exp快速获取目标权限,用于渗透和红队快速打点
🦄 POC bomber は、多数の高危険度脆弱性のPOC/EXPを利用して、ターゲットサーバーの権限を迅速に取得することを目的とした脆弱性検出・利用ツールです
本プロジェクトは、インターネット上のRCE・任意ファイルアップロード・デシリアライゼーション・SQLインジェクションなど、危険性が高くサーバーの中核権限を取得できる脆弱性のPOC/EXPを収集し、POC bomber 武器庫に統合します。多数の高危険度POCを使用して単一または複数のターゲットをファジングし、大量の資産の中から脆弱性のあるターゲットを迅速に発見して、ターゲットサーバーの権限を取得します。適用シーンは以下に限定されません:
POC bomber のPOCは、weblogic、tomcat、apache、jboss、nginx、struct2、thinkphp2x3x5x、spring、redis、jenkins、PHP言語の脆弱性、shiro、泛微OA、致远OA、通达OAなど、攻撃されやすいコンポーネントの脆弱性検出をサポートしています。dnslogプラットフォームの呼び出しによるレスポンスのないRCE(log4j2の検出を含む)の検出、単一ターゲット検出、バッチ検出に対応しています。プログラムは高並行スレッドプールを採用し、カスタムPOC/EXPのインポートに対応し、脆弱性レポートを生成できます。 POC bomber はデフォルトで検証モードを使用してPOCの検証を行います。戻り結果のattackの値がTrueの場合、パラメータ(--attack)を追加して攻撃モードに入り、EXPを直接呼び出して攻撃できます(POCファイル名の指定が必要)。ワンクリックでgetshellを達成できます。
POC-bomber の v3.0.0 バージョンです。より高速なスキャン効率を実現し、単一のPOCによる処理のカクつき・フリーズ問題と各種バグを修正しました。カラー出力と進捗表示を追加し、POCディレクトリの指定をサポートします。HVVの速いペースに適しており、2022年に公開された一部の脆弱性POCが追加されています。自前のdnslogサーバーの構築をサポートしており、自身のドメインを設定した後、pocbomberを利用してVPS上にdnslogプラットフォームを開設し、一部の脆弱性に対するDNS帯外(OOB)検出を行うことができます。
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ファイル名を直接渡し、複数のPOCは(,)で区切る
-t --thread スレッドプールの最大同時実行数を指定(デフォルト30)
--show poc/expの詳細情報を表示
--attack pocファイル内のexpを使用して攻撃
--dnslog dnslogプラットフォームを使用してレスポンスのない脆弱性を検出(デフォルトではdnslog無効。設定ファイルで有効化可能)
/inc/config.py
+--------- poc_bomber.py (POC-bomber を起動)
|
+--------- inc(POC-bomber フレームワークの実行を支えるコアファイルを格納)
|
\--------- pocs(POC格納リスト)----------- framework(フレームワークの脆弱性POCを格納)
|
|------ middleware(ミドルウェアの脆弱性POCを格納)
|
|------ ports(一般的なポート脆弱性・ホストサービス脆弱性のPOCを格納)
|
\----- webs(一般的なWebページの脆弱性POCを格納)
POC bomber はカスタムPOCの記述をサポートしています。
POCは一律Python3での記述が必須で、verify と attack(必須ではない)の2つの関数を持ち、それぞれ検証と攻撃を行います。
関数名は verify とし、パラメータでターゲットURLを受け取ります
関数の戻り値は辞書形式で返し、name と vulnerable の2つのキーを持ちます。name は脆弱性名を表し、vulnerable は True/False の状態で脆弱性の有無を示します
脆弱性が存在する場合は、戻り値の辞書の vulnerable の値を True に設定し、ターゲットURLや脆弱性悪用に関連するWebページなどの情報を追加します
try構文を使用して検証を試み、requestなどでデータパケットを送信する際はタイムアウト時間を設定し、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 関数をEXP攻撃関数として記述できます。
関数名は attack とし、パラメータでターゲットURLを受け取ります
try構文内にEXPコードを記述して攻撃を実行します。ユーザーとの対話入力にも対応できます
記述完了後、その脆弱性のverify関数が返す辞書内のattackの値を True に設定します
攻撃成功時は True を返し、その他の理由で失敗した場合は False を返します
def attack(url):
try:
........................................
攻击代码(执行命令或反弹shell上传木马等)
........................................
return True
except:
return False
記述が完了したPOCを /pocs ディレクトリ内の任意の場所に配置するだけで、再帰的に呼び出されます!
プロジェクトは継続的に更新中です。サイバーセキュリティを共に築くため、皆さまからのPOC提供を歓迎します!
問題があれば、issuesへのコメントをお寄せください: https://github.com/tr0uble-mAker/POC-bomber/issues
連絡先: [email protected]
本ツールは、合法的に認可された企業セキュリティ構築活動のみを対象としています。本ツールの可用性をテストする必要がある場合は、ご自身で標的マシン環境を構築してください。 本ツールを使用して検出を行う際は、その行為が現地の法律・規制に適合し、十分な認可を得ていることを確認してください。非認可のターゲットへのスキャンは行わないでください。 本ツールの使用中に何らかの違法行為が行われた場合、その結果は利用者自身が負うものとし、当方はいかなる法的責任および連帯責任も負いません。