การดักจับการรับส่งข้อมูล Wireshark localhost [ปิด]


118

ฉันเขียนแอปเซิร์ฟเวอร์อย่างง่ายใน C ซึ่งทำงานบน localhost จะจับทราฟฟิก localhost โดยใช้ Wireshark ได้อย่างไร


3
ในขณะที่อายุมากฉันยังคงโหวตให้เปิดอีกครั้งด้วยเหตุผลที่สอดคล้องกัน นี่เป็นคำถามที่ถูกต้องและ IMHO ก็แคบพอ (ปัญหาเฉพาะคือ "localhost")
Marcel

คำตอบ:


69

หากคุณใช้ Windows จะไม่สามารถทำได้ - อ่านด้านล่าง คุณสามารถใช้ที่อยู่ในเครื่องของคุณแทนจากนั้นคุณจะสามารถจับภาพสิ่งของได้ ดูCaptureSetup / Loopback

สรุป: คุณสามารถจับภาพบนอินเทอร์เฟซลูปแบ็คบน Linux บน BSD ต่างๆรวมถึง MacOS X และบน Digital / Tru64 UNIX และคุณอาจสามารถทำได้บน Irix และ AIX แต่คุณไม่สามารถทำได้บน Solaris, HP -UX ...

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


แก้ไข: 3 ปีต่อมาคำตอบนี้ไม่ถูกต้องอีกต่อไป หน้าเชื่อมโยงมีคำแนะนำสำหรับการจับบนอินเตอร์เฟซย้อนกลับ


คำตอบของ feuGene ใช้งานได้จริง
GWLlosa

@GWLlosa Yup. คุณสามารถใช้ที่อยู่ในท้องถิ่นของเครื่องของคุณ
cnicutar

7
ฉันพบว่ามันไม่เพียงพอที่จะใส่ IP ของคุณเองใน Wireshark แทนการย้อนกลับ การเพิ่มเส้นทางเป็นสิ่งจำเป็นเพื่อให้สามารถใช้งานได้ในสถานการณ์ของฉัน
GWLlosa

1
ขอบคุณ บน OS X อินเทอร์เฟซแบบย้อนกลับคือ lo0 การเลือก en1 หรือค่าเริ่มต้นของคุณจะใช้ไม่ได้
sudo

สำหรับการตั้งค่าอะแดปเตอร์ย้อนกลับฉันพบว่าวิดีโอ youtube นี้มีประโยชน์ youtube.com/watch?v=KsWICPPO_N8
developer747

51

ด้วยเหตุผลบางประการไม่มีคำตอบก่อนหน้านี้ที่ใช้ได้ผลในกรณีของฉันดังนั้นฉันจะโพสต์บางอย่างที่หลอกลวง มีอัญมณีเล็ก ๆ ที่เรียกว่าRawCapที่สามารถดักจับทราฟฟิก localhost บน Windows ได้ ข้อดี:

  • เพียง 17 kB!
  • ไม่จำเป็นต้องใช้ไลบรารีภายนอก
  • ใช้งานง่ายมาก (เพียงแค่เริ่มต้นเลือกอินเทอร์เฟซวนกลับและไฟล์ปลายทางเท่านั้น)

หลังจากจับการรับส่งข้อมูลแล้วคุณสามารถเปิดและตรวจสอบใน Wireshark ได้ตามปกติ ข้อเสียเดียวที่ฉันพบคือคุณไม่สามารถตั้งค่าตัวกรองได้กล่าวคือคุณต้องดักจับการรับส่งข้อมูลในพื้นที่ทั้งหมดซึ่งอาจมีปริมาณมาก นอกจากนี้ยังมีข้อบกพร่องอย่างหนึ่งเกี่ยวกับ Windows XP SP 3

คำแนะนำเพิ่มเติมเล็กน้อย:


1
ไม่จำเป็นต้องติดตั้งและค่อนข้างง่าย
vibhu

