10/21(金)に行われた、パケットの中身を解析して学ぶ Hokkaido.cap #7に参加しました。
CTFの問題を自力で解くことができたことが一番嬉しかった!
ケーススタディ(セキュリティ解析:前編)
OSのフィンガープリント、ポートスキャン、プリンターの氾濫、FTPサーバーへの侵入という外部から攻撃を受けた場合のパケットがどのようになっているかについて勉強しました。
OSのフィンガープリント
フィンガープリントとは、TCP/IPの実装に関する特徴がOS毎に異なることを利用して、標的ホストのOSの種類を推測する手法のこと。
「Filter(ディスプレイフィルタ)」を使うことでパケットを絞込み、通常であればありえないICMPのtypeを表示させることで状況が把握しやすくなりました。
(ICMP type の0-12は普通に使用することがあるが、13以上は通常ありえないそうです)
ポートスキャン
外部に開放されているPortを調べるための手法。ポートスキャンされているときにどのようなパケットになるかを実際に見てみました。
ツールを使うとTCPもUDPもどのポートが空いているかすぐわかってしまうものなんだなあ。
プリンターの氾濫
ネットワークプリンタからおかしな物が印刷されているときに、パケットを解析することで原因を探ることができる、というケース。
明らかに特定のPCから異常な印刷命令が出ていることから、クライアントのPCがウィルスに感染しるのでは?という次の調査の行う手がかりを得ることができる。
FTPサーバーへの侵入
ディスプレイフィルタで「ftp.request.command」を使うと、FTPのコマンド名による絞り込みを行うことができました。
特定のコマンドに着目すると、PASSWARDを辞書攻撃していることがすぐにわかります。
CTFの問題にチャレンジ
はじめて自力で問題をクリアすることが出来ました記念。
次のような順番で考えました。
- まずは、パケットからExportできるオブジェクトが無いか確認する。
今回はzipファイルが2つ存在していたので、保存。 - zipファイルを解凍してみる。
1つは解凍でき、文字列のかかれたテキストファイルが出てきた。
もう一つは、PWが必要なzipファイル、上記テキストを入力しても解凍できない。 - ここで、パケットの解析に戻るとTelnetの通信があることに気がつく。
「Follow TCP Stream」でやり取りを確認する。 - base64のエンコード、デコードしている箇所がある
(あ、これ当たりじゃないかな) - さっきのテキストと同じ文字列をデコードしているよ!!!
(やったのか?) - デコードされた文字列で2つ目のzipファイル解凍成功。お宝写真をゲット
(ガッツポーズ)
LT
SINさんによる「癒し系ネットワーク機器をpingで起こす」。
登場したのは、自作したpingコマンド受信で起きる機械。
工作すごい!!!!!
細部のこだわり(寝るとか、寝起きの反応は少し遅いとか)が可愛らしかったです。
- MACアドレスの変更
プログラムした段階でMACアドレスを決めることができる - オフセット0でのMISCOMPAREエラー
ping で送られた物と違うものを返すようにしている(32byteの中身を書き換える)- プロトコルエラーになるよ
という、自分では絶対に得ることのできない発見を教えてもらいました。
次回は参加できない(旅行)のが残念だけど、ちょっとずつパケットが読めるようになってきたのは嬉しいです。
続けていきたい。