前のCTF記事https://qiita.com/55momotara55/items/03ccd0e111b38061e6fc
はすごく簡単なADBサービスを利用してAndroidデバイスを侵入する手法なんです。
昨日も会社のインターンシップの同年生から「俺のスマホでやってみる?」聞いて、経済的な方面から考えると諦めしました(弁償の可能性無限大)。
ですから今日朝もう一度この模擬Androidをチェックする時、この中に面白いサービスを発見しました。
/system/xbinの中にbusyboxというツールが入ってます:
busyboxはLINUXの常用コマンドをAndroidデバイスに実行できるようなツールです。
フォレンジック原理:busyboxをインストールしているANDROIDデバイスをddコマンドを実行し、今後のデジタルフォレンジックの解析するため、現時点でのAndroidデバイスのイメージファイルを作り、遠隔OSにこのイメージファイルを転送します。
mount命令を使い、誰かsystemを【mount】しているか、確認しましょう:(/dev/block/sda1です)
LISTENモードを使います、このAndroidデバイスは遠隔OSのコマンドを受け次第に8888ポートから/dev/block/sda1のイメージファイルを転送します:
遠隔OSではターミナルを使い、8888ポートからのイメージファイルの転送を受けます:
結果を確認します:
#このまま記事終えることではない
リアルな使用環境を考えると、Androidデバイスにbusyboxを入れる一般人は少ないでしょう。問題点は:
1,なんのコマンド使ったら捜査対象デバイスにbusyboxを入れる?
2,コマンド嫌だから、どうすれば簡単に捜査対象デバイスのメモリを読み取る?
3,捜査対象デバイスを電源入り次第にデバッグモードを変更したい方法?
2番の答えは(電子系出身):
**物理手段:chip-off法:**ヒートガンを使い、フラッシュメモリをデバイスのマザーボードから取ります
、するとフラッシュメモリ読みとり専用設備を使います。
要注意:フラッシュメモリの耐熱温暖はほとんど低い(100-150度以内?)、ヒートガンの使い方が下手したら破損の可能性が非常に高いです。
3番の答えは:**JTAG:**直接マザーボードで配線し、強制的にデバイスをデバッグモードに変更させます(メーカーの設計図あれば助かります)。
1番の考え方:
目標:busyboxを/system/xbinに書き込みます。
1,従来、【READ-ONLY】のsystemファイルを書き込み状態にします。ここでmount -o remount
を使います。非rootアカウントはchmod
コマンドを使い、/system/xbinを読める状態にします。(非ROOTアカウントはxbinファイルを読めないから)
2,続いて、busyboxファイルをadb shellのpush
命令を使い、xbinに書き込みます。
3,現在、/system/xbin/busyboxというルートが作られ、Androidのターミナルでbusybox-install
というコマンドを使い、Androidにインストールします。
4,busyboxすでに捜査対象デバイスにインストールされ、以後の流れはこの記事の一番上からやるでしょう。
今後YOUTUBEでビデオを作って詳しい操作方法を紹介したいと思います。