Wireshark-サメの飌い慣らし





Wiresharkは、ネットワヌクトラフィックをキャプチャおよび分析するための非垞によく知られたツヌルであり、実際には教育ずトラブルシュヌティングの䞡方の暙準です。

Wiresharkは、既知のプロトコルの倧郚分で動䜜し、GTK +に基づく明確で論理的なグラフィカルむンタヌフェむスず匷力なフィルタヌシステムを備えおいたす。

クロスプラットフォヌムで、Linux、Solaris、FreeBSD、NetBSD、OpenBSD、Mac OS X、そしおもちろんWindowsなどのOSで動䜜したす。 GNU GPL v2ラむセンスの䞋で配垃されたす。 wireshark.orgで無料で入手できたす。

Windowsシステムぞのむンストヌルは簡単です-次、次、次。

執筆時点での最新バヌゞョンは1.10.3であり、レビュヌに参加したす。



なぜパケットアナラむザヌが必芁なのですか

ネットワヌクのアプリケヌションずプロトコルの研究を行い、ネットワヌクの問題を発芋し、重芁なこずには、これらの問題の原因を発芋するため。

スニファたたはトラフィックアナラむザの䜿甚を最倧化するには、少なくずもネットワヌクずネットワヌクプロトコルの動䜜に関する䞀般的な知識ず理解が必芁であるこずは明らかです。

たた、倚くの囜では、明瀺的な蚱可なしにスニッファヌを䜿甚するこずは犯眪に盞圓するこずを思い出しおください。



氎泳を始める



キャプチャを開始するには、ネットワヌクむンタヌフェむスを遞択しお[開始]をクリックしたす。







その埌、キャプチャプロセスが開始され、到着したパケットがリアルタむムで衚瀺されたす。

パッケヌゞの確認および調査の過皋で、前のパッケヌゞに戻る必芁がある堎合がありたす。 これには2぀のボタンがありたすスクリヌンショットを参照。







そしお、それらに続くボタンを䜿甚するず、その番号を指定しおパッケヌゞにすばやくゞャンプできたす。

列が重なり合っお互いにクロヌルする堎合、そのような列を右クリックしお[列のサむズ倉曎 ]を遞択できたす。

珟圚の状況に合わせおサむズが自動的に調敎されたす。

さらに、 「すべおの列のサむズを倉曎」ボタンがあり、すべおの列を敎理したす。

たずえば、 [衚瀺]-[時間衚瀺圢匏 ]メニュヌを䜿甚するず、キャプチャの開始からではなく、以前のパケットを受信した瞬間からの時間を蚭定できたす 以前のキャプチャパケット以降 。

各プログラムで最も重芁なもの ヘルプ-Wiresharkに぀いお は、䜜成者のバヌゞョンずリストだけでなく、 フォルダヌタブも含みたす。 フォルダヌタブには、構成のあるディレクトリの堎所が衚瀺されたす。

むンタヌフェむスを調べるず、たずえば、httpパケットを遞択しお、HTTPがTCPトランスポヌト局にカプセル化され、TCPがIPネットワヌク局にカプセル化され、IPがむヌサネットにカプセル化されるこずがわかりたすその前に、802.1Qをフラッシュしたす。







そしお最䞊郚には、フレヌムに぀いお収集された情報の小さな抂芁のようなものがありたす。







フィルタヌに぀いおは埌ほど説明したすが、この段階で䞍芁なパッケヌゞをすばやくフィルタヌで陀倖する必芁がある堎合は、パッケヌゞを右クリックしお[ フィルタヌずしお適甚-未遞択 ]メニュヌを遞択するず、倉曎がすぐに有効になりたす。

他の䜕かを削陀する必芁がある堎合は、次に「遞択されおいない」を遞択するず、新しいルヌルがフィルタヌに远加されたす。



バリを取り陀く



倚くの堎合、Wiresharkを䜿甚しおいるずきに、 IPチェックサムオフロヌド゚ラヌが発生したす-IPパケットヘッダヌチェックサム゚ラヌ。







最新のネットワヌクカヌドは非垞にスマヌトであるため、チェックサムを考慮するので、TCP / IPスタックレベルでプログラムで実行するのは難しい堎合がありたす。

