SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Windowsのパケットモニタ作成
Report
Shinichi Hirauchi
Follow
SAPPOROWORKS
Sep. 29, 2011
•
0 likes
•
9,062 views
1
of
13
Windowsのパケットモニタ作成
Sep. 29, 2011
•
0 likes
•
9,062 views
Report
Technology
レイヤ2で動作するプログラムの魅力と、snifferの動作概要
Shinichi Hirauchi
Follow
SAPPOROWORKS
Recommended
Wiresharkで検出できないチャットプログラム
Shinichi Hirauchi
4.2K views
•
12 slides
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
Yoshiaki Sugimoto
44K views
•
85 slides
究極のゲーム用通信プロトコルを探せ!
Ryosuke Otsuya
7.3K views
•
34 slides
ネットワーク通信入門
Yuki Suga
8.9K views
•
80 slides
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
25.3K views
•
58 slides
TripleOの光と闇
Manabu Ori
9.1K views
•
45 slides
More Related Content
What's hot
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
Tomoya Hibi
1.7K views
•
39 slides
P4によるデータプレーンプログラミングとユースケースのご紹介
Kumapone
634 views
•
34 slides
Dokkuの活用と内部構造
修平 富田
2.2K views
•
13 slides
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
KeioOyama
1.8K views
•
157 slides
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
1.7K views
•
53 slides
通信対戦ゲームを作った話
mipsparc
9.8K views
•
30 slides
What's hot
(20)
[D20] 高速Software Switch/Router 開発から得られた高性能ソフトウェアルータ・スイッチ活用の知見 (July Tech Fest...
Tomoya Hibi
•
1.7K views
P4によるデータプレーンプログラミングとユースケースのご紹介
Kumapone
•
634 views
Dokkuの活用と内部構造
修平 富田
•
2.2K views
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
KeioOyama
•
1.8K views
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
•
1.7K views
通信対戦ゲームを作った話
mipsparc
•
9.8K views
ネットワークでなぜ遅延が生じるのか
Jun Kato
•
60.8K views
例外設計における大罪
Takuto Wada
•
67.9K views
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
•
60.3K views
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
•
7K views
[CEDEC2012]ネットワークゲームの不正行為と対策
gree_tech
•
32.7K views
WebRTCサービスを個人で運営してみた話
Junki Mizushima
•
15.5K views
Chunked encoding を使った高速化の考察
Yoshiki Shibukawa
•
7.5K views
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
•
33.2K views
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
340 views
Hokkaido.cap#9 無線LANのスニッフィング
Panda Yamaki
•
9.6K views
初心者向けCTFのWeb分野の強化法
kazkiti
•
15.5K views
Wireshark だけに頼らない! パケット解析ツールの紹介
morihisa
•
51K views
ELFの動的リンク
7shi
•
18K views
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
•
2.1K views
Similar to Windowsのパケットモニタ作成
Exploring the x64
FFRI, Inc.
1K views
•
42 slides
Bluetooth通信の仕組みと活用法紹介
Takehiko YOSHIDA
12.6K views
•
41 slides
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
8.6K views
•
14 slides
RouterBOARD with OpenFlow
Toshiki Tsuboi
12.6K views
•
24 slides
Trema day 1
ykuga
1.5K views
•
25 slides
Polyphony の行く末(2018/3/3)
ryos36
2.2K views
•
62 slides
Similar to Windowsのパケットモニタ作成
(20)
Exploring the x64
FFRI, Inc.
•
1K views
Bluetooth通信の仕組みと活用法紹介
Takehiko YOSHIDA
•
12.6K views
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
•
8.6K views
RouterBOARD with OpenFlow
Toshiki Tsuboi
•
12.6K views
Trema day 1
ykuga
•
1.5K views
Polyphony の行く末(2018/3/3)
ryos36
•
2.2K views
Docker入門 OSC 2018 Tokyo/Spring
cyberblack28 Ichikawa
•
4.3K views
あるブートローダの話
nullnilaki
•
1.2K views
Interrupt Affinityについて
Takuya ASADA
•
13.2K views
Interrupts on xv6
Takuya ASADA
•
3K views
4章 Linuxカーネル - 割り込み・例外 3
mao999
•
1.8K views
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
•
17.2K views
LoRaWAN v1.1仕様読解 Class A
Ryosuke Uematsu
•
7.1K views
Dbts2012 unconference wttrw_yazekatsu_publish
Yohei Azekatsu
•
1.5K views
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
de:code 2017
•
1.4K views
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Panda Yamaki
•
3.9K views
FD.io VPP事始め
tetsusat
•
2.3K views
4章 Linuxカーネル - 割り込み・例外 2
mao999
•
2K views
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
•
10.7K views
HTTP/2, QUIC入門
shigeki_ohtsu
•
47K views
More from Shinichi Hirauchi
Amazon connect について 〜各種AWSのサービスとの連携〜
Shinichi Hirauchi
1.3K views
•
39 slides
Alexa SDK Alexa Salon
Shinichi Hirauchi
1.1K views
•
53 slides
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Shinichi Hirauchi
1.8K views
•
100 slides
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
2.5K views
•
83 slides
20分でできる!Xamarin.Forms入門
Shinichi Hirauchi
18.5K views
•
60 slides
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
Shinichi Hirauchi
3.3K views
•
106 slides
More from Shinichi Hirauchi
(20)
Amazon connect について 〜各種AWSのサービスとの連携〜
Shinichi Hirauchi
•
1.3K views
Alexa SDK Alexa Salon
Shinichi Hirauchi
•
1.1K views
Developers.io 2017 iPhoneによるAlexa/Lex/Pollyを利用した 音声対応クライアントの作成方法
Shinichi Hirauchi
•
1.8K views
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
•
2.5K views
20分でできる!Xamarin.Forms入門
Shinichi Hirauchi
•
18.5K views
ソフト屋が挑戦した電子工作 〜力ずくの10か月〜
Shinichi Hirauchi
•
3.3K views
Developers.IO 2016 F-1 セッション資料
Shinichi Hirauchi
•
1.9K views
シルバーウィークにfacebookアプリを作成した
Shinichi Hirauchi
•
43K views
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Shinichi Hirauchi
•
3K views
簡易電話交換機の作成~廃品利用による低予算プロジェクト~
Shinichi Hirauchi
•
3.6K views
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
•
9.2K views
BoxViewの美味しい食べ方
Shinichi Hirauchi
•
1.6K views
C#で作成するfacebookアプリ mvp community camp
Shinichi Hirauchi
•
4.1K views
Facebookスパムデータベース~あなたのお友達に、スパムアカウントが紛れ込んでませんか
Shinichi Hirauchi
•
2.9K views
簡易電話交換機の作成~廃品利用による低予算プロジェクト
Shinichi Hirauchi
•
4.9K views
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Shinichi Hirauchi
•
3.8K views
初めてのFacebookアプリの開発
Shinichi Hirauchi
•
2.9K views
Facebookの偽アカウント
Shinichi Hirauchi
•
7.1K views
テストコードの定型化
Shinichi Hirauchi
•
1.6K views
HTMLを1行も書かずにwebアプリを作ってみました
Shinichi Hirauchi
•
2.9K views
Recently uploaded
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
125 views
•
31 slides
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
28 views
•
18 slides
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
69 views
•
20 slides
画像生成AIの問題点
iPride Co., Ltd.
13 views
•
9 slides
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
11 views
•
24 slides
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
7 views
•
11 slides
Recently uploaded
(13)
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
125 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
28 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
69 views
画像生成AIの問題点
iPride Co., Ltd.
•
13 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
11 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
149 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
6 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
170 views
CatBoost on GPU のひみつ
Takuji Tahara
•
780 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
17 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
45 views
Windowsのパケットモニタ作成
1.
Windowsのパケットモニタ作成 レイヤ2で動作するプログラムの魅力と、snifferの動作概要
@furuya02 copyright© 2011/03.. by SAPPOROWORKS
2.
自己紹介
ハンドル SIN/古谷誠進 Twitter @furuya02 仕事 某社でシステムサポートみたいな 住居 札幌 年齢 アラフィフ 「45歳以上54歳まで( by ウィキペディア)」 copyright© 2011/03.. by SAPPOROWORKS
3.
もっとも手ごろなアプローチ
WinPcap + C# WinPcap 最新はVer4.1.2 Wiresharkのインストール時に同時にインストールされます C:¥Windows¥System32¥drivers¥npf.sys C:¥Windows¥Syste32¥wpcap.dll C:¥Windows¥Syste32¥Packet.dll (64ビット版は、C:¥Windows¥SysWOW64¥) Visual C# 2010 Express Editionは無料で利用可能です http://www.microsoft.com/japan/msdn/vstudio/express/ copyright© 2011/03.. by SAPPOROWORKS
4.
WinPcapと作成するプログラムの関係
wpcap.dllがエクスポートする関数を使ってC#でプログラムする C#プログラム アプリケーション システム非依存ライブラリ ユーザモード wpcap.dll ローレベルライブラリ WinPcap Packet.dll ネットワークパケットフィルタ npf.sys カーネルモード NICドライバ パケット ネットワーク copyright© 2011/03.. by SAPPOROWORKS
5.
C#からDLLを使用するには
DLLでエクスポートされている関数をDllImport属性で定義するだけ D:¥work>dumpbin wpcap.dll /exports Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file wpcap.dll File Type: DLL Section contains the following exports for wpcap.dll 00000000 characteristics 4C24DE12 time date stamp Sat Jun 26 01:49:22 2010 //pcap.h ordinal hint RVA name int pcap_findalldevs( pcap_if_t **, 1 0 00001000 bpf_dump 2 1 000010E0 bpf_filter char *); ・・・・ 29 1C 000021E0 pcap_findalldevs 通 訳 //winpcap.cs [DllImport(“wpcap.dll”)] private static extern int pcap_findalldevs( ref IntPtr alldevsp, StringBuilder errbuf); copyright© 2011/03.. by SAPPOROWORKS
6.
作業手順 ステップ3までは、wpcap.dllのエクスポート関数を呼び出すだけ
ステップ1 wpcal.dll NICの一覧取得 pcap_findalldevs() ステップ2 wpcap.dll NICのオープン pcap_open() ステップ3 wpcap.dll パケット取得 pcap_next_ex() ステップ4 受け取ったパケット情報 パケット解析 を人間が分かるように 表示する copyright© 2011/03.. by SAPPOROWORKS
7.
パケット解析(MAC)
先頭から12オクテットは、送信先及び送信元のMACアドレス 00000000 : 00 a0 b0 da b9 13 00 1f d0 d0 12 17 08 00 45 00 00000001 : 00 34 0f 21 40 00 80 06 00 00 c0 a8 00 0a 41 37 00000002 : e3 98 d4 63 00 50 3f 18 fa 55 00 00 00 00 80 02 00000003 : 20 00 e5 a8 00 00 02 04 05 b4 01 03 03 02 01 01 00000004 : 04 02 送信先 ハードウエアアドレス : 00-a0-b0-da-b9-13 (I-O DATA DEVICE) 送信元 ハードウエアアドレス : 00-1f-d0-d0-12-17 (GIGA-BYTE TECHNOLOGY CO.,LTD. ) IEEE STANDARDS ASSOCIATION ( MACベンダーの検索 ) http://standards.ieee.org/develop/regauth/oui/public.html copyright© 2011/03.. by SAPPOROWORKS
8.
パケット解析(フレーム判別)
次の2オクテットでフレームの種類を判別 2種類のEthernetフレームを判別する プロトコルタイプは1500(0x05DC)以上、Ethernetのデータの最大長は1500(05DCh) 00000000 : 00 a0 b0 da b9 13 00 1f d0 d0 12 17 08 00 45 00 00000001 : 00 34 0f 21 40 00 80 06 00 00 c0 a8 00 0a 41 37 00000002 : e3 98 d4 63 00 50 3f 18 fa 55 00 00 00 00 80 02 プロトコルタイプ 0x0800 IP 00000003 : 20 00 e5 a8 00 00 02 04 05 b4 01 03 03 02 01 01 0x0806 ARP 00000004 : 04 02 0x8035 RARP 0x0840 NetBIOS 0x8137 IPX プロトコル タイプ : 0x0800 (IP) など EthernetⅡのフレーム構造(DEC,インテル,ゼロックスが作成した標準でDIX規格とも呼ばれる) 送り先 送り元 プロトコル データ本体 CRC MACアドレス MACアドレス 2オクテット 45~1500オクテット 4オクテット 6オクテット 6オクテット Ethernet802.3のフレーム構造(IEEE802.3がその後に標準化した広い意味での「802.3Raw」) 送り先 送り元 データ長 データ本体 CRC MACアドレス MACアドレス 2オクテット 45~1500オクテット 4オクテット 6オクテット 6オクテット
9.
パケット解析(IPヘッダ)
IPヘッダを解析 00000000 : 00 a0 b0 da b9 13 00 1f d0 d0 12 17 08 00 45 00 00000001 : 00 34 0f 21 40 00 80 06 00 00 c0 a8 00 0a 41 37 00000002 : e3 98 d4 63 00 50 3f 18 fa 55 00 00 00 00 80 02 00000003 : 20 00 e5 a8 00 00 02 04 05 b4 01 03 03 02 01 01 バージョン : 4 00000004 : 04 02 ヘッダ長 : 20 サービス タイプ : 0x00 全データ長 : 0x0034 (52) IPヘッダの後ろに32オクテットデータがある プロトコル番号 識別子 : 0xF21 0x06 TCP フラグメント : 0x4000 (未使用:0 分割丌可:1 後続:0 オフセット:0) など 生存時間 : 0x80 (128) プロトコル : 0x06 (TCP Transmission Control [RFC793,JBP]) チェックサム : 0x0000 送信元 IPアドレス : 192.168.0.10 送信先 IPアドレス : 65.55.227.152 IPヘッダ構造 バージョン データ長 タイプ 全データ長 識別子 フラグ オフセット 4オクテット 4オクテット 8オクテット 16オクテット 16オクテット 3オクテット 13オクテット TTL プロトコル番号 チェックサム 送信元IPアドレス 送信先IPアドレス 8オクテット 8オクテット 16オクテット 32オクテット 32オクテット
10.
パケット解析(TCPヘッダ)
TCPヘッダを解析 00000000 : 00 a0 b0 da b9 13 00 1f d0 d0 12 17 08 00 45 00 00000001 : 00 34 0f 21 40 00 80 06 00 00 c0 a8 00 0a 41 37 00000002 : e3 98 d4 63 00 50 3f 18 fa 55 00 00 00 00 80 02 00000003 : 20 00 e5 a8 00 00 02 04 05 b4 01 03 03 02 01 01 00000004 : 04 02 送信元ポート番号 : 0xD463 (54371) 送信先ポート番号 : 0x0050 (80) HTTP ポート番号 シーケンス番号 : 0x3F18FA55 (1058601557 ) 21 FTP 応答番号 : 0x0000 (0) 22 SSH ヘッダ長 : 0x08 (32 オクテット) もう後ろにデータはない 23 TELNET フラグ : 0x0002 (URG:0 ACK:0 PSH:0 RST:0 SYN:1 FIN:0) 53 DNS ウインドウサイズ : 0x2000 (8192) 80 HTTP チェックサム : 0xE5A8 110 POP3 緊急ポインタ : 0x0000 (0) など オプション : 0x000C (12 オクテット) TCPヘッダ構造 送信元ポート 送信先ポート シーケンス番号 応答番号 16オクテット 16オクテット 32オクテット 32オクテット ヘッダ長 予約 フラグ ウインドウサイズ 緊急ポインタ オプション 4オクテット 6オクテット 6オクテット 16オクテット 16オクテット xxオクテット
11.
WinPcapでパケット送信も可能
L2SW(HUB)を超えたければL2まで実装する必要がある [DllImport ("wpcap.dll”)] private static extern int pcap_sendpacket( IntPtr adaptHandle, IntPtr data, int size); 送・受信の両方を実装する場合、パケットの構造は自由 ※HUBを超えたければ、先頭14バイトまでは正確に実装が必要 送信側のみ作成する場合は、TCP/IPプロトコルを正確に実装しな いと受信側のプロトコルスタックが反応できない copyright© 2011/03.. by SAPPOROWORKS
12.
L2レベルのツール作成とは・・・ 通常のネットワークプログラムと違い、レイア2でのツール作成が可能になると・・・ ping 192.168.0.100
-l 77 特定のサイズのICMPで反応する Listenしないサーバプログラム 独自のプロトコル(TCP/IP以外)を実装してWiresharkで捕捉されな い通信プログラム ブロードキャストを監視して、丌正な接続をアラートする サブネットを間違えている端末を検出 arp監視で無断で設置されたゲートウエイを検出 copyright© 2011/03.. by SAPPOROWORKS
13.
サンプルプログラムとスライドを下記に置きました 興味を持っていただけた場合は、ぜひご利用ください。 http://www.sapporoworks.ne.jp/session/2011.05.20/
@furuya02 copyright© 2011/03.. by SAPPOROWORKS