yyy

CTFつよくなりたい

ASIS CTF Quals 2017 Writeup

開催期間(JST)

04/07 PM21:30 ~ 04/09 PM21:30

結果

・チーム名:wabisabi

・得点:169pt

・順位:132/451

解いた問題

・Welcome!(Trivia 1)

・Piper TV(Misc & Forensics 159)

・CTF Survey(Trivia 9)

(「Welcome!」と「CTF Servey」の2問はボーナス問題)

途中まで解いた問題

・Flour(Reversing 114)

はじめに

SECCON予選以来CTFに出ていなかったので,みんなで出ようとなって参加した.

自分にとってはレベルが高い問題ばかりでほぼ解けなくて惨敗.

全く解けてないぞお前!と未来の自分に残すために解いた問題などをまとめておく.

Writeup

Welcome!(Trivia 1)

ボーナス問題.

問題文

What is the smallest valid flag for ASIS CTF?

よって答えは,ASIS{}

Piper TV(Misc & Forensics 159)

問題文

Recently, a very interesting program has been broadcasted on Piper TV, have you watched it?

$ file PiperTV_e65d6f13bae89c187d2d719ee8bf35cfd9e96387     
$ PiperTV_e65d6f13bae89c187d2d719ee8bf35cfd9e96387: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)

pcapファイルだとわかるので,Wiresharkで見てみる.

f:id:ywkw1717:20170409233653p:plain

後半のほうにある緑色に色付けされたパケットを見ていく.

これをHTTPストリームして,Raw形式で保存する.

f:id:ywkw1717:20170409234013p:plain

$ file target
$ target: MPEG transport stream data

MPEGだとわかるので拡張子を.mpegに変えて再生してみる.

すると,可愛らしい動物の動画が・・・

f:id:ywkw1717:20170409234519p:plain

19秒ほどの動画だが,よく見ていると14秒くらいで上のほうにフラグらしき文字列が一瞬現れるようになっている.

動体視力がくそで何回やってもそこで止まらないのでフレームを抽出することに.

ffmpegを使うといい感じに切り出せるので,フレームレート等を適当に設定して使う.

$ ffmpeg -i target.mpeg -f image2 -vf fps=100 frame%05d.png

約1800枚の画像ができる.少しやりすぎた感があった.

で,フラグが表示されている辺りを見ていくと

f:id:ywkw1717:20170409235638p:plain

CTF Survey(Trivia 9)

ボーナス問題.

どうでしたか~みたいなのをGoogleフォームに記入していくと貰える.

途中まで解いた問題

Flour(Reversing 114)

問題文

Flour is a basic ingredient in all bread making, what about this bread?

テキストファイルが与えられて,中身はよくわからない文字列.

:100000000C9436000C945E000C945E000C945E0020
:100010000C945E000C945E000C945E000C945E00E8
:100020000C945E000C945E000C945E000C945E00D8
:100030000C945E000C945E000C945E000C945E00C8
:100040000C9481020C945E000C944F020C942902D3
:100050000C945E000C945E000C945E000C945E00A8

こんなのが200行以上に渡って書かれている.

調べてみると,Intel Hexフォーマットというやつらしい.

バイナリをテキスト形式で運ぶため?に作られたものらしく,だったらデコードもできるだろってことでツールを探す.

sourceforge.net

このHex2Binというやつを使ってバイナリに戻す.

出てきたバイナリに対してstringsしてみると

Hey! Good job.
This is not real flag: ASIS{is_th1s_f4k3_flag?!!}
Enter real flag: 

という文章は見つけたものの,fake以外は見つからない.

だいぶ時間が経っても誰一人解いている人がいなくて諦めた.

感想

他にはpwn問のStartを友人とやってたけど解けなかった.

rev力とpwn力が無さすぎる.

とても厳しかった.

実家に帰ってきたと思ったら、ノートPC(Win7)をクラックすることになった話

はじめに

帰ってきたばかりで疲れてる時に朝4時まで作業していたからくそ眠い.

無駄に消耗した気がするので,その記録.

経緯

実家のノートPCがネットに接続できない云々で頼まれたから,とりあえずPC開いてみたら管理者のパスワードがわからない

少し酔ってそうな親父に聞いてもわからんと言われたので,クラックするしか無いやん!っていう.

