Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pig — एक Linux पैकेट निर्माण उपकरण। | Kitploit
उपकरण/GitHubGitHub/rafael-santiago/pig
आईडीएस/आईपीएस से बचनानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंग
GitHubrafael-santiago/pig

pig

एक Linux पैकेट निर्माण उपकरण।

रिपॉजिटरी देखें
479415 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Pig

Pig (जिसे Packet intruder generator के रूप में समझा जा सकता है) एक Linux पैकेट निर्माण उपकरण है। आप Pig का उपयोग अपने IDS/IPS आदि के परीक्षण के लिए कर सकते हैं।

Pig उपयोग के लिए तैयार कई सुप्रसिद्ध आक्रमण हस्ताक्षर लाता है और आप अपनी आवश्यकताओं के अनुसार अधिक विशिष्ट चीज़ों से इस संग्रह का विस्तार कर सकते हैं।

अब तक TCP, UDP और ICMP पर आधारित ट्रांसपोर्ट लेयर के साथ IPv4 हस्ताक्षर बनाना संभव है। आप ARP प्रोटोकॉल पर आधारित हस्ताक्षर भी बना सकते हैं, साथ ही इसके Ethernet फ्रेम से पैकेट का निर्माण भी कर सकते हैं।

यदि आप यहाँ मेरे 2600 लेख के SPRING 2016 अंक से पहुँचे हैं, तो कृपया निम्नलिखित दस्तावेज़ीकरण अनुभाग पढ़ते रहें क्योंकि यह छोटा Pig तब से विकसित हो रहा है।

इस रिपॉजिटरी को कैसे क्लोन करें?

यह काफी सरल है:

root@kitploit:~
[email protected]:~/src# git clone https://github.com/rafael-santiago/pig pig
[email protected]:~/src# cd pig
[email protected]:~/src/pig# git submodule update --init

इसे कैसे बनाएं?

pig बनाने के लिए आपको Hefesto का उपयोग करना होगा। Hefesto को अपने सिस्टम पर काम करने के लिए चरणों का पालन करने के बाद, pig उप-निर्देशिका src पर जाएँ और निम्नलिखित कमांड चलाएँ:

root@kitploit:~
[email protected]:~/src/pig/src# hefesto

इस कमांड के बाद आपको src/bin पथ के अंतर्गत pig बाइनरी मिलनी चाहिए। आप बाइनरी का उपयोग src/bin से सापेक्ष रूप से कर सकते हैं या इसे स्थापित करें।

यदि किसी कारण से आपको निर्माण में समस्या हो रही है, तो आपको BUILD.md में मौजूद कुछ टिप्पणियाँ पढ़नी चाहिए।

इसे कैसे स्थापित करें?

स्थापित करने के लिए आपको src उप-निर्देशिका के अंदर होना होगा और यह कॉल करें:

root@kitploit:~
[email protected]:~/src/pig/src# hefesto --install

अनइंस्टॉल करने के लिए, src उप-निर्देशिका के अंदर होने पर आपको यह कॉल करनी चाहिए:

root@kitploit:~
[email protected]:~/src/pig/src# hefesto --uninstall

पिग्स्टी फ़ाइलें

Pigsty फ़ाइलें सादा पाठ फ़ाइलें हैं जहाँ आप पैकेट हस्ताक्षरों का एक सेट परिभाषित कर सकते हैं। इसके लिए एक विशिष्ट सिंटैक्स का पालन करना होता है। एक pigsty फ़ाइल का उदाहरण देखें:

root@kitploit:~
[ signature   =      "Hello",
  ip.version  =            4,
  ip.ihl      =            5,
  ip.tos      =            0,
  ip.src      = 192.30.70.10,
  ip.dst      =  192.30.70.3,
  ip.protocol =           17,
  udp.dst     =         1008,
  udp.src     =        32000,
  udp.payload =    "Hello!!" ]

मूल रूप से, सभी हस्ताक्षर डेटा वर्गाकार कोष्ठकों के बीच होना चाहिए: [ ... ]।

इस क्षेत्र के अंदर जानकारी का टुकड़ा योजना field = data द्वारा प्रदान किया जाता है।

यदि आपको कंप्यूटर नेटवर्क का कुछ अनुभव है, तो निश्चित है कि तालिका 1 में सूचीबद्ध अधिकांश फ़ील्ड आपके लिए सार्थक हैं। आपको अपने आगामी हस्ताक्षर बनाने के लिए इन फ़ील्ड का उपयोग करना होगा।