และคุณสามารถให้ Wireshark อ่านเอาต์พุตของ RawCap ได้ทันทีทำให้คุณจับภาพได้ทันที ดูคำตอบของฉันสำหรับรายละเอียด
Richard Kiefer

48

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


รหัสคุณทำสำเร็จแล้วหรือยัง? นี่เป็นความขัดแย้งโดยตรงกับคำตอบของ cnicutar
feuGene

ใช่ฉันทำสำเร็จแล้ว
รหัส

แล้วยังไง? ไม่ได้ทำงาน
schlamar

18
ฉันทำให้สิ่งนี้ทำงานเหมือนกันทั้งหมดใน Win 7 Device Manager -> เพิ่มฮาร์ดแวร์เดิม -> ฉันจะเลือก -> เครือข่าย -> Microsoft -> อะแดปเตอร์ Loopback เมื่อติดตั้งแล้วให้กำหนดค่าด้วยที่อยู่ IP ที่คุณเลือก จากนั้น: ติดตั้ง wirehark ใหม่เพื่อที่จะติดตั้งไดรเวอร์การจับภาพบนอินเทอร์เฟซใหม่ซึ่งจะต้องดำเนินการทุกครั้งที่คุณเพิ่มอินเทอร์เฟซใหม่ให้กับ windows, loopback หรือ real
antiduh

4
ทำตามคำแนะนำ @antiduh บน Win 7 และในขณะที่ฉันเห็นคำค้นหา netbios ฉันไม่เห็นการรับส่งข้อมูล HTTP บน localhost
Carlos Rendon

26

ฉันยังไม่ได้ลองทำ แต่คำตอบจากเว็บนี้มีแนวโน้มว่า:

Wireshark ไม่สามารถจับภาพแพ็กเก็ตในเครื่องบน windows XP ได้จริงเนื่องจากลักษณะของ windows TCP stack เมื่อแพ็กเก็ตถูกส่งและรับบนเครื่องเดียวกันดูเหมือนว่าพวกเขาจะไม่ข้ามขอบเขตเครือข่ายที่ตรวจสอบ Wirehark

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

สมมติว่าที่อยู่ IP XP ของคุณคือ 192.168.0.2 และที่อยู่เกตเวย์ (เราเตอร์) ของคุณคือ 192.168.0.1 คุณสามารถเรียกใช้คำสั่งต่อไปนี้จากบรรทัดคำสั่ง windows XP เพื่อบังคับให้ทราฟฟิกในเครื่องทั้งหมดออกและย้อนกลับข้ามขอบเขตเครือข่ายดังนั้น Wirehark จึงสามารถติดตาม ข้อมูล (โปรดทราบว่า wirehark จะรายงานแพ็กเก็ตสองครั้งในสถานการณ์นี้หนึ่งครั้งเมื่อออกจากพีซีของคุณและอีกครั้งเมื่อพวกเขากลับมา)

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087เข้าถึงเมื่อครู่


6
ฉันลองสิ่งนี้และพบว่ามันได้ผลดีมาก
GWLlosa

ไม่ทำงานบน win 7 32bit
vantrung -cuncon

11

โปรดลองใช้ Npcap: https://github.com/nmap/npcapซึ่งใช้ WinPcap และรองรับการดักจับการรับส่งข้อมูลแบบวนกลับบน Windows Npcap เป็นโครงการย่อยของ Nmap ( http://nmap.org/ ) ดังนั้นโปรดรายงานปัญหาใด ๆ ในรายการการพัฒนาของ Nmap ( http://seclists.org/nmap-dev/ )


ตัวเลือก # 1 จากเอกสารของ WireharkStarting from Windows Vista: Npcap is an update of WinPcap using NDIS 6 Light-Weight Filter (LWF), done by Yang Luo for Nmap project during Google Summer of Code 2013 and 2015. Npcap has added many features compared to the legacy WinPcap.
KCD

