hacktricks/todo/hardware-hacking
2024-05-05 23:08:22 +00:00
..
fault_injection_attacks.md Translated ['todo/hardware-hacking/fault_injection_attacks.md', 'todo/ha 2024-05-05 13:50:43 +00:00
i2c.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
jtag.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
radio.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
README.md Translated ['README.md', 'binary-exploitation/common-binary-protections- 2024-04-09 00:25:06 +00:00
side_channel_analysis.md Translated ['todo/hardware-hacking/fault_injection_attacks.md', 'todo/ha 2024-05-05 13:50:43 +00:00
spi.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
uart.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00

ハードウェアハッキング

htARTEHackTricks AWS Red Team Expert でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法

JTAG

JTAGはバウンダリスキャンを実行することを可能にします。バウンダリスキャンは、埋め込みバウンダリスキャンセルとレジスタを含む特定の回路を分析します。

JTAG標準は、次のような特定のコマンドを定義してバウンダリスキャンを実行します:

  • BYPASSは、他のチップを経由せずに特定のチップをテストできます。
  • SAMPLE/PRELOADは、デバイスが通常の動作モードにあるときに入出力データのサンプルを取ります。
  • EXTESTはピンの状態を設定および読み取ります。

他のコマンドもサポートできます:

  • デバイスを識別するためのIDCODE
  • デバイスの内部テストのためのINTEST

JTAGulatorのようなツールを使用すると、これらの命令に遭遇することがあります。

テストアクセスポート

バウンダリスキャンには、コンポーネントに組み込まれたJTAGテストサポート機能にアクセスを提供する汎用ポートである**4本のワイヤーテストアクセスポートTAP**のテストが含まれます。TAPは次の5つの信号を使用します

  • テストクロック入力(TCKTCKは、TAPコントローラが単一のアクションを取る頻度を定義するクロックです(つまり、ステートマシン内の次の状態に移動します)。
  • テストモード選択(TMS)入力 TMSは有限状態マシンを制御します。クロックのビートごとに、デバイスのJTAG TAPコントローラはTMSピンの電圧をチェックします。電圧がある閾値以下の場合、信号は低いと見なされ、0と解釈されます。一方、電圧がある閾値を超えると、信号は高いと見なされ、1と解釈されます。
  • テストデータ入力(TDITDIは、スキャンセルを介してチップにデータを送信するピンです。各ベンダーは、このピンを介した通信プロトコルを定義する責任があります。なぜなら、JTAGはこれを定義していないからです。
  • テストデータ出力(TDOTDOは、チップからデータを送信するピンです。
  • テストリセット(TRST)入力 オプションのTRSTは、有限状態マシンを既知の正常な状態にリセットします。代替として、TMSが5つの連続したクロックサイクルで1を保持すると、TRSTピンと同じようにリセットを呼び出します。そのため、TRSTはオプションです。

時々、これらのピンがPCBにマークされていることがあります。他の場合は、それらを見つける必要があるかもしれません。

JTAGピンの識別

JTAGポートを検出する最速で最も高価な方法は、この目的のために作成されたデバイスであるJTAGulatorを使用することですUARTピン配置も検出できます)。

これには、ボードのピンに接続できる24チャンネルがあります。次に、IDCODEおよびBYPASSバウンダリスキャンコマンドを送信するすべての可能な組み合わせのBF攻撃を実行します。応答を受信すると、各JTAG信号に対応するチャンネルが表示されます。

JTAGピン配置を特定するより安価でかなり遅い方法は、Arduino互換のマイクロコントローラにロードされたJTAGenumを使用することです。

JTAGenumを使用すると、まず、列挙に使用するプローブデバイスのピンを定義する必要があります。デバイスのピン配置図を参照し、これらのピンをターゲットデバイスのテストポイントに接続する必要があります。

JTAGピンを特定する3番目の方法は、PCBを検査してピン配置の1つを見つけることです。場合によっては、PCBがTag-Connectインターフェースを提供していることがあり、これはボードにJTAGコネクタがあることを明確に示しています。そのインターフェースの外観はhttps://www.tag-connect.com/info/で確認できます。さらに、PCB上のチップセットのデータシートを検査すると、JTAGインターフェースを指すピン配置図が明らかになる場合があります。

SDW

SWDはARM固有のデバッグ用プロトコルです。

SWDインターフェースには2本のピンが必要です:双方向のSWDIO信号JTAGのTDIおよびTDOピンに相当)とクロックであるSWCLKJTAGのTCKに相当。多くのデバイスは、SWDまたはJTAGプローブをターゲットに接続できる**Serial WireまたはJTAGデバッグポートSWJ-DP**をサポートしています。