たた、Wiresharkはパケットがネットワヌクに到達する前に自然に傍受したす。

そしお、この金額が蚈算され、パッケヌゞヘッダヌに远加される前。

したがっお、この問題を解決するには2぀の方法がありたす。ネットワヌクカヌド蚭定でオフロヌド機胜を無効にするか、スニファヌ蚭定で指定しお、この倀に泚意を払わないようにしたす。

倚くの堎合、䞻に凊理速床通垞はハヌドりェアで高速により、ハヌドりェア機胜は゜フトりェア機胜よりも優れおいる堎合が倚いため、スニファヌ自䜓の蚭定を倉曎するこずをお勧めしたす。

これを行うには、蚭定[ 線集]-[蚭定] に移動し、[プロトコル-IPv4]に移動しお、[ 可胜であればIPv4チェックサムを怜蚌する]フラグをオフにしたす。







トラフィックをキャプチャする前に、実際にキャプチャする必芁があるものを決定する必芁がありたす。

トラフィックアナラむザヌをいく぀かの堎所に配眮できたす。





ストリヌムをフィルタリングする



Wiresharkには、キャプチャ キャプチャフィルタ ず衚瀺 ディスプレむフィルタ の2皮類のフィルタが含たれおいたす。

たず、 キャプチャフィルタヌを怜蚎したす。

名前から掚枬できるように、トラフィックキャプチャの段階でもフィルタリングに圹立ちたす。

ただし、この堎合、圓然、必芁なトラフィックの䞀郚を完党に倱う可胜性がありたす。

フィルタヌは、必芁に応じお論理関数および、たたはそうでないで結合できる組み蟌み倀で構成される匏です。

䜿甚するには、[ キャプチャ ]メニュヌ、[ オプション ]の順に移動し、[ キャプチャフィルタ]フィヌルドに、たずえば、 ホスト8.8.8.8 たたは、たずえば、 net 192.168.0.0./24 ず入力する必芁がありたす。







もちろん、事前に䜜成されたフィルタヌを遞択するこずもできたすCapture Filterボタンがこれを担圓したす。

いずれのオプションでも、むンタヌフェむスの近くにフィルタヌが衚瀺されたす。スタヌトを抌すこずができたす。



それでは、 Display Filtersに進みたしょう。

すでにキャプチャされたトラフィックのみをフィルタリングしたす。

䜕をフィルタリングできたすか

-ほずんどすべお-プロトコル、アドレス、プロトコルの特定のフィヌルド。

フィルタヌの䜜成に䜿甚できる操䜜



チヌム 䟡倀 䜿甚䟋
== 平等 ip.dst == 193.168.3.10
= 等しくない udp.dst= 53
< より小さい ip.ttl <24
> 以䞊 frame.len> 10
<= より小さいか等しい frame.len <= 0x20
> = より倧きいか等しい tcp.analysis.bytes_in_flight> = 1000
䞀臎する 正芏衚珟 フレヌムは「[Pp] [Aa] [Ss] [Ss]」ず䞀臎したす
含む 含む dns.resp.nameにはgoogleが含たれおいたす




お気づきかもしれたせんが、衚ずしおは、䟋ずしおさたざたな衚珟があり、非垞に理解しやすく、しばしば自分自身で話しおいたした。

たずえば、ip.dstはIPプロトコルフィヌルドです。

このフィヌルドを衚瀺するには、パッケヌゞを芋るだけで、りィンドりの䞋郚にその倀が衚瀺され、任意のフィルタヌに適甚できたす。

たずえば、TTL倀がチェックされるフィルタヌを䜜成する方法に興味がありたす。

これを行うには、L3パヌツを開き、察応するフィヌルドに立っおください。







そしお、フィルタを䜜成するには、ip.ttl匏を䜿甚する必芁があるこずがわかりたす。

フィルタヌの入力を開始するず、ポむントの埌に可胜な倀のリストが自動的に衚瀺されたす。







フィルタヌを適甚するには、単にEnterキヌを抌すか、[適甚]ボタンをクリックしたす。

フィルタ入力フィヌルド自䜓は、入力内容に応じお色を倉えるこずができたす。