तालिका 1: pig हस्ताक्षर फ़ील्ड।

हस्ताक्षर बनाते समय आपको सभी डेटा निर्दिष्ट करने की आवश्यकता नहीं है। यदि आप केवल सबसे प्रासंगिक पैकेट भागों को निर्दिष्ट करते हैं, तो शेष भाग डिफ़ॉल्ट मानों से भर दिए जाएंगे। checksums हमेशा पुनर्गणना की जाती हैं।

सुझाव: उप-निर्देशिका pigsty पर एक नज़र डालें। आपको कई हस्ताक्षर फ़ाइलें मिलेंगी और आप देखेंगे कि नए को परिभाषित करना काफी सरल है।

भौगोलिक रूप से IP पते निर्दिष्ट करना

हाँ, यह संभव है। इस सुविधा का उपयोग करने के लिए आपको बस ip adddress प्रकार के फ़ील्ड में तालिका 2 पर सूचीबद्ध मान निर्दिष्ट करने होंगे।

तालिका 2: भौगोलिक क्षेत्र के अनुसार IPs.

उपयोग करने का मान

अपने स्वयं के पते निर्दिष्ट करना

आपको किसी भी ip address प्रकार के फ़ील्ड में मान के रूप में user-defined-ip का उपयोग करना चाहिए। ध्यान दें कि इस मामले में आपको कमांड लाइन विकल्प --targets का उपयोग करने की आवश्यकता है। अधिक जानकारी के लिए अनुभाग Pig का उपयोग देखें।

अधिक पैकेट हस्ताक्षर भेजकर योगदान दें

यदि आप pigsty फ़ाइलें बनाते हैं जो आपके अपने वातावरण से परे प्रासंगिक हों, तो इन उपयोगी फ़ाइलों को यहाँ शामिल करने के लिए एक पुल अनुरोध खोलें। अग्रिम धन्यवाद!

Pig का उपयोग

Pig का उपयोग बहुत सीधा है, इसमें चार बुनियादी विकल्प प्रदान करना आवश्यक है जो हैं:

  • --signatures
  • --gateway
  • --net-mask
  • --lo-iface

क्या आप प्रत्येक विकल्प के बारे में अधिक जानना चाहते हैं, हुह?... तो चलिए:

  • विकल्प --signatures को pigsty फ़ाइलों के फ़ाइल पथों की एक सूची मिलती है।
  • विकल्प --gateway वह है जहाँ आप अपना गेटवे पता निर्दिष्ट करते हैं। ध्यान रखें कि pig ethernet फ्रेम भी उत्पन्न करता है या कम से कम उत्पन्न करने का प्रयास करता है। इसके कारण layer-1 डेटा को सही ढंग से बनाने के लिए गेटवे पता काफी महत्वपूर्ण है।
  • रूटिंग मुद्दों के लिए विकल्प --net-mask को आपका नेटवर्क मास्क प्राप्त करना होगा।
  • विकल्प --lo-iface वह स्थान है जहाँ आपको स्थानीय नेटवर्क इंटरफ़ेस का नाम बताना चाहिए जिसका उपयोग आप उत्पन्न पैकेटों को "बाहर निकालने" के लिए करेंगे।
  • विकल्प --no-gateway इंगित करता है कि कोई भी पैकेट नेटवर्क के बाहर नहीं भेजा जाएगा।

मान लीजिए कि हम DDos आधारित ट्रैफ़िक उत्पन्न करना चाहते हैं:

root@kitploit:~
[email protected]:~# pig --signatures=pigsty/ddos.pigsty\
> --gateway=10.0.2.2\
> --net-mask=255.255.255.0 --lo-iface=eth0

अब हम सब कुछ गड़बड़ करना चाहते हैं:

root@kitploit:~
[email protected]:~# pig --signatures=pigsty/ddos.pigsty,pigsty/attackresponses.pigsty,\
> pigsty/badtraffic.pigsty,pigsty/backdoors.pigsty\
> --gateway=10.0.2.2 --net-mask=255.255.255.0 --lo-iface=eth0

अतिरिक्त विकल्प

हस्ताक्षर भेजने के बीच टाइमआउट परिभाषित करना

इसके लिए विकल्प --timeout=<मिलीसेकंड> का उपयोग करें

इको दमन

--no-echo विकल्प का उपयोग करें।

लक्ष्य परिभाषित करना