アカウントはもう一個あって,そっち使ってたのかな・・?(そもそもPCを使うことがほぼ無いと言ってた)

やったこと

Ophcrackっていう便利ツールがあるのは知ってて,簡単に言うとWindowsのパスワードを簡単にクラックできるぜっていうツール.

使ってみたこと無いなって思って,ちょうど良い機会だしやってみることにした.

OphcrackはUSBやCDなどからブートできるので,手元にあったUSBに入れてやってみたけど・・・・

SYSLINUX 3.80 2009-05-04 CBIOS Copyright © 1994-2009 H.Peter Anvin et al で止まる

嘘やん・・・って思いつついろいろ調べると,こういうことらしい↓

springpaduser.blogspot.jp

USBブート無理な感じなのか・・・?とか思いつつ,ココらへんで消耗するのも嫌だなぁと思って,自分のPCのWindows(Ubuntuとのデュアルブートにしてある)側に,exeを落としてきて(iso以外にもexeがあった)そこで解析しようと考えた.

そこで必要になるのは,

  1. C:\Windows\System32\config\SYSTEM
  2. C:\Windows\System32\config\SAM

の2つのファイル.

特にSAMファイルには,ユーザがログオンするときに使うパスワードのハッシュが格納されている.

パスワードハッシュにも LM Hash(LAN Manager Hash)NT Hash(Windows NT Hash)があるらしく,文字数や暗号化手法にも違いがある. 詳しくは↓

Windowsのパスワードハッシュについてsec401mentor.wordpress.com

まずは,2つのファイルを取ってくることから始める.

パスワードハッシュファイルの取得

手元にあったKali Linux 64bit LightをUSBブートさせて,ファイルの取得を試みた.

パーティションテーブルを確認

sudo fdisk -l

Windowsパーティションを選択して,ntfsで/mntにマウント

mount -t ntfs /dev/sda3 /mnt

SAMデータベースがある場所へ移動

cd /mnt/Windows/System32/config

syskeyとbootkeyをダンプするツール(コマンド?)であるbkhiveがない・・・

入れるぞ!

curlがない -> apt-get

curl http://http.us.debian.org/debian/pool/main/s/samdump2/samdump2_1.1.1-1.1_amd64.deb > samdump2_1.1.1-1.1_amd64.deb

dpkg -i samdump2_1.1.1-1.1_amd64.deb

libssl1.0.0がない

他のパッケージがない

Kali「おいおいこのパッケージもねえよ」

「」

みたいな感じで,全く入る気配がないので諦めた

Light版だからか,Liveモードだからか?よくわからない.

なので,Ubuntubkhiveともう一つ,パスワードハッシュをダンプするのに必要なツールsamdump2を入れることにした.

さ〜てやるぞ〜と思っていた1時半頃・・・

親父が起きてきて一言.

親父「パスワードがわからんのか?」

自分「おう」

親父「あ〜これだよこれ」(受話器の横に置いてあったメモを取り出す)

親父「〜のパスワードは◯◯◯◯◯で〜のパスワードは◯◯◯◯◯だな」

自分「」

(わからんって言ったやんけ!!!!!!!!!!!!!!!)

パスワードを聞いてしまったのだが,ここまで来て辞めるなんてことは絶対にしたくなかったので続ける・・・

Ubuntu(15.04)へbkhiveとsamdump2を入れる

  1. curl http://http.us.debian.org/debian/pool/main/s/samdump2/samdump2_1.1.1-1.1_i386.deb > samdump2_1.1.1-1.1_i386.deb

  2. dpkg -i samdump2_1.1.1-1.1_i386.deb

  3. curl http://http.us.debian.org/debian/pool/main/b/bkhive/bkhive_1.1.1-1_i386.deb > bkhive_1.1.1-1_i386.deb

  4. dpkg -i bkhive_1.1.1-1_i386.deb

bkhivesamdump2が入った.これらのコマンドを使って,

bkhive(tmp/hoge.txtは出力するファイル)

bkhive SYSTEM tmp/hoge.txt

samdump2(bkhiveで作ったファイルとSAMファイルを渡して,tmp/hash.txtは出力するファイル)

samdump2 SAM tmp/hoge.txt > tmp/hash.txt

すると,

Administrator:xxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:::

このような形式のものが何行かにわたって記載されたhashファイルが完成する.

