11月のアーカイブ2009年

週末チャレンジ

2009年11月27日

ここにあなたのビットwienieのスキルをテストする別の課題は、次のとおりです。

DB8:::〜2001 10:DB8::20 2001年のソースIPv6アドレスを持つすべてのトラフィックをキャプチャするtcpdumpやWindumpフィルタを書く。 とても簡単、右? あなたがそれを試したことがないのであれば、あなたは、tcpdump / Windumpがあなたにいくつかのカーブを投げることが判明する予定。

作業内容を確認するには、ここではキャプチャファイルです:

のipv6 - icmpの

ファイルは、送信元IPv6アドレスが混在しています。 明らかに、フィルタは指定したアドレス範囲が表示されます。

勝者は低いオタクに畏敬の念と憧れを刺激して取得します。 ;)

私はすべてを知っていない、そしてそれはOKです

2009年11月21日

ここ数日間、私は、ウィンドウスケールオプションを設定してパケットをつかむために、tcpdump / Windumpフィルタを書くことができるユーザーを確認するために挑戦を走った。 それは、頭の体操のビットだった。 それはあなたが思考は簡単ですが、その後、実現が非常に困難であるから始めることをそれらの問題のうちの1つだった。 その後、それはおそらくそれはそうなほど複雑になることができないため、正しい軌道上にある場合は尋問を開始。 私は、特にこれに封筒ビットをプッシュしようとしていた。

課題で、私は人々がコメント欄で自分の考え/答えを投稿してくださいと述べている。 誰もが電子メールで私に連絡しながら、たった一人は、そうするつもりだった。 最初は私はそれがプライバシーの問題だと思ったが、その後私は、ユーザーが画面の名前のために必要な任意のエイリアスを選択させることを思い出した。 人々は、いくつかの本当に良いアイデアを持っていた、しかし私は、彼らが公共のフォーラムでは"初心者"の多すぎるとして渡ってくることを恐れていたと思う。 私はトピックを教える教室の設定で同じことを見てきた、ご質問がある場合は、誰も彼らの手を上げていないでしょうが、一日の終わりに私は私の机の前にラインを持って尋ねる。

私は私が20年以上にわたって業界にしてきたが実現するという点で、今年節目のビットをヒット。 あなたのインターネットの時間になってどのくらいのアイデアを与えるには、私の最初のギグの一つは、"ドメインネームサービス"と呼ばれるこの新しい技術への"ホストのファイルシステム"から上の政府の請負業者を変換するために手伝っていました。 Gopherは、ブロック上slickest子供のころ、私は覚えている。 AOLは、インターネットに接続する方法経験豊富な最初の手は、劇的に、コンピュータのセキュリティの風景を変えた。 私はロバートモリスシニアやアランパラーなどの大物一緒に働いてきた。 私は、SANS研究所を経由して最も優秀な頭脳の何千ものヒントやトリックを取引しました。 私は時間のホワイトハウスへのコンサルティングだけでなく、他の政府機関の数を費やしてきた。

と言ったそのすべてで、私は決して私がすべてを知っていることを認めざるを最初です。 実際に、私は完全に私はまだ私はすでに少し灰色のセルにしまい込んできたよりも学ぶためにはるかに多くを持って認識する。 個人的に、私はまだ私が見てと言うこと(WScaleオプションのフィルタリングのような)ものにまたがって実行"一体、これらすべての年という私が見逃しているか?"。

私の強迫側は、ネットワークのセキュリティについて愛することの一つは、それが底なしのピットであるということです。 あなたは、ラボのテスト、ツールのダウンロード、ブログ/リストの投稿を全部読んで起きている瞬間を過ごし、そして、まだそれのすべての周りにあなたの脳をラップすることはできません。 ネットワークセキュリティは、微妙とニュアンスがいっぱいです。 すべての人の脳が異なって配線されているので、これらのニュアンスのいくつかはそれほど明白で、他ではありません。 そこを自分で付着の良いところの一つは、他の人の脳内の化学物質の恩恵を受けるている。 明らかにフェンスの白い帽子側の最大の問題の一つは、我々はしばしば十分なアイデア/視点を交換していないということです。 私はあまりにも頻繁に自我が私達をバック保持すると思う。

