การเพิ่มประสิทธิภาพเครือข่ายโดยใช้ wireshark วิธีการใช้งาน Wireshark? การวิเคราะห์การจราจร

เพื่อศึกษาพฤติกรรมของแอปพลิเคชันเครือข่ายและโหนด ตลอดจนระบุปัญหาในเครือข่าย มักใช้เครื่องวิเคราะห์แพ็กเก็ตเครือข่าย คุณสมบัติที่สำคัญของซอฟต์แวร์ดังกล่าวคือ ประการแรก ความสามารถของการวิเคราะห์ที่หลากหลาย และประการที่สอง การกรองแพ็คเก็ตแบบมัลติฟังก์ชั่น ซึ่งช่วยให้คุณค้นหาข้อมูลที่น่าสนใจจำนวนมากมายในกระแสการรับส่งข้อมูลเครือข่ายอันกว้างใหญ่ เป็นประเด็นหลังที่บทความนี้กล่าวถึง

การแนะนำ

ในบรรดาวิธีทั้งหมดในการศึกษาเครือข่ายคอมพิวเตอร์ การวิเคราะห์การรับส่งข้อมูลอาจเป็นวิธีที่ต้องใช้ความอุตสาหะและใช้เวลานานที่สุด เครือข่ายสมัยใหม่ที่หลั่งไหลเข้ามาอย่างเข้มข้นทำให้เกิด "วัตถุดิบ" จำนวนมาก ซึ่งการหาข้อมูลที่เป็นประโยชน์นั้นไม่ใช่เรื่องง่ายเลย ตลอดระยะเวลาที่มันดำรงอยู่ สแต็ก TCP/IP ได้รับแอปพลิเคชันและการเพิ่มเติมมากมาย นับหลายร้อยนับพัน สิ่งเหล่านี้ได้แก่ โปรโตคอลแอปพลิเคชันและบริการ การตรวจสอบสิทธิ์ การสร้างช่องสัญญาณ โปรโตคอลการเข้าถึงเครือข่าย และอื่นๆ นอกเหนือจากการรู้พื้นฐานของการโต้ตอบบนเครือข่ายแล้ว นักวิจัยด้านทราฟฟิก (นั่นคือคุณ) จะต้องมีความชำนาญในความหลากหลายของโปรโตคอลทั้งหมดนี้ และสามารถทำงานกับเครื่องมือซอฟต์แวร์เฉพาะได้ - นักดมกลิ่น หรือเครื่องวิเคราะห์ทราฟฟิก (โปรโตคอล) ที่พูดทางวิทยาศาสตร์ .

ฟังก์ชั่นการดมกลิ่นไม่เพียง แต่ความสามารถในการใช้โหมด "promiscuos" ของการ์ดเครือข่ายเพื่อการสกัดกั้นเท่านั้น ซอฟต์แวร์ดังกล่าวจะต้องสามารถกรองการรับส่งข้อมูลได้อย่างมีประสิทธิภาพทั้งในขั้นตอนการเก็บรวบรวมและระหว่างการศึกษาหน่วยการส่งข้อมูลแต่ละหน่วย (เฟรม แพ็กเก็ต เซ็กเมนต์ ดาตาแกรม ข้อความ) ยิ่งไปกว่านั้น ยิ่งโปรโตคอลที่นักดมกลิ่น “รู้” มากเท่าไรก็ยิ่งดีเท่านั้น

เครื่องวิเคราะห์โปรโตคอลสมัยใหม่สามารถทำได้หลายอย่าง: คำนวณสถิติการรับส่งข้อมูล, วาดกราฟความคืบหน้าของการโต้ตอบเครือข่าย, ดึงข้อมูลจากโปรโตคอลแอปพลิเคชัน, ส่งออกผลลัพธ์ของงานเป็นรูปแบบต่างๆ... ดังนั้นการเลือกเครื่องมือสำหรับวิเคราะห์การรับส่งข้อมูลเครือข่าย เป็นหัวข้อสำหรับการอภิปรายแยกต่างหาก หากคุณไม่รู้ว่าจะเลือกอะไร หรือไม่ต้องการเสียเงินกับซอฟต์แวร์แบบชำระเงิน ให้ใช้คำแนะนำง่ายๆ: ติดตั้ง Wireshark

ทำความรู้จักกับฟิลเตอร์

Wireshark รองรับตัวกรองสองประเภท:

  • การสกัดกั้นการจราจร (ตัวกรองการจับภาพ);
  • ตัวกรองการแสดงผล

ระบบย่อยแรกได้รับการสืบทอดโดย Wireshark จากไลบรารี Pcap ซึ่งมี API ระดับต่ำสำหรับการทำงานกับอินเทอร์เฟซเครือข่าย การสุ่มตัวอย่างการรับส่งข้อมูลได้ทันทีระหว่างการสกัดกั้นช่วยให้คุณประหยัด RAM และพื้นที่ฮาร์ดไดรฟ์ ตัวกรองคือนิพจน์ที่ประกอบด้วยกลุ่มของข้อมูลพื้นฐาน ซึ่งอาจรวมกับฟังก์ชันลอจิคัลก็ได้ (และ หรือ ไม่ใช่) สำนวนนี้ถูกบันทึกไว้ในช่อง "Capture Filter" ของกล่องโต้ตอบ "Capture options" ตัวกรองที่ใช้มากที่สุดสามารถบันทึกลงในโปรไฟล์เพื่อนำกลับมาใช้ใหม่ได้ (รูปที่ 1)

ข้าว. 1. โปรไฟล์ตัวกรองการสกัดกั้น

ภาษาตัวกรองการสกัดกั้นเป็นมาตรฐานในโลกของโอเพ่นซอร์สและมีการใช้งานโดยผลิตภัณฑ์ที่ใช้ Pcap จำนวนมาก (เช่น ยูทิลิตี้ tcpdump หรือระบบตรวจจับ/ป้องกันการบุกรุก Snort) ดังนั้นจึงไม่มีประเด็นเฉพาะในการอธิบายไวยากรณ์ที่นี่ เนื่องจากคุณน่าจะคุ้นเคยกับไวยากรณ์นี้มากที่สุด และรายละเอียดสามารถพบได้ในเอกสารประกอบ เช่น ใน Linux บนหน้าคู่มือ pcap-filter(7)

ตัวกรองการแสดงผลทำงานกับการรับส่งข้อมูลที่บันทึกไว้แล้วและมีอยู่ใน Wireshark ความแตกต่างจาก Pcap - ในรูปแบบการบันทึก (โดยเฉพาะจุดที่ใช้เป็นตัวคั่นฟิลด์) มีการเพิ่มสัญกรณ์ภาษาอังกฤษสำหรับการดำเนินการเปรียบเทียบและการรองรับสตริงย่อยด้วย

คุณสามารถป้อนตัวกรองการแสดงผลลงในฟิลด์ที่เกี่ยวข้องได้โดยตรง (ความสนใจ รายการแบบหล่นลง-เคล็ดลับทำงาน) ของหน้าต่างโปรแกรมหลักหลังจากปุ่ม "ตัวกรอง" (โดยวิธีการนั้น โปรไฟล์สำหรับนิพจน์ที่ใช้บ่อยจะถูกซ่อนอยู่ใต้ปุ่มนี้ ). และถ้าคุณคลิกปุ่ม “นิพจน์...” ที่อยู่ใกล้เคียง ตัวสร้างนิพจน์แบบมัลติฟังก์ชั่นจะเปิดขึ้น (รูปที่ 2)


ทางด้านซ้าย (ชื่อฟิลด์) เป็นแผนผังช่องข้อความโปรโตคอลที่ Wireshark รู้จัก สำหรับฟิลด์นี้ คุณสามารถระบุตัวดำเนินการเชิงตรรกะ (ความสัมพันธ์) ป้อนค่า (ค่า) ระบุช่วง (ช่วง) หรือเลือกค่าจากรายการ (ค่าที่กำหนดไว้ล่วงหน้า) โดยทั่วไปสารานุกรมออนไลน์ฉบับสมบูรณ์ในหน้าต่างเดียว

ต่อไปนี้คือตัวดำเนินการเชิงตรรกะที่ใช้ในตัวกรองการแสดงผล:

  • และ (&&) - "และ";
  • หรือ (||) - "หรือ";
  • xor (^^) - พิเศษ "หรือ";
  • ไม่ใช่ (!) - การปฏิเสธ;
  • […] - การเลือกสตริงย่อย

สำหรับการเลือกสตริงย่อย นี่ไม่ใช่การดำเนินการเชิงตรรกะ แต่เป็นตัวเลือกที่มีประโยชน์มาก ช่วยให้คุณได้รับส่วนเฉพาะของลำดับ ตัวอย่างเช่น นี่คือวิธีที่คุณสามารถใช้ตัวเลขแรก (ตัวเลขแรกในวงเล็บเหลี่ยมคือออฟเซ็ต) สามไบต์ (ตัวเลขหลังเครื่องหมายทวิภาคคือความยาวของลำดับย่อย) ของฟิลด์ที่อยู่ MAC ต้นทางในนิพจน์:

Eth.src == 00:19:5b

ในการเลือกที่มีเครื่องหมายโคลอน สามารถละเว้นพารามิเตอร์ตัวใดตัวหนึ่งได้ หากคุณข้ามออฟเซ็ต จำนวนตัวอย่างจะเริ่มต้นจากศูนย์ไบต์ หากมีความยาวเราจะได้ไบต์ทั้งหมดจากออฟเซ็ตถึงจุดสิ้นสุดของฟิลด์

อย่างไรก็ตาม การสุ่มตัวอย่างสตริงย่อยนั้นสะดวกในการใช้ระบุมัลแวร์ หากทราบลำดับของไบต์ที่มาหลังจากส่วนหัว (เช่น “0x90, 0x90, 0x90, 0x04” ในแพ็กเก็ต UDP):

อุด == 90:90:90:04

การดำเนินการเปรียบเทียบที่ใช้ในนิพจน์บูลีน:

  • eq (==) - เท่ากับ;
  • ne (!=) - ไม่เท่ากัน;
  • gt (>) - เพิ่มเติม;
  • เลย(<) - меньше;
  • ge (>=) - มากกว่าหรือเท่ากับ;
  • เลอ (<=) - меньше или равно.tcp.dstport ne 8080 && tcp.len gt 0 && data eq A0

ที่จริงแล้วทฤษฎีก็เพียงพอแล้วสำหรับการเริ่มต้น จากนั้นใช้สามัญสำนึกและวงเล็บตามที่จำเป็นหรือไม่ก็ได้ นอกจากนี้ อย่าลืมว่าตัวกรองนั้นเป็นนิพจน์บูลีนโดยพื้นฐานแล้ว หากเป็นจริง แพ็กเก็ตจะแสดงบนหน้าจอ หากเป็นเท็จ ก็จะไม่แสดง

ตัวกรอง Pcap เพื่อตรวจจับการสแกนพอร์ต Netbios

พอร์ต dst 135 หรือพอร์ต dst 445 หรือพอร์ต dst 1433 และ tcp & (tcp-syn) != 0 และ tcp & (tcp-ack) = 0 และ src net 192.168.56.0/24

กำลังมองหานักจี้ IP

