SPI
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
SPI(シリアルペリフェラルインターフェース)は、IC(集積回路)間の短距離通信に使用される同期シリアル通信プロトコルです。SPI通信プロトコルは、クロックとチップセレクト信号によって調整されるマスター-スレーブアーキテクチャを利用します。マスター-スレーブアーキテクチャは、EEPROM、センサー、制御デバイスなどの外部周辺機器を管理するマスター(通常はマイクロプロセッサ)で構成され、これらはスレーブと見なされます。
複数のスレーブがマスターに接続できますが、スレーブ同士は通信できません。スレーブは、クロックとチップセレクトの2つのピンによって管理されます。SPIは同期通信プロトコルであるため、入力ピンと出力ピンはクロック信号に従います。チップセレクトは、マスターがスレーブを選択して相互作用するために使用されます。チップセレクトが高いと、スレーブデバイスは選択されず、低いと、チップが選択され、マスターがスレーブと相互作用します。
MOSI(マスターアウト、スレーブイン)とMISO(マスターイン、スレーブアウト)は、データの送信と受信を担当します。データは、MOSIピンを介してスレーブデバイスに送信され、チップセレクトが低い状態で保持されます。入力データには、スレーブデバイスベンダーのデータシートに従った命令、メモリアドレス、またはデータが含まれます。有効な入力があると、MISOピンはマスターにデータを送信します。出力データは、入力が終了した後の次のクロックサイクルで送信されます。MISOピンは、データが完全に送信されるまで、またはマスターがチップセレクトピンを高く設定するまでデータを送信します(その場合、スレーブは送信を停止し、マスターはそのクロックサイクルの後に聞き取らなくなります)。
ファームウェアのダンプは、ファームウェアを分析し、脆弱性を見つけるのに役立ちます。多くの場合、ファームウェアはインターネット上で入手できないか、モデル番号、バージョンなどの要因の変動により無関係です。したがって、物理デバイスから直接ファームウェアを抽出することは、脅威を特定する際に役立ちます。
シリアルコンソールを取得することは役立ちますが、ファイルが読み取り専用であることがよくあります。これにより、さまざまな理由から分析が制約されます。たとえば、パッケージを送受信するために必要なツールがファームウェアに存在しない場合があります。したがって、バイナリを抽出して逆アセンブルすることは実行可能ではありません。したがって、システムにファームウェア全体をダンプし、分析のためにバイナリを抽出することは非常に役立ちます。
また、レッドチーミング中やデバイスへの物理アクセスを取得する際に、ファームウェアをダンプすることで、ファイルを変更したり、悪意のあるファイルを注入したりして、それをメモリに再フラッシュすることができ、デバイスにバックドアを埋め込むのに役立ちます。したがって、ファームウェアのダンプによって解放される可能性は無数にあります。
このデバイスは、EEPROMからファームウェアをダンプし、ファームウェアファイルで再フラッシュするための手頃なツールです。これは、コンピュータのBIOSチップ(これもEEPROMです)で作業するための人気の選択肢です。このデバイスはUSB経由で接続され、開始するために最小限のツールが必要です。また、通常は迅速に作業を完了するため、物理デバイスへのアクセスにも役立ちます。
EEPROMメモリをCH341aプログラマーに接続し、デバイスをコンピュータに接続します。デバイスが検出されない場合は、コンピュータにドライバーをインストールしてみてください。また、EEPROMが正しい向きで接続されていることを確認してください(通常、VCCピンをUSBコネクタに対して逆向きに配置します)。そうしないと、ソフトウェアがチップを検出できません。必要に応じて図を参照してください:
最後に、flashrom、G-Flash(GUI)などのソフトウェアを使用してファームウェアをダンプします。G-Flashは、最小限のGUIツールで、迅速で、EEPROMを自動的に検出します。これは、ファームウェアを迅速に抽出する必要がある場合に役立ち、ドキュメントをあまりいじることなく行えます。
ファームウェアをダンプした後、バイナリファイルの分析を行うことができます。strings、hexdump、xxd、binwalkなどのツールを使用して、ファームウェアやファイルシステム全体に関する多くの情報を抽出できます。
ファームウェアからの内容を抽出するには、binwalkを使用できます。Binwalkは、16進数の署名を分析し、バイナリファイル内のファイルを特定し、それらを抽出することができます。
The can be .bin or .rom as per the tools and configurations used.
ファームウェアの抽出は繊細なプロセスであり、多くの忍耐が必要です。取り扱いを誤ると、ファームウェアが破損したり、完全に消去されてデバイスが使用できなくなる可能性があります。ファームウェアを抽出する前に、特定のデバイスを研究することをお勧めします。
Pirate BusのPINOUTがMOSIとMISOのピンをSPIに接続するように示していても、いくつかのSPIではピンをDIとDOとして示す場合があります。MOSI -> DI, MISO -> DO
WindowsまたはLinuxでは、プログラムflashrom
を使用して、次のようにフラッシュメモリの内容をダンプできます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)