あとはOphcrackの出番!!

解析結果

f:id:ywkw1717:20170313054027j:plain

AdministratorとGuestはempty(解析可能ではないということ)になり,$というユーザ(なんだこのユーザ・・?)はパスワードが見つからない,つまりある程度は堅牢なパスワードだということ.

逆に,数字のみのものに関しては全て破られている.(数字4桁なので当たり前だろうと思うけど,数字10桁とかでも危なそう)

OphcrackはRainbow Tableを使って解析するため,他のテーブルをダウンロードしてきて使うこともできる.デフォルトで入っている以外のもので,数字のみに特化したものを使うことなども可能.

まとめ

消耗した記録として残すものなので,やってみたい人は他の人の使ってみた系のブログを参考にすることを強くオススメ致します・・・

脆弱なパスワード,ダメ.

おまけ

親父から聞いたパスワードのうち,管理者のほうは間違っていたので,

解析した甲斐があった!!!!!!!!

(聞いたのは昔のもので,親が全く覚える気配がなくてわかりやすいようにしてくれと頼まれて変更したことを忘れてた)



おわり

参考

Ubuntuにログインできなくなった日

はじめに

題名の通り.今日ふとPCを付けてログインしようとしたら,正しいパスワードを入れて認証されているはずなのに,またログイン画面に戻される.(Xが再起動している?)

環境

Distributor ID:  Ubuntu
Description:    Ubuntu 15.04
Release:    15.04
Codename:   vivid

心当たりが全くなかったので,ググる

原因

.profileに書いていた,exec /bin/zshが問題だったっぽい.

今はログインシェルをzshにしているんだけど,確かログインシェルをbashにして,子プロセスとしてzshを起動するみたいなことをやっていた時の名残・・・

やったこと

最初は,

poppycompass.hatenablog.jp

を見て,ICEauthorityXauthorityを削除して再起動していたんだけど,解決しなかった.

別の問題だろうと思い,また探していたら全く同じような状態の人を見つけた.

qiita.com

これを参考に,

  1. Ctrl + Alt + F1CUIに入る.

  2. 今はもうログインシェルがzshなので.profileに書いてあるexec /bin/zshを消す

  3. Alt + F7GUI

としたら治った.

でもなんで今さらログインがループするようになったかが謎すぎる.

そもそも.profile自体が

wa3.i-3-i.info

とかにも書かれている通り,ログインシェルがbashの時のみ読み込まれると思っていた.

.profileに関して

謎が深まるばかりなので,試しに.profileにecho $SHELL > /home/yyy/testなどとして,何が書き込まれるのか見てみた.

rebootして,testの中身を見てみると

/usr/bin/zsh

zshから読み込まれてるやんけ!

ログインシェルをfishとかに変えてもう一度試してみる.

/usr/bin/fish

.profileの先頭にも

# ~/.profile: executed by the command interpreter for login shells.

と書かれている通り,bashと限定されてはいなかった.

よって,ログインシェルがbashじゃない場合も読み込まれる時はある?

いつの間にか.profileの話になってしまった.




ThinkPadが早く届いて欲しい・・・

ノートPCのメモリを増設した

はじめに

メモリ増設した.

理由は,自分が普段ブラウザのタブめっちゃ開く人間だったり,その他にもいろいろあって,時々PCの動作が重くなる時があって,使用量とか見てみると”枯渇してるやんけ!!”なんてことがよくあったから.

あとは,VAIO Zを買おうと思っていたんだけど,少しはお金出してやるとか言っていた親父が,「彼女を家に連れてきたら買ってやるよ」とか言い出して,そんなの無理なのでもうしばらく今のPCで頑張らなきゃならなくなったため.

で,スロットの空きあんのかなとか思って裏側をパカッと開けてみてみたら,4GBx1しかなくて残り1スロット空いてて,いけるやんってことで.

買ったもの

当初は,4GBを買って合計8GBにするつもりだったんだけど,値段見てみると4GBと8GBとそんなに変わらんなと思ったので,8GBを購入.楽天カード作った時のポイントとか,元々のAmazonのポイントとか使って2千円いかないぐらいで買えたので最高.

取り付け

画像を垂れ流す.

f:id:ywkw1717:20170127001929j:plain

開封

f:id:ywkw1717:20170127001949j:plain