ในส่วนของเครือข่ายท้องถิ่น มี (ด้วยเหตุผลใดก็ตาม) ที่อยู่ IP เดียวกันของสองโหนดขึ้นไป เทคนิค "การจับ" (การกำหนดที่อยู่ MAC) ของระบบที่ขัดแย้งกันเป็นที่รู้จักกันดี: เราเปิดตัวดมกลิ่นบนคอมพิวเตอร์เครื่องที่สาม ล้างแคช ARP และกระตุ้นคำขอเพื่อแก้ไข MAC ของ IP ที่ต้องการ เช่น การส่ง Ping ไปยังมัน : :

# arp -d 192.168.56.5 # ping -n -c 1 192.168.56.5

จากนั้นเราจะดูการรับส่งข้อมูลที่ถูกดักซึ่งเป็นที่มาของการตอบสนองของ MAC หาก Wireshark จับแพ็คเก็ตมากเกินไป เราจะสร้างตัวกรองการแสดงผลโดยใช้ตัวสร้าง ในส่วนแรกของนิพจน์เราเลือกการตอบกลับ ARP ในส่วนที่สอง - ข้อความเหล่านั้นที่ที่อยู่ IP ต้นทางเท่ากับข้อความที่ค้นหา เรารวมค่าพื้นฐานเข้ากับตัวดำเนินการ && เนื่องจากจำเป็นต้องปฏิบัติตามเงื่อนไขทั้งสองพร้อมกัน:

(arp.opcode == ตอบกลับ) && (arp.src.proto_ipv4 == 192.168.56.5)

อย่างไรก็ตาม เมื่อดำเนินการสถานการณ์นี้ ไม่มีเครือข่ายคอมพิวเตอร์ได้รับผลกระทบ เนื่องจากมีการใช้เครื่องเสมือน Oracle VirtualBox สองเครื่องและการเชื่อมต่อเครือข่ายประเภท "Virtual Host Adapter"

ตรวจสอบเครือข่ายและเลเยอร์การขนส่ง

จนถึงขณะนี้โปรโตคอล ICMP ยังคงเป็นวิธีที่มีประสิทธิภาพในการวินิจฉัยสแต็กเครือข่าย ข้อความของโปรโตคอลนี้สามารถให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับปัญหาเครือข่าย

ดังที่คุณอาจเดาได้ การกรอง ICMP ใน Wireshark นั้นง่ายมาก ก็เพียงพอที่จะเขียนในบรรทัดการกรองในหน้าต่างโปรแกรมหลัก: icmp นอกจาก icmp แล้ว คำหลักอื่นๆ อีกหลายคำที่เป็นชื่อโปรโตคอลยังใช้งานได้ เช่น arp, ip, tcp, udp, snmp, smb, http, ftp, ssh และอื่นๆ

หากมีการรับส่งข้อมูล ICMP จำนวนมาก การแมปสามารถให้รายละเอียดได้ ไม่รวม ตัวอย่างเช่น คำขอ echo (ประเภท 0) และการตอบกลับ echo (ประเภท 8):

Icmp และ ((icmp.type ne 0) และ (icmp.type ne 8))

ในรูป รูปที่ 4 แสดงตัวอย่างข้อความ ICMP ขนาดเล็กที่สร้างโดยเราเตอร์ Linux ทดสอบ ข้อความ "พอร์ตไม่สามารถเข้าถึงได้" มักจะเป็นค่าเริ่มต้น มันยังถูกสร้างขึ้นโดยสแต็กเครือข่ายเมื่อได้รับดาตาแกรม UDP บนพอร์ตที่ไม่ได้ใช้ เพื่อให้เราเตอร์เสมือนที่ใช้ Debian เริ่มส่งข้อความ “ไม่สามารถเข้าถึงโฮสต์” และ “กรองการสื่อสารโดยผู้ดูแลระบบ” ฉันจึงต้องแก้ไขมัน โดยปกติแล้ว Cisco จะแจ้งเกี่ยวกับการกรองผู้ดูแลระบบตามค่าเริ่มต้น ข้อความ “เกิน Time-to-live” ระบุว่ามีการวนซ้ำในบางส่วนของเครือข่าย (และแพ็กเก็ตดังกล่าวอาจปรากฏขึ้นเมื่อติดตามเส้นทาง)

โดยวิธีการเกี่ยวกับไฟร์วอลล์ คุณสามารถสร้างกฎสำหรับไฟร์วอลล์ยอดนิยมได้โดยตรงใน Wireshark โดยใช้รายการ “กฎ ACL ของไฟร์วอลล์” ในเมนู “เครื่องมือ” คุณต้องเลือกแพ็คเกจที่จะใช้ข้อมูลจากรายการก่อน ACL มาตรฐานและแบบขยายของ Cisco, กฎคล้าย UNIX จาก IP Filter, IPFirewall (ipfw), Netfilter (iptables), Packet Filter (pf) และ Windows Firewall (netsh)

และตอนนี้โดยย่อเกี่ยวกับพื้นฐานของการกรองในระดับเครือข่ายซึ่งขึ้นอยู่กับฟิลด์ส่วนหัวของแพ็กเก็ต IP - ที่อยู่ต้นทาง (ip.src) และที่อยู่ผู้รับ (ip.dst):

(ip.src == 192.168.56.6) || (ip.dst == 192.168.56.6)

วิธีนี้เราจะเห็นแพ็กเก็ตทั้งหมดที่ที่อยู่ IP นี้ได้รับหรือส่ง คุณสามารถกรองเครือข่ายย่อยทั้งหมดได้โดยใช้รูปแบบ CIDR ตัวอย่างเช่น เรามาระบุโฮสต์ที่ติดไวรัสซึ่งส่งสแปม (ในที่นี้ 192.168.56.251 คือที่อยู่ IP ของเซิร์ฟเวอร์ SMTP ของเรา):

Ip.src == 192.168.56.0/24 และ tcp.dstport == 25 และ !(ip.dst == 192.168.56.251)

อย่างไรก็ตาม หากต้องการเลือกตามที่อยู่ MAC คุณควรใช้พื้นฐาน eth.src, eth.dst และ eth.addr บางครั้งปัญหาเลเยอร์เครือข่ายมีความเกี่ยวข้องกับเลเยอร์อีเธอร์เน็ตอย่างใกล้ชิดมากกว่าที่ทฤษฎีแนะนำ โดยเฉพาะอย่างยิ่ง เมื่อตั้งค่าการกำหนดเส้นทาง จะมีประโยชน์มากในการดูว่าที่อยู่ MAC ใดของเราเตอร์ที่โหนดที่ดื้อรั้นส่งแพ็กเก็ตไปจะมีประโยชน์มาก อย่างไรก็ตาม สำหรับงานง่ายๆ เช่นนั้น ยูทิลิตี้ tcpdump ซึ่งเกือบจะเป็นมาตรฐานสำหรับระบบที่คล้ายกับ UNIX ก็เพียงพอแล้ว

Wireshark ยังไม่มีปัญหากับการกรองพอร์ตอีกด้วย สำหรับ TCP คีย์เวิร์ด tcp.srcport, tcp.dstport และ tcp.port พร้อมให้บริการคุณ สำหรับ UDP - udp.srcport, udp.dstport และ udp.port จริงอยู่ที่ภาษาตัวกรอง Wireshark ในตัวไม่มีอะนาล็อกของพอร์ตดั้งเดิมใน Pcap ซึ่งหมายถึงทั้งพอร์ต UDP และ TCP แต่สามารถแก้ไขได้ง่ายๆ โดยใช้นิพจน์บูลีน เช่น

Tcp.port == 53 || udp.พอร์ต == 53

ด้นสดด้วยการรับส่งข้อมูล HTTP

โปรโตคอลแอปพลิเคชัน โดยเฉพาะ HTTP เป็นหัวข้อ “นิรันดร์” ในบริบทของการดมกลิ่น พูดตามตรง ต้องบอกว่ามีการสร้างเครื่องมือซอฟต์แวร์พิเศษจำนวนมากเพื่อศึกษาการเข้าชมเว็บ แต่เครื่องมือสากลเช่น Wireshark ซึ่งมีระบบการกรองที่ยืดหยุ่นนั้นไม่ได้ฟุ่มเฟือยเลยในสาขานี้

ขั้นแรก เรามารวบรวมการเข้าชมเว็บโดยไปที่ไซต์แรกที่นึกถึง ตอนนี้เรามาดูการกล่าวถึงแหล่งข้อมูลอินเทอร์เน็ตที่เราชื่นชอบในข้อความของโปรโตคอล TCP ซึ่งทำหน้าที่เป็นเส้นทางสำหรับ HTTP:

TCP มี "ไซต์"

มีตัวดำเนินการตรวจสอบการมีอยู่ของสตริงย่อยในฟิลด์ที่กำหนด นอกจากนี้ยังมีตัวดำเนินการจับคู่ ซึ่งสามารถใช้นิพจน์ทั่วไปที่เข้ากันได้กับ Perl

แน่นอนว่าหน้าต่าง "Filter Expressions" เป็นตัวช่วยที่ดี แต่บางครั้งการเลื่อนดูรายการยาว ๆ เพื่อค้นหาฟิลด์ที่ต้องการก็น่าเบื่อมาก มีวิธีที่ง่ายกว่าในการสร้าง/แก้ไขตัวกรองการแสดงผล: การใช้เมนูบริบทเมื่อดูแพ็คเกจ ในการดำเนินการนี้คุณเพียงแค่คลิกขวาที่ฟิลด์ที่สนใจและเลือกหนึ่งในรายการย่อยของรายการ "ใช้เป็นตัวกรอง" หรือรายการ "เตรียมตัวกรอง" ในกรณีแรก การเปลี่ยนแปลงจะมีผลทันที และในกรณีที่สอง จะสามารถแก้ไขนิพจน์ได้ “เลือกแล้ว” หมายความว่าค่าฟิลด์จะกลายเป็นตัวกรองใหม่ “ไม่ได้เลือก” หมายถึงสิ่งเดียวกัน เฉพาะเมื่อมีการปฏิเสธเท่านั้น ส่วนคำสั่งที่ขึ้นต้นด้วย "..." จะเพิ่มค่าฟิลด์ให้กับนิพจน์ที่มีอยู่ โดยขึ้นอยู่กับตัวดำเนินการบูลีน

ด้วยการรวมเครื่องมืออินเทอร์เฟซกราฟิก Wireshark ต่างๆ และความรู้เกี่ยวกับโปรโตคอล HTTP คุณสามารถเจาะลึกถึงระดับการแสดงการรับส่งข้อมูลที่ต้องการในหน้าต่างโปรแกรมหลักได้อย่างง่ายดาย

ตัวอย่างเช่น หากต้องการดูว่าเบราว์เซอร์ร้องขอรูปภาพใดจากเว็บเซิร์ฟเวอร์เมื่อสร้างเพจ ตัวกรองที่วิเคราะห์เนื้อหาของ URI ที่ส่งไปยังเซิร์ฟเวอร์จะดำเนินการ:

(http.host eq "www..request.uri มี ".jpg#26759185") หรือ (http.request.uri มี ".png#26759185"))

สิ่งเดียวกัน แต่ใช้ไม้ขีด:

(http.host eq "www..request.uri ตรงกับ ".jpg|.png#26759185")

แน่นอนว่า ฟิลด์ข้อความจากโปรโตคอลระดับต่างๆ สามารถผสมกันได้อย่างปลอดภัยในนิพจน์เดียว ตัวอย่างเช่น หากต้องการทราบว่าเซิร์ฟเวอร์นี้ส่งรูปภาพใดไปยังไคลเอนต์ เราจะใช้ที่อยู่ต้นทางจากแพ็กเก็ต IP และฟิลด์ "ประเภทเนื้อหา" ของการตอบกลับ HTTP:

(ip.src eq 178.248.232.27) และ (http.content_type มี "รูปภาพ")

และการใช้ช่องคำขอ HTTP “ผู้อ้างอิง” ช่วยให้คุณทราบว่าเบราว์เซอร์อื่นรับเนื้อหาจากเซิร์ฟเวอร์อื่นใดเมื่อสร้างเพจสำหรับไซต์โปรดของคุณ:

(http.ผู้อ้างอิง eq "http://www..dst eq 178.248.232.27))

มาดูตัวกรองที่มีประโยชน์อีกสองสามตัวกัน หากต้องการตัวอย่างคำขอ HTTP ที่สร้างขึ้นโดยใช้วิธี GET จากการรับส่งข้อมูล คุณสามารถใช้นิพจน์ต่อไปนี้:

Http.request.method == รับ

ในระดับแอปพลิเคชันที่แสดงฟิลเตอร์จะแสดงออกมาในความสวยงามและความเรียบง่าย สำหรับการเปรียบเทียบ: ตัวอย่างเช่น ในการแก้ปัญหานี้โดยใช้ Pcap คุณจะต้องใช้โครงสร้างสามชั้นนี้:

พอร์ต 80 และ tcp[((tcp & 0xf0) >> 2):4] = 0x47455420

หากต้องการทราบว่าการเชื่อมต่อ www ใดที่ทำโดยผู้ใช้โฮสต์ 192.168.56.8 ในช่วงเวลาหนึ่ง (เช่น ระหว่างพักกลางวัน) เราใช้ frame.time ดั้งเดิม:

Tcp.dstport == 80 && frame.time >= "9 ยัน 2013 13:00:00" && frame.time< "Yan 9, 2013 14:00:00" && ip.src == 192.168.56.8

การแสดงคำขอ URI ที่มีคำว่า "เข้าสู่ระบบ" และ "ผู้ใช้" รวมถึง "คำเตือน" ของรหัสผ่าน:

Http.request.uri ตรงกับ "login.*=user" (http มี "รหัสผ่าน") || (ป๊อปมีคำว่า "PASS")

การสกัดกั้นเนื้อหา SSL

ความหายนะที่แท้จริงของนักวิจัยการรับส่งข้อมูลเครือข่ายคือการเข้ารหัส แต่หากคุณมีไฟล์ที่มีค่าพร้อมใบรับรอง (อย่างไรก็ตาม คุณต้องดูแลมันเหมือนแก้วตาของคุณ) คุณสามารถค้นหาได้อย่างง่ายดายว่าผู้ใช้ทรัพยากรนี้ซ่อนอะไรอยู่ในเซสชัน SSL ในการดำเนินการนี้คุณต้องระบุพารามิเตอร์เซิร์ฟเวอร์และไฟล์ใบรับรองในการตั้งค่าโปรโตคอล SSL (รายการ "การตั้งค่า" ในเมนู "แก้ไข" เลือก SSL ในรายการโปรโตคอลทางด้านซ้าย) รองรับรูปแบบ PKCS12 และ PEM ในกรณีหลัง คุณต้องลบรหัสผ่านออกจากไฟล์โดยใช้คำสั่ง:

Openssl pkcs12 - ส่งออก - ใน server.pem - ออก aa.pfx openssl pkcs12 - ใน aa.pfx - ออก serverNoPass.pem – โหนด

ข้อมูล

การแยกทราฟฟิกสำหรับการตรวจสอบและการดีบักจากทราฟฟิกเครือข่ายทำได้โดยตัวกรองแพ็กเก็ต ตัวกรองแพ็คเก็ตเป็นส่วนหนึ่งของเคอร์เนลระบบปฏิบัติการและรับแพ็คเก็ตเครือข่ายจากไดรเวอร์การ์ดเครือข่าย

ตัวอย่างของตัวกรองแพ็คเก็ตสำหรับระบบปฏิบัติการที่คล้าย UNIX คือ BPF (ตัวกรองแพ็คเก็ต Berkeley) และ LSF (ตัวกรองซ็อกเก็ต Linux) ใน BPF การกรองจะดำเนินการตามภาษาเครื่องดั้งเดิมที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่ง BPF จะเป็นล่าม

การวิเคราะห์การรับส่งข้อมูลจากโฮสต์ระยะไกล

ผู้ใช้ Windows สามารถทำงานได้ไม่เพียงแต่กับอินเทอร์เฟซของคอมพิวเตอร์ที่ Wireshark ใช้งานอยู่เท่านั้น แต่ยังบันทึกการรับส่งข้อมูลจากเครื่องระยะไกลอีกด้วย มีบริการพิเศษสำหรับสิ่งนี้ (Remote Packet Capture Protocol) ที่รวมอยู่ในไลบรารี WinPcap จะต้องเปิดใช้งานก่อนในสแนปอินการจัดการบริการ (services.msc) เมื่อเปิดตัว Wireshark บนคอมพิวเตอร์ระยะไกลแล้ว คุณสามารถเชื่อมต่อกับโหนดที่ใช้บริการสกัดกั้นการรับส่งข้อมูลระยะไกลทำงานอยู่ (โดยใช้พอร์ต 2002 เป็นค่าเริ่มต้น) และข้อมูลจะไหลถึงคุณผ่านโปรโตคอล RPCAP

ฉันจะให้ตัวเลือกในการเชื่อมต่อกับเราเตอร์ *nix “จากภายนอก” ที่บ้านของคุณสำหรับการวิเคราะห์การรับส่งข้อมูลระยะไกล:

$ssh [ป้องกันอีเมล]"tshark -f "พอร์ต !22" -i ใด ๆ -w -" | wireshark -k -i - $ssh [ป้องกันอีเมล] tcpdump -U -s0 -w - "ไม่ใช่พอร์ต 22" | wireshark -k -i -

ต้องมีเครื่องมือ

Wireshark เป็นเครื่องมือที่รู้จักกันดีในการสกัดกั้นและวิเคราะห์การรับส่งข้อมูลเครือข่ายแบบโต้ตอบ และเป็นมาตรฐานที่แท้จริงสำหรับอุตสาหกรรมและการศึกษา เผยแพร่ภายใต้ลิขสิทธิ์ GNU GPLv2 Wireshark ทำงานร่วมกับโปรโตคอลที่เป็นที่รู้จักส่วนใหญ่ มีอินเทอร์เฟซผู้ใช้แบบกราฟิกที่ใช้ GTK+ ระบบตัวกรองการรับส่งข้อมูลที่ทรงพลัง และล่าม Lua ในตัวสำหรับการสร้างตัวถอดรหัสและตัวจัดการเหตุการณ์

ดึงข้อมูลเพย์โหลด

ในบางแวดวง เครื่องมือพิเศษเป็นที่รู้จักอย่างกว้างขวางซึ่งช่วยให้คุณสามารถ "ดึง" ออบเจ็กต์ข้อมูลสุดท้ายออกจากการรับส่งข้อมูล เช่น ไฟล์ รูปภาพ เนื้อหาวิดีโอและเสียง ฯลฯ ต้องขอบคุณระบบย่อยการวิเคราะห์ที่ทรงพลัง Wireshark จึงครอบคลุมฟังก์ชันการทำงานนี้มากกว่า ดังนั้น ให้มองหาปุ่ม “บันทึก Payload...” ในหน้าต่างการวิเคราะห์ที่เกี่ยวข้อง

บทสรุป

เมื่อเทียบกับฉากหลังของความหลงใหลทั่วไปของคอมพิวเตอร์ใต้ดินที่มีความปลอดภัยของแอปพลิเคชันเครือข่าย ปัญหาใหญ่ระดับล่างจะค่อยๆ จางหายไปในพื้นหลัง เป็นที่ชัดเจนว่าชั้นเครือข่ายและการขนส่งได้รับการศึกษาและวิจัยอย่างกว้างขวาง แต่ปัญหาก็คือผู้เชี่ยวชาญที่เติบโตมากับ SQL inserts, cross-site scripting และ inclusions ไม่ได้ตระหนักถึงเลเยอร์ขนาดใหญ่ที่ซ่อนอยู่ใต้ปลายภูเขาน้ำแข็ง และมักจะยอมจำนนต่อปัญหาที่ดูเหมือนเป็นเบื้องต้น

นักดมกลิ่นเช่นดีบักเกอร์และตัวแยกชิ้นส่วนจะแสดงรายละเอียดการทำงานของระบบอย่างละเอียด ด้วยการติดตั้ง Wireshark และทักษะเพียงเล็กน้อย คุณสามารถดูการโต้ตอบของเครือข่ายได้ในแบบที่เป็นอยู่ ในรูปแบบเปลือยเปล่าที่ไร้เดียงสา และตัวกรองจะช่วยคุณได้!

Wireshark เป็นเครื่องมือวิเคราะห์เครือข่ายที่ทรงพลังที่สามารถใช้เพื่อวิเคราะห์การรับส่งข้อมูลที่ส่งผ่านอินเทอร์เฟซเครือข่ายของคอมพิวเตอร์ของคุณ ซึ่งอาจจำเป็นในการตรวจจับและแก้ไขปัญหาเครือข่าย ดีบักแอปพลิเคชันเว็บ โปรแกรมเครือข่าย หรือไซต์ของคุณ Wireshark ช่วยให้คุณดูเนื้อหาของแพ็กเก็ตในทุกระดับได้อย่างสมบูรณ์ ดังนั้นคุณจึงสามารถเข้าใจวิธีการทำงานของเครือข่ายในระดับต่ำได้ดีขึ้น

แพ็กเก็ตทั้งหมดจะถูกบันทึกแบบเรียลไทม์และจัดเตรียมไว้ในรูปแบบที่อ่านง่าย โปรแกรมนี้รองรับระบบการกรองที่ทรงพลัง การเน้นสี และฟีเจอร์อื่น ๆ ที่จะช่วยคุณค้นหาแพ็คเกจที่เหมาะสม ในบทช่วยสอนนี้ เราจะดูวิธีใช้ Wireshark เพื่อวิเคราะห์การรับส่งข้อมูล เมื่อเร็ว ๆ นี้นักพัฒนาเริ่มทำงานใน Wireshark 2.0 สาขาที่สองซึ่งนำเสนอการเปลี่ยนแปลงและปรับปรุงมากมายโดยเฉพาะอินเทอร์เฟซ นี่คือสิ่งที่เราจะใช้ในบทความนี้

คุณสมบัติที่สำคัญของ Wireshark

ก่อนที่จะพิจารณาวิธีวิเคราะห์การรับส่งข้อมูล คุณต้องพิจารณารายละเอียดเพิ่มเติมว่าฟีเจอร์ใดที่โปรแกรมรองรับ โปรโตคอลใดบ้างที่โปรแกรมสามารถทำงานได้ และต้องทำอย่างไร นี่คือคุณสมบัติหลักของโปรแกรม:

  • จับแพ็กเก็ตแบบเรียลไทม์จากอินเทอร์เฟซเครือข่ายแบบมีสายหรือประเภทอื่นๆ ตลอดจนอ่านจากไฟล์
  • รองรับอินเทอร์เฟซการจับภาพต่อไปนี้: อีเธอร์เน็ต, IEEE 802.11, PPP และอินเทอร์เฟซเสมือนภายในเครื่อง
  • แพ็กเก็ตสามารถกรองออกตามพารามิเตอร์หลายตัวโดยใช้ตัวกรอง
  • โปรโตคอลที่รู้จักทั้งหมดจะถูกเน้นในรายการด้วยสีต่างๆ เช่น TCP, HTTP, FTP, DNS, ICMP และอื่นๆ
  • รองรับการรับส่งข้อมูลการโทร VoIP;
  • รองรับการถอดรหัสการรับส่งข้อมูล HTTPS หากมีใบรับรอง
  • การถอดรหัสการรับส่งข้อมูล WEP, WPA ของเครือข่ายไร้สายด้วยคีย์และการจับมือ
  • การแสดงสถิติการโหลดเครือข่าย
  • ดูเนื้อหาแพ็คเกจสำหรับเลเยอร์เครือข่ายทั้งหมด
  • แสดงเวลาในการส่งและรับพัสดุ

โปรแกรมนี้มีคุณสมบัติอื่น ๆ มากมาย แต่สิ่งเหล่านี้คือคุณสมบัติหลักที่คุณอาจสนใจ

วิธีการใช้งาน Wireshark

ฉันคิดว่าคุณได้ติดตั้งโปรแกรมไว้แล้ว แต่ถ้าไม่ คุณสามารถติดตั้งได้จากแหล่งเก็บข้อมูลอย่างเป็นทางการ เมื่อต้องการทำเช่นนี้ ให้พิมพ์คำสั่งใน Ubuntu:

$ sudo apt ติดตั้ง wireshark

หลังการติดตั้ง คุณจะพบโปรแกรมในเมนูหลักของการแจกจ่าย คุณต้องเรียกใช้ Wireshark ด้วยสิทธิ์ superuser เพราะไม่เช่นนั้นโปรแกรมจะไม่สามารถวิเคราะห์แพ็กเก็ตเครือข่ายได้ ซึ่งสามารถทำได้จากเมนูหลักหรือผ่านเทอร์มินัลโดยใช้คำสั่งสำหรับ KDE:

$ kdesu wireshark

และสำหรับ Gnome/Unity:

$gksu wireshark

หน้าต่างหลักของโปรแกรมแบ่งออกเป็นสามส่วน คอลัมน์แรกประกอบด้วยรายการอินเทอร์เฟซเครือข่ายที่พร้อมสำหรับการวิเคราะห์ คอลัมน์ที่สองประกอบด้วยตัวเลือกสำหรับการเปิดไฟล์ และคอลัมน์ที่สามประกอบด้วยวิธีใช้

การวิเคราะห์การรับส่งข้อมูลเครือข่าย

หากต้องการเริ่มการวิเคราะห์ ให้เลือกอินเทอร์เฟซเครือข่าย เช่น eth0 แล้วคลิกปุ่ม เริ่ม.

หลังจากนี้หน้าต่างต่อไปนี้จะเปิดขึ้นพร้อมกับสตรีมแพ็กเก็ตที่ผ่านอินเทอร์เฟซแล้ว หน้าต่างนี้ยังแบ่งออกเป็นหลายส่วน:

  • ส่วนบน- นี่คือเมนูและแผงควบคุมที่มีปุ่มต่างๆ
  • รายการแพ็คเกจ- จากนั้นโฟลว์ของแพ็กเก็ตเครือข่ายที่คุณจะวิเคราะห์จะปรากฏขึ้น
  • เนื้อหาแพ็คเกจ- ด้านล่างนี้คือเนื้อหาของแพ็คเกจที่เลือก โดยแบ่งออกเป็นหมวดหมู่ตามระดับการขนส่ง
  • ประสิทธิภาพที่แท้จริง- ที่ด้านล่างสุดเนื้อหาของแพ็คเกจจะแสดงในรูปแบบจริงและในรูปแบบ HEX

คุณสามารถคลิกที่แพ็คเกจใดก็ได้เพื่อวิเคราะห์เนื้อหา:

ที่นี่เราเห็นแพ็กเก็ตคำขอ DNS เพื่อรับที่อยู่ IP ของเว็บไซต์ โดเมนจะถูกส่งไปในคำขอนั้นเอง และในแพ็กเก็ตตอบกลับ เราได้รับคำถามของเราตลอดจนคำตอบ

เพื่อการดูที่สะดวกยิ่งขึ้น คุณสามารถเปิดแพ็คเกจในหน้าต่างใหม่ได้โดยดับเบิลคลิกที่รายการ:

ตัวกรอง Wireshark

ไม่สะดวกอย่างยิ่งในการจัดเรียงแพ็คเกจด้วยตนเองเพื่อค้นหาสิ่งที่คุณต้องการโดยเฉพาะกับเธรดที่ใช้งานอยู่ ดังนั้นสำหรับงานนี้ควรใช้ตัวกรองจะดีกว่า มีบรรทัดพิเศษใต้เมนูสำหรับป้อนตัวกรอง คุณสามารถคลิก Expression เพื่อเปิดตัวออกแบบตัวกรองได้ แต่มีหลายอย่าง ดังนั้นเราจะดูที่พื้นฐานที่สุด:

  • ไอพี.dst- ที่อยู่ IP เป้าหมาย
  • ไอพี.src- ที่อยู่ IP ของผู้ส่ง
  • ip.addr- IP ของผู้ส่งหรือผู้รับ
  • ไอพี.โปรโต- โปรโตคอล;
  • tcp.dstport- ท่าเรือปลายทาง
  • tcp.srcport- พอร์ตผู้ส่ง
  • ip.ttl- ตัวกรอง TTL กำหนดระยะทางเครือข่าย
  • http.request_uri- ที่อยู่เว็บไซต์ที่ร้องขอ

หากต้องการระบุความสัมพันธ์ระหว่างเขตข้อมูลและค่าในตัวกรอง คุณสามารถใช้ตัวดำเนินการต่อไปนี้:

  • == - เท่ากับ;
  • != - ไม่เท่ากัน;
  • < - น้อย;
  • > - มากกว่า;
  • <= - น้อยกว่าหรือเท่ากับ
  • >= - มากกว่าหรือเท่ากับ;
  • ไม้ขีด- การแสดงออกปกติ;
  • ประกอบด้วย- ประกอบด้วย.

หากต้องการรวมหลายนิพจน์ คุณสามารถใช้:

  • && - ทั้งสองนิพจน์จะต้องเป็นจริงสำหรับแพ็คเกจ
  • || - สำนวนใดคำหนึ่งอาจเป็นจริง

ตอนนี้เรามาดูตัวกรองต่างๆ อย่างละเอียดยิ่งขึ้นโดยใช้ตัวอย่าง และลองพิจารณาสัญญาณความสัมพันธ์ทั้งหมด

ก่อนอื่น มากรองแพ็กเก็ตทั้งหมดที่ส่งไปที่ 194.67.215.125 (losst.ru) ป้อนสตริงในช่องตัวกรองแล้วคลิก นำมาใช้- เพื่อความสะดวก สามารถบันทึกตัวกรอง wireshark ได้โดยใช้ปุ่ม บันทึก:

ip.dst == 194.67.215.125

และเพื่อที่จะรับไม่เพียงแต่แพ็กเก็ตที่ส่งเท่านั้น แต่ยังได้รับจากการตอบกลับจากโหนดนี้ด้วย คุณสามารถรวมเงื่อนไขสองข้อเข้าด้วยกัน:

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

เรายังสามารถเลือกไฟล์ขนาดใหญ่ที่ถ่ายโอนได้:

http.content_length > 5000

หลังจากกรองประเภทเนื้อหาแล้ว เราสามารถเลือกรูปภาพทั้งหมดที่ดาวน์โหลดมา เราจะวิเคราะห์การรับส่งข้อมูล wireshark แพ็กเก็ตที่มีคำว่า รูปภาพ:

http.content_type มีรูปภาพ

หากต้องการล้างตัวกรองคุณสามารถกดปุ่มได้ ชัดเจน- มันเกิดขึ้นว่าคุณไม่ได้รู้ข้อมูลทั้งหมดที่จำเป็นสำหรับการกรองเสมอไป แต่เพียงต้องการสำรวจเครือข่าย คุณสามารถเพิ่มฟิลด์ใดๆ ของแพ็คเกจเป็นคอลัมน์ และดูเนื้อหาในหน้าต่างทั่วไปสำหรับแต่ละแพ็คเกจได้

ตัวอย่างเช่น ฉันต้องการแสดง TTL (time to live) ของแพ็กเก็ตเป็นคอลัมน์ ในการดำเนินการนี้ ให้เปิดข้อมูลแพ็คเกจ ค้นหาช่องนี้ในส่วน IP จากนั้นเรียกเมนูบริบทแล้วเลือกตัวเลือก ใช้เป็นคอลัมน์:

คุณยังสามารถสร้างตัวกรองด้วยตนเองตามฟิลด์ที่ต้องการได้ เลือกฟิลด์ที่ต้องการและเรียกเมนูบริบทจากนั้นคลิก ใช้เป็นตัวกรองหรือ เตรียมเป็นตัวกรองจากนั้นเลือก เลือกแล้วเพื่อแสดงเฉพาะค่าที่เลือกหรือ ไม่ได้เลือกหากต้องการลบออก:

ฟิลด์ที่ระบุและค่าจะถูกนำไปใช้ หรือในกรณีที่สอง จะถูกแทรกลงในฟิลด์ตัวกรอง:

ด้วยวิธีนี้ คุณสามารถเพิ่มฟิลด์ของแพ็คเกจหรือคอลัมน์ใดๆ ลงในตัวกรองได้ นอกจากนี้ยังมีตัวเลือกนี้ในเมนูบริบท หากต้องการกรองโปรโตคอล คุณสามารถใช้เงื่อนไขที่ง่ายกว่าได้ ตัวอย่างเช่น มาวิเคราะห์การรับส่งข้อมูล Wireshark สำหรับโปรโตคอล HTTP และ DNS:

คุณสมบัติที่น่าสนใจอีกอย่างของโปรแกรมคือการใช้ Wireshark เพื่อติดตามเซสชันเฉพาะระหว่างคอมพิวเตอร์ของผู้ใช้และเซิร์ฟเวอร์ หากต้องการทำสิ่งนี้ ให้เปิดเมนูบริบทสำหรับแพ็คเกจแล้วเลือก ติดตามกระแส TCP.

จากนั้นหน้าต่างจะเปิดขึ้นซึ่งคุณจะพบข้อมูลทั้งหมดที่ถ่ายโอนระหว่างเซิร์ฟเวอร์และไคลเอนต์:

การวินิจฉัยปัญหา Wireshark

คุณอาจสงสัยว่าจะใช้ Wireshark 2 เพื่อตรวจจับปัญหาเครือข่ายได้อย่างไร ในการดำเนินการนี้จะมีปุ่มกลมอยู่ที่มุมซ้ายล่างของหน้าต่าง เมื่อคุณคลิก หน้าต่างจะเปิดขึ้น เครื่องมือของ Expet- Wireshark รวบรวมข้อความแสดงข้อผิดพลาดและปัญหาทั้งหมดบนเครือข่ายในนั้น:

หน้าต่างจะแบ่งออกเป็นแท็บต่างๆ เช่น ข้อผิดพลาด คำเตือน ประกาศ แชท โปรแกรมสามารถกรองและค้นหาปัญหาเครือข่ายมากมายและที่นี่คุณสามารถดูได้อย่างรวดเร็ว รองรับตัวกรอง Wireshark ที่นี่ด้วย

การวิเคราะห์การรับส่งข้อมูล Wireshark

คุณสามารถเข้าใจได้อย่างง่ายดายว่าผู้ใช้ดาวน์โหลดอะไรและไฟล์ใดบ้างที่พวกเขาดูหากการเชื่อมต่อไม่ได้เข้ารหัส โปรแกรมทำงานได้ดีมากในการแยกเนื้อหา

ในการดำเนินการนี้ คุณต้องหยุดการจับการจราจรโดยใช้สี่เหลี่ยมสีแดงบนแผงก่อน จากนั้นเปิดเมนู ไฟล์ -> ส่งออกวัตถุ -> HTTP:

นี่เป็นยูทิลิตี้ที่ทรงพลังมากซึ่งมีฟังก์ชั่นมากมาย เป็นไปไม่ได้ที่จะรวมฟังก์ชั่นทั้งหมดไว้ในบทความเดียว แต่ข้อมูลพื้นฐานที่ให้ไว้ที่นี่จะเพียงพอสำหรับคุณที่จะเชี่ยวชาญทุกสิ่งที่คุณต้องการด้วยตัวเอง

  1. ในบทความนี้ ฉันจะบอกวิธีดักจับแพ็กเก็ตที่ส่งไปยังอินเทอร์เน็ตผ่านเครือข่ายท้องถิ่น คุณจะทราบที่อยู่ "ip" "Mac" ที่แพ็กเก็ตไป รวมถึงจำนวนแฮชของแพ็กเก็ตและข้อมูลที่เป็นประโยชน์อื่น ๆ อีกมากมาย ฉันจะไม่อธิบายว่าอะไรและทำไม ฉันจะให้ทักษะแรกแก่คุณเท่านั้น วิธีจับแพ็คเกจและกรองแพ็คเกจที่เราต้องการจากรายการ ดาวน์โหลดโปรแกรม Wireshark ที่มีขนาดบิตสำหรับระบบของคุณ การติดตั้งไม่มีอะไรยากดังนั้นฉันจะไม่อธิบาย สิ่งเดียวที่ไม่ควรพลาดช่องทำเครื่องหมาย "WinPcap" จะต้องติดตั้งด้วยความช่วยเหลือนี้คุณสามารถค้นหาข้อมูลมากมายจากที่อยู่ Mac และอื่น ๆ ติดตั้งและเปิดโปรแกรมครั้งแรก:
  2. หน้าต่างแรกคือตำแหน่งที่คุณต้องเลือกอะแดปเตอร์เครือข่ายที่จะจับแพ็กเก็ต 1.) ใต้หมายเลขให้เลือกอะแดปเตอร์และสูงกว่าเล็กน้อยใต้หมายเลข 2) คลิก "เริ่ม"
  3. แพ็กเก็ตทั้งหมดที่ผ่านอะแดปเตอร์ที่เลือกจะถูกดักจับและแสดง คุณสามารถตั้งค่าตัวกรองที่จะแสดงแพ็กเก็ตที่คุณต้องการจาก "IP" หรือ "Mac" ที่คุณต้องการ เลือกแพ็คเกจที่ต้องการ คลิกขวา เลือก "ใช้เป็นตัวกรอง" ในเมนูบริบท จากนั้นเลือก "เลือก" ในเมนูบริบทถัดไป ภาพตัวอย่างด้านล่าง. หน้าต่างที่มีแพ็กเก็ตที่บันทึกไว้และแพ็กเก็ตที่ไฮไลต์สีน้ำเงินซึ่งตัวกรองจะทำงาน
  4. หลังจากที่คุณกำหนดค่าตัวกรองแล้ว คุณจะเห็นเฉพาะแพ็คเกจที่คุณสนใจเท่านั้น เมื่อเลือกแพ็คเกจที่คุณต้องการ ข้อมูลทั้งหมดจะพร้อมให้คุณดูด้านล่าง ที่ไหน ใคร และทำไม ขอสรุปสั้นๆ อย่างนี้
  5. ฉันได้ทำคำอธิบายของแผงด้านบนด้านล่าง รูปภาพด้านล่างคำอธิบาย
  6. 1.) คุณสามารถเลือกอะแดปเตอร์อื่นได้
  7. 2.) พูดง่ายๆ ก็คือ ทั้งหมดในที่เดียว คุณสามารถเปลี่ยนอะแดปเตอร์ ตั้งค่าตัวกรอง บันทึกเป็นไฟล์ บันทึกเป็นไฟล์ที่มีอยู่ (เพิ่ม) เปิดไฟล์ได้
  8. 3.) เริ่มการจับแพ็คเก็ต
  9. 4.)หยุดการจับแพ็กเก็ต
  10. 5.) เริ่มการจับภาพใหม่
  11. 6.) เปิดไฟล์ด้วยแพ็คเกจที่มีอยู่
  12. 7.) บันทึกแพ็กเก็ตที่บันทึกไว้เป็นไฟล์
  13. 8.)ปิดหน้าต่างการจับแพ็คเก็ต พร้อมท์ให้บันทึกหรือออกโดยไม่บันทึก
  14. 9.) โหลดไฟล์ที่เปิดใหม่พร้อมแพ็คเกจ
  15. 10.) ค้นหาแพ็คเกจที่คุณต้องการ
  16. 11.)กลับไปที่แพ็คเกจที่บันทึกไว้ ไปที่หน้าต่างพร้อมแพ็คเกจ
  17. 12.) เช่นเดียวกับ 10.) ตัวเลือกการส่งต่อเท่านั้น เช่นเดียวกับในเบราว์เซอร์ เลื่อนหน้า ถอยหน้า
  18. 13.)ไปที่แพ็คเกจที่ระบุตามหมายเลขลำดับแพ็คเกจ
  19. 14.) ไปที่ด้านบนสุดของฟิลด์พร้อมแพ็คเกจไปที่อันแรก
  20. 15.) ไปที่แพ็คเกจล่าสุดไปที่ด้านล่างสุด
  21. 16.) ไฮไลท์แพ็คเกจด้วยสีตามที่กำหนดในการตั้งค่าของแต่ละแพ็คเกจ
  22. 17.) เลื่อนเส้นด้วยถุงเมื่อเต็มแล้ว เมื่อมีแพ็คเกจใหม่ให้แสดงแพ็คเกจใหม่
  23. 18.) เพิ่มบรรทัดด้วยแพ็คเกจ
  24. 19.)ลดเส้น "ซูม"
  25. 20.) ทำให้เส้นเพิ่มขึ้น 100%
  26. 21.) หากคุณย้ายคอลัมน์เย็บออกจากกัน ทำให้กว้างขึ้นหรือแคบลง ตัวเลือกนี้จะคืนทุกอย่างกลับเป็นค่าเริ่มต้น
  27. 22.) เมื่อใช้ตัวกรอง คุณสามารถเลือกตัวกรองที่นำเสนอแล้วหรือเขียนตัวกรองของคุณเองได้ เพิ่มของคุณ
  28. 23.) เกือบจะเหมือนกับย่อหน้า 21.)
  29. 24.)ที่นี่คุณสามารถเลือกสีสำหรับแต่ละแพ็คเกจแยกกันได้ ในบรรทัดคุณจะพบสีที่คุณต้องการได้ง่ายขึ้น
  30. 25.) การตั้งค่าโปรแกรมเอง
  31. 26.) ความช่วยเหลือเกี่ยวกับโปรแกรม
  32. อย่างที่คุณเห็นโปรแกรมไม่ได้ซับซ้อน ในบางประเทศเป็นสิ่งต้องห้าม ใช้จนกว่าจะถูกห้ามในรัสเซีย หากคิดให้รอบคอบก็สามารถเน้นย้ำถึงประโยชน์ของโปรแกรมนี้ได้มาก

