2>/dev/null

ふぉれんじっくやさんになりたいです

役立つと思った集(広義)

知らないコマンドをローラー形式で確認するより、楽したいと思ってから必要なコマンドかき集める方が吸収率やらなんやら良いのではと感じている今日この頃です

これも随時更新します

コマンド編


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様

Linuxコマンド【 sftp 】安全なファイル転送 - Linux入門 - Webkaru

ぼくのかんがえたさいきょうのばっしゅもんかんきょう

ctf4b2020に参加して、BASH問欲が爆発してしまったので軽くまとめます。(これは随時更新します。知ってるサイトあれば連絡ください。)

そもそも、ここでいうBASH問の定義とは、シェルスクリプトなどのスクリプトを用いて権限昇格など色々することを指します。(まぁ黙ってpwnやっとけって話なんですけどね…)

CTFの紹介と始め方 - うさぎ小屋


キャプチャー・ザ・フラッグ - Wikipedia

これらは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

  1. 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#">

なんかいろいろ書いてあるが、とりあえず抽出したファイルを覗くと

f:id:taikohaijin44:20200503041641p:plain
second

どうやらフラグは複数集めて完成させるタイプの奴らしい…
これは二番目だった。

また、上記はbinwalkをただかけるだけでなにも趣がないので別解もやる。

  1. mmlsではわからない情報がfsstatで-i filetype imgfileで

分かるらしい。

f:id:taikohaijin44:20200523024640p:plain
出力

(*1)これでfile system typeがEXT2/3/4 or FATと判明したため、

  1. fls -i raw -f ext -pr little.img で

ディスクイメージからファイル、ディレクトリとinode情報を抜き出す。(-prオプションは-pでファイルのフルパス、-rで再帰的処理らしいです)

f:id:taikohaijin44:20200523030053p:plain
susec2

さて、icatでファイルを出力します。

  1. icat -i raw -f ext little.img 25 > seconf.png

この手法でやれば、slueth kitの理解も深まります。

[guess]
secondfファイルがあったので、first,thirdもあるだろうと思い、stringsにかける。
#

f:id:taikohaijin44:20200523040420p:plain
strings

[guess?]
あったので、他のファイルシステムも同様にflsコマンドにかけて調べる。

fls -i raw -f fat -pr little.img

f:id:taikohaijin44:20200523042500p:plain
fat

何やらfirstf.kgbという名のファイルが出現した。

en.wikipedia.org

どうやら圧縮ファイルのようなのは分かったが…聞いたことないファイル形式だ…

ひとまず7zipにかけてみる。

f:id:taikohaijin44:20200523062127p:plain
firstf

展開できない……

KGB ファイル 展開」で調べると、KGBアーカイバーが出てきたのでインストール

kgb filename でエクストラクトしてやる

f:id:taikohaijin44:20200523062626p:plain
kgb

firstf.oggファイルが出てきたので、再生する。

[c0me_wi4h_f4T_m4n_]

はい。

では、thirdfに着手する。

これに関しては正しい思考の導き方が分からない…

strings little.img | grep third -A 10 -B 10
で検索かけてだいたいどこにいるのか把握したらautopsyで取り出すのが僕は一番強いと思いました…
(今回は調べてもわからんかった)

でもgrep結果でmp4形式と出ていたので、autopsyでひたすらポチポチすると

f:id:taikohaijin44:20200523073434p:plain
flag3

発見して


f:id:taikohaijin44:20200523073552p:plain
flagimage

このようになりました。

これを発見するのに使ったモジュールはphotorecなので、cuiでも実質できます。
でもphotorecを使うと分かったのは、結局他人のwriteup見たからなので何とも言えないですね…

もう一問perceptronというmiscがあるんですが挫折したので修行してきます


次回までの課題点

png,CRC32の最低限の知識をつける

qiita.com

この記事、まじで刺さっていた。



(*1) これ、fileコマンドで十分?
f:id:taikohaijin44:20200523031857p:plain
でも、これのみを見てたら他のファイルシステムを調べようと思わないし、この問題における正解なのかわからない…

埋め込み動画をダウンロード

ふと気になったので書いてみる

youtube-dlのいんるとーる

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

動画形式を冷静に見極める

埋め込みはm3u8が多いのかな?多分

デベロッパツール開いてm3u8で検索かけて、出てきたUrLをyoutube-dlの引数にかけて終い

imasara-blog.com

www.anymp4.jp

上記が参考になるかも?

【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で目的データを取得する指針で問題に向き合うこととする。

  1. img_stat tamu2020-WindowsXP.img

IMAGE FILE INFORMATION

        • -

Image Type: raw

Size in bytes: 3221225472

img_stat でファイルシステムを特定して

  1. 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

  1. fls -i raw -f ntfs -o 63 tamu2020-WindowsXP.img

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を用いる。