彼らはそれをすべて知っていると思って人々はありますか? 絶対に。 再び、自我はトリッキーマスターすることができます。 "子供::!あなたはまだすべてを知っている間家を残す"私はそれらの古いTシャツと読んでポスターを思い出す。 ネットワークのセキュリティと、生活の中でほとんどの事のように、悟りの障壁がある。 バリアの片側に、池は小さいようで、あなたはそれをすべてのハンドルを持っていると思う。 したらですが、自分は銀河の広大さを認識し、どれだけ遠く前方の道路が依然として伸びていることを突破。

だから私は、12ステップオタクのプログラムを提案していると私は演説を登ると認めるのにやぶさかでないだろう"私はすべてを知っていないと私はそれでOKです"。 私はジェフの優勝を与えた理由の一部は、彼は全く違ったアプローチから問題になったと私は考えていなかったのソリューションを開発しています。 言い換えれば、そこに自分を置くことによって私は彼の脳内の化学物質の恩恵を受けた。

ジェフと同じように、これを読んで誰もが独自のユニークな人生経験に描画し、同様にユニークで革新的なソリューションを考え出すことを完全に行うことです。 あなたがエゴグレムリンをチェックし、そこに自分を目立たしない限り、しかし確実に知ることは決してないだろう。

</街頭演説>

クリス

ああ、ああどこWScaleはどこですか?

2009年11月20日

この課題は、それがあるべきよりも難しいようなら、あなたは正しい軌道に乗っています。 ;)

私の書くとき、私はこの問題偶然パケットデコードツールを。 私は言わなければならない、それは私が実際にtcpdumpとあらゆる可能なIP、TCP、UDPおよびICMPフィールドおよび/または値のWiresharkのフィル​​タの作成について考えたことがないように、私のためのクールな練習だった。 はるかにTCPオプションフィールドは、他のIPのフィールドよりもパケットのデコードの観点から最も"壊れた"です。

最初のTCPオプションは実装されている方法について説明しましょう。 あなたがIPv4のオプションフィールドを見れば、それは"型"の識別子で始まります。 特定のIPオプションに興味があるなら、それはちょうどビットの組み合わせでは、このフィールドをチェックするだけです。 TCPオプションをこのように実装されて、この課題は単純明快だっただろうしていた。

ちょうど約すべてのTCPオプションのサイズは1バイトが、どちらも"種類"と"長さ"フィールドを、持っている。 例外は唯一のKindフィールドを持っている"オプションリストの終わり"と"ノーオペレーション"であり、したがって、サイズが1バイトです。 ここに一般的なTCPオプションのリストです:

tcp-options

の15ページのRFC 793は、 "TCPヘッダは(オプションを含む一つでも)は32ビット長の整数です。"を教えてくれる言い換えれば、バイトのTCPヘッダのサイズは、4(20バイト、24バイトで割り切れる必要がありますなど)。 あなたがTCPオプションのリストを見れば、唯一の"最大セグメントサイズが"4の倍数です。 したがって、任意の他のオプションの使用は、パディングを必要としている。

パディングは、どのように適用されるべきビットは不明である。 我々は26ページを見ればRFC 1323我々はこれを見つける:

 付録A:実装提案

   次のレイアウトが非SYN上でオプションを送信するために推奨されています
    32ビットおよび64ビットの最大可能なアラインメントを達成するためにセグメントを、
   マシン。

        +--------+--------+--------+--------+
        | NOP​​ | NOP​​ | TSopt | 10 |
        +--------+--------+--------+--------+
        | TSvalタイムスタンプ|
        +--------+--------+--------+--------+
        | TSecrタイムスタンプ|
        +--------+--------+--------+--------+ 

ご想像のようにNOPのパディングは最後ではなく、タイムスタンプオプションの前に表示されますに注意してください。 また、RFCは、特にこれは"非SYNセグメント"のためであり、それは、"推奨"必要ないことを言って注意してください。 しかし、そのほとんどのオペレーティングシステムがこの勧告に従うと、常に種類と長さのバイトの前にパディングを置くようである。 私はWindowsやLinux、Mac、さまざまなハードウェア、などをチェックし、それらはすべて先頭にパディングを置く。

だから我々は右、これは"標準"であることに数えることができる? はなく、かなり。 RFC 793の17ページには、NOP、この方法を説明します。

 このオプションのコードは、たとえば、オプションの間に使用することができます
        ワード境界上に後続のオプションの先頭に合わせます。
        送信者がこのオプションを使用するという保証はありませんので、
        彼らが行う場合でも、受信機は、オプションを処理するために準備する必要があります
        ワード境界で開始されません。 

