birabiraのめも

忘れっぽいのでここにメモをしていきます

トラコン最優秀賞とった

せっかく最優秀賞とったので調子乗ってブログにまとめたいと思います。
めっちゃうれしい。 あとこれは個人の感想です。

blog.hnron.net

こちらのブログが 素晴らしかったので真似して書こうと思います
今後トラコンに出る人の参考になれば幸いです


お前誰?

情報科学専門学校 情報セキュリティ学科4年
サークルの「IPFactory」に在籍している普通の学生

近い将来、SOCで働くことが決まっているため、
ログ解析とかSIEMとかの技術を勉強してる


トラコンについて

トラコンって?

icttoracon.net

今まで第2回大会と第4回大会、今回の第6回大会に出場しました
第2回大会は今でも印象に残っていて1日目は環境構築を行って、2日目はその作った環境に トラブルが起きてそれを直すって感じだった
当時は全く勉強をしていなかったカスだったけど
一緒に出てくれた先輩とかが強くてものすごい勉強になってこのコンテストやべぇなとなっていた

昨今のトラブルシューティングコンテストは学生主体となり、やり方がガラッと変わったので
1日目からがっつりトラブルシューティングを行うことになった。しんどさが倍になった。

勉強をする範囲も膨大なのでトラコン用の勉強をすることはほぼ不可能で
勝つためには日ごろ興味を持ってネットワークやサーバーの構築を行っているかがカギとなる

結果発表の時に運営の人が言っていた「経験が必要」的な言葉は 「ネットワークやサーバーを日ごろからいじってる」って意味なのかなと思う
このコンテストを機にネットワークやサーバーを好きになる人もいるだろうし 学生ならとりあえず一回は出てみよう! ほんとおススメ!

今回の問題はこんな感じでした。


IPFactoryの作戦

  • メンバーそれぞれの技量に任せる

これだけだった。

ネットワーク3人、サーバー1人、なんでも1人の構成で出場。私はサーバー担当。

ある程度チーム内でこの人は何ができて何ができないかは知っていたため
ネットワークっぽい問題をネットワークチームにぶん投げ。
ネットワークチームはとりあえず問題をみておおよその難易度の検討をつけて 1問2人であーだこーだ言いながらやってたみたい。たぶん。

サーバーチームはWeb寄りの私と、サーバーガチプロのなんでも屋一人で分野ごと分担。
1人1問でずっとやってた。

みんな解きたい問題勝手に解いてって感じで、一応同じ問題解くと効率悪いと思って割り当てだけしてた。
ネットワークチームは1問目と3問目やって私は2問目、きみは4問目。ハイ頑張ってスタイル。

事前に集まって作戦会議とか事前勉強とかは全くしてない(小声)

f:id:bira09:20160908180436p:plain

いや、作戦会議してました。

情報共有はどうしようかとなったときに、slackでいいかとなりました。
configをすぐ張り付けられるし便利そうなため。

ホワイトボードも一応使ったけど、構成図を書いただけであんまり使ってなさそうだった。 席から遠くて書くのも面倒だし、書いている時間がもったいなかった。(サーバー側だったからかも)

ネットワークチームは椅子をルーターの前までもっていってやりやすいようにやってたみたいだし


 1日目

チームの一人が深夜バスに乗り遅れて、朝一の新幹線で颯爽と登場
チームみんな予定通り到着。

いざコンテストが始まってみるとサーバーにつなぐための自分のIPアドレスがわからなかったりでWireshark必須だった。

問題自体は自分の分野だったしそこまで苦ではなかった。 sql_modeとか、pam_mountについては初めて知ったし
「めっちゃ便利」とか思ってた。

1日目は普通に自信あったし、1日目終了時でどこのチームも「だめでした、、、」って言ってたので
「勝ったわこれ」と心の中で思ってたのは秘密。


2日目

午前中も調子よく問題が解けて良かったけど
午後は完全に意味不明で終わった。

作戦は特に変わらなかったけど、ネットワークチームから1人持ってきて
サーバー問をやってもらってたけど撃沈

どう考えても2日目の午後の問題多いし原因わからんしで、少しだけイライラしてた♡ 3位くらいになれればいいかなと思ってたけど1位になれたのでうれしい


感想

ドMが集まるこのコンテストはかなり楽しいし、かなりしんどいけど本当にためになると思うし
ログの大切さだとかネットワーク、サーバーの知識を問われるコンテストはあんまりないのでは?と思う

学校でも若干持ち上げてくれるし、神奈川新聞にも小さな記事で載ることができたし
いい思い出ができた。

私はこれ以降、このコンテストに出るつもりはあまりないです。
なので後輩が出場してもらってぜひ上位をとってきてほしいです。

がんばって。


といた問題

ELFのバイナリがあってそのバイナリがMySQLに対して問い合わせているよう。
旧環境、新環境の2つがあって新環境に移行したら、いろいろできなくなっちゃったって話みたい。

