問題

問題文:
このディスクイメージからフラグを見つけられますか? 正解はLinuxです! 間違った操作をすれば全てが消えてしまいます!
ディスクイメージはこちらからダウンロードしてください。
HINT:How can you extract/isolate a partition?
パーテーションを抽出すればよい的な
解法
ダウンロードするとgzipで圧縮されてる.dd(ディスクイメージ)が手に入るのでgunzipで解凍
strings | grep picoCTFを実行してみるとめっちゃflagみたいなのが出てきて本物が分からない
HINTからpartitionを分離して抽出すればいいっぽい
partitionを確認する fdisk -l ディスク名
fdisk -l ./disko-2.dd
//結果
Device Boot Start End Sectors Size Id Type
./disko-2.dd1 2048 53247 51200 25M 83 Linux
./disko-2.dd2 53248 118783 65536 32M b W95 FAT32
- Device
-
パーティション番号
実際にファイルが存在しているわけではない - Boot
-
起動用フラグ
*がついていたら「起動可能パーティション」
よくわからない - Start
-
パーティションの開始位置
単位:セクタ番号 - End
- パーティションの終了番号
- Sectors
- そのパーティションが使っているセクタ数
- Size
-
人間にわかりやすくサイズ表示
※512バイト = 1セクタが一般的 - Id/Type
-
パーティションの種類を表す番号
Typeは人間にもわかりやすくしたもの
問題文からTypeがLinuxのパーティションにflagが入っていると予想
パーティション1がLinuxなのでこれを抽出すればよさそう
分離と抽出
パーティションを抽出するにはddコマンドを使う
dd if=./disko-2.dd of=partition1.dd bs=512 skip=2048 count=51200
if=:元のディスクイメージ
of=:抽出後のファイル
bs=512:セクタサイズ
skip=:開始セクタ //Startの値
count=:コピーするセクタ数 //Sectorの値
コピーしたものを確認する
strings partition1.dd | grep picoCTF
結果
picoCTF{4_P4Rt_1t_i5_90a3f3d1}