
Linux के लिए नेटवर्क, recon और offensive-security उपकरण।
Hawk एक नेटवर्क और पेंटेस्ट उपयोगिता है जिसे मैंने इसलिए विकसित किया है ताकि मैं एक ही सुइट का उपयोग करके विभिन्न प्रकार के कार्य कर सकूं, बजाय एक उपकरण से दूसरे उपकरण पर जाने के।
वर्तमान में, यह स्क्रिप्ट विभिन्न प्रकार के कार्य कर सकती है जैसे ifconfig, ping, traceroute, पोर्ट स्कैन (जिसमें SYN, TCP, UDP, ACK, व्यापक स्कैन, होस्ट डिस्कवरी (स्थानीय नेटवर्क पर चालू डिवाइसों को स्कैन करना), MAC पता पहचान (स्थानीय नेटवर्क पर होस्ट IP का MAC पता प्राप्त करना), बैनर ग्रैबिंग, DNS जाँच (भौगोलिक स्थान जानकारी के साथ), WHOIS, सबडोमेन एन्यूमरेशन, भेद्यता टोही, पैकेट स्निफिंग, MAC स्पूफिंग, IP स्पूफिंग, SYN फ्लडिंग, डीऑथ अटैक और ब्रूट-फोर्स अटैक (बीटा) शामिल हैं।
अन्य सुविधाएँ अभी भी लागू की जा रही हैं। भविष्य के कार्यान्वयन में WAF पहचान, DNS एन्यूमरेशन, ट्रैफ़िक विश्लेषण, XSS भेद्यता स्कैनर, ARP कैश पॉइज़निंग, DNS कैश पॉइज़निंग, MAC फ्लडिंग, पिंग ऑफ़ डेथ, नेटवर्क डिसअसोसिएशन अटैक (डीऑथ अटैक नहीं), OSINT, ईमेल स्पूफिंग, एक्सप्लॉइट, कुछ स्वचालित कार्य और अन्य शामिल हो सकते हैं।

ध्यान दें कि वर्तमान में, यह स्क्रिप्ट केवल Linux पर अच्छी तरह चलती है। यदि आप इसे Windows या macOS पर आज़माते हैं, तो यह चल सकती है, लेकिन कई त्रुटियाँ दिखाई देंगी।
यह स्क्रिप्ट इन पर परीक्षण की गई है:
आवश्यक पैकेज स्थापित करने के लिए ताकि स्क्रिप्ट बिना किसी समस्या के चल सके, बस रूट विशेषाधिकारों के साथ setup.sh स्क्रिप्ट चलाएँ। वर्तमान में, यह स्थापना स्क्रिप्ट केवल Debian, Red Hat और Arch आधारित डिस्ट्रो पर समर्थित है जिनमें क्रमशः apt, dnf और pacman पैकेज मैनेजर है (Ubuntu, Kali Linux, Parrot OS, Debian, Pop!_OS, Linux Mint, Deepin, Zorin OS, MX Linux, Elementary OS, Fedora, CentOS, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, Oracle Linux, ClearOS, Arch, Black Arch, Manjaro, आदि)। अधिकांश सिस्टम पर, Hawk स्थापित करने के लिए बस निम्न कमांड चलाएँ:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
फिर, बस निर्देशों का पालन करें। कृपया स्थापना के दौरान दिखाई देने वाले त्रुटि संदेशों को अनदेखा करें।
हालाँकि, यदि आप किसी अन्य Linux डिस्ट्रो का उपयोग कर रहे हैं जिसमें अलग पैकेज मैनेजर है, तो कृपया अपने डिस्ट्रो के पैकेज मैनेजर का उपयोग करके पैकेजों को मैन्युअल रूप से स्थापित करें। उपयोग किए गए विशिष्ट डिस्ट्रो के आधार पर, इस स्क्रिप्ट को चलाने के लिए आवश्यक कुछ पैकेज आपकी मशीन पर पहले से स्थापित हो सकते हैं। यदि आप आवश्यक पैकेज जानना चाहते हैं, तो setup.sh फ़ाइल देखें।
स्थापना के बाद, प्रोग्राम चलाने के लिए, बस प्रोजेक्ट की निर्देशिका में जाएँ और python का उपयोग करके hawk.py फ़ाइल चलाएँ। बेहतर प्रदर्शन और अनुमति त्रुटियों से बचने के लिए स्क्रिप्ट को रूट के रूप में चलाने की अनुशंसा की जाती है। उपयोग की गई कमांड निम्नलिखित है:
sudo python3 hawk.py
कॉन्फ़िगरेशन करने के लिए, बस files/conf.py पर कॉन्फ़िगरेशन फ़ाइल में जाएँ और उसे संपादित करें।
यदि आप अपने सिस्टम का वर्तमान TCP/IP नेटवर्क कॉन्फ़िगरेशन प्रदर्शित करना चाहते हैं, तो निम्न कमांड टाइप करें:
-ifconfig

कनेक्टिविटी जाँचने के लिए एक या अधिक होस्ट को ICMP पैकेट भेजने के लिए, बस टाइप करें:
-ping <HOST(s) IP/FQDN>

रूट पथों का निदान करने और ट्रांज़िट देरी को मापने के लिए, -traceroute कमांड का उपयोग करें:
-traceroute <HOST IP/FQDN>

पोर्ट स्कैन करने से आपके नेटवर्क से जुड़े होस्ट और चल रही सेवाओं की पहचान करके संभावित सुरक्षा उल्लंघनों का पता लगाने में मदद मिलती है।
कई स्कैन प्रकार समर्थित हैं, जिनमें TCP SYN (-scansyn) [जिसे स्टील्थ स्कैन भी कहा जाता है], TCP Connect (-scantcp), UDP (-scanudp), TCP ACK (-scanack) और व्यापक स्कैन (-scan) शामिल हैं।
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
यदि आप एक IP रेंज और/या पोर्ट रेंज स्कैन करना चाहते हैं, तो निम्न में से किसी एक कमांड का उपयोग करें:
-scan -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-scan -iprange <START IP> <END IP> -p <PORT(s)>
-scan -iprange <START IP> <END IP> -prange <START PORT> <END PORT>

इस स्कैन के बाद, यह देखना संभव है कि 22 (SSH) और 80 (HTTP) दोनों पोर्ट खुले हैं।
किसी दिए गए नेटवर्क पर वर्तमान में चालू डिवाइसों को खोजने के लिए निम्न कमांड टाइप करें:
-scanlan
फिर उस नेटवर्क को टाइप करें जिसे आप स्कैन करना चाहते हैं।

LAN पर एक या अधिक सक्रिय होस्ट का MAC पता प्राप्त करने के लिए, कमांड का उपयोग करें:
-getmac -host <HOST(s) IP>

संस्करण पहचान, या बैनर ग्रैबिंग, एक टोही तकनीक है जो सॉफ़्टवेयर बैनर जानकारी प्राप्त करती है। यह बैनर आमतौर पर नेटवर्क सेवा के बारे में महत्वपूर्ण जानकारी रखता है, जिसमें इसका सॉफ़्टवेयर नाम और संस्करण शामिल है, लेकिन यह इन्हीं तक सीमित नहीं है। FTP, वेब, SSH और SMTP सर्वर अक्सर अपने बैनर में चल रहे सॉफ़्टवेयर के बारे में महत्वपूर्ण जानकारी उजागर करते हैं।
एक बैनर हमला आमतौर पर खुले पोर्ट खोजने के लिए एन्यूमरेशन स्कैन से शुरू होता है। एक बार जब आप किसी ऐसी सेवा की पहचान कर लेते हैं जिसे आप लक्षित करना चाहते हैं, तो आप विशिष्ट पैकेट भेज सकते हैं और निर्दिष्ट जानकारी के लिए ट्रैफ़िक का निरीक्षण कर सकते हैं।
बैनर ग्रैबिंग करने के लिए, अपनी विशिष्ट आवश्यकताओं के आधार पर, निम्न में से एक कमांड टाइप करें:
-grab -host <HOST(s) IP/FQDN> -p <PORT(s)>
-grab -iprange <START IP> <END IP> -prange <START PORT> <END PORT>
-grab -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-grab -iprange <START IP> <END IP> -p <PORT(s)>

यह सुविधा UNIX सिस्टम पर उपयोग किए जाने वाले प्रसिद्ध nslookup कमांड के समान है। यदि आप DNS जाँच करना चाहते हैं, तो निम्न टाइप करें:
-ns <HOST(s) IP/FQDN>

अस्वीकरण: ध्यान दें कि यह सुविधा IPinfo API का उपयोग करती है। API कुंजी को अपनी कुंजी में बदलने की अनुशंसा की जाती है क्योंकि प्रदान की गई कुंजी अन्य लोगों द्वारा उपयोग की जा रही हो सकती है। API कुंजियाँ बदलने के लिए files/conf.py पर कॉन्फ़िगरेशन फ़ाइल में जाएँ।
WHOIS एक TCP प्रोटोकॉल है जिसका उद्देश्य संपर्क और DNS से परामर्श करना है। एक या अधिक पृष्ठों का WHOIS अनुरोध करने के लिए, बस टाइप करें:
-whois <HOST(s) IP/PQDN>

सबडोमेन एन्यूमरेशन एक या अधिक डोमेन के लिए मान्य उप-डोमेन खोजने की प्रक्रिया है।
सब-डोमेन एन्यूमरेशन बहुत सारे डोमेन/सब-डोमेन प्रकट कर सकता है जो सुरक्षा मूल्यांकन के दायरे में होते हैं, जिससे भेद्यताएँ खोजने की संभावनाएँ बढ़ जाती हैं।
यदि आप किसी डोमेन के सामान्य सबडोमेन खोजना चाहते हैं, तो बस टाइप करें:
-sdenum <PQDN>
यह कमांड सबडोमेन खोजने के लिए डिफ़ॉल्ट वर्डलिस्ट का उपयोग करता है। हालाँकि, यदि आप अपनी स्वयं की वर्डलिस्ट का उपयोग करना चाहते हैं, तो टाइप करें:
-sdenum <PQDN> -wordlist <WORDLIST PATH>

डायरेक्ट्री बस्टिंग वेब सर्वर के भीतर डायरेक्ट्री खोजने की प्रक्रिया है।
यह कार्य करने के लिए टाइप करें:
-dirbust <HOST IP/FQDN>
यह कमांड सबडोमेन खोजने के लिए डिफ़ॉल्ट वर्डलिस्ट का उपयोग करता है। हालाँकि, यदि आप अपनी स्वयं की वर्डलिस्ट का उपयोग करना चाहते हैं, तो टाइप करें:
-dirbust <HOST IP/FQDN> -wordlist <WORDLIST PATH>

एक या अधिक होस्ट को भेद्यताओं के लिए स्कैन करने हेतु निम्न कमांड का उपयोग करें:
-vulnscan -host <HOST(s) IP/FQDN>

अस्वीकरण: ध्यान दें कि यह सुविधा Shodan API का उपयोग करती है। API कुंजी को अपनी कुंजी में बदलने की अनुशंसा की जाती है क्योंकि प्रदान की गई कुंजी अन्य लोगों द्वारा उपयोग की जा रही हो सकती है। API कुंजियाँ बदलने के लिए files/conf.py पर कॉन्फ़िगरेशन फ़ाइल में जाएँ।
पैकेट स्निफिंग करने के लिए, टाइप करें:
-sniff

अस्वीकरण: यदि आप किसी नेटवर्क से गुजरने वाले सभी डेटा को स्निफ करना चाहते हैं, तो पहले अपने वायरलेस कार्ड या एडॉप्टर को मॉनिटर मोड में बदलें।
MAC स्पूफिंग भेजने वाले NIC के पते से भिन्न MAC पते के साथ फ्रेम उत्पन्न करना है।
किसी इंटरफ़ेस का MAC पता बदलने के लिए, कमांड जारी करें:
-macspoof -source <SOURCE MAC> -iface <INTERFACE>

जैसा कि आप नीचे स्क्रीनशॉट में देख सकते हैं, इंटरफ़ेस का MAC पता सफलतापूर्वक बदल दिया गया।

IP स्पूफिंग का उद्देश्य सही स्रोत IP पते को संशोधित करना है ताकि जिस सिस्टम को पैकेट निर्देशित किया गया है वह प्रेषक की सही पहचान न कर सके।
ध्यान दें कि यह कमांड केवल अनपैच की गई भेद्यताओं वाली मशीनों पर काम करता है। किसी होस्ट के विशिष्ट पोर्ट पर IP स्पूफिंग करने के लिए, निम्न कमांड का उपयोग करें:
-ipspoof -source <SOURCE IP> <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
यदि आप यादृच्छिक स्रोत IP का उपयोग करना चाहते हैं, तो निम्न कमांड टाइप करें:
-ipspoof -source r <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
आप यादृच्छिक स्रोत पोर्ट का भी उपयोग कर सकते हैं:
-ipspoof -source <SOURCE IP> r -target <TARGET IP/FQDN> <TARGET PORT>

अस्वीकरण: कृपया इसका उपयोग केवल परीक्षण उद्देश्यों के लिए करें और अपनी स्वयं की मशीनों को लक्षित करें।
SYN फ्लड एक DDoS हमला विधि है जो ट्रांसपोर्ट लेयर (लेयर 4) में प्रत्यक्ष ओवरहेड और एप्लिकेशन लेयर (लेयर 7) में अप्रत्यक्ष ओवरहेड उत्पन्न करती है।
SYN फ्लडिंग का प्रयास करने के लिए, टाइप करें:
-synflood -source <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
यदि आप यादृच्छिक स्रोत पोर्ट का उपयोग करना चाहते हैं, तो निम्न कमांड टाइप करें:
-synflood -source r -target <TARGET IP/FQDN> <TARGET PORT>

अस्वीकरण: कृपया इसका उपयोग केवल परीक्षण उद्देश्यों के लिए करें और अपनी स्वयं की मशीनों को लक्षित करें।
डीऑथ अटैक एक प्रकार का वायरलेस हमला है जो राउटर और उस राउटर से जुड़े एक या अधिक डिवाइसों के बीच संचार को लक्षित करता है, प्रभावी रूप से लक्षित मशीन को एक्सेस पॉइंट से डिस्कनेक्ट करने के लिए मजबूर करता है।
यह हमला करने के लिए, निम्न कमांड का उपयोग करें:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface <INTERFACE>
यदि आप किसी गेटवे में सभी क्लाइंटों पर हमला करने की योजना बना रहे हैं, तो टाइप करें:
-deauth -target a -gateway <GATEWAY MAC> -iface <INTERFACE>
आप हमला करने के लिए अपना डिफ़ॉल्ट वायरलेस इंटरफ़ेस (files/conf.py में कॉन्फ़िगर किया गया) भी चुन सकते हैं:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface d

ऊपर स्क्रीनशॉट में दिए गए कमांड के बाद, उस एक्सेस पॉइंट से जुड़े सभी डिवाइस डिस्कनेक्ट हो गए और इस स्क्रिप्ट के चलने के दौरान पुनः कनेक्ट करने में असमर्थ रहे।
अस्वीकरण: यह हमला करने के लिए, सुनिश्चित करें कि आपके पास एक वायरलेस कार्ड या एडॉप्टर है जो मॉनिटर मोड का समर्थन करता है और डीऑथ अटैक का प्रयास करने से पहले उसे चालू करें। कृपया इसका उपयोग केवल परीक्षण उद्देश्यों के लिए करें और अपनी स्वयं की मशीनों को लक्षित करें।
ब्रूट-फोर्स अटैक पासवर्ड या उपयोगकर्ता नाम को क्रैक करने का एक प्रयास है।
ब्रूट-फोर्स अटैक करने और सामान्य/कमज़ोर क्रेडेंशियल खोजने के लिए, टाइप करें:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME>
यदि आप कस्टम वर्डलिस्ट का उपयोग करना चाहते हैं, तो कमांड का उपयोग करें:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME> -wordlist <WORDLIST PATH>
फिलहाल, केवल SSH सेवा समर्थित है।
अस्वीकरण: ध्यान दें कि लक्षित सर्वर में इस प्रकार के हमले के खिलाफ रक्षात्मक तंत्र हो सकते हैं और यह हमलावर के पासवर्ड का अनुमान लगाने के प्रयासों को अवरुद्ध कर सकता है। कृपया इसका उपयोग केवल परीक्षण उद्देश्यों के लिए करें और अपनी स्वयं की मशीनों को लक्षित करें।
यह कमांड इस स्क्रिप्ट में उपलब्ध कुछ टोही तकनीकों को स्वचालित करेगा। ऐसा करने के लिए, टाइप करें:
-autoscan <HOST(s) IP/FQDN>
अधिकांश वायरलेस उपयोगकर्ता केवल अपने वायरलेस कार्ड का उपयोग AP के स्टेशन के रूप में करते हैं। मैनेज्ड मोड में, वायरलेस कार्ड और ड्राइवर सॉफ़्टवेयर वायरलेस नेटवर्क से कनेक्टिविटी प्रदान करने के लिए मैनेज्ड मोड में स्थानीय AP पर निर्भर करते हैं।
कुछ वायरलेस कार्ड मॉनिटर मोड कार्यक्षमता का भी समर्थन करते हैं। मॉनिटर मोड में कॉन्फ़िगर होने पर, वायरलेस कार्ड डेटा संचारित करना बंद कर देता है और वर्तमान में कॉन्फ़िगर किए गए चैनल को स्निफ करता है, किसी भी देखे गए पैकेट की सामग्री को होस्ट ऑपरेटिंग सिस्टम को रिपोर्ट करता है।
किसी इंटरफ़ेस को मॉनिटर मोड में बदलने के लिए, निम्न कमांड का उपयोग करें:
-mode monitor -iface <INTERFACE>
आप अपने इंटरफ़ेस को डिफ़ॉल्ट वायरलेस इंटरफ़ेस (files/conf.py में कॉन्फ़िगर किया गया) पर भी सेट कर सकते हैं:
-mode monitor -iface d

जैसा कि आप नीचे स्क्रीनशॉट में देख सकते हैं, इंटरफ़ेस मोड सफलतापूर्वक बदल दिया गया।

हालाँकि, यदि आप अपने इंटरफ़ेस को वापस मैनेज्ड मोड में बदलना चाहते हैं, तो टाइप करें:
-mode managed -iface <INTERFACE>
आप अपने इंटरफ़ेस को डिफ़ॉल्ट वायरलेस इंटरफ़ेस (files/conf.py में कॉन्फ़िगर किया गया) पर भी सेट कर सकते हैं:
-mode managed -iface d

जैसा कि आप नीचे स्क्रीनशॉट में देख सकते हैं, इंटरफ़ेस मोड सफलतापूर्वक बदल दिया गया।

एक issue या pull request बनाएँ, या मुझे [email protected] पर ईमेल भेजें।
यह रिपॉजिटरी MIT लाइसेंस के अंतर्गत है।