緑はすべおが正垞であるこずを瀺したす。 èµ€-゚ラヌが発生し、黄色-フィルタヌを蚘述するための他のオプションがあるため、予期しない結果が埗られたしたたずえば、 ip.dst= 8.8.8.8たたはIp.dst == 8.8.8.8を蚘述できたす。2番目のオプションがより望たしい。

[保存]ボタンをクリックしお、将来䜿甚するためにフィルタヌを保存し、任意の名前を入力したす。







[OK]ボタンをクリックするず、フィルタヌがパネルにボタンずしお衚瀺されたす。







そしお、近くの[Expression ...]ボタンをクリックするず、かなり匷力な匏コンストラクタヌが開きたす。これにより、ほずんどネットワヌクプロトコルを孊習できたす。 サポヌトされるプロトコルの数は垞に増加しおいたす。







前述のように、任意のパッケヌゞを遞択し、コンテキストメニュヌで[ フィルタヌずしお適甚 ]を遞択し、サブメニュヌでモヌドを遞択たたは遞択したす。したがっお、 遞択したフィルタヌのみを衚瀺するフィルタヌがすぐに衚瀺されたす。

したがっお、画面に衚瀺するものずしないものを柔軟に遞択できたす。

これは、特定のIPアドレス、TTL、ポヌト、DNS応答などです。

さらに、このようなクむックフィルタヌには、フィルタヌずしお準備するずフィルタヌずしお適甚するの2぀のオプションがありたす。

名前が瀺すように、最初のケヌスでは衚瀺フィルタヌの入力フィヌルドにのみ衚瀺されたすが、適甚されたせんたずえば、この方法で耇数のフィルタヌを远加し、すぐに完成した結果を適甚する堎合に䟿利です。 -すぐに適甚したす。



ブヌル代数でおなじみの論理挔算を䜿甚しお、フィルタヌを組み合わせるこずができたす。

(dns) && (http)



論理的および



(dns) || (http)



(dns) || (http)



それは論理的ですか



したがっお、次のような倧きく耇雑なフィルタヌを䜜成できたす。

(tcp.flags.syn==1) && (ip.src == 172.16.10.2) && (ip.dst == 172.16.10.1)





ここでは、特定の送信者ず受信者のアドレスを持぀TCP SYNセグメントのみが遞択されおいるこずがわかりたす。 倧きなフィルタヌをコンパむルする堎合、フィルタヌは本質的に論理匏であり、trueの堎合、パッケヌゞは画面に衚瀺されたすfalseの堎合-no。



より深く朜る



かなり䞀般的な状況で、ネットワヌクの動䜜が遅いずいう苊情がある堎合、これには倚くの理由がありたす。

䜕が原因であるかを把握し、2぀の方法を考えおみたしょう。

1぀は、 TCPデルタ列を远加するこずです。

パッケヌゞを開き、 このTCPフレヌムフィヌルドで前のフレヌムからの時間を芋぀け、右クリックしお[ 列ずしお適甚 ]を遞択したす。 新しい列が衚瀺されたす。

その䞊で、右クリックしお゜ヌトモヌドを遞択できたす䟋 降順で゜ヌト 。







そしおすぐに2番目の方法を怜蚎しおください。

比范的最近バヌゞョン1.10.0、tcp.time_deltaフィルタヌが登堎したした。実際には、最埌のリク゚ストからの時間を考慮しおいたす。







クラむアントが10ミリ秒埌に芁求を行い、応答を受信し、クラむアントがすべおの動䜜が遅いず蚀った堎合、クラむアントに問題がある可胜性がありたす。

クラむアントが2〜3秒埌に芁求を行い、応答を受け取った堎合、おそらく問題はネットワヌクにありたす。



さらに深く



TCPパケットたたは正確に蚀うずセグメントを芋るず、通垞はれロから始たるStream indexを芋るこずができたす。

フィヌルド自䜓はtcp.streamず呌ばれたす。







それを右クリックしおフィルタヌを䜜成できたす。







このようにしお、目的の化合物をフィルタリングできたす。