メモリがある部分をパカッと開ける

f:id:ywkw1717:20170127002037j:plain

カチッといい感じにハマればOK

f:id:ywkw1717:20170127002118j:plain

BIOS(増設前)

f:id:ywkw1717:20170127002158j:plain

BIOS(増設後)

f:id:ywkw1717:20170127002217j:plain

まとめ

取り付けなんて1分もかからずに終わるし,素人でも絶対できると思う.

合計12GB(正直こんなにいらなそう)になって快適.

メモリ自体が対応していない場合もあるので,元々搭載しているメモリの型番とかを参考に同じものを買うのが良いと思う.

キーボード買った

はじめに

あけましておめでとうございます.

初日の出が見れなかった2017年です.

きっかけ

大晦日, とりあえず家にはいたくないなぁと思っていて, 最初は図書館で本読むつもりだった.

しかし図書館がやっていないことがわかり, どうするかと散々悩んだ結果, 秋葉原にキーボードを買いに行くことにした.

キーボード自体はずっと前から欲しいやつがあって, 某大学バイトの給料が入り次第買うつもりでいた.

けど今年度のバイト代はだいぶ遅くなるらしいし, 今買っちゃえ!!って感じで.

買ったもの

秋葉原

こんなに外国人の割合多かったっけ…?ってぐらい外国人が多かった. (大晦日だったからかな)

どこ行くかなぁと思って, そんな希少なキーボードじゃないし東京ならどこでもあるやろって思い, とりあえずソフマップ



置いてない


メカニカルキーボードもそうじゃないのもそこそこあるって感じだったんだけど, 置いてなかった.

東京はなんでもあるやろってイメージだったので, これはちゃんと調べないとって思い, ここで調べ始める.

参考にしたサイト.

店頭展示キーボード数まとめ(秋葉原編) | K4750.net

ヨドバシ Akibaに置いてある数が圧倒的だったので行くことに.



置いてない


まず探してたFILCO自体が少なかったし, ゲーミングキーボードは多かったけど, んーイマイチって感じだった.

次!ってことでツクモ eX. パソコン館へ.



ここが天国だった


メカニカルじゃないキーボードとか置かねぇよぐらいの勢いで, 数はそこまで多くないんだけどいろんな種類があった. マニアックな人?向けな印象を受けた.

探してたキーボードも見つけたので即購入.

実を言うと直前で黒軸茶軸で迷っていた.

黒軸, 反発力強いから高速タイピング向けってのはわかるんだけど, どうも反発が強くて疲れそうで自分には合わないなと思って茶軸を購入. (宗教戦争起こす気はない)

帰り際に東プレのRealforceのこれ↓触ったけど, めっちゃ良かった…

価格.com - 東プレ Realforce87UB-55 SE18T0 [黒] 価格比較

感想

今までLogicoolメンブレンのやつ使ってて, メカニカルキーボード, 言うほど良いのか?とか思ってたけど, 世界が変わった.

打ち心地最高だし, 打鍵音も気持ちが良い.

ずっと打っていたい, そんな感じ.

注意点

自分の環境(Ubuntu15.04)だと以下のちょっとした設定が必要だった. (最初, JIS配列としか認識されなかった)

  1. 右上の設定アイコンから, システム設定
  2. キーボード
  3. 左下にある"テキスト入力"
  4. 使用する入力ソースに"英語(US)“を追加


ノートpcで使う場合, 元々搭載してるのはJIS配列なので切り替えとか面倒っぽくて, うーんという感じ.

悩ましい.

2016年を振り返る

2016年が終わる

年末だし, 1年の振り返りとかブログに投稿される時期. 自分も書こうと思う.

どう書くか迷ったけど, 携帯の画像欄を見ながら書く.

1月

新年一発目に撮った画像ってなんだろうなぁと思って見返したら, 悲しくなるやつだった.

2016年, 一番最初に印象に残っていることとしてはやっぱり成人式.

自分は仮面浪人を経験しているので, 同期より1年早い成人式を迎えた.

成人式

うおおお久々のスーツだ!って舞い上がっていた時の画像.

大人とか程遠いと思っていたのに, 気づけばいつの間にか自分も成人. 時間が経つのが早い.

中学卒業以来に会う人もいたりして, めっちゃ楽しかった.

年末, 地元で中学の友人たちと忘年会があるので楽しみ.