Wireshark เป็นเครื่องมือจับภาพที่ค่อนข้างเป็นที่รู้จัก และในความเป็นจริงแล้ว เป็นมาตรฐานสำหรับทั้งการศึกษาและการแก้ไขปัญหา Wireshark ทำงานร่วมกับโปรโตคอลที่รู้จักส่วนใหญ่ มีอินเทอร์เฟซแบบกราฟิกที่ชัดเจนและสมเหตุสมผล จีทีเค+และระบบกรองอันทรงพลัง ข้ามแพลตฟอร์ม ทำงานใน OS เช่น ลินุกซ์, โซลาริส, FreeBSD, NetBSD, OpenBSD, Mac OS X,และแน่นอนว่า Windows เผยแพร่ภายใต้ใบอนุญาต GNU GPL เวอร์ชัน 2มีให้บริการฟรีที่ wireshark.org

การติดตั้งบนระบบ Windows นั้นไม่สำคัญ - ถัดไป ถัดไป ถัดไป เวอร์ชันล่าสุดในขณะที่เขียนคือ 1.10.3 ซึ่งจะรวมอยู่ในการตรวจสอบ

เหตุใดเราจึงต้องมีแพ็คเก็ตดมกลิ่นเลย?

เพื่อทำการวิจัยแอพพลิเคชั่นและโปรโตคอลเครือข่ายรวมทั้งค้นหาปัญหาในการทำงานของเครือข่ายและที่สำคัญคือค้นหาสาเหตุของปัญหาเหล่านี้

