役立つと思った集(広義)
知らないコマンドをローラー形式で確認するより、楽したいと思ってから必要なコマンドかき集める方が吸収率やらなんやら良いのではと感じている今日この頃です
これも随時更新します
コマンド編
wgetで保存先を変更する手法
wget -P path/to/foobar http://localhost/path/to/foobar.tar.gz
tarで保存先を変更する手法
tar xvzf hoge-2.5.2.tar.gz -C /foo/bar
ちなみに、細かいオプションについては以下参照
-c 新しくアーカイブファイルを作成する。たぶんcreateの意味 -f アーカイブファイル名をパラメータで指定する。これを指定しないと標準入力 または標準出力が使われる -t アーカイブファイルに含まれるファイルの一覧を表示する。たぶんlistの意味 " -v 処理の進行しているファイル名を表示する。 -t と併用の場合はタイムスタンプやファイルサイズなども表示する。 " -x アーカイブファイルを展開する。たぶんextractの意味 " -z gzipで圧縮または展開を同時に行う -z を使う場合は、アーカイブファイルの拡張子として .tar.gz または .tgz がよく使われる "
lsコマンドで再帰的にファイルを検索する手法
du -a
wgetでサイトの画像を一括スクレイピング
$ wget -r -l1 -Ajpg http://www.cc.kyoto-su.ac.jp/~atsushi/Programs/VisualWorks/Exercises/Exercise_ParaPara/index.html
-r:再帰的に
-l1:1階層掘って
-Ajpg:拡張子はjpgを指定
htmlを只記述すると、その最下層しかスクレイピングしないが-lnでn階層指定して、-rで再帰的処理、-Ahogeでファイルの指定をすれば可能なのだが、これは、全ての階層の素材を取ってくるので改善が必要。
windowsでopenコマンドの代わり
Invoke-Itemを用いる。
Invoke-Item hogefugapath
Linux環境でシンボリックリンクを作る方法
lnコマンドを用いる。コツとしては、行きたい場所を考えたら、その場所に名前を付けるイメージを持てばいいです。
ln [引用元] [登録名]
参考URL様 【ln】Linuxでファイルやディレクトリにリンクを作成するコマンド | UX MILK
lsでディレクトリのみを表示する方法
ls -laしてgrep ^dする
ls -la | grep ^d
参考URL様 サルにもわかる正規表現入門
scpコマンドのGUI版?CUIだけど
sftp username@host
対象ファイルまで視覚的に移動できて楽。getでファイルを取得。 quitで終了。 scpはファイルパスを覚えてないといけないので完全上位互換…
参考URL様
ぼくのかんがえたさいきょうのばっしゅもんかんきょう
ctf4b2020に参加して、BASH問欲が爆発してしまったので軽くまとめます。(これは随時更新します。知ってるサイトあれば連絡ください。)
そもそも、ここでいうBASH問の定義とは、シェルスクリプトなどのスクリプトを用いて権限昇格など色々することを指します。(まぁ黙ってpwnやっとけって話なんですけどね…)
これらはCTFについて説明してくださっているサイト群
調査結果
結局のところ、現在把握しているよさそうサイトはここかなぁ…
www.root-me.org
後、少し本筋とはずれるけど、CLIの訓練になる
overthewire.org
powershellしたいニッチな人はこっち
underthewire.tech
後、contrailか何かのCTFで面白そうな問題あったような…
【Forensics 1.0.2α】SusecCTF writeup
記事にするの遅すぎ
以下の問題を解きました。
- Little
Little
problem.txt
Little
Points
102
Solves
45
Category
Forensics
Description:
A little boy is playing around in his grandfather's attic, where he finds a magical box. Help him discover what is in the box[little.img_03551d5d361ae5f58675f065da899e9f6e9e3361.txz].
ATTENTION: The flag that you are going to capture for this task does not contain the word "SUSEC{", but you have to add this word to the beginning of the discovered flag before submitting it.
解答の方針
txzファイルの中身がイメージファイルだったので、これをどうにかする
img_stat little.img
IMAGE FILE INFORMATION
- -
Image Type: raw
Size in bytes: 67108864
- mmlsでオフセット確認しようとするも破損してたからbinwalkで抽出。
binwalk --dd='.*' -Me little.img(これがimgファイルを再帰的に漏れなく抽出してくれる優れものらしい…)
DECIMAL HEXADECIMAL DESCRIPTION
- -
0 0x0 Linux EXT filesystem, rev 1.0, ext2 filesystem data, UUID=e0676215-9cc7-abbd-f840-953aacffacff
1160 0x488 Unix path: /home/susec/your_searching_/name_is/junk
279112 0x44248 Unix path: /home/susec/your_searching_/name_is/littleBoy.img
524288 0x80000 Linux EXT filesystem, rev 1.0, ext2 filesystem data, UUID=e0676215-9cc7-abbd-f840-953aacffacff
532480 0x82000 PNG image, 1024 x 300, 8-bit/color RGB, non-interlaced
532754 0x82112 Unix path: /www.w3.org/1999/02/22-rdf-syntax-ns#">
なんかいろいろ書いてあるが、とりあえず抽出したファイルを覗くと
どうやらフラグは複数集めて完成させるタイプの奴らしい…
これは二番目だった。
また、上記はbinwalkをただかけるだけでなにも趣がないので別解もやる。
- mmlsではわからない情報がfsstatで-i filetype imgfileで
分かるらしい。
(*1)これでfile system typeがEXT2/3/4 or FATと判明したため、
- fls -i raw -f ext -pr little.img で
ディスクイメージからファイル、ディレクトリとinode情報を抜き出す。(-prオプションは-pでファイルのフルパス、-rで再帰的処理らしいです)
さて、icatでファイルを出力します。
- icat -i raw -f ext little.img 25 > seconf.png
この手法でやれば、slueth kitの理解も深まります。
[guess]
secondfファイルがあったので、first,thirdもあるだろうと思い、stringsにかける。
#
[guess?]
あったので、他のファイルシステムも同様にflsコマンドにかけて調べる。
fls -i raw -f fat -pr little.img
何やらfirstf.kgbという名のファイルが出現した。
どうやら圧縮ファイルのようなのは分かったが…聞いたことないファイル形式だ…
ひとまず7zipにかけてみる。
展開できない……
「KGB ファイル 展開」で調べると、KGBアーカイバーが出てきたのでインストール
firstf.oggファイルが出てきたので、再生する。
[c0me_wi4h_f4T_m4n_]
はい。
では、thirdfに着手する。
これに関しては正しい思考の導き方が分からない…
strings little.img | grep third -A 10 -B 10
で検索かけてだいたいどこにいるのか把握したらautopsyで取り出すのが僕は一番強いと思いました…
(今回は調べてもわからんかった)
でもgrep結果でmp4形式と出ていたので、autopsyでひたすらポチポチすると
発見して
このようになりました。
これを発見するのに使ったモジュールはphotorecなので、cuiでも実質できます。
でもphotorecを使うと分かったのは、結局他人のwriteup見たからなので何とも言えないですね…
もう一問perceptronというmiscがあるんですが挫折したので修行してきます
<参考文献>
[Little]
ちょっとThe Sleuth Kit使ってみたその2 - Qiita
zarat.hatenablog.com
github.com
埋め込み動画をダウンロード
【Forensics 1.0.1a】TamuCTF writeup
Z氏にはお世話になりっぱなしなので、どんな形でもお返しできるように精進したい。
レギュレーション:
フラグはもちろん欲しいが、the slueth kit等様々な道具と触れ合いフォレンジックの知識を深めることを最優先事項とする。
さて、今回解いた問題は以下の4問である。
- ALCAPONE
- Corrupted Disk
- ZippityDoodah
ALCAPONE
problem.txt :
ALCAPONE
Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone's personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss?
(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it. Little did he know that Ness was smarter than him.)
Direct Download link: https://tamuctf.com/themes/core/static/img/WindowsXP.img.xz
思考の過程:
Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it. Little did he know that Ness was smarter than him.
上記のこの部分に、alcaponeがPCからデータを消去した。とあるので、まぁゴミ箱にフラグが入っているんだろうなぁとなり、
【検索】windowsXP ゴミ箱 場所
【検索】windowsXP structure
した
www.slideshare.net
support.hp.com
なんかrecyclerって場所にデータ置いてありそう……………
なので、これからslueth kitで目的データを取得する指針で問題に向き合うこととする。
- img_stat tamu2020-WindowsXP.img
IMAGE FILE INFORMATION
- -
Image Type: raw
Size in bytes: 3221225472
img_stat でファイルシステムを特定して
- mmls tamu2020-WindowsXP.img
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
000: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
001: ------- 0000000000 0000000062 0000000063 Unallocated
002: 000:000 0000000063 0006281855 0006281793 NTFS / exFAT (0x07)
003: ------- 0006281856 0006291455 0000009600 Unallocated
r/r 4-128-4: $AttrDef
r/r 8-128-2: $BadClus
r/r 8-128-1: $BadClus:$Bad
r/r 6-128-1: $Bitmap
r/r 7-128-1: $Boot
d/d 11-144-4: $Extend
r/r 2-128-1: $LogFile
r/r 0-128-1: $MFT
r/r 1-128-1: $MFTMirr
r/r 9-128-8: $Secure:$SDS
r/r 9-144-11: $Secure:$SDH
r/r 9-144-14: $Secure:$SII
r/r 10-128-1: $UpCase
r/r 3-128-3: $Volume
r/r 8006-128-1: AUTOEXEC.BAT
r/r 4364-128-3: boot.ini
r/r 8005-128-1: CONFIG.SYS
d/d 4371-144-6: Documents and Settings
r/r 8007-128-1: IO.SYS
r/r 8008-128-1: MSDOS.SYS
r/r 4167-128-3: NTDETECT.COM
r/r 4166-128-3: ntldr
r/r 27-128-1: pagefile.sys
d/d 4745-144-6: Program Files
d/d 4749-144-6: Program Files (x86)
d/d 8495-144-1: RECYCLER
d/d 4380-144-6: System Volume Information
d/d 28-144-5: WINDOWS
d/d 8672: $OrphanFiles
mmlsで割り当てファイルのオフセットを確認したら、flsでディスクイメージのファイル、ディレクトリ名を表示。
今回はrecyclerを取り出したいのでディレクトリごと抜き出す必要がある…
icatはファイルのみを対象としたもの(ホンマか?)なので、代わりにtsk_recoverを用いる。
~/Home/Downloads/CTF/tamuCTF/ALCAPONE/8496-144-6/Documents and Settings/Administrator/Local Settings/Temp/Temporary Directory 1 for flag5.zip$ ls
flag.txt flag13.txt flag17.txt flag20.txt flag24.txt flag28.txt flag31.txt flag35.txt flag39.txt flag6.txt
flag10.txt flag14.txt flag18.txt flag21.txt flag25.txt flag29.txt flag32.txt flag36.txt flag4.txt flag7.txt
flag11.txt flag15.txt flag19.txt flag22.txt flag26.txt flag3.txt flag33.txt flag37.txt flag40.txt flag8.txt
flag12.txt flag16.txt flag2.txt flag23.txt flag27.txt flag30.txt flag34.txt flag38.txt flag5.txt flag9.txt
- iでファイルタイプ、-oでオフセット、-fでファイルシステムの指定。inodeのところは任意でokです。
- cat ./* | grep "gigem{"
oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
見っけた
Corrupted Disk
problem.txt
Corrupted Disk
We've recovered this disk image but it seems to be damaged. Can you recover any useful information from it?
File: tamu2020-recovered_disk.img
思考の過程:
corrupted fileとあるから、まぁファイルシステムとか壊れて見れないんだろうなと思い、破損したimgファイルから情報を得る手段を考える。
slueth kitには破損ファイルを直すコマンドがない(※いや、絶対ありそう。勉強不足です)ので、binwalk使います。
strings 任意.img | grep flag*でflag.pngが見つかった
DECIMAL HEXADECIMAL DESCRIPTION
- -
76464 0x12AB0 PDF document, version: "1.4"
76535 0x12AF7 Zlib compressed data, default compression
76774 0x12BE6 Zlib compressed data, default compression
87650 0x15662 Unix path: /Type/FontDescriptor/FontName/BAAAAA+Arial-BoldMT
87882 0x1574A Zlib compressed data, default compression
88183 0x15877 Unix path: /Type/Font/Subtype/TrueType/BaseFont/BAAAAA+Arial-BoldMT
88541 0x159DD Unix path: /S/Transparency/CS/DeviceRGB/I true>>/Contents 2 0 R>>
92848 0x16AB0 PNG image, 329 x 17, 8-bit grayscale, non-interlaced
273072 0x42AB0 Zip archive data, at least v2.0 to extract, name: _rels/.rels
273346 0x42BC2 Zip archive data, at least v2.0 to extract, name: word/settings.xml
273595 0x42CBB Zip archive data, at least v2.0 to extract, name: word/_rels/document.xml.rels
273971 0x42E33 Zip archive data, at least v2.0 to extract, name: word/fontTable.xml
274385 0x42FD1 Zip archive data, at least v2.0 to extract, name: word/numbering.xml
275259 0x4333B Zip archive data, at least v2.0 to extract, name: word/media/image1.jpeg
375699 0x5BB93 Zip archive data, at least v2.0 to extract, name: word/charts/chart1.xml
376594 0x5BF12 Zip archive data, at least v2.0 to extract, name: word/styles.xml
377822 0x5C3DE Zip archive data, at least v2.0 to extract, name: word/document.xml
382592 0x5D680 Zip archive data, at least v2.0 to extract, name: docProps/app.xml
382823 0x5D767 Zip archive data, at least v2.0 to extract, name: docProps/core.xml
383169 0x5D8C1 Zip archive data, at least v2.0 to extract, name: [Content_Types].xml
384353 0x5DD61 End of Zip archive
387760 0x5EAB0 JPEG image data, EXIF standard
387772 0x5EABC TIFF image data, little-endian offset of first image directory: 8
486064 0x76AB0 PNG image, 1068 x 966, 8-bit/color RGBA, non-interlaced
486128 0x76AF0 Zlib compressed data, best compression
500566 0x7A356 Zlib compressed data, default compression
1829552 0x1BEAB0 JPEG image data, JFIF standard 1.01
1829582 0x1BEACE TIFF image data, little-endian offset of first image directory: 8
1829844 0x1BEBD4 JPEG image data, JFIF standard 1.01
binwalkでファイル構成が分かったら、修復にとりかかる。
ツールはforemostで脳死でやるか、ddコマンドでシグネチャ通りにコピーして抽出。
foremostは引数にファイル名入れるだけなので、今回はddを採用しました。
dd if=tamu2020-recovered_disk.img of=flag2.png bs=1 count=180224 skip=92848
dd if=tamu2020-recovered_disk.img of=flag1.png bs=1 count=64 skip=486064
ifに任意のファイル名を読み込み、ofで任意のファイル名で出力。bsで一度に読み書きするブロックサイズを指定。(デフォルトでは1byte) countで何ブロック分コピーするか決める。skipで目的の場所に飛ぶ。
あった
problem.txt
紛失しました。
思考の過程:
渡されたphoto.pngが開けないので、画像が壊れてる→バイナリを書き換える
と連想し、バイナリ調査に踏み込みます。
バイナリを読むときに必要な前提知識がある。ファイルフォーマットです。
各有名なマーカー値を抑えておきましょう。
file photo.pngするとjpgと出るので、jpgとして足りないマーカー値とかないか確認します。
これが普通の画像のヘッダー
00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001 ......JFIF......
これが問題のヘッダー
00000000: ffd8 ffe0 0010 0001 0100 0048 0048 0000 ...........H.H..
JFIFが抜け落ちていますね…これを補完してあげれば直りそう(これのみを直せば解決すると断言できないのが苦しい。。。)
方針としては、photo.pngのJFIF前6byteを別ファイルに抜き出して、分離したファイルの頭にJFIFをつけてあげるれば良い?
つまり
をすればよい (これはバイナリツールを知らないので取った手段です。よいこはbviを使いましょう。)
dd if=photo.png of=split1.jpg bs=1 count=6
↑skip指定せずに、countで6byte指定すると頭から6byteコピーしてくれる
ちなみに16進数の場合、一文字は4bitなので2文字で1byte。だから6byte指定。
dd if=photo.png of=split2.jpg bs=1 skip=6
同様にして6byte以降のファイルも生成する
echo -en "\x4a\x46\x49\x46" >> split1.jpg
6byteまで分けたら、分けたファイルの末尾にJFIFのバイナリを挿入する。
しかし、解いている最中にはバイナリを直接書き換えて保存できるエディタを確認することができなかった…(絶対ある)
なので、echoのオプションを利用してファイルを書き換えることにした。
eng-entrance.com
改行を表示したいから-eオプションでエスケープを無視。
cat split2.jpg >> split1.jpg
これでバイナリがsplit1の末尾にキレイに追加される
ZippityDoodah
problem.txt
ZippityDoodah
Lorelei, a nuclear engineer, is practicing how to create folders to organize her notes. She works closely with POTUS to secure our nuclear missiles. In order for her to send the nuclear codes to the correct authorities, she needs to zip all the files and make the data hard to find. Your mission, should you choose to accept it, is to intercept and find the codes (the flag).
思考の過程:
問題の意味はよくわからないけど、まあzipファイルを渡されたのでおとなしく解凍していく。
steganoかな?zstegかけとこ
b1,rgb,lsb,xy .. text: "gigem{z1pT4st1c__$kiLl$$$}"
b2,r,msb,xy .. text: "_UUUUUUUUU"
b2,g,msb,xy .. text: "@UUUUUUU"
b2,b,msb,xy .. text: "PUUUUUUUU"
b2,rgb,msb,xy .. text: "EQUUUUUU"
b2,rgba,lsb,xy .. text: ["+" repeated 10 times]
b2,abgr,msb,xy .. text: "SSSSGGGGGSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"
b4,r,lsb,xy .. text: "2EV#\"\"TEB#2EUUUd33E\"\"\"3\"#3\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" "
b4,r,msb,xy .. text: ["D" repeated 19 times]
b4,g,lsb,xy .. text: "$T2#232#\"#UTTDU3\"\"3#2\"\"#2\"\""
b4,g,msb,xy .. text: "@DDDDDDDDDDDDDDD"
b4,b,lsb,xy .. text: "#3\"#32%GfEEEEUEEEggvfvDETUDDDUEDDD\"\"$DDDDDDDDDDDDDDB\"\"\"\"\"\"\"\"\"fffffDfdD$D\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"DD\"\"DDDD\"$DDDDDDDDDDDDDDDDDDDB$DDDDDfDFfDFffDffDdDDFffffDDDDDDffDDDffdDDDfffffffffffffffffff"
b4,b,msb,xy .. text: "\"\"\"DD$\"\"\"\"\"\"\"\"\"\"\"\"\"\"BDDDDDDDDDfffff\"f&\"$\"DDDDDDDDDDDDDDDDD\"\"DD\"\"\"\"D$\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"B$\"\"\"\"\"f\"bf\"bff\"ff\"&\"\"bffff\"\"\"\"\"\"ff\"\"\"ff&\"\"\"fffffffffffffffffff"
b4,rgb,lsb,xy .. text: "0\"5BEGUfF#C%\"B5#B%SD5CU%BB5\"C%2B5EeWUeGUuFTeFetV3C42C%BU$#R5\"B4#B$2C$\"R%\"C53C$\"B$\"B$ \""
b4,rgb,msb,xy .. text: "D$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$D"
b4,bgr,lsb,xy .. text: " 52BGEeVFC%#B%2C%\"CU4SE%BE2B%#B52eGUeWEuVEdVEufTC43B5#RD%S%2B$2C$\"B4#R%\"B%3C4#B$\"B$\" \""
b4,bgr,msb,xy .. text: "$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DBD"
b4,rgba,lsb,xy .. text: "?!/1/1/0?"
b4,abgr,msb,xy .. text: "L/D/L/L/D/"
………………………………………………うーん
いや、自分なりに理解する努力をしよう。
公式writeupさんはデコードツールを使ったみたい
LSB法?かな
scpコマンドも打てないくそ雑魚でした。ごめんなさい。
https://qiita.com/aki_55p/items/601173bb66a282625986
scpはsshも兼ねているから、リモートからローカルにファイルを移したかったらリモート側でscpしなければならない。後、エラーメッセージは腐らずによく読む癖を身に着けよう
ps aux → プロセスの一覧表示
結論:sftpコマンドには負ける。
【Forensics 1.0.0】zer0ptsCTF WriteUp
初めてDiscordで顔の見えない相手とお話をするという快挙を成し遂げた。緊張した。
ヘッドセット買いたい!
公式writeup様
hackmd.io
参考writeup様
aokakes.hatenablog.com
LOCKED KITKAT
必要かもしれない事前知識
最低限のファイル構造
方針
ロック画面を管理するファイルを探そうとする
やったこと
方法がよくわからんので、ググラビリティに頼る。
android pattern lockscreen
これで出てくるからびっくりだよね
なにやらgesture.keyで管理しているらしい。
しかもそれはsha1でできているらしい。
- autopsyを使うやり方
ここから総当たりでありそうな場所に検討つけながらやりました。
system->data->gesture.key
- the sluth kitを使うやり方
The Sleuth Kit | Forensicistwww.kazamiya.net
↑
これのsleuth kit以下のページを調べたいコマンドに書き換えながら調べるのが激熱。
これすごい便利(怠惰)
qiita.com
↑これも纏まってて便利
img_stat [-i imgtype] [-b dev_sector_size] [-tvV] image [images]
指定したイメージファイルのtype(raw,aff,afd等)とサイズが出力されます。
IMAGE FILE INFORMATION
- -
Image Type: raw
Size in bytes: 536870912
fsstat [-f fstype ] [-i imgtype] [-o imgoffset] [-b dev_sector_size] [-tvV] image [images]
fsstat - ファイルシステムの一般的な詳細情報を表示する
FILE SYSTEM INFORMATION
- -
File System Type: Ext4
Volume Name:
Volume ID: 5bf2f9c06f9467bf5f65f4abbcf4f857Last Written at: 2020-03-05 10:06:53 (JST)
Last Checked at: emptyLast Mounted at: 2020-03-05 10:06:53 (JST)
Unmounted properly
Last mounted on: /dataSource OS: Linux
Dynamic Structure
Compat Features: Journal, Ext Attributes, Resize Inode,
InCompat Features: Filetype, Needs Recovery, Extents,
Read Only Compat Features: Sparse Super, Large File,Journal ID: 00
Journal Inode: 8METADATA INFORMATION
- -
Inode Range: 1 - 32769
Root Directory: 2
Free Inodes: 32733
Inode Size: 256CONTENT INFORMATION
- -
Block Groups Per Flex Group: 1
Block Range: 0 - 131071
Block Size: 4096
Free Blocks: 118486BLOCK GROUP INFORMATION
- -
Number of Block Groups: 4
Inodes per group: 8192
Blocks per group: 32768Group: 0:
Inode Range: 1 - 8192
Block Range: 0 - 32767
Layout:
Super Block: 0 - 0
Group Descriptor Table: 1 - 1
Group Descriptor Growth Blocks: 2 - 128
Data bitmap: 129 - 129
Inode bitmap: 130 - 130
Inode Table: 131 - 642
Data Blocks: 643 - 32767
Free Inodes: 8155 (99%)
Free Blocks: 17203 (52%)
Total Directories: 8Group: 1:
Inode Range: 8193 - 16384
Block Range: 32768 - 65535
Layout:
Super Block: 32768 - 32768
Group Descriptor Table: 32769 - 32769
Group Descriptor Growth Blocks: 32770 - 32896
Data bitmap: 32897 - 32897
Inode bitmap: 32898 - 32898
Inode Table: 32899 - 33410
Data Blocks: 33411 - 65535
Free Inodes: 7884 (96%)
Free Blocks: 31845 (97%)
Total Directories: 136Group: 2:
Inode Range: 16385 - 24576
Block Range: 65536 - 98303
Layout:
Data bitmap: 65536 - 65536
Inode bitmap: 65537 - 65537
Inode Table: 65538 - 66049
Data Blocks: 65538 - 65537, 66050 - 98303
Free Inodes: 8169 (99%)
Free Blocks: 32232 (98%)
Total Directories: 17Group: 3:
Inode Range: 24577 - 32768
Block Range: 98304 - 131071
Layout:
Super Block: 98304 - 98304
Group Descriptor Table: 98305 - 98305
Group Descriptor Growth Blocks: 98306 - 98432
Data bitmap: 98433 - 98433
Inode bitmap: 98434 - 98434
Inode Table: 98435 - 98946
Data Blocks: 98947 - 131071
Free Inodes: 8133 (99%)
Free Blocks: 31882 (97%)
Total Directories: 17
fsstatはファイルシステムに関連する詳細情報を表示する。このコマンドの出力はファイルシステム依存となる。少なくともメタデータの値(iノード番号)の範囲とブロックやクラスタのコンテンツ用ユニットの情報が与えられる。スーパーブロックから得られるマウント時刻や独自機能などの詳細情報も与えられる。FFSやExt2などのグループに分割するファイルシステムでは、各グループの配置がリストされる。 FATファイルシステムではFATテーブルが簡略化されたフォーマットで表示される。このデータはセクタ内にあり、クラスタ内にはない。
fls [-adDFlpruvV] [-m mnt ] [-z zone ] [-f fstype ] [-s seconds ] [-i imgtype ] [-o imgoffset ] [-b dev_sector_size ] image [images] [ inode ]
fls - ディスクイメージからファイル、ディレクトリ名を表示する
flsはimage内のファイル、ディレクトリ名を表示する。また、inodeで指定されたiノードを使っているディレクトリの最近削除されたファイル名を表示する。inodeが指定されなければ、ルートディレクトリのiノードの値となる。例えば、NTFSでは5となり、Ext3では2となる。 指定可能な引数は以下は以下の通りである。
d/d 11: lost+found
d/d 12: app
d/d 27: nativebenchmark
d/d 29: nativetest
d/d 8193: dontpanic
d/d 16385: misc
d/d 24577: local
d/d 8194: data
d/d 24579: app-private
d/d 8195: app-asec
d/d 24580: app-lib
d/d 8196: property
d/d 8197: ssh
d/d 24581: dalvik-cache
d/d 24582: resource-cache
d/d 24583: drm
d/d 8199: mediadrm
l/l 36: bugreports
d/d 24584: security
d/d 8200: user
d/d 24585: media
d/d 8204: system
d/d 16402: backup
r/r 37: .layout_version
d/d 32769: $OrphanFiles
ここまでは一通り調査。ファイルタイプとファイルシステムカテゴリの判別。
ここからはだいたいの目星をつけてファイルの深堀をしていく
systemのinode番号は8204なので…
上記のように-i でimagetype、-fでファイルの種類を指定。深堀したいinode番号を最後に記述して完成。
r/r 8207: batterystats.bin
d/d 8206: procstats
d/d 8205: ifw
d/d 8210: users
d/d 8208: usagestats
r/r 8214: uiderrors.txt
r/r 8385: packages.xml
r/r 8361: packages.list
r/r 8346: entropy.dat
d/d 8354: sync
d/d 8359: inputmethod
r/r 8363: locksettings.db
d/d 8362: netstats
r/r 8364: locksettings.db-wal
r/r 8365: locksettings.db-shm
r/r 8366: framework_atlas.config
r/r 8383: called_pre_boots.dat
s/h 8384: ndebugsocket
d/d 8414: dropbox
r/r 8396: appops.xml
d/d 8421: registered_services
r/r 8495: gesture.key
r/r 8497: device_policies.xml
r/r * 8497(realloc): device_policies.xml.tmp
これでsystemの中身を表示することができるようになった
gesture.keyを取得したいから、icat
icat [-hrsvV] [-f fstype ] [-i imgtype ] [-o imgoffset ] [-b dev_sector_size ] image [images] inode
icatはimage(s)を開きinode番号で指定されたファイルをコピーして標準出力に出力する。
gesture.keyを取得できたから、ここから何とかしてpatternの取得に励む。
gesture.keyを調べると、なにやら
https://tutorialsoverflow.com/cracking-pattern-lock-protection-android-forensics/tutorialsoverflow.com
に以下のような文章が
Due to the fact that android does not use a salted hash and we have very finite possible pattern combinations it does not take a lot to generate a dictionary containing all possible hashes of sequences from 0123 to 876543210. We are using the brute forcing technique because the hash is a SHA-1 hash. Therefore we cannot get the plain text from the hashed one. While I was searching for an algorithm to brute force this SHA-1 hash on google I found this (https://github.com/sch3m4/androidpatternlock) python script.
~~~まだ未完ですがとりあえず出します。~~~~~~~~~~~~~~~~~~~~~~~~~~~
以下はshredderの参考URL
th0x4c.github.io
How to Bypass Pattern Locks in Android? -