- [Forensics] Lost USB memory
- [Forensics] Hidden files
- [Forensics] A file is opening
- [Forensics] Find Reg Value 解けず
- [Web] 超、易問!
- [Web] frog, frog, frog
- [Web] お米食べろ
- [NetWork] Electrical talk
- [NetWork] Insecure communications
- [NetWork] Where am I?
- [Misc] カラーコード
- [Misc] 奇妙な文字列
[Forensics] Lost USB memory
fileコマンドでどういうものか見てみよう。
$ file problem.bin problem.bin: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "MSDOS5.0", sectors/cluster 2, reserved sectors 6334, Media descriptor 0xf8, sectors/track 63, heads 255, sectors 245760 (volumes > 32 MB), FAT (32 bit), sectors/FAT 929, serial number 0x70d02f45, unlabeled
MBRとか書いてあるのでディスクイメージっぽい。USBのイメージを丸々持ってきたものかな。
FTK Imagerで開いてみると、消されていたファイルも見えてきた。
!flag.pdfを見みるとフラグがある。
[Forensics] Hidden files
foremost -v [file]
をしてみると隠し画像が見つかる。
どれもフラグが書いてあるのでくっつけると答え。
[Forensics] A file is opening
名前から、メモリダンプっぽいのでvolatility3で解析してみる。
ファイル名からwin10っぽいので、windowsという仮定を置いて解析。
「とあるプログラムが重要なファイルを開いているみたい...」とのことなので、まずは「とあるプログラム」を特定する。
python3 ~/.opt/volatility3/vol.py -f Win10_MEMORY.DMP windows.pstree
を見てみよう。
Volatility 3 Framework 2.4.1 PID PPID ImageFileName Offset(V) Threads Handles SessionId Wow64 CreateTime ExitTime 4 0 System 0x8636e640 139 - N/A False 2022-07-15 23:04:19.000000 N/A * 72 4 Registry 0x87e32640 4 - N/A False 2022-07-15 23:04:07.000000 N/A * 348 4 smss.exe 0x8f01a640 2 - N/A False 2022-07-15 23:04:19.000000 N/A * 1400 4 MemCompression 0x92bb3300 26 - N/A False 2022-07-15 23:04:40.000000 N/A 540 524 csrss.exe 0x8f022540 11 - 1 False 2022-07-15 23:04:38.000000 N/A 600 524 winlogon.exe 0x92a3c040 4 - 1 False 2022-07-15 23:04:38.000000 N/A * 792 600 fontdrvhost.ex 0x8f70b040 5 - 1 False 2022-07-15 23:04:39.000000 N/A * 3568 600 userinit.exe 0xa0c1d840 0 - 1 False 2022-07-15 23:04:53.000000 2022-07-15 23:05:23.000000 ** 3652 3568 explorer.exe 0x9f854040 78 - 1 False 2022-07-15 23:04:53.000000 N/A *** 5288 3652 vmtoolsd.exe 0xa0da7040 6 - 1 False 2022-07-15 23:05:30.000000 N/A *** 5656 3652 cmd.exe 0xa5a02640 2 - 1 False 2022-07-15 23:05:38.000000 N/A **** 4656 5656 notepad.exe 0x9f8477c0 5 - 1 False 2022-07-15 23:06:27.000000 N/A **** 5676 5656 conhost.exe 0xa5a07040 5 - 1 False 2022-07-15 23:05:38.000000 N/A *** 5332 3652 OneDrive.exe 0xa6c32640 16 - 1 False 2022-07-15 23:05:31.000000 N/A *** 5196 3652 SecurityHealth 0xa6c24680 7 - 1 False 2022-07-15 23:05:29.000000 N/A * 936 600 dwm.exe 0x92ac5680 17 - 1 False 2022-07-15 23:04:39.000000 N/A
んー、ファイルを開くといえば、notepad.exeか。
pidは4656なので、python3 ~/.opt/volatility3/vol.py -f Win10_MEMORY.DMP dumpfiles --pid=4656
で関連ファイルをdumpしてみる…が何もない。
他を見てみるとcmdlineの方で有用な情報が出ていた。
python3 ~/.opt/volatility3/vol.py -f Win10_MEMORY.DMP windows.cmdline
... 5676 conhost.exe \??\C:\Windows\system32\conhost.exe 0x4 4656 notepad.exe C:\Windows\system32\notepad.exe C:\Users\Koito_Yuu\Desktop\flag\base64\TklTTXtNM20wcnlfZHVtcF90Mzc3X3U1XzV0NHQzXzBmX3RoM19QQ18xbl90aDNfbTBtM250fQ== 3744 sppsvc.exe C:\Windows\system32\sppsvc.exe 4320 svchost.exe C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted -p
ファイル名をbase64デコードすればフラグ。
[Forensics] Find Reg Value 解けず
レジストリにインストール日時が記録されているのでとって来る。
以下が参考になる。
https://for0n6x.hatenablog.com/entry/2018/06/03/222547
この情報をもとにVolatilityで探ったがレジストリの値が出てこない…
レジストリハイブをちゃんと羅列してきて、指定すれば取ってこれたみたい。
うーん、反省。
[Web] 超、易問!
?color=ほにゃらら
で色が変更できる。
NISMのテーマカラーということで、トップページのロゴを見てみると水色が目に入る。
色々それっぽい色名で試すと?color=blue
でフラグが出てきた。
[Web] frog, frog, frog
作品を変えて青空文庫にある作品を閲覧できるサイト。
作品を変えるときにPOSTでIDっぽいものをつけている。
こういう系はLFIを狙うのが定石なので、とりあえず色々試す。
…がいまいち刺さらない。途中でuser=guest
という怪しいcookieがあるが、特に何もできそうにない。
1つ目のヒントは無料っぽいので見てみる。
本当に全部カエルの作品だろうか?
ほう…
あたらめて見返すと、ページ上部の表にThe flag hiding
というのがある!
なるほど。カラムにはないが、1980s: The flag hiding
が読めればよさそう。
他の様式を参考にPOST /
に対してcontents=1980s%2FThe+flag+hiding
を送信すれば内容が見られる。
だが、フラグはまだのようだ。
ChromeのDevToolsのElementsで適当に探索していると、<div id="hidden"><br></div>
部分に::afterがついていることに気が付く。
たどるとcssの方にフラグが書いてあり、これが正解。
つまり、最初からフラグは手元にあった訳だ。
面白いフラグの置き方。
[Web] お米食べろ
検索機能付きで統計が見られるサイト。
検索機能くらいしか攻撃点がなさそうなので、SQL Injectionを試す。
長_
とすると長野と長崎が出てきたのでLIKE文感がある。
シングルクオーテーションを含めると''%'order by ha DESC'
というのが出てくる。
x' union select 1,2,3 #
としてみると、1,2,3が出てくる。OK.
以下のように色々探索してフラグを探すとある。
x' union select GROUP_CONCAT(distinct TABLE_SCHEMA),2,3 FROM INFORMATION_SCHEMA.TABLES # -> flags,information_schema,japan x' union select GROUP_CONCAT(distinct table_name),2,3 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='flags' # -> flags x' union select GROUP_CONCAT(distinct column_name),2,3 FROM INFORMATION_SCHEMA.columns WHERE table_name='flags' # -> flag,id x' union select flag,id,3 from flags.flags # -> フラグっぽいのがたくさん
色々出てくるがNISM{...}
のものが1つあるので答え。
[NetWork] Electrical talk
pcapファイルを開いてみるとICMPの応答失敗がたくさん目に付く。
1台は応答が来ているはずなので、いい感じにフィルタリングしていく。
最初は2288パケット。
まずは、エラーになっているものを取り除こう icmp.type != 3
これで759パケット。
あとは応答があるものが見たいので、ソースが発信元っぽい192.168.100.2であるものを取り除く。
(icmp.type != 3) && (ip.src != 192.168.100.2)
3パケット。いい感じ。
これでIPがわかるのでホスト名を引いてきて答える。
[NetWork] Insecure communications
大量にリクエストがあるのでhttp
でフィルタリングして眺めようとしたが…まだ多い。
「クレデンシャルを見つけて」ということなので、POSTの通信を探すと、
21640 611.352067 192.168.0.98 192.168.0.25 HTTP 850 POST /cgi-bin/mail-maga-auth.py HTTP/1.1 (application/x-www-form-urlencoded)
というのが見つかる。
http.request.method == "POST"
でフィルタリングしてみると13パケット出てくる。
POSTのbodyについて「列として適用」を使って一覧に表示してみると、ユーザー名は固定でパスワードが色々ある。
最後の試行で成功しているだろうと推測してクレデンシャルをメモっておく。
最後の施行のパケットを右クリックして、「追跡」、「TCPストリーム」をして、どこに入力しているかを特定する。
すると、POSTの直前でhttp://electronic.tuda-organization.siebold-cyber.net/magazine.html
につないでいるのがわかるので、
行ってみるとクレデンシャルを入力する画面が出てくる。
先ほどメモったクレデンシャルmu05201914:zaCra-a4a_l9@kU3-8g
を使うとフラグが手に入る。
[NetWork] Where am I?
192.168.1.93で/28を考えればいいが、cyberchefでいい感じに見れる
あとは様式通りのフォーマットで答えれば正解。
[Misc] カラーコード
CyberChefにそれっぽいの無いかなーと思ったらあった。こんなのあるのね。
https://gchq.github.io/CyberChef/#recipe=Parse_colour_code()&input=cmdiKDAsMTUzLDIwNCk
hex部分が答えのもの。
[Misc] 奇妙な文字列
よくわからないエンコード物に対する手法の1つとしてCyberChefのmagicがある。
試すとbase64-encodedだと教えてくれる。