เห็นได้ชัดว่าเพื่อที่จะใช้ประโยชน์สูงสุดจากการดมกลิ่นหรือเครื่องมือวิเคราะห์การรับส่งข้อมูล อย่างน้อยคุณต้องมีความรู้ทั่วไปและความเข้าใจเกี่ยวกับวิธีการทำงานของเครือข่ายและโปรโตคอลเครือข่าย ฉันขอเตือนคุณด้วยว่าในหลายประเทศ การใช้การดมกลิ่นโดยไม่ได้รับอนุญาตอย่างชัดแจ้งถือเป็นอาชญากรรม

มาเริ่มว่ายน้ำกัน

หากต้องการเริ่มจับภาพ เพียงเลือกอินเทอร์เฟซเครือข่ายของคุณแล้วคลิกเริ่ม

หลังจากนั้นกระบวนการดักจับจะเริ่มขึ้น และแพ็กเก็ตที่มาถึงจะปรากฏขึ้นแบบเรียลไทม์ ในกระบวนการตรวจสอบและศึกษาแพ็คเกจมีสถานการณ์ที่คุณต้องกลับไปใช้แพ็คเกจก่อนหน้า มีสองปุ่มสำหรับสิ่งนี้ (ดูภาพหน้าจอ)

และปุ่มที่ตามมาจะช่วยให้คุณนำทางไปยังแพ็คเกจได้อย่างรวดเร็วโดยระบุหมายเลขของมัน