あとは, 浪人していた友人が「浪人していたこと, 一緒に周りに打ち明けようぜ!!!!」とか酔った勢いで言い出して暴露していたので, 自分もtwitterで「成人式楽しかったああああ, うわああああ」みたいなツイートした覚えがある.

会津に帰ってきて一番に, 向かいに住む友人に打ち明けた. (入学時に2人には言ったんだけど, 他は言うタイミングがなかったというか, 言えないでいた)

自分「実は・・・前まで別の大学いたりして, その・・・年が一個上なんだよね・・・」

友人「え!!!!????なんで言ってくれなかったんwwww」

みたいな会話してた.

2月

SNS恋愛事件

くそ思い出したくない話なんだけど, 2月〜5月にSNStwitter)で知り合った女の子といろいろあった.その始まりとなった時期.

めっちゃしんどかった.

これについてはもう自分の中で整理はついているしこんなところで詳しく書くつもりもないけど, 自分と相手, 双方に非はあったと思う.

この件から得た教訓としては

1. もっとその人の本質, 本当の性格を見抜くことが大事だということ.

2. 自分の思い込みで行動しない

1. めちゃくちゃ優しくしてくれる女の子だとしても, それは好きな人用に作られた性格(女の子自身も知らず知らず作り出している)かもしれない.

その子の本当の性格を知らないと, いつか関係が破綻する.

これは自分にも言えることで, 相手によく見られようとして無理をしていた部分があった.

2. ちゃんと話し合っていたつもりだったけど, 自分の思い込みで行動していた部分が多少あった.

この経験が将来役に立ち, 無駄ではなかったと思える日が来ることを願いたい.

3月

初めてハッカソンに参加

バイト先で毎年開催されているハッカソン, 今年は IoT x Security Hackathon となって開催されて, 自分はアプリ部門で参加した.

ブレストとかほとんどしたことなかったし, チームで泊まり込みで開発ってのも初めてで新鮮だった.

4月

男9人でディズニーシー

最悪で最高のディズニーシー.

生まれて一度も行ったことがなかったディズニーシーに, 男9人で行った.

・最高

ビアカクテル美味すぎた.

男9人だったので細かいことは気にしないで単純に楽しめた.

・最悪

38度の熱があった. 行くか行かないか家で迷っていると, 友人からあることを聞いた.

どうやら病人を看護してくれる場所があるらしくて, そこのお姉さんに看病されるのが最高だったということ.

それ目当てで行くことを決めたわけではないんだけど, 最悪館内を回れなくなったらそれもそれで有りか, ということで行った.

アトラクション乗る毎にエチケット袋を用意してた.

ラスボスのタワーオブテラーは病人にとって強敵だったけど, 度重なる幾多の試練を乗り越えて一度も吐かずに生還した.

というか, アトラクション乗る毎に熱が下がっていってて(しっかりと薬は飲んでいたのでそのせい)アトラクション療法みたいな感じだった.

人間, 意外とつよい.

基本情報処理技術者試験

いつ申し込んだか忘れたんだけど, たぶん1月か2月.

2月に期末テストが終わってから参考書買って勉強してた.

大学入ってからプログラミング始めた勢なので, とりあえずiパスとか思っていたんだけど, id:ktr_0731と一緒に申し込みにいった時に「iパスは簡単だから基本情報受けたほうがいい」と言われて基本情報にチェンジした. (この選択は後に正解で, 感謝)

だけど習慣化することが苦手な自分は, 2月下旬に帰省してから遊び放題遊んで一切勉強しなくなる.

3月上旬に会津に帰ってきて, とりあえず参考書一周!とか思って始めるも上述のハッカソンだったり他の事だったりで, 完全に言い訳なんだけど勉強が進まなかった.

確か, 一周終わったのが前々日ぐらい. とりあえず終了ってことで友人の家で開催された誕生日パーティーに参加した.

この時初めて, お酒を飲み過ぎて吐くということを経験した. 自分の限界は知ることができた.

で, 結局過去問も前年度の午前問題しか解かずに会場へ.

「午前突破ぐらいでいいや・・・」とかいう弱気で望むも, 意外と解ける.

結果を言うとギリギリで受かっていて, 意外となんとかなる.

id:ktr_0731も応用情報受かっていて, よっしゃという感じだった.