--targets विकल्प का उपयोग करें। आप सटीक IP, IP मास्क और CIDRs पर आधारित एक सूची निर्दिष्ट कर सकते हैं।

यह देखें:

root@kitploit:~
[email protected]:~# pig --signatures=pigsty/local-mess.pigsty\
> --targets=192.30.70.3,192.30.70.*,192.30.70.0/9\
> --gateway=10.0.2.2\
> --net-mask=255.255.255.0\
> --lo-iface=eth0

गेटवे का उपयोग न करना

यह उपयोगी है जब लोड किए गए हस्ताक्षर वर्तमान नेटवर्क के बाहर डेटा नहीं भेजेंगे। इसे चिह्नित करने के लिए आपको --no-gateway विकल्प का उपयोग करना होगा। जब --no-gateway विकल्प का उपयोग किया जाता है, तो आपको गेटवे का पता निर्दिष्ट करने की आवश्यकता नहीं है क्योंकि पैकेट वर्तमान खंड के बाहर प्रवाहित नहीं होंगे। परिणामस्वरूप नेटवर्क मास्क को सूचित करना भी अप्रासंगिक हो जाता है।

उदाहरण के लिए:

root@kitploit:~
[email protected]:~# pig --signatures=pigsty/local_traffic.pigsty --no-gateway --lo-iface=eth2

उपरोक्त नमूने में ईथरनेट फ्रेम अब pig की जिम्मेदारी नहीं होगी। इस कारण pig --gateway और --net-mask विकल्प की कमी के बारे में शिकायत नहीं करेगा।

--no-gateway विकल्प उन मामलों में काफी उपयोगी है जहाँ आपको ARP ट्रैफ़िक उत्पन्न करने की आवश्यकता होती है। ARP spoofing with pig के बारे में बताने वाले इस अन्य दस्तावेज़ पर एक नज़र डालें।

केवल एक हस्ताक्षर भेजना और वापस लौटना

हो सकता है कि आपको केवल एक हस्ताक्षर भेजने की आवश्यकता हो और फिर यह जाँचने के लिए कि बाद में क्या हुआ, कॉलर पर वापस लौटें। इस प्रकार की आवश्यकता तब सामान्य होती है जब आप इस एप्लिकेशन का उपयोग system tests या unit tests के समर्थन के रूप में करते हैं। तो, यदि आपको ऐसा करने की आवश्यकता है, तो आपको --single-test विकल्प का उपयोग करने का प्रयास करना चाहिए:

root@kitploit:~
[email protected]:~# pig --signature=pigsty/syn-scan.pigsty --targets=127.0.0.1 --single-test\
> --gateway=10.0.2.2 --net-mask=255.255.255.0 --lo-iface=eth0

इस कमांड को चलाने के बाद pig फ़ाइल syn-scan.pigsty से केवल एक हस्ताक्षर चुनेगा और उसे भेजने का प्रयास करेगा और फिर बाहर निकल जाएगा। यदि प्रक्रिया के दौरान कोई त्रुटि हुई है, तो pig exit-code 1 के बराबर के साथ बाहर निकलेगा, अन्यथा pig exit-code 0 के बराबर के साथ बाहर निकलेगा।

pigsty ट्रैवर्स मोड निर्दिष्ट करना

pig's का मूल संचालन मोड एक अंतहीन लूप के बारे में है जो एक पूर्वनिर्धारित टाइमआउट का सम्मान करते हुए नेटवर्क में टनों पैकेट उगलता है।

आप --loop=<mode> विकल्प का उपयोग करके परिभाषित कर सकते हैं कि pig भेजने के लिए लोड किए गए पैकेटों को कैसे ट्रैवर्स करता है। अब तक दो मोड हैं: random (डिफ़ॉल्ट) और sequential।

sequential मोड हस्ताक्षरों को पुनरावृत्त करेगा जब वह लोड किए गए पैकेट हस्ताक्षर सूची के अंत तक पहुँचता है।

उप-कार्य

उप-कार्य पैकेट क्राफ्टिंग से संबंधित उपयोगी छोटे कार्य हैं जो आपके क्राफ्टिंग सत्र में आपकी सहायता के लिए pig में शामिल हैं। इन कार्यों को --sub-task=<task-name> विकल्प का उपयोग करके एक्सेस किया जा सकता है।

व्यावहारिक रूप से उप-प्रोग्राम होने के कारण, उप-कार्यों की अपनी विशेषताएँ होती हैं और इसके कारण उनके बारे में विवरण उनके अपने मैनुअल में दिए गए हैं। इसका अनुसरण करने के लिए तालिका 3 देखें।