หากคอลัมน์ซ้อนทับกันและคืบคลานเข้าหากัน คุณสามารถคลิกขวาที่คอลัมน์ดังกล่าวแล้วเลือกได้ “ปรับขนาดคอลัมน์”. ขนาดจะถูกปรับให้เข้ากับสถานการณ์ปัจจุบันโดยอัตโนมัติ และนอกจากนั้นก็ยังมีปุ่ม “ปรับขนาดคอลัมน์ทั้งหมด”, ซึ่งจะทำให้ทุกคอลัมน์เป็นระเบียบ

การใช้เมนู ดู – รูปแบบการแสดงเวลา, ตัวอย่างเช่น คุณสามารถกำหนดค่าการนับถอยหลังเวลาไม่ได้ตั้งแต่จุดเริ่มต้นของการจับ แต่จากช่วงเวลาที่ได้รับแพ็กเก็ตก่อนหน้า ( ตั้งแต่แพ็กเก็ตที่ถูกจับก่อนหน้านี้ - สิ่งที่สำคัญที่สุดในทุกโปรแกรม ( ช่วยเหลือ – เกี่ยวกับ Wireshark ) จะแสดงไม่เพียงแต่เวอร์ชันและรายชื่อผู้แต่งเท่านั้น แต่ยังมีบุ๊กมาร์กอีกด้วย โฟลเดอร์ ซึ่งจะแสดงเส้นทางไปยังไดเร็กทอรีการกำหนดค่า

ในขณะที่ศึกษาอินเทอร์เฟซ คุณสามารถเลือกได้ เช่น แพ็คเกจ httpและเห็นสิ่งนั้น HTTPห่อหุ้มอยู่ใน TCP (เลเยอร์การขนส่ง),TCP ถูกห่อหุ้มอยู่ใน IP (ชั้นเครือข่าย)และในทางกลับกัน IP ก็ถูกห่อหุ้มไว้ในอีเธอร์เน็ต (802.1Q ยังกะพริบก่อนหน้านี้ด้วยซ้ำ)

และที่ด้านบนสุดจะมีภาพรวมเล็กๆ น้อยๆ ของข้อมูลที่รวบรวมไว้เกี่ยวกับเฟรม

เราจะพูดถึงตัวกรองในภายหลัง แต่ในขั้นตอนนี้ หากคุณต้องการกรองแพ็กเก็ตที่ไม่จำเป็นออกอย่างรวดเร็ว เพียงคลิกขวาที่แพ็กเก็ตแล้วเลือกเมนู ใช้เป็นตัวกรอง – ไม่ได้เลือก และการเปลี่ยนแปลงจะมีผลทันที หากคุณต้องการลบอย่างอื่น ให้เลือกครั้งถัดไป “และไม่ได้เลือก” และกฎใหม่จะถูกเพิ่มลงในตัวกรอง

การลบเสี้ยน

บ่อยครั้งเมื่อทำงานกับ Wireshark มีข้อผิดพลาดเกิดขึ้น ออฟโหลดการตรวจสอบ IP– ข้อผิดพลาดการตรวจสอบส่วนหัวของแพ็คเก็ต IP

การ์ดเครือข่ายสมัยใหม่ฉลาดมากจนคำนวณเช็คซัมด้วยตัวเอง ทำไมจึงทำเช่นนี้ที่ระดับสแต็ก TCP/IP ในซอฟต์แวร์ ถ้าคุณสามารถทำได้ในฮาร์ดแวร์ และ Wireshark จะดักจับแพ็กเก็ตก่อนที่จะเข้าถึงเครือข่าย และก่อนที่จะมีการคำนวณและเพิ่มจำนวนนี้ลงในส่วนหัวของแพ็คเก็ต ดังนั้นจึงมีสองวิธีในการแก้ปัญหานี้ - ปิดฟังก์ชันออฟโหลดในการตั้งค่าการ์ดเครือข่ายหรือในการตั้งค่า ดมกลิ่นบ่งชี้ว่าเขาไม่ควรใส่ใจกับคุณค่านี้

ฟังก์ชั่นของฮาร์ดแวร์มักจะดีกว่าซอฟต์แวร์ สาเหตุหลักมาจากความเร็วในการประมวลผล (โดยปกติแล้วฮาร์ดแวร์จะสูงกว่า) ดังนั้นจึงเป็นการดีกว่าที่จะเปลี่ยนการตั้งค่าของตัวดมกลิ่นเอง ในการดำเนินการนี้คุณต้องไปที่การตั้งค่า ( แก้ไข - การตั้งค่า ), แล้ว โปรโตคอล – IPv4- และนำธงออกจาก “ตรวจสอบการตรวจสอบ IPv4 ถ้าเป็นไปได้”.

ก่อนที่คุณจะบันทึกปริมาณการเข้าชม คุณต้องตัดสินใจว่าคุณต้องการจับภาพอะไรจริงๆ คุณสามารถวางเครื่องวิเคราะห์การรับส่งข้อมูลได้หลายตำแหน่ง:

  • ภายในโฮสต์ของคุณ
  • จัดระเบียบการสะท้อนการจราจรบนสวิตช์
  • เชื่อมต่อโดยตรงกับสถานที่ที่น่าสนใจ
  • หรือพิษ ARP (ผิดกฎหมายมากกว่าการดักฟังเฉยๆ)

การกรองกระแส

Wireshark มีตัวกรองสองประเภท - การจับภาพ (จับตัวกรอง) และแสดงผล (ตัวกรองการแสดงผล).
ก่อนอื่นเรามาดูกันดีกว่า จับตัวกรอง.
ตามที่คุณสามารถเดาได้จากชื่อ พวกมันทำหน้าที่กรองแม้ในขั้นตอนของการจับปริมาณข้อมูล แต่ในกรณีนี้ คุณสามารถสูญเสียการรับส่งข้อมูลที่จำเป็นบางส่วนอย่างถาวรได้

ตัวกรองคือนิพจน์ที่ประกอบด้วยค่าในตัวที่สามารถรวมกับฟังก์ชันลอจิคัล (และหรือไม่ใช่) หากจำเป็น หากต้องการใช้งานคุณต้องไปที่เมนู การจับกุม, แล้ว ตัวเลือก และในสนาม กรองการจับภาพ ประเภท เช่น โฮสต์ 8.8.8.8 (หรือตัวอย่างเช่น สุทธิ 192.168.0.0./24 )

แน่นอนคุณสามารถเลือกตัวกรองที่สร้างไว้ล่วงหน้าได้ (ปุ่มนี้มีหน้าที่รับผิดชอบในเรื่องนี้ กรองการจับภาพ- ในตัวเลือกใดๆ ตัวกรองจะปรากฏขึ้นใกล้กับอินเทอร์เฟซ คุณสามารถกดเริ่มได้ ตอนนี้เรามาดูกันดีกว่า ตัวกรองการแสดงผล- โดยจะกรองปริมาณการเข้าชมที่บันทึกไว้แล้วโดยเฉพาะ

คุณสามารถกรองอะไรได้บ้าง?

เกือบทุกอย่าง - โปรโตคอล ที่อยู่ ฟิลด์เฉพาะในโปรโตคอล
การดำเนินการที่สามารถใช้ได้เมื่อสร้างตัวกรอง:

ดังที่คุณคงสังเกตเห็นว่าในตารางมีสำนวนต่างๆ เป็นตัวอย่าง ซึ่งค่อนข้างเข้าใจได้และมักจะพูดเพื่อตัวเอง ตัวอย่างเช่น ip.dst– นี่คือฟิลด์โปรโตคอล IP

หากต้องการดูฟิลด์นี้ คุณสามารถดูแพ็คเกจได้ และที่ด้านล่างของหน้าต่างคุณจะเห็นค่าของมัน ซึ่งสามารถนำไปใช้กับตัวกรองใดก็ได้ ตัวอย่างเช่น เราสนใจที่จะสร้างตัวกรองที่จะตรวจสอบค่า ทีทีแอล.
เพื่อทำเช่นนี้เราเปิดเผย L3แยกส่วนและยืนอยู่บนสนามที่เกี่ยวข้อง:

และเราเห็นว่าในการสร้างตัวกรอง คุณต้องใช้นิพจน์ ip.ttlหากคุณเริ่มพิมพ์ตัวกรอง รายการค่าที่เป็นไปได้จะปรากฏขึ้นโดยอัตโนมัติหลังจุด:

หากต้องการใช้ตัวกรอง เพียงกด Enter หรือปุ่ม Apply ช่องป้อนข้อมูลตัวกรองสามารถเปลี่ยนสีได้ขึ้นอยู่กับสิ่งที่พิมพ์

สีเขียวหมายถึงทุกอย่างเรียบร้อยดี สีแดง - เกิดข้อผิดพลาด สีเหลือง - ได้รับผลลัพธ์ที่ไม่คาดคิด เนื่องจากมีตัวเลือกอื่นในการเขียนตัวกรอง (เช่น คุณสามารถเขียนได้ ip.dst != 8.8.8.8 หรือ !ip.dst == 8.8.8.8 เป็นตัวเลือกที่สองที่เหมาะกว่า) สามารถบันทึกตัวกรองเพื่อใช้ในภายหลังได้โดยคลิกที่ปุ่ม บันทึกจากนั้นป้อนชื่อที่กำหนดเอง

และหลังจากคลิกที่ปุ่ม OK ตัวกรองจะปรากฏเป็นปุ่มบนแผง

และหากคุณคลิกที่ปุ่ม "นิพจน์..." ที่อยู่ใกล้เคียง ตัวสร้างนิพจน์ที่ทรงพลังพอสมควรจะเปิดขึ้น ซึ่งคุณเกือบจะสามารถศึกษาโปรโตคอลเครือข่ายได้ จำนวนโปรโตคอลที่รองรับเพิ่มขึ้นอย่างต่อเนื่อง

ตามที่กล่าวไว้ก่อนหน้านี้ คุณสามารถเลือกแพ็คเกจใดก็ได้และเลือกจากเมนูบริบท ใช้เป็นตัวกรอง และเลือกโหมดในเมนูย่อย - เลือกแล้ว หรือ ไม่ได้เลือก ดังนั้นตัวกรองจะปรากฏขึ้นทันทีโดยจะแสดงเฉพาะตัวกรองที่เลือกหรือลบตัวกรองที่เลือกออกจากหน้าจอ ด้วยวิธีนี้คุณสามารถเลือกได้อย่างยืดหยุ่นว่าจะดูอะไรบนหน้าจอและอะไรไม่เห็น นี่อาจจะแน่นอน ที่อยู่ IP, TTL,ท่าเรือ, DNSคำตอบและอีกมากมาย นอกจากนี้ มีสองตัวเลือกสำหรับตัวกรองด่วนดังกล่าว - เตรียมเป็นตัวกรองและ ใช้เป็นตัวกรอง

ตามที่คุณสามารถเดาได้จากชื่อ ความแตกต่างก็คือในกรณีแรกจะปรากฏเฉพาะในช่องป้อนข้อมูลเท่านั้น ตัวกรองการแสดงผลแต่จะไม่ถูกนำมาใช้ (สะดวกหากคุณเพิ่มตัวกรองหลายตัวด้วยวิธีนี้แล้วใช้ผลลัพธ์ที่เสร็จสิ้นทันที) และในตัวกรองที่สองจะถูกนำไปใช้ทันที

ตัวกรองสามารถรวมกันได้โดยใช้การดำเนินการเชิงตรรกะที่คุ้นเคยจากพีชคณิตบูลีน: (dns) && (http)ตรรกะและ (dns) || (http)มันเป็นตรรกะหรือ

วิธีนี้คุณสามารถสร้างตัวกรองขนาดใหญ่และซับซ้อนได้ เช่น: (tcp.flags.syn==1) && (ip.src == 172.16.10.2) && (ip.dst == 172.16.10.1)ที่นี่เราเห็นเท่านั้น TCP SYNเซ็กเมนต์เฉพาะกับที่อยู่ผู้ส่งและผู้รับที่ระบุเท่านั้น เมื่อเขียนตัวกรองขนาดใหญ่ คุณต้องจำไว้ว่าโดยพื้นฐานแล้วตัวกรองนั้นเป็นนิพจน์เชิงตรรกะ และหากเป็นจริง แพ็กเก็ตจะแสดงบนหน้าจอ หากเป็นเท็จ ก็จะไม่เป็นเช่นนั้น

มาดำดิ่งลึกลงไปกันดีกว่า

เป็นสถานการณ์ที่ค่อนข้างบ่อยเมื่อมีการร้องเรียนเกี่ยวกับการทำงานของเครือข่ายที่ช้า อาจมีสาเหตุหลายประการ ลองหาสาเหตุและพิจารณาสองวิธี ประการแรกคือการเพิ่มคอลัมน์ TCP เดลต้า.

เปิดแพ็คเกจค้นหาสนาม เวลาตั้งแต่เฟรมก่อนหน้าในเฟรม TCP นี้, คลิกขวาและเลือก ใช้เป็นคอลัมน์. คอลัมน์ใหม่จะปรากฏขึ้น คุณสามารถคลิกขวาแล้วเลือกโหมดการเรียงลำดับได้ เช่น เรียงลำดับจากมากไปน้อย.

และลองพิจารณาวิธีที่สองทันที

เมื่อเร็ว ๆ นี้ (ในเวอร์ชัน 1.10.0) มีตัวกรองปรากฏขึ้น tcp.time_delta,ซึ่งอันที่จริงแล้วจะคำนึงถึงเวลาตั้งแต่คำขอครั้งล่าสุดด้วย

หากไคลเอ็นต์ส่งคำขอและได้รับการตอบกลับภายใน 10 มิลลิวินาที และไคลเอ็นต์บอกว่าทุกอย่างทำงานช้าสำหรับเขา แสดงว่าตัวไคลเอ็นต์เองอาจมีปัญหา
หากไคลเอนต์ส่งคำขอและได้รับการตอบกลับภายใน 2-3 วินาที ปัญหาอาจอยู่ที่เครือข่าย

ยิ่งลึกลงไปอีก

หากคุณดูแพ็กเก็ต TCP (หรือเซ็กเมนต์ให้ชัดเจน) คุณจะเห็นได้ที่นั่น ดัชนีสตรีม ซึ่งมักจะเริ่มต้นจากศูนย์ สนามนั้นจะถูกเรียกว่า tcp.สตรีม

คุณสามารถคลิกขวาและสร้างตัวกรองได้

วิธีนี้ทำให้คุณสามารถกรองการเชื่อมต่อที่คุณต้องการได้

อีกวิธีหนึ่งคือการคลิกขวาที่แพ็คเกจเลือก ตัวกรองการสนทนาและสร้างตัวกรองระดับ l2 l3 l4 ตามลำดับ

ด้วยเหตุนี้เราจะได้เห็นปฏิสัมพันธ์ของทั้งสองเจ้าภาพอีกครั้ง

และตัวเลือกที่สามคือหนึ่งในคุณสมบัติที่น่าสนใจที่สุด - ติดตามกระแส TCP- ในการใช้งานคุณจะต้องคลิกขวาที่แพ็คเกจอีกครั้งแล้วเลือก “ติดตามสตรีม TCP”. หน้าต่างจะปรากฏขึ้นโดยจะแสดงการแลกเปลี่ยนทั้งหมดระหว่างสองโหนดอย่างชัดเจน

หากเข้าไปที่เมนู สถิติ – การสนทนาจากนั้นโดยการเลือกบุ๊กมาร์ก คุณสามารถดูสถิติเกี่ยวกับ "การสนทนา" และเซสชันต่างๆ และคุณสามารถจัดเรียงตามคอลัมน์ต่างๆ เช่น ตามจำนวนข้อมูลที่ถ่ายโอน

และในหน้าต่างนี้คุณสามารถคลิกขวาที่เมนูบริบทแล้วใช้เป็นตัวกรองอีกครั้ง

เมื่อเวลาผ่านไปประสบการณ์

หลังจากใช้เวลาจับตาดูการจราจรต่างๆ สักพัก คุณจะสังเกตเห็นปุ่มทรงกลมบางประเภทที่มุมซ้ายล่าง ซึ่งบางครั้งก็เปลี่ยนสีได้

การคลิกปุ่มนี้จะเป็นการเปิดหน้าต่าง ข้อมูลผู้เชี่ยวชาญ - คุณสามารถบรรลุผลลัพธ์เดียวกันได้โดยไปที่เมนู nalyze – ข้อมูลผู้เชี่ยวชาญ .

หน้าต่างนี้จะมีข้อมูลเกี่ยวกับแพ็คเกจที่พบ โดยแบ่งออกเป็นกลุ่ม Errors, Warnings, Notes และ Chats โทนสีสำหรับกลุ่มเหล่านี้มีดังนี้:
ข้อผิดพลาด- สีแดง
คำเตือน - สีเหลือง
หมายเหตุ- น้ำเงินเขียว (cyan)
แชท- สีเทา

Wireshark มีเครื่องวิเคราะห์ที่ทรงพลังและสามารถตรวจจับปัญหาจำนวนมากที่เกิดขึ้นบนเครือข่ายได้โดยอัตโนมัติ ดังที่คุณอาจสังเกตเห็นแล้ว คุณสามารถใช้ตัวกรองได้ทุกที่อย่างแท้จริง ข้อมูลผู้เชี่ยวชาญก็ไม่มีข้อยกเว้น ในการสร้างตัวกรองคุณต้องใช้โครงสร้าง ผู้เชี่ยวชาญความรุนแรง. ตัวอย่างเช่น, ผู้เชี่ยวชาญความรุนแรง==ข้อผิดพลาด.

เราปล้นการจราจร!

เป็นไปได้ไหมที่จะใช้ Wireshark เพื่อค้นหาอะไรเคยเป็น ดาวน์โหลดแล้วเหรอ?

ใช่คุณสามารถ และตอนนี้เราจะได้เห็นมัน ก่อนอื่น เรามาเริ่มการรับส่งข้อมูล HTTP คลิกขวาที่แพ็กเก็ต HTTP - การตั้งค่าโปรโตคอล– และเราเห็นตัวเลือกมากมายที่นี่ซึ่งส่งผลโดยตรงต่อการแยกไฟล์จากการเข้าชมเว็บ หากต้องการดูว่าสามารถดึงข้อมูลใดออกจากดัมพ์ปัจจุบันได้ คุณต้องไปที่เมนู ไฟล์ - ส่งออกวัตถุ - HTTP.

หน้าต่างจะปรากฏขึ้นซึ่งจะแสดงวัตถุ http ที่บันทึกไว้ทั้งหมด - ไฟล์ข้อความ รูปภาพ ฯลฯ หากต้องการแยกไฟล์ออกจากรายการนี้ เพียงเลือกไฟล์แล้วคลิกบันทึกเป็น

อย่างที่คุณเห็น ภาพวาดถูกดึงออกมาโดยไม่มีปัญหาใดๆ

ในทำนองเดียวกัน คุณสามารถแยกวิดีโอ/เสียงสตรีมมิ่งได้

แต่ความสามารถของ Wireshark ไม่ได้จบเพียงแค่นั้น!

นอกจากนี้ยังสามารถแตกไฟล์จากโปรโตคอล FTP ได้อีกด้วย ในการดำเนินการนี้ คุณสามารถใช้ Follow TCP Stream ที่คุ้นเคยอยู่แล้วได้ ด้วยเหตุนี้ระบบจะแสดงเฉพาะการแลกเปลี่ยน FTP ซึ่งคุณจะต้องค้นหาบรรทัด RETR ซึ่งจริงๆ แล้วหมายถึงการถ่ายโอนไฟล์

วีโอไอพี

Wireshark มีคุณสมบัติในตัวหลายประการเพื่อทำงานร่วมกับเทคโนโลยีนี้ รองรับโปรโตคอลเสียงมากมาย - SIP, SDP, RTSP, H.323, RTCP, SRTP และอื่นๆ และแน่นอนว่าสามารถสกัดกั้นและบันทึกการรับส่งข้อมูลเสียงไว้ฟังในภายหลังได้

ฟังก์ชันนี้เหมาะสำหรับการแก้ไขปัญหาในเครือข่าย Voice over IP เมนู สถิติ - กราฟการไหล จะแสดงภาพที่ชัดเจนว่าการแลกเปลี่ยนแพ็กเก็ตทั้งหมดเกิดขึ้นได้อย่างไร

โดยทั่วไปแล้วจะเป็นทั้งเมนู โทรศัพท์สงวนไว้สำหรับการทำงานกับการรับส่งข้อมูลด้วยเสียง ตัวอย่างเช่น, ระบบโทรศัพท์ – RTP – แสดงสตรีมทั้งหมด จะแสดงรายละเอียดสิ่งที่เกิดขึ้นกับ RTP โดยเฉพาะความกระวนกระวายใจ (พารามิเตอร์ที่อาจมีความสำคัญที่สุดในเสียง) ซึ่งบางครั้งจะบ่งบอกถึงปัญหาทันที

คลิกที่ปุ่ม "วิเคราะห์"คุณสามารถเปิดหน้าต่างได้ การวิเคราะห์สตรีม RTP – และโดยการเลือกสตรีมที่นั่น คุณสามารถเล่นได้โดยใช้ปุ่มเครื่องเล่น ขั้นแรก หน้าต่างเครื่องเล่นจะเปิดขึ้น ซึ่งคุณต้องตั้งค่าความกระวนกระวายใจที่เหมาะสมก่อน และใช้ปุ่มถอดรหัส

สิ่งที่คล้ายกับเครื่องวิเคราะห์สเปกตรัมจะปรากฏขึ้นซึ่งคุณสามารถทำเครื่องหมายการสนทนาที่ต้องการได้จากนั้นปุ่มเล่นจะเปิดใช้งาน

นอกจากนี้ยังมีวิธีอื่นในการฟังการโทร - คุณสามารถไปที่เมนูได้ โทรศัพท์ – การโทร VoIP.

หน้าต่างจะเปิดขึ้นพร้อมรายการการโทรที่เสร็จสิ้นซึ่งคุณสามารถกดปุ่มเครื่องเล่นอีกครั้งยกเลิกการสนทนาที่จำเป็นด้วยช่องทำเครื่องหมายแล้วกดเล่น เพื่อให้ได้คุณภาพเสียงที่ยอมรับได้ คุณจะต้องเล่นกับค่าของฟิลด์บัฟเฟอร์ jitter โดยเปลี่ยนค่าของมัน

การพักผ่อนเล็กๆ

เมื่อไม่นานมานี้ เว็บไซต์ CloudShark.org ก็ได้ปรากฏขึ้น

นี่เป็นการดมกลิ่น Wireshark แบบเดียวกัน แต่นำไปใช้เป็นบริการออนไลน์ แน่นอนว่ามันเป็นไปไม่ได้ที่จะจับการรับส่งข้อมูลเครือข่ายด้วยความช่วยเหลือ แต่ค่อนข้างเป็นไปได้ที่จะวิเคราะห์การถ่ายโอนข้อมูลการรับส่งข้อมูล ด้วยการอัปโหลดไฟล์ PCAP ผ่านแบบฟอร์มสำหรับการวิเคราะห์ คุณจะได้รับลำดับแพ็กเก็ตที่ชัดเจน ซึ่งข้อมูลทั้งหมดจะถูกแบ่งออกเป็นฟิลด์ที่เข้าใจได้ ขึ้นอยู่กับโปรโตคอล โดยทั่วไปแล้ว Wireshark เดียวกัน แต่เบากว่าเล็กน้อยและเข้าถึงได้จากเบราว์เซอร์ใดก็ได้

การต่อสู้ครั้งสุดท้าย

สุดท้ายนี้ เรามาดูกันว่าการสแกนพอร์ตเป็นอย่างไร เราดูที่ดัมพ์และเห็นว่าคำขอ ARP เกิดขึ้นก่อน จากนั้นการสแกนจะเริ่มต้นโดยตรง ที่อยู่เราเตอร์ของเราคือ 192.168.10.11 การสแกนมาจากที่อยู่ 192.168.10.101

นี่คือสิ่งที่เรียกว่าการสแกน SYN เมื่อแพ็กเก็ต SYN ถูกส่งไปยังช่วงพอร์ตที่ระบุ เนื่องจากพอร์ตส่วนใหญ่ปิดอยู่ เราเตอร์จึงตอบสนองด้วยแพ็กเก็ต RST และ ACK เลื่อนลงไปอีกหน่อยจะเห็นว่าเปิดอยู่ เทลเน็ต (tcp 23)

สิ่งนี้บ่งชี้ได้จากข้อเท็จจริงที่ว่าเราเตอร์ตอบสนองด้วยแพ็กเก็ต SYN, ACK อย่างไรก็ตาม หากต้องการกรองพอร์ตในการดมกลิ่น คุณสามารถใช้โครงสร้างเช่น: tcp.srcport, tcp.dstport และ tcp.port สำหรับโปรโตคอล UDP ทุกอย่างจะคล้ายกัน - udp.srcport, udp.dstport, udp.port

ผลลัพธ์

เราได้พูดถึงส่วนพื้นฐานที่สุดของฟังก์ชันการดมกลิ่นแพ็กเก็ตที่ดีที่สุดแล้ว มันดูค่อนข้างวุ่นวาย อาจเป็นเพราะฉันอยากจะสัมผัสถึงความสามารถของมันให้มากที่สุดเท่าที่จะเป็นไปได้ และไม่พลาดสิ่งสำคัญ ปรากฎว่าตัววิเคราะห์แพ็คเก็ตเช่นดีบักเกอร์และตัวแยกชิ้นส่วนแสดงรายละเอียดที่เล็กที่สุดของการทำงานของเครือข่ายและโปรโตคอลเครือข่าย
การใช้ Wireshark และมีความรู้ที่จำเป็น คุณสามารถค้นหาและวินิจฉัยปัญหาต่างๆ ที่เกิดขึ้นบนเครือข่ายได้อย่างมีประสิทธิภาพ

ในระหว่างขั้นตอนการเขียน มีการใช้สื่อจากไซต์ wiki.wireshark.org/ การถ่ายโอนข้อมูลถูกนำมาจากแหล่งต่างๆ ซึ่งส่วนใหญ่มาจากไซต์

โปรแกรมตรวจสอบปริมาณข้อมูล Wireshark จะเป็นประโยชน์อย่างยิ่งสำหรับผู้ที่เข้าใจโปรโตคอลเครือข่ายและต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกิจกรรมภายในเครือข่ายในบ้านของเขา ไม่มีความลับที่บางโปรแกรมที่ไม่ถือว่าเป็นอันตรายสามารถขโมยการรับส่งข้อมูลอินเทอร์เน็ตได้ นี่คือจุดที่ความล่าช้าและความเร็วอินเทอร์เน็ตต่ำเกิดขึ้น หากความเร็วของคุณลดลงกะทันหัน ก็สมเหตุสมผลที่จะลองใช้โปรแกรม Wireshark แต่ถ้าไม่มีความรู้เกี่ยวกับโปรโตคอลเครือข่ายแม้แต่น้อย ก็จะเป็นการยากที่จะทำเช่นนี้ เรียนรู้เพิ่มเติมเกี่ยวกับวิธีใช้ Wireshark และประโยชน์ของ Wireshark ในบทความนี้

จะดาวน์โหลด Wireshark ได้ที่ไหนและอย่างไร

Wireshark เป็นซอฟต์แวร์ฟรีและเผยแพร่โดยไม่มีค่าใช้จ่ายใดๆ บนเว็บไซต์อย่างเป็นทางการของผู้พัฒนา https://www.wireshark.org คุณไม่เพียงสามารถดาวน์โหลดยูทิลิตี้นี้ได้ แต่ยังบริจาคเงินเพื่อการพัฒนาโครงการโดยสมัครใจอีกด้วย

  • อินเทอร์เฟซของไซต์ค่อนข้างง่าย: ขั้นแรกคลิกที่ปุ่ม "ดาวน์โหลด"
  • จากนั้นเลือกประเภทระบบของคุณ: Windows หรือ MacOS, 32 บิต หรือ 64 การดาวน์โหลดเวอร์ชันของคุณจะเริ่มทันที หากคุณไม่แน่ใจเกี่ยวกับระบบของคุณ โปรดดูการตั้งค่าระบบในแผงควบคุมอย่างละเอียด


  • การติดตั้งโปรแกรมนั้นง่ายดาย คุณเพียงแค่คลิกที่ปุ่ม "ถัดไป" และบางครั้งก็ทำตามคำแนะนำบนหน้าจอ อย่างไรก็ตาม บางจุดจำเป็นต้องมีการชี้แจง
  • เมื่อระบบขอให้คุณเลือกชุดการติดตั้งยูทิลิตี ให้กาเครื่องหมายทุกช่อง ด้วยวิธีนี้คุณสามารถใช้เครื่องมือ Wireshark ครบชุดได้


  • ในหน้าต่างนี้ คุณต้องกำหนดการตั้งค่าด้วยตนเองตามความต้องการของคุณ ซึ่งระบุถึงการสร้างทางลัด ปุ่มในเมนู Start และการเชื่อมโยงประเภทไฟล์ หากคุณไม่แน่ใจในการตัดสินใจของคุณ ควรโอนเครื่องหมายถูกทั้งหมดจากภาพหน้าจอไปยังหน้าต่างของคุณ


วิธีเปิดใช้งานการตรวจสอบการรับส่งข้อมูลใน Wireshark

เมื่อคอมพิวเตอร์ของคุณรีสตาร์ทหลังจากติดตั้งโปรแกรม ก็พร้อมใช้งาน ในเวลาเดียวกันโปรแกรม Wireshark จะแนะนำให้คุณติดตั้งไดรเวอร์พิเศษที่จำเป็นสำหรับซอฟต์แวร์ในการทำงาน

  • ที่กึ่งกลางหน้าต่าง คุณจะเห็นปุ่ม "รีเฟรชอินเทอร์เฟซ" หรือ "ไม่พบอินเทอร์เฟซ" คลิกที่ภาพเพื่อโหลดอินเทอร์เฟซ คุณสามารถเชื่อมต่อผ่านเราเตอร์ ผ่านสายเคเบิลโดยตรง ผ่านเครือข่าย Wi-Fi หรือผ่านโมเด็ม LTE
  • หากคุณมีการเชื่อมต่อ Wi-Fi ไร้สาย ให้ไปที่แท็บ "ไร้สาย"


  • คลิก "การรับส่งข้อมูล WLAN"


  • หากการเชื่อมต่อผ่านโมเด็ม ให้ใส่ใจกับแท็บ "โทรศัพท์" คลิกบรรทัด "LTE"


  • ไม่ว่าคุณจะเลือกอะไรก็ตาม การจราจรจะปรากฏขึ้นตรงหน้าคุณในลักษณะนี้ ที่ด้านบนในบรรทัด "ตัวกรอง" คุณสามารถป้อนตัวกรองเพื่อกรองข้อมูลที่คุณไม่ต้องการและดูโปรโตคอลเครือข่ายตามเกณฑ์ที่กำหนดเท่านั้น
  • เมื่อคลิกที่หนึ่งในนั้น คุณจะเห็นข้อมูลเพิ่มเติมในหน้าต่างด้านล่าง เกณฑ์หลักสามารถสอดคล้องกับโฮสต์: ไซต์ที่ยอมรับหรือส่งคำขอ ข้อมูลดังกล่าวจะระบุหลังคำว่า "โฮสต์" เช่นเดียวกับ "ยอมรับ"
  • ตามที่ระบุไว้ก่อนหน้านี้ การทำงานกับโปรโตคอลโดยไม่เข้าใจวิธีการทำงานแม้แต่น้อยแทบจะเป็นไปไม่ได้เลย คุณจะไม่เข้าใจว่าแพ็คเกจไหนไปเมื่อไหร่และที่ไหน อย่างไรก็ตาม หากคุณคุ้นเคยกับหัวข้อนี้เพียงเล็กน้อย ทุกอย่างก็จะกลายเป็นเรื่องสัญชาตญาณ


วิธีเปิดใช้งานอินเทอร์เฟซ Wireshark หากไม่พร้อมใช้งาน

เมื่อคุณเริ่มโปรแกรมคุณอาจเห็นข้อความเช่นนี้ ซึ่งหมายความว่าโปรแกรมจะไม่เห็นการเชื่อมต่อใด ๆ ของคุณ ทั้งผ่านสายเคเบิลหรือการเชื่อมต่อไร้สาย

สิ่งแรกที่ต้องทำคือรีสตาร์ทคอมพิวเตอร์ของคุณ โปรแกรมเริ่มทำงานหลังจากรีสตาร์ทเท่านั้น
เหตุผลที่สองที่เป็นไปได้และพบบ่อยที่สุดคือคุณไม่ได้ดาวน์โหลด WinPcap เหล่านี้คือไลบรารี Windows ฟรีที่ Wireshark ต้องการ ดาวน์โหลดได้จากอินเทอร์เน็ต รีสตาร์ทคอมพิวเตอร์แล้วลองอีกครั้ง

ด้านล่างบทความคุณจะพบวิดีโอขนาดยาวที่จะบอกคุณเกี่ยวกับอินเทอร์เฟซที่ลึกยิ่งขึ้นของโปรแกรม