5月

ふともも写真の世界展

http://www.tgs.jp.net/girlsart2.html

外観ヤバすぎる.

書くかどうか迷った事なんだけど, 好きなものを好きでなにが悪いってことで.

確かtwitterとかで存在を知って, 結構行っている人もいたのでこれを見てきた.

上述のSNS恋愛事件辺りで精神的に疲れていたのか, 行きたくなって行ってきた.

太ももには一種の芸術っぽさを感じる.

変に文章を書き連ねるのもマズイと思うので一言だけ.

太もも良い!!!!

6月

21歳になる

21歳になりました.

友人が祝ってくれて有難い.

焦りを感じる.

ルービックキューブ4x4x4が解けた

買って一週間ぐらい?で解けた.

一回自力で揃えるまでは絶対解法は見ないという条件で.

3x3x3と同じ部分はあって途中までは良いんだけど, 後半が詰まった.

いい感じになるように回していたら揃った.

オムライス

2015年の11月辺りから練習しているオムライス.

普通のではなくて, 包丁で切ってパカってやるやつ.

今までで一番上手くできた.

7月

katagaitai主催 CTF勉強会

東京 秋葉原で開催されたCTF勉強会.

twitterで流れてきて速攻で登録した.

CTFは2015年10月に初めて参加して, それから2016年4月まではほとんど何もやらず.

確か2016年5月頃?に友人達と正式にチームを組んで始めた.

8月

普通免許取得

実は自動車学校に入校したのが1月31日. それからダラダラと通っていてようやく7月下旬に卒業

本試験を合格して免許ゲット.

その後実家にあった車を初心者ながら300kmぐらい運転して会津に帰ってきた. (流石に一人はダメだろってことで父親と一緒に)

大学のサマーキャンプ

インストラクターとして参加して, 触ったことがなかったEclipseでゲーム開発.

最終日前日に徹夜で完成させることになりなかなかしんどかったけど, いい経験になった.

みんないい子達で, 将来優秀なエンジニアになりそう.

バイト代が12月24日現在も支払われておらず, 闇を感じる.

9月

BABYMETALライブ

前にブログにも書いたけど, 最高だった話.

BABYMETAL ライブ

夏休み まとめ - 絵を描くCTFer

またライブ行きたい.

10月

セキュリティスペシャリスト試験

SC廃止

これ, なかなか衝撃でSCが無くなって情報処理安全確保支援士試験とかいうくそダサい名前になるらしくて, これはもう受けるしか無いってことで実力どうこうは考えずに受験した.

結果から言うと, 午前Ⅰであと2, 3問足らなくて落ちた.

午前Ⅱは自己採点では通ってて, 午後の得点みたいなーとか思ってたのに午前Ⅰが通っていない時点で採点されないらしくて見れず.

応用情報持っていたid:ktr_0731は合格していて, 流石!という感じ.

情報処理安全確保支援士試験, 制度がなかなかアレで不満が続出している. (自分も受験したいとは思わない)

SC無いなら高度試験で受けたいものが今のところ無いので, 次行われる2017年春では無難に取得していない応用情報を受験しようと考えてる.

CODE BLUE & AVTOKYO

ywkw1717.hatenablog.com

前書いたので引用.

いろいろな人と交流できたし, とてもいい経験.

11月

ALT

atnd.org

◯亀製麺のQRコード復元について話した.

つよい人達ばかりだった.

サイバー攻撃対策演習・情報セキュリティ講座

研究室面接の時に教授に誘われて参加したやつ.

11月末〜12月頭の5日間みっちりとサイバー攻撃について学んだ.

ここで学んだことはこれから絶対に役に立つ.

12月

SECCON2016 Online

ywkw1717.hatenablog.com

これも前書いたので引用.

やっぱりCTFは最高に楽しい.

財団助成報告会

一年生の時に頂いた給付型の奨学金の報告会.

確か他にも同期で4人ぐらいは採用されているはずで, 学部2年生計5人ぐらいで発表する感じなのかなぁと思っていた.

けど実際に会場に到着してみると自分の他には院生2人しかいなくて, めちゃくちゃ緊張しながら発表してきた.

こういうことを繰り返していくことで, あがり症気味なところが改善されて欲しい.

まとめ

起きた出来事全部!とか書いていると日が暮れるので, 印象深いことをまとめた.