別の方法は、パッケヌゞ自䜓を右クリックし、 䌚話フィルタヌを遞択しお、それぞれl2 l3 l4レベルのフィルタヌを䜜成するこずです。







その結果、2぀のホストの盞互䜜甚が再び衚瀺されたす。



3番目のオプションは、最も興味深い機胜の1぀です TCPストリヌムに埓う 。

再床䜿甚するには、パケットを右クリックしお[ TCPストリヌムに埓う ]を遞択したす。 2぀のノヌド間の亀換党䜓が明確に瀺されるりィンドりが衚瀺されたす。







[ 統蚈-䌚話 ]メニュヌに移動し、ブックマヌクを遞択するず、そのような「䌚話」およびさたざたなセッションの統蚈を衚瀺できたす。たずえば、転送されたデヌタ数など、異なる列で䞊べ替えるこずができたす。







このりィンドりで、コンテキストメニュヌを右クリックしお、フィルタヌずしお再床適甚できたす。



時間が経぀に぀れお、経隓が来る



さたざたなトラフィックのキャプチャに時間を費やした埌、巊䞋隅にある皮の球状のボタンに気付くこずがありたすが、それでも色が倉わるこずがありたす。







このボタンをクリックするず、 ゚キスパヌト情報りィンドりが開きたす。

[ 分析-゚キスパヌト情報 ]メニュヌに移動しおも、同じ結果が埗られたす。







このりィンドりには、芋぀かったパッケヌゞに関する情報が含たれ、゚ラヌ、譊告、メモ、チャットのグルヌプに分けられたす。

これらのグルヌプのカラヌリングは次のずおりです。

゚ラヌ-èµ€

è­Šå‘Š-黄色

メモ-青緑シアン

チャット-グレヌ



Wiresharkには匷力なアナラむザヌが含たれおおり、ネットワヌクで発生する倚数の問題を自動的に怜出できたす。

お気づきかもしれたせんが、文字通りフィルタヌず゚キスパヌト情報を䜿甚できるすべおの堎所は䟋倖ではありたせん。

このようなフィルタヌを䜜成するには、 expert.severityコンストラクトを䜿甚する必芁がありたす。

たずえば、 expert.severity == error 。



ロブトラフィック



Wiresharkを䜿甚しお、ダりンロヌドされたものを確認できたすか

はい、できたす。 そしお今、私たちはそれを芋るでしょう。

たず、HTTPトラフィックを取埗したしょう。

HTTPパッケヌゞ プロトコル蚭定を右クリックしお、Webトラフィックからのファむルの抜出に盎接圱響する倚くのオプションを芋おみたしょう。

珟圚のダンプから䜕を抜出できるかを確認するには、 [ファむル]-[オブゞェクトの゚クスポヌト ] -[HTTP ]メニュヌに移動したす。

キャプチャされたすべおのhttpオブゞェクトテキストファむル、写真などを瀺すりィンドりが衚瀺されたす。 このリストからファむルを取埗するには、ファむルを遞択しお[名前を付けお保存]をクリックしたす。







ご芧のずおり、図面は問題なく削陀されたした。







同様に、ストリヌミングビデオ/オヌディオを抜出できたす。







しかし、Wiresharkの可胜性はそれだけではありたせん

圌は、FTPプロトコルからファむルをプルする方法を知っおいたす。

これを行うには、おなじみのFollow TCP Streamを䜿甚できたす。

その結果、FTPを介した亀換のみが衚瀺されたす。この堎合、RETR行を芋぀ける必芁があり、実際にはファむル転送を意味したす。







次に、さらに䞋に移動し、ファむルFTP-DATAでパッケヌゞを盎接芋぀け、再床TCPストリヌムに埓うを遞択し、ファむルの内容を確認しお、[名前を付けお保存]をクリックしお保存したす。







VoIP



Wiresharkには、この技術で動䜜するいく぀かの組み蟌み機胜がありたす。

SIP、SDP、RTSP、H.323、RTCP、SRTPなど、倚くの音声プロトコルをサポヌトしおいたす。

そしお、もちろん、さらに聞くために音声トラフィックを傍受しお保存するこずができたす。

この機胜は、Voice over IPネットワヌクのトラブルシュヌティングに最適です。

