
पायथन 3 में विकसित एक नेटवर्क पैकेट स्निफिंग टूल।
GNU/Linux के लिए एक नेटवर्क ट्रैफ़िक मॉनिटर। फ्रेम को एक नेटवर्क इंटरफ़ेस से रॉ सॉकेट के माध्यम से कैप्चर किए जाते हैं, NETProtocols लाइब्रेरी के साथ परत-दर-परत डिकोड किए जाते हैं, और आने पर स्क्रीन पर प्रदर्शित किए जाते हैं:
[>] Frame #4 at 15:42:07 (wlan0, 74 bytes)
[+] Ethernet 3c:7c:3f:1a:be:22 -> 9c:1e:95:aa:01:5f
EtherType: IPv4
[+] IPv4 192.168.1.96 -> 142.250.79.78
TTL: 64 | Flags: Don't fragment (DF) | Total Length: 60 | ID: 39754
Protocol: TCP | Checksum: 0x2b51
[+] TCP 51888 -> 443
Flags: 0x002 (SYN) | Seq: 3598801521 | Ack: 0
Window: 64240 | Checksum: 0x2008 | Options: 20 bytes
डिकोडिंग विकल्प-जागरूक है (IPv4 IHL और TCP डेटा ऑफ़सेट का सम्मान किया जाता है), विकृत या छोटे (truncated) फ्रेम का निदान किया जाता है बजाय इसके कि कैप्चर क्रैश हो जाए, और अज्ञात प्रोटोकॉल डिकोड श्रृंखला को सुचारू रूप से समाप्त कर देते हैं — नेटवर्क जो कुछ भी प्रदान करे, कैप्चर उसे सहन कर लेता है।
pipx install "git+https://github.com/EONRaider/Packet-Sniffer.git"
(या उसी URL के साथ uv tool install। यह एप्लिकेशन इस नाम से PyPI पर प्रकाशित नहीं है — वह पदार्पण इसके आगामी नाम-परिवर्तन के लिए आरक्षित है।)
या uv के साथ किसी क्लोन से चलाएँ:
git clone https://github.com/EONRaider/Packet-Sniffer.git
cd Packet-Sniffer
uv sync
packet-sniffer [-h] [-i INTERFACE] [-d] [--version]
options:
-i, --interface interface to capture frames from (default: all interfaces)
-d, --data also display each frame's raw payload
कैप्चर के लिए एक रॉ सॉकेट आवश्यक है, जिसका अर्थ Linux पर या तो रूट होना है:
sudo packet-sniffer -i eth0
...या इंटरप्रेटर को CAP_NET_RAW क्षमता प्रदान करना। क्लोन से, इसे sudo .venv/bin/python -m packet_sniffer के रूप में चलाएँ।
capture.py एक AF_PACKET सॉकेट से रॉ फ्रेम उत्पन्न करता है; decoder.py प्रत्येक फ्रेम की प्रोटोकॉल श्रृंखला (Ethernet → ARP / IPv4 / IPv6 → ICMP / TCP / UDP) को एक अपरिवर्तनीय DecodedFrame में बदलता है; output.py में रेंडरर डिकोड किए गए लेयर प्रकारों के अनुसार डिस्पैच करते हैं। पूरा विवरण — जिसमें यह भी शामिल है कि लंबे कैप्चर के दौरान मेमोरी स्थिर क्यों रहती है और रेंडरर कैसे जोड़ें — ARCHITECTURE.md में है।
रॉ सॉकेट को छोड़कर बाकी सब कुछ किसी भी OS पर चलता है, इसलिए टेस्ट सुइट (रिकॉर्ड किए गए फ्रेम पर डिकोड और रेंडरिंग) को न तो रूट की आवश्यकता होती है और न ही Linux की:
uv run pytest
SO_TIMESTAMPNS)इस रिपॉज़िटरी में निहित कोड का उपयोग, आंशिक रूप से या पूर्ण रूप से, पूर्व आपसी सहमति के बिना लक्ष्यों को निशाना बनाने के लिए अवैध है। अंतिम उपयोगकर्ता की ज़िम्मेदारी है कि वह सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करे।
डेवलपर्स कोई दायित्व नहीं मानते हैं और इस रिपॉज़िटरी में निहित किसी भी कोड के दुरुपयोग या क्षति के लिए ज़िम्मेदार नहीं हैं, चाहे किसी भी घटना में, आकस्मिक रूप से या अन्यथा, यह किसी खतरे वाले एजेंट या अनधिकृत इकाई द्वारा सिस्टम और उनके संबद्ध संसाधनों की सुरक्षा, निजता, गोपनीयता, अखंडता और/या उपलब्धता से समझौता करने के साधन के रूप में उपयोग किया जाए।
इस संदर्भ में, "समझौता" शब्द को आगे से उक्त प्रणालियों में मौजूद ज्ञात या अज्ञात कमजोरियों के शोषण का लाभ उठाने के रूप में समझा जाएगा, जिसमें मानव या इलेक्ट्रॉनिक रूप से सक्षम सुरक्षा नियंत्रणों का कार्यान्वयन शामिल है, परंतु यह इसी तक सीमित नहीं है।
इस कोड का उपयोग डेवलपर्स द्वारा केवल उन परिस्थितियों में समर्थित है जो सीधे शैक्षिक वातावरण या अधिकृत पेनेट्रेशन टेस्टिंग कार्यों से संबंधित हैं, जिनका घोषित उद्देश्य सिस्टम में कमजोरियों को खोजना और उन्हें कम करना है, तथा सिस्टम का उन समझौतों और शोषणों के प्रति जोखिम सीमित करना है जो दुर्भावनापूर्ण एजेंटों द्वारा उनके संबंधित खतरे मॉडल में परिभाषित अनुसार नियोजित किए जाते हैं।