1年の振り返りとか今までほとんど経験無かったけど, そういえばこんなこともあったなと思えるし, 今後のことを考える判断材料になるので良い.

2017年, とりあえず勉強面と恋愛面がいい感じになって欲しい.

SECCON2016 Online 参加記&Writeup

開催期間(JST)

12/10 PM3:00 ~ 12/11 PM3:00

はじめに

大学の中間テストが終わり一段落した(まだ一つ残っているけど)ので, 書いてる.

先週開催されたSECCON2016 Onlineに, 同期の友人達と組んでいるチームであるwabisabiで参加した.

結果は以下の通り.

結果

・チーム名:wabisabi

・得点:400pt

・順位:272/1834

解いた問題

・Anti-Debugging (rev100)

・Memory Analysis (for100)

2問だけWriteup書いても寂しいので, 参加記としていろいろ書く.

開催前

・PM 2:00 起床

前日にバイト先に集まって皆でやろうみたいな話になってた.

・PM 3:05 会場到着 〜 解き始める

シャワー浴びずに寝てしまっていたので, 急いで準備してしていたけど, 遅刻. (申し訳なかった)

さぁ解き始めるぞ!と思いきや,

登録をしていなかったことに気がつく

急いで登録を済ませて, スタート.

最初はrev問が出てなくて, forensicsで解けそうな Memory Analysis があったのでそれに取り掛かる.

与えられたzipファイルはパスワードが必要(60分後には配布されるけど)なので, fcrackzipでブルートフォース.

数字だけで回してみたけどダメで, 次アルファベットで回してた.

(この時点では解けていないので, Writeupは後述)

他に解けそうなやつもなかったので暇だな〜と待っていたところ, 確かPM 3:30辺りでrev問が追加される.

・PM 3:30 Anti-Debugging を解き始める

Anti-Debugging (rev100)

問題文が

Reverse it.

ファイルの詳細.

bin: PE32 executable (console) Intel 80386, for MS Windows

EXEのほうが好きなので, 嬉しかった.

実行してみると

Input password >hoge
password is wrong.

となって, どうやらパスワードチェッカーらしい

IDAで開く.

f:id:ywkw1717:20161217085838p:plain

最初の分岐で正解かどうか判定してるっぽい.

正解ルーチンのほうを見ていくと, ファイル名から推測できる通りアンチデバッギングと思われるものがあった.

f:id:ywkw1717:20161217090134p:plain

どうするかなぁとか思ったけど,

「直接書き換えれば勝ちっしょw」

っていう風にすぐに思って, やってみる.

とりあえず最初の分岐を書き換えて, 間違っているパスワードでも全て正解ルーチンにいくようにする.

書き換える場所.

f:id:ywkw1717:20161217090817p:plain

objdumpでも確認する.

f:id:ywkw1717:20161217090918p:plain

目的箇所のマシン語が特定できたので, vimで書き換えていく.

場所.

f:id:ywkw1717:20161217091418p:plain

nop埋め.

f:id:ywkw1717:20161217091429p:plain

これでどうだろうと思って実行してみる.

Input password >hoge
Your password is correct.

認証を回避できてるけど, flagが出てこない.

もう一度IDAを見てみる.

ここ.

f:id:ywkw1717:20161217091948p:plain

このcheck!ってところをどうやら通っていないっぽかったので, 通るように上のほうの分岐をいじる.

ここを書き換える.

f:id:ywkw1717:20161217092209p:plain

f:id:ywkw1717:20161217092524p:plain

またまたnop埋め.

f:id:ywkw1717:20161217092540p:plain

実行してみると

f:id:ywkw1717:20161217092751p:plain

こんな風にウィンドウがでてきて終わり.

SECCON{check_Ascii85}

PM 4:00 〜 絶頂期

Anti-Debuggingを解き終わって, 自分はMemory Analysisに取り掛かる.

ここからの30分が絶頂期.

チームの暗号担当が Vigenere を解き, もう一人が VoIP を解いたのでこの時点で300pt.

f:id:ywkw1717:20161217093413p:plain

32位とかになっててビビる.

「やべぇよやべぇ!!!」とか騒いでて, チームでは超盛り上がる.

・PM 6:15 〜 バイト先の忘年会へ

