10月30日(月)3コマ目

今日、やったこと

  • パケット解析(DNS)前回のつづき
  • パケット解析(HTTP)

今日のホワイトボード

パケット解析(DNS)前回は

前回はイーサネットヘッダからUDPヘッダまでを解析しました。

UDPヘッダの送信元ポート番号(53)から上位プロトコルはDNSだとわかっています。

[DNSヘッダ]ヘッダセクション

フラグから権威なしサーバーからの回答だとわかります。

また、ヘッダセクション以降の各セクション数は下表のようになります。

セクションセクション数
Questionセクション 1
Answerセクション 1
Authorityセクション 4
Additionalセクション 8

図 DNSヘッダ ヘッダセクション 解析結果

[DNSヘッダ]Questionセクション

前回のパケットを同じように解析すればOK。

図 DNSヘッダ Questionセクション 解析結果

[DNSヘッダ]Answerセクション

前半のフォーマットはQuestionセクションと同じ。
ただ、ドメイン名はパケット長を短くするため、すでにパケット内にドメイン名が記述済みならその位置を示す情報が格納されている。

〇ドメイン名

ドメイン名の先頭2ビットが”11”なので、残りの6+8ビットにはドメイン名が記述されている位置情報になる。
位置情報が"12"から、DNSヘッダの先頭から12バイト分のあとにドメイン名が記述されている。
ちなみにDNSヘッダの先頭から12バイト分はヘッダセクション。よって、Questionセクションのドメイン名を参照すればいい。

〇RDLength

RDLengthは後ろに続くRDataの長さを示す。
RDataは可変長。

〇RData

このAnswerセクションの一番のポイントになるデータ。サーバーからの回答。
図 DNSヘッダ Answerセクション 解析結果

本来はこの後Authorityセクションが4つ、Additionalセクションが8こ続くが省略。


パケット解析(HTTP)

イーサネットヘッダ、IPヘッダまでは前回と同じように解析すればOK。

〇イーサネットヘッダ

図 イーサネットヘッダ 解析結果

タイプから上位プロトコルはIPv4。


〇IPヘッダ

図 IPヘッダ 解析結果

プロトコル番号から上位プロトコルはTCP。


TCPヘッダ

IPヘッダやUDPヘッダと同じようにビット単位でフォーマットが決まっているので、フォーマットに従って解析すればOK。

図 TCPヘッダ 解析結果
宛先ポート番号(80)から上位プロトコルはHTTPだとわかる。

〇ポイント

TCPヘッダは可変長。ヘッダ長でサイズがわかる。
宛先、送信元ポート番号から上位プロトコルがわかる。

HTTPヘッダ

DNSヘッダと同じように、文字列データがメイン。

各データの区切りはCR+LF(0x0d+0x0a)

各データはASCIIの文字コード

区切りごとにASCIIの文字コードに従って文字へ変換すると下図のようになる。

図 HTTPヘッダ 解析結果

次回は

パケット解析のテストをします。
他人の回答以外は何を見ても構いませんが、自力でやってください。



 

このブログの人気の投稿

11月17日(金)3コマ目

11月28日(火)3コマ目

11月21日(火)3コマ目