तालिका 3: pig उप-कार्य।

Pig ट्रिक्स

ईथरनेट फ्रेम से सबसे ऊपरी परत तक...

अब तक आप IPv4 पर आधारित पैकेट बना सकते हैं जिनमें ट्रांसपोर्ट लेयर में UDP या TCP हो। आप ARP पैकेट भी बना सकते हैं।

हालाँकि, आप Ethernet फ्रेम से शुरू करके भी पैकेट बना सकते हैं। इसके बारे में अच्छी बात यह है कि Ethernet's पेलोड के ऊपर वस्तुतः कुछ भी बनाने की संभावना है।

उदाहरण के लिए, भले ही pig अब तक, पके हुए IPv6 निर्माण के लिए समर्थन प्रदान नहीं करता है, आप इसे कच्चे Ethernet आधारित pigsty का उपयोग करके बना सकते हैं। देखें:

root@kitploit:~
[ eth.hwdst = "5C:AC:4C:AA:F5:B5",
  eth.hwsrc = "08:95:2A:AD:D6:4F",
  eth.type = 0x86DD,
  eth.payload = "\x60\x00\x00\x00\x00\x20\x3a\xff\xfe\x80\x00\x00\x00\x00\x00\x00\x0a\x95\x2a\xff\xfe\xad\xd6\x4f\xfe\x80\x00\x00\x00\x00\x00\x00\x55\x51\x00\xc2\x18\x0f\xdb\x46\x88\x00\x32\x01\xe0\x00\x00\x00\xfe\x80\x00\x00\x00\x00\x00\x00\x0a\x95\x2a\xff\xfe\xad\xd6\x4f\x02\x01\x08\x95\x2a\xad\xd6\x4f",
  signature = "IPv6 from Sparta" ]

यह ध्यान में रखते हुए कि "Ethernet pigsty" के अंदर गंतव्य और स्रोत MAC पतों का समावेश वैकल्पिक है, हम बिना किसी plush field का उपयोग किए भी काम पूरा कर सकते हैं।

यह तब अच्छा होता है जब आपको अपने वातावरण में अन्य विषम मज़ेदार चीज़ों के बीच नए प्रोटोकॉल का परीक्षण करना होता है। इस कच्चे तरीके पर, pig आपके लिए उपयोगी बना रह सकता है।

शुरुआत से Pig का परीक्षण करना

निम्नलिखित डेटा को "oink.pigsty" के रूप में सहेजें:

root@kitploit:~
[ signature   =           "oink",
  ip.version  =                4,
  ip.ihl      =                5,
  ip.tos      =                0,
  ip.src      =        127.0.0.1,
  ip.dst      =  user-defined-ip,
  ip.protocol =               17,
  udp.dst     =             1008,
  udp.src     =            32000,
  udp.payload =        "Oink!!\n" ]

दूसरे tty पर netcat को UDP mode में चलाएँ जो पोर्ट 1008 पर कनेक्शन सुनता है:

root@kitploit:~
[email protected]:~# nc -u -l -p 1008

अब "oink.pigsty" का उपयोग करके pig चलाएँ, लक्ष्य के रूप में loopback की सूचना दें:

root@kitploit:~
[email protected]:~# pig --signatures=oink.pigsty --targets=127.0.0.1\
> --gateway=10.0.2.2 --net-mask=255.255.255.0 --lo-iface=eth0

netcat को कई oinks प्राप्त होने लगने चाहिए और... हाँ, बधाई!! pig आपके सिस्टम पर चालू और चल रहा है! ;)

अपने नेटवर्क को सूँघने का प्रयास करें ताकि आपके इंटरफ़ेस के आसपास प्रवाहित हो रहे इन UDP पैकेटों के बारे में अधिक जानकारी प्राप्त हो सके...

मज़े करो!