結構調子良かったけど, バイト先の忘年会がPM 6:30 〜あったので移動を開始.

PM 6:30 〜 忘年会開始

CTFに響くし, そんな飲みすぎないようにしようと思っていてチョビチョビ飲んでいた.

お酒を飲んでいる間に順位は下がっていってたけど, 気にしない精神で.

先輩に大学院の話を聞けたり, その他普段話さないような人たちとも話せたので良かった.

AM 0:45 〜

飲み過ぎてしまった

頭が痛い

気持ち悪い

元々お酒はめっちゃ弱いので(ビール一杯でキツい), 気をつけてはいたが美味しかったのでだいぶ飲んでしまった.

AM 1:30 〜 頭痛と闘いながら気合のCTF開始

気合があればなんとかなるって誰かが言ってた気がする. 

とにかく再開.

Memory Analysis とひたすら闘う.

忘年会へ行く前にある程度のところまでは解けていて, あともう一歩って感じだった.

Memory Analysis(for100)

問題文

Memory Analysis
Find the website that the fake svchost is accessing.
You can get the flag if you access the website!!

Hint

Hint1: http://www.volatilityfoundation.org/
Hint2: Check the hosts file

偽のsvchostがあるっぽくて, system32ディレクトリ以下に無いsvchostが一つあったのでこれだろうというのはわかった.

こいつがhosts fileを改ざんしたんだろうというところまでは考えていたんだけど,

問題文の

You can get the flag if you access the website!!

これにずっと惑わされていて, hosts file に書いてある"153.127.200.178"にアクセスしてもflag降ってこないやんけ!ってずっと四苦八苦していた.

AM 4:00 〜

会場がお通夜ムードになっていて, みんな解けないし疲れているし苦しんでいた時間帯.

仮眠を取るメンバーもでてきたり, やる人はやっていたりした.

身体も結構キツかったし, 問題も詰まっていたので一旦寝ることにした.

AM 8:30 〜

起床

再開

改めて考察した.

今までの, "偽のsvchostがhosts fileを改ざんして,

153.127.200.178    crattack.tistory.com

を追加した"

ということと, "そのsvchostはsystem32ディレクトリ以下にないやつ"という考察は絶対に間違っていないと思い, では何をすればいいのかと考えた時に, svchostがhosts fileを改ざんしたのは目的があって改ざんしたのだから, svchostがどういう動きをするのか確認すればいいのではないかと思い, そのsvchostを見てみることにした.

volatility -f forensic_100.raw --profile=WinXPSP2x86 filescan |grep host

で, svchostを列挙.

0x0201ef90      1      0 R--rw- \Device\HarddiskVolume1\WINDOWS\system32\svchost.exe
0x020f0268      1      0 R--r-d \Device\HarddiskVolume1\WINDOWS\svchost.exe
0x0217b748      1      0 R--rw- \Device\HarddiskVolume1\WINDOWS\system32\drivers\etc\hosts
0x024a7a90      1      0 R--rwd \Device\HarddiskVolume1\WINDOWS\system32\svchost.exe

この2つ目が目的のsvchostなので,

volatility -f forensic_100.raw --profile=WinXPSP2x86 dumpfiles -Q 0x020f0268 -D OUTDIR --name

こうして, ファイルを取り出す.

ファイルに対して strings してみると

C:\Program Files\Internet Explorer\iexplore.exe http://crattack.tistory.com/entry/Data-Science-import-pandas-as-pd

というのが気になった.

IEで, このURLにアクセスしにいっているのがわかる.

もしやと思い

153.127.200.178/entry/Data-Science-import-pandas-as-pd

にアクセスしてみると・・・

Data-Science-import-pandas-as-pdというテキストファイルが降ってきたので見てみると, flagが書かれていた.

SECCON{h3110_w3_h4ve_fun_w4rg4m3}

AM 11:00 〜

他のrev問も出ていたので, Retrospective(rev200)を解いていたけどそのままタイムアップ.

終了のPM 3:00までご飯も食べずにみんなで頑張ってやっていた.

まとめ

集まってやると, モチベがいい感じだし, 詰まった時に気軽に相談できたりして良い. (なにより一人でやる時より楽しい)

SECCON2015 Online の時より, 300位近く上がっているので成長はしていると思う.

来年は2桁目指して頑張っていきたい.

お酒飲み過ぎ良くない.