คุณสามารถดาวน์โหลดโปรแกรมติดตั้งได้จากที่นี่: nmap.org/npcap
Wayne Phipps

2
เป็นเรื่องดีที่ทราบว่า NPcap มีข้อ จำกัด ด้านใบอนุญาตสำหรับใช้ในสภาพแวดล้อมทางธุรกิจ
ม.ค. Smrčina

10

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

[... ] หากคุณต้องการดูการรับส่งข้อมูลสดใน Wireshark คุณยังสามารถทำได้โดยเรียกใช้ RawCap จากบรรทัดคำสั่งหนึ่งและเรียกใช้ Wireshark จากอีกบรรทัดหนึ่ง สมมติว่าคุณมีหางของ cygwin คุณสามารถทำได้โดยใช้สิ่งต่อไปนี้:

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -

มันต้องใช้หางของ cygwin และฉันไม่สามารถหาวิธีทำสิ่งนี้ได้ด้วยเครื่องมือที่ใช้งานง่ายของ Windows แนวทางของเขาใช้ได้ผลดีมากสำหรับฉันและช่วยให้ฉันใช้ความสามารถในการกรอง Wiresharks ทั้งหมดในการรับส่งข้อมูลย้อนกลับที่บันทึกไว้ได้


3
สำหรับฉันส่วนสำคัญคือการเริ่มคำสั่ง cmd ที่สองด้วยความล่าช้ามิฉะนั้น Wireshark จะไม่สามารถอ่านไฟล์. pcap ได้ สันนิษฐานว่าเป็นเพราะต้องมีการบันทึกการเข้าชมไว้จึงจะเริ่มต้นด้วย
Richard Kiefer

สิ่งนี้ควรเป็นคำตอบที่ยอมรับได้ (เพียงพอที่จะเรียกใช้ cmd2 จาก git bash)
fider

4
การปรับปรุง : Netresec เพียงประกาศในวันนี้ (30 มกราคม 2020) รุ่นใหม่ของ RawCap stdoutว่าตอนนี้สนับสนุนการเขียนไปยังท่อหรือ ณ วันนี้โซลูชันที่ให้ไว้ข้างต้นสามารถทำให้ง่ายขึ้นได้ดังต่อไปนี้โดยไม่tailจำเป็น: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคุณสมบัติ RawCap ใหม่ได้ในหน้าประกาศ RawCap Redux ที่นี่: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Christopher Maynard

8

สำหรับของ Windows ,

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

RawCap

เรียกใช้RawCapบนพรอมต์คำสั่งและเลือกLoopback Pseudo-Interface (127.0.0.1) จากนั้นเพียงแค่เขียนชื่อของไฟล์จับแพ็กเก็ต ( .pcap )

การสาธิตอย่างง่ายมีดังต่อไปนี้

C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
 0.     169.254.125.51  Local Area Connection* 12       Wireless80211
 1.     192.168.2.254   Wi-Fi   Wireless80211
 2.     169.254.214.165 Ethernet        Ethernet
 3.     192.168.56.1    VirtualBox Host-Only Network    Ethernet
 4.     127.0.0.1       Loopback Pseudo-Interface 1     Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File        : test.pcap
Packets     : 48^C

6

คุณไม่สามารถจับลูปแบ็คบน Solaris, HP-UX หรือ Windows ได้อย่างไรก็ตามคุณสามารถแก้ไขข้อ จำกัด นี้ได้อย่างง่ายดายโดยใช้เครื่องมือเช่นRawCap RawCap

RawCap สามารถจับภาพแพ็กเก็ตดิบบน ip ใดก็ได้รวมถึง127.0.0.1(localhost / loopback) Rawcap ยังสามารถสร้างpcapไฟล์ คุณสามารถเปิดและวิเคราะห์pcapไฟล์ด้วยWireshark Wireshark

ดูที่นี่สำหรับรายละเอียดเกี่ยวกับวิธีการตรวจสอบการใช้ localhost RawCap และ Wireshark


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.