टूल डाउनलोड करें
क्षेत्रअर्थप्रोटोकॉलडेटा प्रकारनमूना परिभाषा
signatureहस्ताक्षर का नाम-stringsignature = "Udp flood"
eth.hwdstईथरनेट गंतव्य MACEthernetMACeth.hwdst = "00:de:ad:be:ef:00"
eth.hwsrcईथरनेट स्रोत MACEthernetMACeth.hwsrc = "00:de:ad:be:ef:00"
eth.typeईथर प्रकारEthernetnumbereth.type = 0x0800
eth.payloadईथरनेट पेलोडEthernetstringeth.payload = "f\x00ob\x04r"
ip.versionIP संस्करणIPnumberip.version = 4
ip.ihlइंटरनेट हेडर लंबाईIPnumberip.ihl = 5
ip.tosसेवा का प्रकारIPnumberip.tos = 0
ip.tlenकुल लंबाईIPnumberip.tlen = 20
ip.idपैकेट आईडीIPnumberip.id = 0xbeef
ip.flagsIP फ़्लैगIPnumberip.flags = 4
ip.offsetखंड ऑफ़सेटIPnumberip.offset = 0
ip.ttlजीवन कालIPnumberip.ttl = 64
ip.protocolप्रोटोकॉलIPnumberip.protocol = 6
ip.checksumचेकसमIPnumberip.checksum = 0
ip.srcस्रोत पताIPip addressip.src = 192.30.70.3
ip.dstगंतव्य पताIPip addressip.dst = 192.30.70.3
ip.payloadIP कच्चा पेलोडIPstringip.payload = "\x01\x02"
tcp.srcस्रोत पोर्टTCPnumbertcp.src = 80
tcp.dstगंतव्य पोर्टTCPnumbertcp.dst = 21
tcp.seqnoअनुक्रम संख्याTCPnumbertcp.seqno = 10202
tcp.acknoस्वीकृति संख्याTCPnumbertcp.ackno = 10200
tcp.sizeTCP लंबाईTCPnumbertcp.size = 4
tcp.reservTCP आरक्षित क्षेत्रTCPnumbertcp.reserv = 0
tcp.urgTCP आपात ध्वजTCPbittcp.urg = 0
tcp.ackTCP स्वीकृति ध्वजTCPbittcp.ack = 1
tcp.pshTCP धकेल ध्वजTCPbittcp.psh = 0
tcp.rstTCP रीसेट ध्वजTCPbittcp.rst = 0
tcp.synTCP सिंक ध्वजTCPbittcp.syn = 0
tcp.finTCP समाप्त ध्वजTCPbittcp.fin = 0
tcp.wsizeTCP विंडो आकारTCPnumbertcp.wsize = 0
tcp.checksumचेकसमTCPnumbertcp.checksum = 0
tcp.urgpआपात सूचकTCPnumbertcp.urgp = 0
tcp.payloadपेलोडTCPstringtcp.payload = "\x01abc"
udp.srcस्रोत पोर्टUDPnumberudp.src = 53
udp.dstगंतव्य पोर्टUDPnumberudp.dst = 7
udp.sizeUDP लंबाईUDPnumberudp.size = 8
udp.checksumचेकसमUDPnumberudp.checksum = 0
udp.payloadपेलोडUDPnumberudp.payload = "boo!"
icmp.typeICMP प्रकारICMPnumbericmp.type = 0
icmp.codeICMP कोडICMPnumbericmp.code = 0
icmp.checksumचेकसमICMPnumbericmp.checksum = 0
icmp.payloadपेलोडICMPstringicmp.payload = "ping!"
arp.hwtypeARP हार्डवेयर प्रकारARPnumberarp.hwtype = 0x1
arp.ptypeARP प्रोटोकॉल प्रकारARPnumberarp.ptype = 0x0800
arp.hwlenARP हार्डवेयर लंबाईARPnumberarp.hwlen = 6
arp.opcodeARP संचालन कोडARPnumberarp.opcode = 2
arp.hwsrcARP स्रोत hw पताARPMACarp.hwsrc = "de:ad:be:ef:0:0"
arp.psrcARP स्रोत प्रोटो पताARPip addressarp.psrc = 192.30.70.3
arp.hwdstARP गंतव्य hw पताARPMACarp.hwdst = "de:ad:be:ef:0:0"
arp.pdstARP गंतव्य प्रोटो पताARPip addressarp.pdst = 192.30.70.3
अर्थ
north-american-ipउत्तरी अमेरिका से IP पते
south-american-ipदक्षिण अमेरिका से IP पते
asian-ipएशिया से IP पते
european-ipयूरोप से IP पते
उप-कार्ययह क्या करता है?मैनुअल
pcap-importएक PCAP फ़ाइल से pigsty फ़ाइल में पैकेट आयात करता हैcat doc/pcap-import.md
shellpig को इंटरैक्टिव मोड पर निष्पादित करता हैcat doc/shell.md