言い換えれば、そのNOPがまたは開始時に表示されない場合がありますだけではなくこと、NOPはまったく使用されないことがあります! それはないNOPのパディングをレイアウトするためにTCPオプションのフィールド完全に合法で、ちょうど適切な境界を達成するために最後にフィラーとしてオプションのリストの最後を使用してください。

だから我々は、フィルタ用になってしまうのですか? 我々はオプションの前にNOPを数える場合、我々はこのようなフィルタになってしまいます。

TCP [13]&2 = 2とtcp [12]&240> 80と((TCP [20] = 1とt​​cp [21時02] = 0 × 0303)または(TCP [24] = 1とt​​cp [25:2 ] = 0 × 0303)または(TCP [28] = 1とt​​cp [29:2] = 0 × 0303)または(TCP [32] = 1とt​​cp [33:2] = 0 × 0303)または(TCP [ 36] = 1とt​​cp [37:2] = 0 × 0303)または(TCP [40] = 1とt​​cp [41:2] = 0 × 0303)または(TCP [44] = 1とt​​cp [45:2 ] = 0 × 0303)または(TCP [48] = 1とt​​cp [49:2] = 0 × 0303)または(TCP [52] = 1とt​​cp [53:2] = 0 × 0303)または(TCP [ 56] = 1とt​​cp [57:2] = 0 × 0303))

このフィルタは何をしているかを打破するには:

  • TCP [13]&2 = 2:のみSYN&SYN / ACKパケットをチェックする
  • TCPヘッダは、以上の20バイト(オプションが設定されている)です:TCP [12]&240> 80
  • NOPのための各4バイトの境界の最初のバイトをチェック:TCP [20] = 1、TCP [24 = 1、...
  • カインド= 3と長さ場合= 3を参照するために次の2バイトをチェック:TCP [21:02] = 0 × 0303、TCP [25:2] = 0 × 0303、...

しかし、我々は、システムが我々になってしまうNOPを実装していない場合に我々はすべての可能性をキャッチようにするには:

TCP [13]&2 = 2とtcp [12]&240> 80と(TCP [20時02] = 0 × 0303またはTCP [夜9時02分] = 0 × 0303またはTCP [22:02] = 0 × 0303またはTCP [23:02] = 0 × 0303またはTCP [24:2] = 0 × 0303またはTCP [25:2] = 0 × 0303またはTCP [26:2] = 0 × 0303またはTCP [27:2] = 0 × 0303またはTCP [28:2] = 0 × 0303またはTCP [29:2] = 0 × 0303またはTCP [30:2] = 0 × 0303またはTCP [31:2] = 0 × 0303またはTCP [32:2] = 0 × 0303またはTCP [33:2] = 0 × 0303またはTCP [34:2] = 0 × 0303またはTCP [35:2] = 0 × 0303またはTCP [36:2] = 0 × 0303またはTCP [37:2] = 0 × 0303またはTCP [38:2] = 0 × 0303またはTCP [39:2] = 0 × 0303またはTCP [40:2] = 0 × 0303またはTCP [ 41:2] = 0 × 0303またはTCP [42:2] = 0 × 0303またはTCP [43:2] = 0 × 0303またはTCP [44:2] = 0 × 0303またはTCP [45:2] = 0 × 0303またはTCP [46:2] = 0 × 0303またはTCP [47:2] = 0 × 0303またはTCP [48:2] = 0 × 0303またはTCP [49:2] = 0 × 0303またはTCP [50 :2] = 0 × 0303またはTCP [51:2] = 0 × 0303またはTCP [52:2] = 0 × 0303またはTCP [53:2] = 0 × 0303またはTCP [54:2] = 0 × 0303またはTCP [55:2] = 0 × 0303またはTCP [56:2] = 0 × 0303またはTCP [57:2] = 0 × 0303またはTCP [58:2] = 0 × 0303)

このフィルタとの違いは、我々にはKind = 3と長さ= 3オプションのフィールドを介してすべての道を(エリザベスが示唆したように)チェックしているということです。

これらのいずれかのフィルタの誤検知を生成することはできますか? 絶対に! 二つの可能性:

  1. タイムスタンプの値は我々が探しているパターンに一致する場合があります。
  2. フィルタは、40バイトのオプションのフィールドを想定しています。 それは、ペイロードにこれらの値を使用して小さくなります。

フィルタはどのように使うべきでしょうか? 最初は少ない偽陽性を生成しますが、RFC準拠が標準とは異なるシステムを欠場する。 それが設定されている場合は二つ目は、常にウィンドウスケールをキャッチしますが、偽陽性の可能性が高いです。

私は挑戦の勝者としてエリ​​ザベスを指定するつもりです。 いくつかの他は同じくらい近くにいたが、彼女がコメントしている思考の彼女の列車を投稿する勇気を持つだけだった。 私は部分的に周りの冗談は、この解決策を思い付いたのジェフの2番目の賞を授与するつもりです。

tcpdumpの- NN | grepは"wscale'> wscale - matches.txt

これは、実際のパケットキャプチャを生成しませんが、あなたは何ができる:

tcpdumpの- NN - X - S 0 | grepは"wscale'> wscale - matches.txt

して、pcap形式にそれを取り戻すためにtxt2capを通じて出力を実行します。 彼は特に挑戦に従っていませんでしたが、これはすべての偽陽性の問題を修正するようにボックスの外側で考えることで名声を与えるちゃ。 ;)

