Github: https://github.com/mame82/P4wnP1
MaMe82によるP4wnP1
P4wnP1は、低価格のRaspberry Pi ZeroまたはRaspberry Pi Zero W(HIDバックドアに必要)をベースにした高度にカスタマイズ可能なUSB攻撃プラットフォームです。
TL; TR
公式WiKiは@jcstillと@ Swiftb0yから始まりました
このREADMEの短い要約はありません。 この素晴らしいツールを処理したい場合、私はあなたがこれを読まなければならないのではないかと心配しています。
最も重要なセクション:
- Windows LockPicker
- HID隠密チャネルフロントドア
- HID隠密チャネルバックドア( これは新しい主な機能です )
- 開始セクション
前書き
2017年2月の最初のリリース以来、P4wnP1は長い道のりを歩んできました。 今日、高度な機能はマスターブランチに統合されています。
- Windows LockPicker (弱いパスワードでWindowsボックスのロックを解除し、P4wnP1を添付して完全に自動化)
- HID隠密チャネルバックドア (HIDデバイスを介してのみトンネリングされたエアギャップのWindowsターゲット上のリモートシェルアクセスを取得し、PiゼロWでSSHアクセスを持つWiFiホットスポットに中継します。ターゲットにネットワークアダプタ、シリアルその他の通信は表示されませんデバイス。)
- HID隠密チャネルフロントドア (制限されたWindowsホストからのP4wnP1上のPythonシェルへのアクセスを取得し、フットプリントの少ない生のHIDデバイスをトンネリングします。ターゲットにネットワークアダプタ、シリアルその他の通信デバイスは表示されません)
- 洗練されたUSB、 モジュラーUSBセットアップ
P4wnP1を使用した外部リソース
- Dan IOT Man、はじめに+インストール手順 “P4wnP1 – PiゼロベースのUSB攻撃プラットフォーム”: Dan IOT Man
- ブラックハットセッションXV、ワークショップ資料「ラズベリーパイゼロを武器にする」(ワークショップ資料+スライド): BHSXV
- ihacklabs [dot] com、チュートリアル “Red Team Arsenal – Hardware :: P4wnp1 Walkthrough”(スペイン語): パート1 、 パート2 、 パート3
P4wnP1の機能(クイックサマリー)
- SSHアクセス用のWiFiホットスポット (PiゼロWのみ)、隠されたESSIDのサポート
- Wi-Fiを介したインターネットアクセス(MitM)によるUSBネットワーク攻撃を中継するために、クライアントモードでWiFiを動作させる (Pi Zero Wのみ)
- USBデバイスの機能は、Windows プラグアンドプレイサポート(クラスドライバ) との あらゆる可能な組み合わせで機能します。
- デバイスタイプのサポート
- HID隠れチャネル通信装置 (セクション「HID隠密チャネルフロントドア」および「HID隠密チャネルバックドア」を参照)
- HIDキーボード
- USBマスストレージ (現在は128メガバイトのドライブを搭載したデモセットアップのみ)
- RNDIS (Windowsネットワーク)
- CDC ECM (MacOS / Linuxネットワーク)
- 単純なbashコマンドによるラズベリーパイLED状態フィードバック (
led_blink
) - カスタマイズ可能なbashベースのペイロードスクリプト (例については
payloads/
サブフォルダを参照) - ResponderとプリコンパイルされたJohn the Ripper Jumboバージョンが含まれています
- 自動攻撃: P4wnP1がOTGアダプタが接続されている場合は標準シェルに自動的に起動し、現在のペイロードはP4wnP1がUSBデバイスとしてターゲットに接続されている場合のみ実行されます(USB OTGアダプタなし)
付属のペイロードのペイロード記述とビデオデモ
柔軟なフレームワークであるため、P4wnP1は、それを使用するペンタスタの想像力によってのみ限定されたカスタムペイロードを開発することができます。 基本的な考え方を得るために、いくつかのペイロードが既に含まれており、ここで説明しています。
ペイロード:Windows LockPicker
このペイロードは、Mubix(クレジット参照)が提示した「ロックされたマシンからの信用格付け」アプローチを、その明らかな後継者にまで拡張します。
P4wnP1 LockPickerは、キーボードの機能を利用して、掴んだハッシュをクラックし、成功するとターゲットをロック解除します。 これは完全に自動化され、ユーザーの操作は一切不要です。
ビデオデモ
私はまだビデオプロデューサーなので、誰かがデモをするよう求められているかもしれません。 ここに私の(sh ** ty)試みがある:
ここでこれをはるかによくしている人のバージョンです、ありがとう@Seytonic
攻撃チェーン(短い要約):
- P4wnP1のUSBネットワークインターフェイスは、ターゲットクライアントにその設定を提供するDHCPを起動するために使用されます。
- 他のオプションの中でも、WPADエントリが配置され、IPv4アドレス空間全体の静的ルートがターゲットに展開されます。
- P4wnP1は、さまざまな手法を使用して、リモートホスト専用のトラフィックを自身にリダイレクトします。
- ターゲットから発信されたさまざまなプロトコルの要求は、認証を強制し、認証に使用されるハッシュを盗もうとする “Responder.py”によってフェッチされます。
- ハッシュがグラブされている場合、P4wnP1 LEDが3回連続して点滅し、オフラインクラックのためにハッシュを外して取り外すことができることを知らせます。 または…
- …あなたはP4wnP1を差し込まれたままにして、ハッシュをキャプチャされたハッシュをブルートフォースしようとするJohn the Ripperに渡します。
- ボックスをロックしたユーザーのパスワードが弱く選択された場合、John the Ripperがそれを解読する可能性が高く、その結果、…
- … P4wnP1は最終的にパスワードを入力してボックスのロックを解除し、ボックスにアクセスできます(クラックされたパスワードはハッシュと共に
collected
フォルダに保存されます)。
攻撃を実行するには、 setup.cfg
ペイロードWin10_LockPicker.txt
を選択するsetup.cfg
があります。 ペイロードの “lang”パラメータをターゲットの言語に変更することが重要です 。 HDMIモニタをP4wnP1に接続すると、攻撃のステータス出力(キャプチャされたハッシュと平文の信憑性を含む)を見ることができます。
ペイロード:ブラウザ資格情報を盗む(hakin9_tutorial)
このペイロードは、Microsoft EdgeまたはInternet Explorerの保存された資格情報をダンプするために、P4wnP1のビルトインキーボードを介して入力されたPowerShellスクリプトを実行します。 取得したクレデンシャルは、P4wnP1のフラッシュドライブ(USBマスストレージ)に保存されます。 名前が意味するように、このペイロードはP4wnP1のペイロード開発に関するhakin9の記事の結果ですが、未公開です。 このため、ペイロードにはRNDISが有効になっていますが、攻撃を実行する必要はありません。 その主な目的は、P4wnP1のフラッシュドライブにキーボードベースの攻撃の結果を格納する方法を示すことですが、ドライブ文字はペイロードの実行時にのみ認識されます。
ビデオデモ
バックドアWindowsロック画面
このペイロードは、Windowsのロック画面からSYSTEMレベルの権限を持つコマンドシェルにアクセスできるようにするバックドアを作ります。 いったん植えられると、シェルはスティッキーキーによってトリガーされます。
ペイロード自体は純粋にキーボードベースです。 ペイロードの目標を達成するための広く知られたアプローチは、 sethc.exe
ファイルを置き換えることです。 とにかく、このペイロードは、レジストリのハック(Image execution optionsのDebuggerプロパティ)に基づいて変更を行います。 これは、ファイルシステムが直接触れられないため、攻撃の騒音が少ないことを意味します。 さらにペイロードはP4wnP1のキーボードトリガーの使い方を示しています 。 NUMLOCKを複数回押すとバックドアが植えられ、SCROLLLOCKを複数回押すとバックドアが再び削除されます。 最後に重要なのは、使用されたPowerShellセッションを昇格された権限で実行する必要があるためです。
この攻撃には、管理者アカウントによってロックされていないターゲットが実行されている必要があります。
ここでデモされたペイロードはまだ公開されていません。
ビデオデモ
ペイロード:HID隠密チャネルフロントドア
ビデオデモ
HIDフロントドア機能
- Windows上のHIDデバイスのプラグアンドプレイインストール(Windows 7およびWindows 10でテスト済み)
- 生のHIDデバイスに基づく隠れチャネル
- 純粋なメモリPowerShellペイロード – 何もディスクに書き込まれません
- 約32KBytes / sの同期データ転送(シェルとファイル転送が十分高速)
- HID通信を処理し、HIDデータ断片化を処理するカスタムプロトコルスタック
- P4wnP1からターゲットメモリへのHIDベースのファイル転送
- ステージ0: P4wnP1が座って待機し、攻撃者がペイロードステージ1をトリガーする(NUMLOCKを頻繁に押す)
- ステージ1: HID隠密チャネル通信プロトコルのための「ユーザスペースドライバ」を備えたペイロードは、 USBキーボードを介してターゲットに入力される
- ステージ2:通信はHIDチャネルに切り替わり、P4wnP1のカスタムシェルにアクセスできます。 これは、P4wnP1でホストされているPowerShellスクリプトを、ターゲット上で実行されているPowerShellプロセスのメモリに直接アップロードして実行するために使用できます。 これは、いつでもディスクに触れたり、ネットワーク通信を使用することなく行われます。
ペイロードHID隠れチャネルバックドア(PiゼロWのみ)
ビデオデモ
ビデオは@Seytonicによって制作されていますので、このようなものにもっと興味があれば、関連するチュートリアルやさまざまなプロジェクトをハッキングしてyoutubeチャンネルをチェックしてください(クレジットリンク)。
偉大なチュートリアルの@Seytonicありがとう
HIDバックドア機能
- Raw HID上でシェルを中継し、WiFi経由でP4wnP1から提供することで、Airgapターゲットをブリッジするためのペイロード
- Windows上のHIDデバイスのプラグアンドプレイインストール(Windows 7およびWindows 10でテスト済み)
- 生のHIDに基づく隠れチャネル
- 純粋なメモリ、複数ステージのペイロード – 何もディスクに書き込まれず、小さなフットプリント(一般的なPowerShell IOCと比較して)
- カスタムシェルを備えた制御サーバーのようなRAT:
- コアコマンドの自動完了
- オンデマンドでキーストロークを送信する
- Excluute DuckyScripts(メニュー駆動型)
- リモートバックドアをトリガしてHID隠密チャネルを起動する
- 複数のリモートプロセスの作成(隠れチャネル接続のみ)
- 管理されたリモートプロセスとのコンソール対話(隠れチャネル接続のみ)
- 切断時のリモートペイロードの自動消去
-
shell
コマンドを使用してリモートシェルを作成する(隠しチャネル接続のみ) -
hid_backdoor.txt
ペイロードが実行されているときに、WiFiを介してSSHでサーバにアクセスできます
HIDバックドア攻撃チェーンと使用法
1.準備
-
hid_backdoor.txt
ペイロードを選択しsetup.cfg
(インタラクティブUSB OTGモードまたはsetup.cfg
ようなSSHネットワークアクセスを持つペイロードの1つを使用) - P4wnp1をターゲットホストに接続する(Windows 7〜10)
2. P4wnP1バックドアシェルにアクセスする
- 起動時に、P4wnP1は
P4wnP1
(パスワード:MaMe82-P4wnP1
)と呼ばれるワイヤレスネットワークを開き、 -
pi@172.24.0.1
でネットワークとSSHに接続する - すべてがうまくいけば、インタラクティブなP4wnP1バックドアシェルで挨拶されるべきです(そうでなければ、ターゲットがUSBキーボードドライバのロードを完了していない可能性があります)。 SSHパスワードは、ユーザー
pi
パスワードです。デフォルトの構成では、raspberry
です。
3. P4wnP1バックドアシェルからのAd-Hocキーボード攻撃(隠れチャネルを使用せずに)は、ここから行うことができます:
- 使用可能なコマンド
help
表示するhelp
入力 -
SetKeyboardLayout
を使用して、ターゲットの言語に応じてキーボードレイアウトを設定します。 この手順は重要であり、常に最初に実行する必要があります。それ以外の場合、ほとんどのキーボードベースの攻撃は失敗します。 - 現在のキーボードレイアウトを印刷するには、
GetKeyboardLayout
使用しGetKeyboardLayout
。 P4wnP1バックドアシェルのデフォルトのキーボード言語は、hidtools/backdoor/config.txt
変更することができます -
SendKeys
コマンドのあとにASCIIキーシーケンスを使用して、キーストロークをターゲットに送信します - あなたが気づくように、
SendKeys
コマンドは何らかの形で制限されています。コントロールキーは送信できません。RETURNにも問題があります。 したがって、より複雑なキーシーケンスの場合、FireDuckyScript
コマンドが役立ちます。 -
FireDuckyScript
は、DuckyScript/
フォルダにあるスクリプトの名前を受け入れます。 フォルダにはいくつかのデモスクリプトがあらかじめ用意されています。FireDuckyScript
コマンドの背後にあるスクリプト名を省略すると、スクリプトを選択するためのFireDuckyScript
が表示されます。<ALT> + <F4>
だけを送信するDuckyScriptを書く理由が不思議なら、あなたはRubberDuckyの古い世界を考えています。 P4wnP1とDuckyScriptを動的に実行できるため、このような短いスクリプトが便利です。 あなたがP4wnP1_youtube.duck
スクリプトを実行し、P4wnP1_youtube.duck
ようなスクリプトが必要な場所を知っているかどうかわからない場合は;-)
それだけです
…ただ冗談ではありません。 コミットされていない4ヶ月は、それ以上なければ合格しませんでした。 ここまで、秘密通信はなかったよね。
4.隠れチャネルペイロードのFire Stage 1( ‘FireStage1’コマンド)
- 文字をターゲットに出力できるので、コードをリモートで実行することができます。 P4wnP1は、この機能を使用して、隠密チャネル通信スタックを構築して実行するPowerShellスクリプトを入力します。 この攻撃は複数のステップで機能します:
- キー入力は、PowerShellセッションを開始し、ペイロードのステージ1を入力するために注入されます。
FireStage1
コマンドの使用方法によって、これはさまざまなFireStage1
で起こります。 デフォルトではショート・スタブが実行され、ユーザからのコマンド・ウィンドウが隠され、その後にステージ1のメイン・スクリプトが続きます。 - ステージ1のメインスクリプトには2つのファッションがあります:
- タイプ1:短くて高速ですが、悪名高いIEXコマンドを使用する純粋なPowerShellスクリプトです(このコマンドは、脅威ハンターと青いチームメンバーを幸せにする機能を持っています)。 これはデフォルトのステージ1のペイロードです。
- タイプ2:ドットNETアセンブリ。これはPowerShellを介してロードされ、実行されます。 このステージ1のペイロードは、より多くの文字が必要となるため、実行に時間がかかります。 しかし、すでに知っているように、IEXコマンドは使用しません。
- キー入力は、PowerShellセッションを開始し、ペイロードのステージ1を入力するために注入されます。
- PowerShellセッションはコマンドライン引数なしで開始されるため、悪意のあるコマンドラインの検出メカニズムを起動するものは何もありません。 Theresは、
-exec bypass
、-enc
、-NoProfile
、-enc
ようなパラメータはありません…何も疑いません! 欠点は、入力を続行する前にPowerShellウィンドウが開くまで待つ必要があることです。 対話型のPowerShellウィンドウを表示するには数年かかるボックスがあるので、PowerShell.exeの実行とpowershell.exe
のタイプアウトの開始の間の遅延は、2番目のパラメータでFireStage1
コマンドに変更することができます(デフォルト1000ミリ秒)。 - 最後に、
FireStage1
コマンドラインの最後にnohide
を追加すると、ウィンドウ非表示スタブが実行されず、すべてのsh ** tyデバッグ出力を見ることができるはずです。
5.ローディングステージ2
- ここにロケットの雰囲気はありません。 ステージ1のペイロードは、カスタムHIDデバイスへの基本インターフェースを初期化し、ステージ2を完全自動化します。 ステージ2には、すべてのプロトコル層と最終的なバックドアが含まれています。 ドットネットアセンブリとしてメモリに直接ロードされます。
- だからなぜドットネット? 初期のバージョンのバックドアは、PowerShellで完全に開発されました。 これは、マルチスレッド、クラス継承なしのPS 2.0互換性、およびISEを使用したマルチスレッドデバッグに関しては大きな混乱を招いていました。 私は不可能であると言っておきたくありません(あなたがコミットの歴史を見ていれば、それが可能であるという証拠があります)が、利点はありません。 正確に言えば、欠点があります。これを達成するためにはるかに多くのコードが必要で、コードが遅くなり、 PowerShellモジュールのロギングがペイロードからすべてのスクリプトコマンドをキャッチできるようになります 。 ログNETアセンブリを使用するのとは対照的に、ログに記録できる唯一のPowerShellコマンドは、アセンブリをロードしてステージ2トリガーを実行するものです。 ペイロードが終了するとすぐに他のすべてが消えてしまいます。 だから…小さなフットプリント、ええ。
- しかし、 “PowerShellインラインアセンブリー”をディスク上の一時ファイルにコンパイルしないでください。 はい、彼らがやります! 少なくとも、CSharpのインラインコードで書かれていれば。 幸いにもP4wnP1はこれをしません。 アセンブリは、プリコンパイルされた状態で出荷されます。
6.バックドア接続を使用する
- ステージ2が正常に実行された後、P4wnP1バックドアシェルのプロンプトにクライアント接続が表示されます。
- ここからは、新しいコマンドを使用することができます。
-
CreateProcess
-
interact
-
KillProcess
-
KillClient
- そして… 🙂 …
shell
-
- 私はあまりにもここにこれらを説明するために疲れているが、私はあなたがそれを見つけるだろうと思う。
HIDバックドア攻撃 – 要約
-
hid_backdoor.txt
ペイロードを選択 - P4wnP1デバイスをWindowsターゲットに接続する
- 新たに生成された
P4wnP1
WiFiに別のデバイスで接続します(SSHクライアントがインストールされている限りスマートフォンとなります) -
SetKeyboardLayout
正しいターゲットキーボードレイアウトをSetKeyboardLayout
(または、hidtools/backdoor/config.txt
変更する) - P4wnP1シェルでキーストロークを挿入する
SendKeys
またはFireDuckyScript
を実行する - 隠れチャネルHIDバックドアを起動するには、
FireStage1
コマンドをFireStage1
- ターゲットが接続された後、
shell
を入力して隠れチャネル経由でリモートシェルを作成します
HIDバックドア – 現在欠けている機能
- ファイル転送の実装(アップロード/ダウンロード)…しかしねえ…あなたたちはredteamersとpentestersです! 非対話型のリモートシェルに対処する方法を知っていますか? 行っていない場合は、OSCPなどを取るが、これのための機能要求で私を気にしないでください。 アップデート: HIDバックドア用のファイル転送は、コマンドの
upload
とdownload
念頭に置いているので、ファイルは現在 P4wnP1とターゲットの間の生のHIDデバイスを介して前後に移動します - HIDチャネルを介してTCPソケットを実行します。 はい.P4wnP1でSOCKS4aまたはSOCKS5をリッスンして、ターゲットクライアント経由で通信をトンネリングするのは本当にうれしいでしょう。 このPoCプロジェクトは時間がかかり過ぎたので、これがいつ完了するのか分かりません。 しかし、ねえ、基本的な通信レイヤーは複数のチャンネルを処理する準備ができています。私が知る限り、あなたはソースコードを見ています。
P4wnP1より高度な機能(抜粋)
高度なHIDキーボード機能
- キーボードのペイロードは、ターゲットキーボードLED (NUMLOCK、CAPSLOCK、SCROLLLOCK) によってトリガーされます。
- LEDトリガに基づく動的ペイロードの分岐
- DuckyScriptをサポートしています (詳細な例については、hid_keyboard2.txtペイロードを参照してください)
- HIDキーボードによるraw ASCII出力をサポートしています(
cat /var/log syslog | outhid
ような、キーボードによる文字ベースのファイルの出力に使用できます) - マルチキーボードの言語レイアウトのサポート (HIDコマンドを使用する場合、ターゲット言語を心配する必要はありません)
- ターゲットキーボードドライバがロードされると出力が開始されます(手動遅延は
onKeyboardUp
、ペイロードでonKeyboardUp
コールバックを使用できます)
高度なネットワーク機能
- 最小のメトリックを取得し、ネットワーク攻撃を実行しながらルーティングテーブルの支配的な ‘デフォルトゲートウェイ’エントリのためのすべての戦いを勝ち取るために、 RNDISネットワークインターフェイスを最大20GB /秒のスピードで偽装しました(パッチはこことREADMEにあります )
- ペイロードがRNDISとECMの両方のネットワークを有効にする場合、 自動リンク検出とインターフェイスの切り替え
- SSHサーバーはデフォルトで実行されているので、P4wnP1は172.16.0.1(ペイロードがRNDIS、CDC ECM、またはその両方を有効にしている限り)またはWiFi経由で172.24.0.1に接続できます
- WiFiクライアントモードとWiFiアクセスポイントモードの両方が有効な場合 – P4wnP1は、ターゲットWiFiに到達できない場合にアクセスポイントを開くためにフェールオーバーします (PiゼロWのみ)
高度なペイロード機能
- コールバックに基づく bash ペイロード (詳細は
template.txt
ペイロードを参照)- onNetworkUp (ターゲットホストがネットワークリンクをアクティブにするとき)
- onTargetGotIP (ターゲットがIPを受信した場合、ペイロードスクリプトからIPにアクセスできます)
- onKeyboardUp (キーボードドライバのインストールが完了し、キーボードが使用可能な場合)
- onLogin (ユーザーがSSH経由でP4wnP1にログインしたとき)
- 設定はグローバルに(
setup.cfg
)実行することも、ペイロードごとに上書きすることもできます(同じパラメータがペイロードスクリプトで定義されている場合) - 設定は次のとおりです。
- USB設定(ベンダーID、プロダクトID、 有効にするデバイスタイプ …)
- WiFi設定(SSID、パスワード…)
- HIDキーボード設定( ターゲットキーボード言語など)
- ネットワークとDHCPの設定
- ペイロードの選択
BashBunnyとの機能比較
最初のP4wnP1のコミット後数日、Hak5のBashBunnyが発表された(自分で注文した)。 ちょっとした機能の比較は次のとおりです。
特徴 | バッシュバニー | P4wnP1 |
---|---|---|
RNDIS、CDC ECM、HID、シリアルおよび大容量ストレージのサポート | サポートされ、いくつかの組み合わせで使用可能、ほとんどのモードでWindowsクラスドライバのサポート(プラグアンドプレイ) | サポートされている、ほとんどの組み合わせで使用可能、複合デバイスとしてのすべてのモードでのWindowsクラスドライバサポート(プラグアンドプレイ) |
秘密のHIDチャネル上のターゲットからデバイスへの通信 | いいえ | Raw HIDデバイスは、Windowsターゲット(PowerShell 2.0以降)とHIDを介して通信できます 完全な自動ペイロードがあり、ターゲットデバイスからカスタムPowerShellコンソールを介してP4wnP1 bashにアクセスできます(「hid_frontdoor.txt」ペイロードを参照)。 この手法に基づいた追加のペイロードは、HID秘密チャネル経由でP4wnP1にバックドアセッションを公開し、WiFi / Bluetooth経由でSSH対応デバイス(ブリッジングエアギャップ、ペイロード ‘hid_backdoor.txt’)に中継することができます |
マウスエミュレーション | いいえ | サポートされている:相対的なマウスの位置付け(ほとんどのOS、Androidを含む)+ ABSOLUTEマウスの位置付け(Windows); 専用スクリプト言語 “MouseScript”はマウスを、MouseScriptはHIDバックドアシェルからオンデマンドで |
ターゲットキーボードによるペイロードのトリガー | いいえ | ハードウェアベース:CAPSLOCK / SCROLLLOCKおよびNUMLOCKのLEDが読み戻され、ペイロードの分岐またはトリガーに使用されます( hid_keyboard2.txt ペイロードを参照) |
インタラクティブなDuckyScriptの実行 | サポートされていません | HIDバックドアは、オンデマンドでスクリプトを実行するために使用できます(HIDリモートバックドアを使用して、WiFi、Bluetooth、インターネット経由で) |
実行時に変更可能なUSB構成 | サポートされる | おそらく実装されるでしょう |
RubberDuckyペイロードのサポート | サポートされる | サポートされる |
HIDキーボード出力への配管コマンド出力のサポート | いいえ | サポートされる |
切り替え可能なペイロード | ハードウェアスイッチ | 手動でインタラクティブモードで(ハードウェアスイッチをはんだ付けすることができます、スクリプトのサポートは最優先のToDoです。少なくとも、誰かがこのようなスイッチとPINコネクタを備えたPiのハウジングを印刷するまで) |
インタラクティブなログインとディスプレイアウト | SSH /シリアル | SSH /シリアル/スタンドアロン(USB OTG + HDMI) |
パフォーマンス | 高性能ARMクアッドコアCPU、SSDフラッシュ | 低性能シングルコアARM CPU、SDCARD |
ネットワークインターフェイスのビットレート | Windows RNDIS: 2 GBit / s Linux / MacOS ECM: 100 MBit / s リアルビットレート450 MBit max(USB 2.0) |
Windows RNDIS: 20 GBit / s Linux / MacOS ECM: 4 GBit / s (MacOSでは1 GBit / sインターフェースとして検出されます) リアルビットレート450 MBit max(USB 2.0) ここに必要なP4wnP1パッチ |
LEDインジケータ | RGB Led、シングルペイロードコマンドで駆動 | シングルカラーLED、単一のペイロードコマンドで駆動 |
カスタマイズ | DebianベースのOSとパッケージマネージャー | DebianベースのOSとパッケージマネージャー |
WLAN経由の外部ネットワークアクセス(リレー攻撃、MitM攻撃、エアギャップブリッジ) | 不可能、外部インタフェースなし | Pi Zero Wでサポート |
Bluetooth経由のSSHアクセス | ありえない | サポート(Pi Zero W) |
既存のWiFiネットワークに接続する(ヘッドレス) | ありえない | サポート(Pi Zero W) |
インターネット経由のシェルアクセス | ありえない | サポート(WiFiクライアント接続+ AutoSSH経由でPentesterが所有するSSHサーバーへのSSHリモートポート転送) |
使いやすさ | 簡単に、USBドライブ、簡単なbashベースのスクリプト言語に基づいてペイロードを変更 | 中型、bashベースのイベント駆動型ペイロード、HID用インラインコマンド(DuckyScriptおよびASCIIキーボード印刷、LED制御) |
利用可能なペイロード | 急成長しているgithub repo(大きなコミュニティ) | ゆっくりと成長するgithub repo(余分な時間は1人の男のショー;-))編集:コミュニティは成長していますが、これまでのペイロードの貢献はありません |
ある文章で… | 「世界で最も先進的なUSB攻撃プラットフォーム」 | ペンテストと赤チームのコミュニティのためのオープンソースプロジェクト。 |
総所有コスト | 約99 USD | 約5USドル(Piゼロワットの11ドルフォーWLAN機能) |
SumUp:BashBunnyは簡単な使い方を指向していますが、基本的なP4wnP1ハードウェアの20倍のコストがかかります。 P4wnP1はより高度なユーザーに向けられていますが、別のネットワークインターフェイス(アップストリームインターネット、ハードウェアバックドアなどへのルーティングとMitMトラフィック)でアウトバウンド通信が可能です。
インストール手順
INSTALL.mdを参照してください(旧式、いつか書き直されます )
入門
デフォルトのペイロード(payloads / network_only.txt)は、USBとWiFiを介してイーサネット経由でアクセスできるようにします。 あなたはP4wnP1にSSHできる
USB経由
pi@172.16.0.1
またはWiFi経由
pi@172.24.0.1
Network name: P4wnP1
Key: MaMe82-P4wnP1
そこから、現在のペイロード( PAYLOAD
パラメータ)とキーボード言語( LANG
パラメータ)を変更するためにsetup.cfg
を変更することができます。
注意:選択したペイロードが(hid_keyboardデモペイロードのような)グローバルLANG
パラメータをオーバーライドする場合、ペイロードのLANG
パラメータも変更する必要があります。 ペイロードからLANG
パラメータを削除すると、 setup.cfg
の設定がsetup.cfg
されます。 つまり、ペイロードの設定はsetup.cfg
設定よりも優先されsetup.cfg
要件
- Raspberry Pi Zero / Pi Zero W(他のPisはハブを装備しているため、USBガジェットをサポートしていないので、尋ねないでください)
- Raspbian Jessie / Stretch Liteがプリインストールされています(カーネルはP4wnP1インストーラによって更新されます。現在のカーネルはUSBガジェットモジュールにエラーがあり、クラッシュします)
-
install.sh
スクリプトを実行するためのインターネット接続 - プロジェクトはまだ進行中ですので、機能や新しいペイロードが頻繁に追加されます(更新されたP4wnP1リポジトリがあることを確認してください)
ロックされたマシンからの信憑性の低下、脆弱なアプリケーション(Oracle JAVA JRE / JDK vuln)
P4wnP1のテスト中に、ロックされた完全にパッチされたWindows 10マシン上のwpad.datに対するNTLM認証要求に製品が応答することが確認されています。 ログインしたユーザーのNTLMハッシュは、マシンがドメインに参加していなくても、サードパーティのソフトウェアによって送信されます。 欠陥はそれぞれのベンダーに報告されている。 パッチが入手可能になるとすぐに詳細情報がreadmeに追加されます。 今のところ私は最近ここで開示のタイムラインを更新します。
DisclosureタイムラインがNTLMのハッシュリークを発見:
日付 | アクション |
---|---|
2月23-2017 | Oracle(Email)に提出された初期レポート |
2月23-2017 | Oracleは問題を調査して戻ってきました |
Mar-01-2017 | Oracleは問題を確認し、修正に取り組んでいます |
Mar-23-2017 | Oracle:毎月のステータス更新 “メインコードラインに固定されています” |
4月23-2017 | Oracle:毎月のステータス更新 “メインコードラインで修正中”(はい、Oracleのステートメントは変更されません) |
5月23-2017 | Oracle:毎月のステータス更新 “メインコードラインに固定されています” |
Jun-23-2017 | Oracle:毎月のステータス更新 “メインコードラインに固定されています” |
Jul-14-2017 | Oracle:アップデートをリリースし、 CVE-2017-10125を登録しました 。 リンクを見る |
だから今ここにいる。 この脆弱性のある製品は、Oracle Java JREおよびJDK (1.7 Update 141および1.8 Update 131)です。 この問題は、 ここで見つけることができる「Oracle Critical Patch Update Advisory – July July」で修正されています 。 Java JRE / JDKを更新してください。
〜に対するクレジット
- Seytonic(YouTubeのハッキングとハードウェアプロジェクト: Seytonic
- Rogan Dawes(sensepost、Universal Serial Abuseのコア開発者 – USaBUSe): USaBUSe
- Samy Kamkar: PoisonTap
- Rob ‘MUBIX’ Fuller: “ロックされたマシンからの信用を失う“とgububのMUBIX
- Laurent Gaffie(lgandx): レスポンダー
- Darren Kitchen(hak5darren): DuckEncoder 、 BashBunnyのWiFi対応の後継機種を実装する時間;-)