straceでエラー文確認して、ググって対処して終わり。

  • pam_mountのやつ

なんか設定を見るとパスとかがほんと微妙に間違っていたから
動くように直した

これも微妙に設定が違っていたからいろいろなおした

プロキシサーバ Squid.conf

プロキシサーバのSquidの設定をしていきたいと思います。

まずWebプロキシサーバについて簡単に。

  • クライアントが直接、アクセスしなくても済む。
  • Webページを保存できるので、実際にアクセスしなくても済むようになる。
  • クライアントとWebサーバの間に入るので、制限やコンテンツのチェックが出来る。
  • 自分のIPアドレスなどが隠匿できる。

以上のことがあげられます。

それではsquid.confについて見ていきます。

- acl アクセス制御

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl SSL_ports port 443
acl CONNECT method CONNECT
#書式 acl 名称 機能 引数

まずここではアクセス制御をかけています。
ここで決めた名称はあとで使います。

続きを読む

アセンブラ入門 -命令その1、四則演算編-

やっとやる気になったので命令をググっていきたいと思います。
今回もアーキテクチャx86デス。
Intelでの記法になるのかな?ここらへんよくわかりません!

それでは始めます。



  • MOV <値の移動>
MOV    EBP,    ESP        ; ESPの値をEBPにコピー
MOV    EAX,    33         ; 33をEAXに代入
MOV    [1234h],    EBX    ; 1234h番地にEBXをコピー

; 書式
; MOV レジスタ|メモリ, レジスタ|メモリ|即値
; 右から左へ代入される

影響を受けるフラグ

  • なし

値を移動する命令
メモリからメモリの移動はできない



  • ADD <足し算>、ADC <桁上りを考慮した足し算>
ADD    EAX,    EBX        ; EAX = EAX + EBX
ADD    EAX,    10         ; EAX = EAX + 10
ADD    EAX,    [1234h]    ; EAX = EAX + 1234h番地の内容

; 書式
; ADD レジスタ|メモリ, レジスタ|メモリ|即値

影響を受けるフラグ

OFSFZFAFCFPF
足し算をする命令

ADCはキャリーフラグの値も足される
桁上りを計算できる


続きを読む

アセンブラ入門  -レジスタ-

セキュリティー業界はアセンブラが読めないと話にならないらしいので勉強したいと思います。

今回はx86アーキテクチャで行きたいと思います。

レジスタ一覧

汎用レジスタ

R〇〇が64ビットレジスタ
X〇〇が32ビットレジスタ
よく使われるレジスタはあるけど基本的に自由。だけどESPとRBPは変更しないほうがいいっぽい。

レジスタ意味
RAX (EAX, AX, AL, AH)アキュームレータレジスタ。算術演算結果が格納される。
RCX (ECX, CX, CL, CH)カウンタレジスタ。ループ命令などのカウンタなどに使われる。
RDX (EDX, DX, DL, DH)データレジスタ。なんにでも使われる。
RBX (EBX, BX, BL, BH)ベースレジスタ
RSP (ESP/SP)スタックポインタ。スタックの一番上を示している
RBP (EBP, BP)ベースポインタ。スタックの一番下をしてしている。めったに変更されない。
RSI (ESI, SI)ソースレジスタ。ポインタとかを保存
RDI (EDI, DI)デスティネーションレジスタ。なんにでも使う

フラグレジスタ

EFLAGSと呼ばれる32ビットのレジスタ
1ビットごと意味がある。

名前何bit目意味
CF0キャリーフラグ。桁上りか桁借りした時にセットされる。
PF2パリティフラグ。2進数で見た時、1の数がが偶数個だったらセット。
AF4調整フラグ。BCD演算の時、桁上りか桁借りした時にセット。
ZF6ゼロフラグ。結果が0になったらセット。
SF7符号フラグ。結果がマイナスになったらセットされる。
TF8ラップフラグ。なにこれ
IF9割り込み可能フラグ。割り込みを有効化したいときにセットする。
DF10方向フラグ。なにこれ
OF11オーバーフローフラグ。オーバーフローした時にセットされる。
IOPL12,13I/Oの特権レベルを表す。
多いので割愛

次は命令とかかな?

Bindで名前解決できた!

保存します!
/var/named.conf

options {
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
	recursion no;
	allow-query{any;};
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." {
	type hint;
	file "named.ca";
};
zone "example.com."{
		type master;
		file "example.com.lan";
		allow-update{none;};
};

/var/named/example.com.lan

$TTL 86400

example.com. IN SOA dns.example.com. ukeru.example.com. (
    2007031400
	3600
	900
	604800
	8640
)
 IN  NS dns.example.com.
dns IN A 172.16.190.129
www IN CNAME dns.example.com.
@ IN A 172.16.190.129

IPアドレスは適当だよ!