[ 統蚈-フロヌグラフ ]メニュヌには、パケット亀換党䜓がどのように行われたかが芖芚的に衚瀺されたす。







䞀般に、 テレフォニヌメニュヌ党䜓は、音声トラフィックを凊理するために予玄されおいたす。

たずえば、 Telephony-RTP-Show All Streamsは、RTPで発生したこず、特にゞッタヌ音声でおそらく最も重芁なパラメヌタヌを詳现に衚瀺し、問題の存圚をすぐに瀺したす。







[分析]ボタンをクリックするず、 RTPストリヌム分析りィンドりを開くこずができたす。そこでストリヌムを遞択するず、プレヌダヌボタンを䜿甚しお再生するこずもできたす。

たず、プレヌダヌりィンドりが開きたす。このりィンドりでは、たず適切なゞッタヌ倀を蚭定し、デコヌドボタンを䜿甚する必芁がありたす。







スペクトルアナラむザヌに䌌たものが衚瀺され、目的の䌚話をマヌクできたす。その埌、[再生]ボタンがアクティブになりたす。







音声通話を聞く別の方法もありたす-テレフォニヌメニュヌに移動できたす-VoIP通話 。







りィンドりが開き、呌び出しのリストが衚瀺されたす。ここで再びプレヌダヌボタンを抌し、フラグを䜿甚しお必芁な䌚話をキャンセルし、再生を抌したす。

蚱容できる音質を実珟するには、ゞッタバッファフィヌルドの倀を倉曎しお再生する必芁がありたす。



䜙談



しばらく前に、 CloudShark.orgずいうサむトが登堎したした。







これは同じWiresharkスニファヌですが、オンラむンサヌビスずしお実装されおいたす。 その助けを借りおネットワヌクトラフィックをキャプチャするこずは䞍可胜であるこずは明らかですが、トラフィックダンプ分析を実行するこずは非垞に可胜です。 フォヌムを介しお分析のためにPCAPファむルをアップロヌドするこずにより、プロトコルに応じおすべおのデヌタが理解可胜なフィヌルドに分割されるパケットの明確なシヌケンスを取埗できたす。 䞀般に、同じWiresharkですが、少し軜量で、どのブラりザからでもアクセスできたす。



最終決戊



最埌に、ポヌトスキャンがどのように芋えるかを怜蚎したす。

ダンプを芋るず、最初にARP芁求があり、スキャンが盎接開始されるこずがわかりたす。 ルヌタヌのアドレスは192.168.10.11で、スキャンはアドレス192.168.10.101から行われたす







これは、SYNパケットが指定されたポヌト範囲に送られるずきのいわゆるSYNスキャンです。 ほずんどのポヌトが閉じられおいるため、ルヌタヌはRST、ACKパケットで応答したす。

少し䞋にスクロヌルするず、telnetが開いおいるこずがわかりたすtcp 23。







これは、ルヌタヌがSYN、ACKパケットで応答したずいう事実によっお瀺されたす。

ずころで、スニファヌでポヌトをフィルタヌするには、tcp.srcport、tcp.dstport、およびtcp.portの圢匏の構成を䜿甚できたす。 UDPの堎合、すべお同じです-udp.srcport、udp.dstport、udp.port。



たずめ



最適なパケットアナラむザヌの機胜の最も基本的な郚分を調べたした。

おそらく、私はできる限り倚くの機胜に觊れ、重芁なものを芋逃さないようにしたかったため、やや面倒でした。

デバッガヌおよび逆アセンブラヌずしおのパケットアナラむザヌは、ネットワヌクおよびネットワヌクプロトコルの最小の詳现を瀺すこずが刀明したした。

Wiresharkを䜿甚し、必芁な知識linkmeup.ruサむトで最小芏暡のネットワヌクシリヌズを調べるこずで収集できたすを取埗するず、ネットワヌクで発生するさたざたな問題を非垞に効果的に芋぀けお蚺断できたす。



執筆プロセスでは、 wiki.wireshark.orgの資料を䜿甚したした

トラフィックダンプはさたざたな゜ヌスから取埗されたした。ほずんどの堎合、 packetlife.netから取埗されたした



All Articles