www.kazamiya.net

  1. tsk_recover -i raw -f ntfs -o 63 tamu2020-WindowsXP.img 8496-144-6

~/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です。
  1. 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使います。

github.com

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を採用しました。

www.atmarkit.co.jp


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で目的の場所に飛ぶ。

f:id:taikohaijin44:20200429021325p:plain
flag


あった

INSTAGRAM

problem.txt

紛失しました。

思考の過程:

渡されたphoto.pngが開けないので、画像が壊れてる→バイナリを書き換える
と連想し、バイナリ調査に踏み込みます。

バイナリを読むときに必要な前提知識がある。ファイルフォーマットです。

www.setsuki.com

各有名なマーカー値を抑えておきましょう。

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.pngJFIF前6byteを別ファイルに抜き出して、分離したファイルの頭にJFIFをつけてあげるれば良い?

つまり

  1. ddコマンドで6byte前、後のファイルを作り出す。
  2. バイナリエディタ他で前ファイルにJFIFを付け加える
  3. 後ファイルを前ファイルに出力してやる

をすればよい (これはバイナリツールを知らないので取った手段です。よいこは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の末尾にキレイに追加される

f:id:taikohaijin44:20200503013212j:plain
flag

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ファイルを渡されたのでおとなしく解凍していく。

f:id:taikohaijin44:20200503014038p:plain
なんか出てきた

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/"

………………………………………………うーん

いや、自分なりに理解する努力をしよう。

spotless.tech

公式writeupさんはデコードツールを使ったみたい

blog.applibot.co.jp

LSB法?かな

総評・改善

bashでバイナリをいじるトレーニングが必要だと感じた。
あとステガノグラフィの最低限の知識

scpコマンドも打てないくそ雑魚でした。ごめんなさい。

https://qiita.com/aki_55p/items/601173bb66a282625986

 

scpはsshも兼ねているから、リモートからローカルにファイルを移したかったらリモート側でscpしなければならない。後、エラーメッセージは腐らずによく読む癖を身に着けよう

 

qiita.com

 

qiita.com

ps aux → プロセスの一覧表示

 

結論:sftpコマンドには負ける。

【Forensics 1.0.0】zer0ptsCTF WriteUp

初めてDiscordで顔の見えない相手とお話をするという快挙を成し遂げた。緊張した。
ヘッドセット買いたい!

公式writeup様
hackmd.io

参考writeup様
aokakes.hatenablog.com


LOCKED KITKAT

必要かもしれない事前知識

最低限のファイル構造

方針

ロック画面を管理するファイルを探そうとする

やったこと

www.online-tech-tips.com

方法がよくわからんので、ググラビリティに頼る。
android pattern lockscreen
これで出てくるからびっくりだよね

なにやらgesture.keyで管理しているらしい。
しかもそれはsha1でできているらしい。

  • autopsyを使うやり方

f:id:taikohaijin44:20200311234914p:plain
autopsy

ここから総当たりでありそうな場所に検討つけながらやりました。
system->data->gesture.key

  • the sluth kitを使うやり方

The Sleuth Kit | Forensicistwww.kazamiya.net

これのsleuth kit以下のページを調べたいコマンドに書き換えながら調べるのが激熱。
これすごい便利(怠惰)

qiita.com
↑これも纏まってて便利

  1. img_stat android.4.4.x86.img

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

  1. fsstat android.4.4.x86.img

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: 5bf2f9c06f9467bf5f65f4abbcf4f857

Last Written at: 2020-03-05 10:06:53 (JST)
Last Checked at: empty

Last Mounted at: 2020-03-05 10:06:53 (JST)
Unmounted properly
Last mounted on: /data

Source 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: 8

METADATA INFORMATION

                                                                                      • -

Inode Range: 1 - 32769
Root Directory: 2
Free Inodes: 32733
Inode Size: 256

CONTENT INFORMATION

                                                                                      • -

Block Groups Per Flex Group: 1
Block Range: 0 - 131071
Block Size: 4096
Free Blocks: 118486

BLOCK GROUP INFORMATION

                                                                                      • -

Number of Block Groups: 4
Inodes per group: 8192
Blocks per group: 32768

Group: 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: 8

Group: 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: 136

Group: 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: 17

Group: 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テーブルが簡略化されたフォーマットで表示される。このデータはセクタ内にあり、クラスタ内にはない。

  1. fls android.4.4.x86.img

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なので…

  1. fls -i raw -f ext4 android.4.4.x86.img 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

  1. icat -i raw -f ext4 android.4.4.x86.img 8495 > gesture.key

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

qiita.com







How to Bypass Pattern Locks in Android? -


tsalvia.hatenablog.com