• ベストアンサー

パケットキャプチャについて

パケットキャプチャについて wiresharkでパケットキャプチャをやっております。tcpでsynのパケットのみを収集したいのですが、現在では、 (1)ファイルの読み込み (2)フィルタの条件でtcp.flag.fin == 0 and tcp.fla.syn ==1 and tcp.flg.ack == 0 と入れフィルタリング。 (3)結果のファイルを保存 となって大変時間がかかります。cuiでコマンドライン上で一発ですませられる方法はありませんか?

noname#182748
noname#182748

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。下記のページが参考になると思います。コメント欄もご覧下さい。「Wireshark キャプチャ フィルタ syn fin」でインターネット検索しました。 tcpdumpやwiresharkでTCP制御フラグを指定してパケットを収集する方法(Eiji James Yoshidaの記録) http://d.hatena.ne.jp/EijiYoshida/20080625/1214342918 > tcpdumpやwiresharkでTCP制御フラグを指定してパケットを収集する方法 ... > SYNフラグのみ設定されたパケットの収集: "tcp[13] & 255 == 2" WIRESHARK - 簡単なチュートリアル - フィルタ http://openmaniak.com/ja/wireshark_filters.php 上記をヒントにキャプチャフィルタを設定して試してみては。当方がWindows XP SP3でEthereal(Wiresharkの前身)を使い、 "tcp[13] & 255 == 2"をフィルタとして設定しましたところ、SYNフラグのみのパケットが収集できました。

その他の回答 (1)

回答No.2

申し忘れましたが、 > cuiでコマンドライン上で一発ですませられる方法はありませんか? お使いのOSとバージョンが書かれていませんが、UNIX/Linuxですとtcpdump、WindowsですとWindumpがあります。それぞれの名前でインターネット検索しますと、各種ウェブサイトで解説を見つけることができます。紹介したページ及びコメントによると、tcpdumpでも先ほど引用したフィルタの式や別解(”tcp[tcpflags] & (tcp-syn|tcp-fin) != 0”)が使えるようですね。

noname#182748
質問者

お礼

ありがとうございます。本当にありがとうございます。修論の執筆中で膨大なデータの処理に困っていました。大変参考になりました。あつくお礼を申し上げます。