エリザベスとジェフが、私は電子メールでの両方に接触することができます。 おめでとう!

TCPオプション-決勝手がかり

2009年11月19日

私はsoooooo正解に近いつのスレッドの後の四電子メールを持っていた。 ここでうまくいけば最終的なハードルを乗り越える人々を得るために最後の手がかりです。

私は有用tsharkのコマンドを述べた。 出力は次のとおりです。

C:\テスト>のtshark - N - Rのlinux - syn.cap - Tフィールド- E tcp.options
2時04分05秒:B4:04:02:08:0:午前2時47分04秒:A8:00:00:00:00:01:03:03:05

ですから、上記の持っているもの、テストパケットのTCPオプションセクション(バイト20と高いが)です。 Window Scaleオプションは、リスト内の最後のオプションです。

私はこのフィルタを書き込むことは簡単ではない知っている。 私は挑戦にそれを回した理由だという事実に。 しかしそれは可能です。 ;)

TCPオプションの挑戦-手がかり

2009年11月18日

以前の私は挑戦投稿 TCPオプション"ウィンドウスケール"が設定されているパケットをキャプチャするtcpdumpを/ Windumpフィルタを書くことを。 一部の人々は近いですが、私はいくつかのヒントを掲載したいと考えていました。 また、私が直接あなたに何の問題電子メールで私を持っていませんが、あなたがコメントセクションへの答えを投稿する必要が挑戦に勝つために。 そのように最初の答えを見つけた人にとしては疑いがない。

すべてのTCPオプションは、"レジストリの種類"の値(ICMP"タイプ"フィールドに似ています)によって指定されます。 ウィンドウスケールの場合には、その値は3です。 また、NOP以外のすべてのTCPオプションは、"長さ"と呼ばれる二次のフィールドが含まれています。 これは、オプションの"レジストリカインド"バイトを含めて、使用しているバイト数を定義します。 ウィンドウスケールの場合、長さの値は常に3です。 だから我々は持っている。

  • レジストリの種類の1バイト
  • 長さ1バイト
  • 実際WScale値は1バイト

ヒント2:あなたがTCPオプションのフィールドに掘削したことがない場合、tsharkのはクールなオプションがあります。

tsharkの- N - Rキャプチャfile.cap - Tフィールドは、電子tcp.options

あなたが、少なくともそれがどのようなものか見ることができるようにこれは16進数で表示されます全体のTCPオプションのフィールドを出力します。

最後の手がかりは、私はあなたのフィルタをチェックするために使用するために5〜WScale設定LinuxのSYNパケットを掲載しました。

その他のlinux - SYN

幸運を祈る!

クリス

TCPオプションの挑戦

2009年11月18日

私はAppleのiPhoneやiPod用の新しいリファレンスツールのリリースを含む起こっビットを持っていた。 このツールは、コールのですパケットデコードと私はそれを維持するために、代替サイトをセットアップしました。

私は最後の数週間に渡ってこのサイトを無視しで気分が悪いので、私は別の挑戦を捨てることにしました。 勝者は、上記のパケットデコードツールの無料コピーを受信します。 [OK]を、ので、収益に引退することができなくなりますが、うまくいけばこのツールはあなたの人生が少し楽になります。 ;)

ので、ここでの課題は次のとおりです。

TCPのみ"ウィンドウスケール"オプションのセットを持つパケットをキャプチャするtcpdumpやWindumpフィルタを書く。 他のすべてのTCPオプションの設定は無視することができます。

非常にシンプルな、えっ? コメント欄に答えを投稿する最初の人が賞品を取得します。