Bootloader testing
デバイスの起動構成やU-bootなどのブートローダーを変更するために推奨される手順は次のとおりです:
ブートローダーのインタープリターシェルにアクセス:
起動中に "0"、スペース、または他の特定の "マジックコード" を押して、ブートローダーのインタープリターシェルにアクセスします。
ブート引数の変更:
以下のコマンドを実行して、ブート引数に '
init=/bin/sh
' を追加し、シェルコマンドを実行できるようにします: %%% #printenv #setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash: rootfstype= hasEeprom=0 5srst=0 init=/bin/sh #saveenv #boot %%%
TFTPサーバーの設定:
ローカルネットワーク経由でイメージをロードするためにTFTPサーバーを構成します: %%% #setenv ipaddr 192.168.2.2 #デバイスのローカルIP #setenv serverip 192.168.2.1 #TFTPサーバーのIP #saveenv #reset #ping 192.168.2.1 #ネットワークアクセスを確認 #tftp ${loadaddr} uImage-3.6.35 #loadaddrはファイルをロードするアドレスとTFTPサーバー上のイメージのファイル名を取ります %%%
ubootwrite.py
の利用:
ubootwrite.py
を使用してU-bootイメージを書き込み、ルートアクセスを取得するために変更されたファームウェアをプッシュします。
デバッグ機能の確認:
デバッグ機能が有効になっているかどうかを確認します。詳細なログ記録、任意のカーネルの読み込み、または信頼されていないソースからのブートなど。
注意深いハードウェア干渉:
デバイスの起動シーケンス中に1つのピンを接地に接続し、特にカーネルが解凍される前にSPIまたはNANDフラッシュチップとやり取りする際には、極めて注意してください。ピンをショートする前にNANDフラッシュチップのデータシートを参照してください。
ローグDHCPサーバーの設定:
デバイスがPXEブート中に摂取する悪意のあるパラメータを持つローグDHCPサーバーを設定します。Metasploit(MSF)のDHCP補助サーバーなどのツールを利用します。 'FILENAME'パラメータを
'a";/bin/sh;#'
などのコマンドインジェクションコマンドで変更して、デバイスの起動手順の入力検証をテストします。
注意: デバイスのピンと物理的なやり取りを伴う手順(*アスタリスクでマークされています)は、デバイスを損傷させないように極めて注意してアプローチする必要があります。
参考文献
Last updated