関連するQ&A

  • TCPの接続処理と終了処理について

    TCPでコネクションを確立するとき、制御フラグでSYN、SYN+ACK、ACKで3パケットをやりとしますが、終了手順のときは、FIN、ACK、FIN、ACKと4パケットをやりとりします。 これは何故でしょうか? コネクション確立時と同じく、FIN、FIN+ACK、ACKにしないのは何故でしょうか?教えてください。

  • FINパケット、RSTパケットが返却される理由?

    アパッチのヘルスチェックにて、パケットをみました。 シーケンス番号を追っていきましたが、下記のような 通常ではない動作がありました。 <ケース1> (1)サーバからのHTTPのGETに対して、クライアントがFIN.ACKパケットを返却する。 (2)サーバがFIN.ACKパケットをクライアントに送る。 (3)クライアントからRSTパケットが返却される。 ※RSTパケット内にて、broken tcpとの記載あり <ケース2> (1)サーバからのFIN.ACKパケットに対して、クライアントからRST.ACKパケットが返却される。 ・質問1 それぞれについて、正常な動作とはおもえないのですが、 異常でしょうか? ・質問2 FIN.ACKパケット又はRSTパケットが返却されるのはどんな場合が想定されるのでしょうか? ・質問3 FIN.ACKパケット→RST.ACKパケットは異常な動作でしょうか? よろしくお願いします。

  • WiresharkのFlow Graph

    現在WiresharkのFlow Graphという機能を使用して、クライアント端末がサーバー端末へのTCP通信での3ウェイハンドシェイクのパケットやりとりを観測したいと思っています。 次のようなパケットをモニターしました。 |Time | 192.168.1.111 | | | | 192.168.1.222 | |6.402 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1 | |(6057) ------------------> (5000) | |6.606 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1 | |(6057) ------------------> (5000) | |6.835 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1213 | |(6057) <------------------ (5000) | |7.039 | ACK | |Seq = 1213 Ack = 1213 | |(6057) ------------------> (5000) | |7.150 | ACK | |Seq = 1213 Ack = 1213 このパケットのやりとりを観ていて思ったのですが、TCP通信は3ウェイハンドシェイクは SYN--->SYN ACK---> ACK という順序でのパケットのやりとりをクライアントとサーバー間で行うと思っていたのですが、 PSH, ACK ----> PSH, ACK ----> ACK ----> ACK このような順序になっているように思うのですが、これはなぜなのかご教授頂けないでしょうか? どうぞ、よろしくお願い致します。

  • C++言語でのWinsock2を使用したパケットモニタの作成

    こんにちは 現在Winsock2を使用したパケットモニタを作成しています パケットを受信できるプログラムは作成することができましたが、TCPパケットが期待した順番通りに受信できません 例えば、3WAYハンドシェイクのパケットのやり取りで、期待しているパケットの受信順は 1. host ---> net: SYN 2. host <--- net: SYN,ACK 3. host ---> net: ACK ですが、パケットモニタでは以下の順番でパケットを受信しています 1. host ---> net: SYN 2. host ---> net: ACK 3. host <--- net: SYN,ACK hostから送信されるパケットが先に受信されているような感じですが、これらを時刻順に受信するオプションなどはあるのでしょうか? もしあるならどのように設定すればよろしいのでしょうか? (ソケットなどの設定内容) 初期化  WSADATA wsd;  WSAStartup(MAKEWORD(2, 2), &wsd) ソケット作成  SOCKET sock;  sock = WSASocket(AF_INET, SOCK_RAW, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED) 無差別受信モードに設定  int op = RCVALL_ON;  WSAIoctl(sock, SIO_RCVALL, &op, sizeof(op), NULL, 0, &dword, NULL, NULL) パケットの受信  WSABUF wsb;  DWORD len = 0;  DWORD flag = 0;  WSARecv(sock, &wsb, 1, &len, &flag, NULL, NULL)

  • HTTP GET直後のFIN,ACKについて

    ある特定のサイトをWebアクセスした際のWiresharkトレースを解析しています。 そのWebサイトにはTwitterのAPIが埋め込まれていて、Twitterのアイコンを取得するためにJPGファイルを取得しているTCPセッションがあります。 3WAYハンドシェイクの後、クライアントはHTTP GETでJPGファイルを要求しているのですが、直後にFIN,ACKフラグを伴うパケットを送出しています。 クライアントは自らHTTP GETしておきながら、JPGファイルを受け取る前にTCPセッションを終了しようとするのは理解しがたいと思っています。 このようにHTTP GET直後にFIN,ACKフラグをつけるような挙動をみせるのはどのような状況が予想されるでしょうか?

  • C言語でTCPの3way handshake

    (C言語)Linuxのpacket socket(socket(AF?PACKET, SOCK_DGRAM, htons(ETH_P_IP))) を使ってTCPの3way handshakeをOSのプロトコルスタックに頼らず自力で挑戦しています。 RFCやほかの技術本をよんでIPヘッダやTCPヘッダの実装は一応できたのですが、肝心のsynパケットを送った後のackパケットが返ってきません。 wiresharkでは問題なくsynパケットと認識できているのですが、きっとどこかに不備があるはずです。 そこでC, C++ Javaでもいいのでこのプログラムの実装例が載っているサイトなどを教えてください。(英語でもかまいません)

  • httpsのページがIE 7で表示できません

    httpsのページがIE 7で表示できません。 表示できないページは、apache version 2.2系で自分で建てたサーバーです。 オレオレ証明書に使ったopensslのversionは0.9.8e, private keyの鍵長は、 1024でも2048でもだめでした。 また、mozilla firefox 3.0では同様に証明書の警告が出ますが、 例外設定をすることで表示されることを確認しています。 IE 7の現象としては、 "この Web サイトのセキュリティ証明書には問題があります。" - (A) と警告が出て、閲覧を続行すると "Internet Explorer ではこのページは表示できません" - (B) といわれます。 このとき、wiresharkでパケットのダンプを見てみると、 (A), (B)の通信が両方とも以下のようなシーケンスになっていました。 1, client -> server : tcp syn 2, server -> client : syn, ack 3, client -> server : syn 4, client -> server : client hello 5, server -> client : server hello, change cipher spec, Encrypted Handshake message 6, client -> server : change cipher spec, encrypted handshake message 7, client -> server : FIN ACK 8, server -> client : ACK 9, server -> client : encrypted alert 10, server -> client : FIN ACK 11, client -> server : RST ACK [ client: IE 7 ], [ server: apache22 ] 7の段階でIEからFIN ACKを送っているためページを表示できないのだと思うのですが、 なぜFIN ACKをおくっているのかが分かりません。 問題を解決したいのですが、はまってしまって困っています。 プロトコル・原因の調査方法等々、何か知っていることがありましたらご教授ください。 よろしくお願いいたします。

  • ノートン

    ノートンのログで「無効な接続上の TCP 非 SYN/非 ACK パケット。パケットを破棄しました」って出るのですが、どういう意味ですか?

  • TCPのsynとかっていつ・何回位するのでしょうか

    ネットワークの勉強中の中年です。 入門編のTCP/IPですが、コネクション確立(syn→ack/syn→syn)などは 普通に手動で作業をする場合、いつ、何回位されるのでしょうか。 たとえばftpなどですが、 もちろん最初にクライアントからサーバーに接続する際にはとは思うのですか、 パスワードを送るたび、ファイルを送受信するたびに行うものなのでしょうか。 また、finを送るのは、byeでftpを閉じる時でしょうか。 パスワードの送信後とか、ファイルのやり取り後といったタイミングで 発生するのでしょうか。 それともパケットトレースで見るように1秒間に何十回というように されるものなのでしょうか。 挙動についていろいろ資料等があるのですが、 実際に使っているイメージではいつ何をしているかわからず… よろしくお願いいたします。

  • openssh に ログインできない

    windows2008 server で ssh を使いたいために、 cygwin をインストールしました。 私のパソコンからは、何の問題もなく接続できるのですが、 一部のパソコンではパスワード要求の画面が表示されません。 いろいろ調べていくうち、 > telnet server 22 としたところ、 私のパソコンでは、  SSH-2.0-OpenSSH と、表示を返しますが、 接続できないパソコンでは、 何も返しません。 wireshark でパケットを調べましたら、 接続できないパソコンは、 SYN+ACK で接続した後、 FIN パケットを返しています。 サーバー側の問題か、クライアント側の問題か、 切り分けができていません。 何か想定できる原因を教えていただけませんでしょうか。