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

90 254 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

Tiêu đề Xây Dựng Công Cụ Tấn Công Man-In-The-Middle Phục Vụ Đánh Giá An Toàn Mạng
Trường học Trường Đại Học
Chuyên ngành An Ninh Mạng
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 90
Dung lượng 2,25 MB
File đính kèm đánh giá an toàn mạng.zip (2 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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

Trang 3

LỜI MỞ ĐẦU

Hiện nay, trong thời đại công nghiệp 4.0 đang phát triển mạnh mẽ, các công

ty công nghệ đang tìm kiếm và phát triển các thiết bị IoT, công nghệ, giao thức mớinhằm nâng cao đời sống xã hội lên một tầm cao mới Tuy nhiên, do sự phát triển nhanh vượt trội của công nghệ thông tin, các cơ chế an toàn bảo mật không thể bắt kịp được tốc độ đó, khiến cho chúng ta dễ bị nhắm đến bởi các cuộc tấn công mạngkhi sử dụng các thiết bị đó Ảnh hưởng của các cuộc tấn công mạng có thể rất lớn, tùy theo mức độ quan trọng và giá trị tài sản của mục tiêu

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, tài liệu quan trọng, … của người dùng bị nhắm đến Một trong những phương pháp tấncông hay được sử dụng, đó là tấn công người xen giữa hay còn gọi là tấn công Man–in–The–Middle

Để bảo vệ trước các cuộc tấn công Man-in-the-middle, nhiều công cụ kiểm thử đã được xây dựng để mô phỏng các cuộc tấn công và phát hiện các lỗ hổng trong mạng máy tính, phục vụ cho việc thiết kế các cơ chế phát hiện và bảo mật mạng cần thiết trước kiểu tấn công này Tuy nhiên, nhiều công cụ tấn công chưa thực hiện được nhiều phương thức tấn công hay các kỹ thuật tấn công vẫn chưa hoàn thiện Ví dụ, công cụ tấn công Ettercap là một công cụ tấn công Man-in-The-Middle lâu đời nhưng thông tin đọc được chỉ giới hạn ở tên đăng nhập và mật khẩu.Vậy, việc phát triển công cụ tấn công Man-in-The-Middle vẫn còn nhiều tiềm năng

để thêm vào các phương thức mới hay cải thiện các kỹ thuật đã có

Chính vì lý do này, đề tài được chọn khi xây dựng đồ án này là “Xây dựng công cụ tấn công Man-In-The-Middle phục vụ đánh giá an toàn mạng” với mục tiêu là:

 Giới thiệu về tấn công Man-in-the-middle và tìm hiểu về các phương thức và

kỹ thuật tấn công Man-in-the-middle được sử dụng hiện nay

Trang 4

 Phân tích, thiết kế và lập trình công cụ tấn công MiTM

 Thử nghiệm công cụ tấn công MiTM

 Tìm hiểu về cách phòng chống và phát hiện tấn công MiTM

Sau thời gian nghiên cứu đồ án, các mục tiêu đề ra cơ bản đã đạt được Tuy nhiên, do kiến thức và kỹ năng lập trình còn hạn chế nên không thể tránh khỏi thiếusót, vậy nên rất mong thầy cô cùng các bạn học viên cùng đóng góp ý kiến để tác giả đồ án có thể hoàn thiện đề tài này

Trang 5

MỤC LỤC

LỜI CẢM ƠN i

LỜI MỞ ĐẦU ii

DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT vi

DANH MỤC HÌNH ẢNH vii

Chương 1: Tìm hiểu về tấn công Man – in – The – Middle (MiTM) 1

1.1 Khái niệm tấn công 1

1.2 Các phương pháp thực hiện tấn công Man – in – The – Middle (MiTM) 3

1.2.1 ARP Spoofing 3

1.2.2 DHCP Spoofing 7

1.2.3 DNS Cache Poisoning 12

1.2.4 ICMP Redirect 15

1.3 Các hình thức tấn công Man – in – the – middle 18

1.3.1 Packet Injection and Modification (Thêm và thay đổi gói tin) 18

1.3.2 Session Hijacking (Chiếm đoạt phiên) 19

1.3.3 SSL Stripping 21

Chương 2: Xây dựng công cụ tấn công MiTM 23

2.1 Giới thiệu 23

2.1.1 Scapy 23

2.1.2 Giới thiệu về công cụ được xây dựng 25

2.2 Phân tích và thiết kế chức năng 26

2.2.1 Quét mạng (Network Scanner) 26

2.2.2 Tấn công ARP Spoofing 29

2.2.3 Phát hiện ARP Spoofing (ARP Spoofing detector) 34

2.2.4 Lắng nghe HTTP (HTTP Sniffer) 39

2.2.5 DNS Spoofing 42

2.2.6 Trợ giúp 47

Chương 3: Thử nghiệm đánh giá an toàn mạng 48

3.1 Chuẩn bị 48

Trang 6

3.1.1 Hướng dẫn cài đặt công cụ 48

3.1.2 Thiết lập mô hình thử nghiệm 48

3.2 Thử nghiệm đánh giá an toàn mạng 51

3.2.1 Khái niệm về đánh giá an toàn mạng 51

3.2.2 Quét mạng (Network Scanner) 52

3.2.3 ARP Spoofing 53

3.2.4 Nghe lén đường truyền HTTP (HTTP Sniffer) 56

3.2.5 DNS Spoofing 58

3.2.6 Kết quả đánh giá an toàn mạng 60

Chương 4: Phòng chống và phát hiện tấn công Man–in–the–Middle 61

4.1 Một số biện pháp phòng chống và phát hiện tấn công MiTM 61

4.2 Sử dụng công cụ WiTM 63

KẾT LUẬN 66

TÀI LIỆU THAM KHẢO 67

Phụ lục 1: Chương trình chính của công cụ (WiTM.py) 68

Phụ lục 2: Script chứa các hàm kiểm tra trước (precheck.py) 71

Phụ lục 3: Script chứa chức năng quét mạng (network_scanner.py) 73

Phụ lục 4: Script chứa chức năng tấn công ARP Spoofing và phát hiện ARP Spoofing (ARP_spoofing.py) 74

Phụ lục 5: Script chứa chức năng nghe lén đường truyền HTTP (packet_sniffer.py) 77

Phụ lục 6: Script chứa chức năng tấn công DNS Spoofing (DNS_spoof.py) 79

Phụ lục 7: Script hướng dẫn sử dụng (help.py) 81

Trang 7

DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT

ARP Address Resolution Protocol

DHCP Dynamic Host Configuration Protocol

HSTS HTTP Strict Transport Security

HTTP Hypertext Transfer Protocol

ICMP Internet Control Message Protocol

IDS Intrusion Detection System

NAT Network Address Translation

NSA National Security Agency

OSI Open Systems Interconnection

TCP Transmission Control Protocol

VPN Virtual Private Network

WEP Wired Equivalent Privacy

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1.1 Ví dụ minh họa tấn công MiTM 1

Hình 1.2 Hoạt động mạng thông thường 5

Hình 1.3 Cách thực hiện tấn công ARP Spoofing của kẻ tấn công 6

Hình 1.4 Hoạt động mạng sau khi bị tấn công ARP Spoofing 7

Hình 1.5 Quá trình hoạt động của giao thức DHCP 8

Hình 1.6 Tấn công DHCP Starvation 10

Hình 1.7 Tấn công DHCP Spoofing 11

Hình 1.8 Tấn công DNS Cache Poisoning 13

Hình 1.9 Tấn công ICMP Redirect 17

Hình 1.10 Tấn công DNS Spoofing sử dụng kỹ thuật sửa đổi gói tin 18

Hình 1.11 Tấn công Session Hijacking 20

Hình 1.12 Tấn công SSL Stripping 21

Hình 2.1 Lưu đồ mô tả hoạt động của chức năng quét mạng 27

Hình 2.2 Lưu đồ mô tả hoạt động của chức năng tấn công ARP Spoofing 30

Hình 2.3 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 35

Hình 2.4 Lưu đồ xử lý gói tin ARP và phát hiện tấn công ARP Spoofing 36

Hình 2.5 Lưu đồ mô tả hoạt động lắng nghe của chức năng HTTP Sniffer 39

Hình 2.6 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 42

Hình 2.7 Lưu đồ mô tả cách xử lý gói tin DNS Response của chức năng DNS Spoofing 43

Hình 3.1 Giao diện công cụ WiTM 48

Hình 3.2 Mô hình mạng thử nghiệm 49

Hình 3.3 Cửa sổ Virtual Network Editor trong VMWare Workstation 50

Hình 3.4 Cửa số NAT Settings trong VMWare Workstation 50

Hình 3.5 Chức năng Network Scanner được chọn 52

Hình 3.6 Kết quả sau khi quét của chức năng Network Scanner 53

Hình 3.7 Địa chỉ MAC của máy nạn nhân trên Windows 7 53

Hình 3.8 Chức năng ARP Spoofing được chọn 54

Hình 3.9 Tấn công ARP Spoofing đang được thực hiện 54

Hình 3.10 Bảng ARP của máy nạn nhân khi bị tấn công ARP Spoofing 55

Hình 3.11 Tấn công ARP Spoofing bị ngừng 55

Hình 3.12 Chức năng HTTP Sniffer được chọn 56

Hình 3.13 Giao diện Website của học viện Kỹ thuật Mật mã 56

Hình 3.14 Kết quả thu được khi người dùng vào trang web 57

Trang 9

Hình 3.15 Giao diện trang web có URL http://testphp.vulnweb.com/login.php 57

Hình 3.16 Kêt quả thu được khi người dùng đăng nhập vào trang web 58

Hình 3.17 Chức năng DNS Spoofing được chọn 59

Hình 3.18 Tấn công DNS Spoofing được thực hiện 59

Hình 3.19 Kết quả nslookup trên máy nạn nhân với tên miền facebook.com 59

Hình 3.20 Kết quả nslookup trên máy nạn nhân với tên miền microsoft.com 60

Hình 3.21 Giao diện của chức năng DNS Spoofing trong quá trình tấn công 60

Hình 4.1 Chức năng phát hiện tấn công ARP Spoofing được lựa chọn 64

Hình 4.2 Thực hiện tấn công ARP Spoofing ở máy nạn nhân 65

Hình 4.3 Kết quả chức năng phát hiện tấn công ARP Spoofing của công cụ WiTM .65

Trang 10

CHƯƠNG I: TÌM HIỂU VỀ TẤN CÔNG MITMI.1 Khái niệm tấn công

Man – in – the – middle là một dạng tấn công mà ở đó kẻ tấn công xâm nhậpvào cuộc hội thoại giữa hai nhóm người, giả danh cả hai nhóm người và truy cậpvào các thông tin mà hai bên đang truyền cho nhau Tấn công man – in – the –middle cho phép kẻ tấn công chặn, gửi và nhận dữ liệu dành cho người khác hoặckhông bao giờ gửi đi, mà hai bên không hề hay biết

Tấn công MiTM là một trong những kiểu tấn công mạng lâu đời nhất tronglịch sử an ninh mạng Đầu những năm 1980 cho đến giờ, các nhà khoa học máytính đã phải nghiên cứu những cách có thể ngăn chặn được các nhân tố đe dọa được

sử dụng để nghe lén hoặc phá hoại đường truyền Để có thể thực hiện kiểu tấn côngnày, kẻ tấn công có thể can thiệp vào đường truyền hợp pháp hoặc tạo ra điểm kếtnối giả mà kẻ tấn công kiểm soát Đường truyền sau khi bị can thiệp sẽ bị loại bỏ

mã hóa nhằm đánh cắp, thay đổi hoặc chuyển hướng đường truyền đến địa điểm mà

kẻ tấn công muốn chuyển đến

Hình 1.1 Ví dụ minh họa tấn công MiTM

Hình 1.1 trên là một ví dụ của tấn công MiTM có thể làm gì nếu xâm nhậpthành công Lúc này, kẻ tấn công Peter sẽ xâm nhập vào cuộc trò chuyện giữa Jack

và Jill bằng cách đóng giả Jack và Jill Tại đây, đối với Jack, Peter là Jill và đối vớiJill, Peter là Jack Khi đó, Jack và Jill nghĩ rằng họ đang nói chuyện trực tiếp với

Trang 11

nhau nhưng thực ra, họ đều đang nói chuyện với Peter Vì lý do này, Peter có thểlắng nghe mọi dữ liệu mà Jack và Jill gửi đến cho Peter và thay đổi thông tin đượctruyền đi Trong ví dụ, Jack và Jill đang thực hiện một giao dịch chuyển tiền Peterthực hiện tấn công MiTM và thay khóa của Jill bằng khóa của chính mình, gửi choJack Sau đó, Peter sẽ chỉnh sửa số tài khoản của Jack bằng tài khoản của mình đểJill chuyển số tiền vốn định gửi cho Jack vào tài khoản của mình.

Các cuộc tấn công MiTM đang ngày càng gia tăng, khó phát hiện hơn vàđang có xu hướng phát triển để có thể phá được các biện pháp bảo mật hiện nay.Một số cuộc tấn công MiTM gây ảnh hưởng lớn được ghi nhận:

 Năm 2011, một lỗ hổng an ninh của cơ quan cấp chứng thư Hà Lan đượckhai thác để cung cấp chứng thư giả mạo Các chứng thư giả mạo đó sauđược sử dụng để thực hiện tấn công MiTM

 Việc cơ quan an ninh quốc gia (NSA) của Mỹ giả mạo thành Google đượclàm sáng tỏ vào năm 2013 khi Edward Snowden làm rò rỉ các tài liệu củaNSA công khai Sử dụng khả năng chặn bắt các thông tin và giả mạo cácchứng chỉ SSL, NSA có thể theo dõi các tìm kiếm tiềm tang của người dùng

 Năm 2014, Lenovo cài đặt một phần mềm adware MiTM gọi là Superfishtrên các máy tính PC Windows Superfish được sử dụng để quét các đườngtruyền SSL và cài đặt các chứng chỉ cho phép chúng chặn bắt và chuyểnhướng các đường truyền an toàn

 Năm 2015, một cặp đôi người Anh mất 340.000 Euro trong một cuộc tấncông MiTM nghe lén email và cướp email

 Cuối tháng 4, năm 2019, nhiều nhà nghiên cứu tin rằng nhiều kẻ tấn côngđang cố gắng sử dụng kiểu tấn công Man – in – the – Middle để phân phối vàcài đặt Plead Backdoor bằng cách sử dụng phần mềm AsusWSPanel.exe

Trang 12

I.2 Các phương pháp thực hiện tấn công Man – in – The – Middle (MiTM)

I.2.1 ARP Spoofing

I.2.1.1 Giới thiệu về giao thức ARP

Trong một hệ thống mạng máy tính, có 2 địa chỉ được gán cho máy tính là:

 Địa chỉ logic: là địa chỉ của các giao thức mạng như IP, IPX, Loại địa chỉnày chỉ mang tính chất tương đối, có thể thay đổi theo sự cần thiết của ngườidùng Các địa chỉ này thường được phân thành 2 phần riêng biệt là phần địachỉ mạng và phần địa chỉ máy Cách đánh địa chỉ như vậy nhắm giúp choviệc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạngkhác dễ dàng hơn

 Địa chỉ vật lý: hay còn gọi là địa chỉ MAC là địa chỉ 48 bit, dùng để địnhdanh duy nhất do nhà cung cấp gán cho mỗi thiết bị Đây là loại địa chỉphẳng, không phân lớp, nên rất khó dùng để định tuyến

Trên thực tế, các card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉMAC, địa chỉ cố định và duy nhất của phần cứng Do vậy phải có một cơ chế đểánh xạ địa chỉ logic - lớp 3 sang địa chỉ vật lý - lớp 2 để các thiết bị có thể giao tiếpvới nhau Từ đó, giao thức phân giải địa chỉ ARP - Address Resolution Protocolđược tạo ra nhằm giải quyết vấn đề trên

Giao thức ARP (Address Resolution Protocol), là giao thức được sử dụng đểphân giải địa chỉ MAC cố định từ một địa chỉ IP, có thể thay đổi tùy theo từngmạng ARP là giao thức lớp 2 - Data link layer trong mô hình OSI và là giao thứclớp Link layer trong mô hình TCP/IP Ban đầu ARP chỉ được sử dụng trong mạngEthernet để phân giải địa chỉ IP và địa chỉ MAC Nhưng ngày nay ARP đã đượcứng dụng rộng rãi và dùng trong các công nghệ khác dựa trên lớp hai

Quá trình hoạt động của giao thức ARP như sau:

 Bước 1: Khi một thiết bị nguồn muốn liên lạc với một thiết bị khác, thiết bị

đó sẽ kiểm tra xem trong bộ đệm ARP của máy đã có địa chỉ MAC được

Trang 13

phân giải của thiết bị đích chưa Nếu đã có, máy sẽ sử dụng địa chỉ MAC đó

để bắt đầu kết nối

 Bước 2: Nếu địa chỉ MAC của thiết bị đích chưa có trong bộ đệm ARP, thiết

bị nguồn sẽ tạo ra một gói tin ARP request và gửi broadcast cho toàn bộ thiết

bị có trong mạng với trường Target IP address chứa địa chỉ IP của thiết bịđích Trường Target Hardware Address sẽ để trống

 Bước 3: Mọi thiết bị trong mạng nhận được gói tin ARP Request do thôngđiệp được truyền broadcast Khi đó, chúng sẽ so sánh địa chỉ IP trong trườngTarget IP address với địa chỉ IP của chúng Nếu địa chỉ IP của chúng khônggiống, gói tin sẽ bị loại bỏ

 Bước 4: Nếu thiết bị đích nhận được gói tin, nó sẽ so sánh và tạo ra 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ũng sẽ cập nhật bộ đệm ARP Ởđây, gói tin ARP reply sẽ được gửi theo hướng Unicast

 Bước 5: Thiết bị nguồn sẽ nhận gói tin ARP reply từ thiết bị đích và cập nhậtđịa chỉ MAC trong trường Sender Hardware Address cùng với địa chỉ IP cầnphân giải vào bộ đệm ARP

 Bước 6: Thiết bị nguồn và thiết bị đích có thể liên lạc với nhau do bộ đệmARP đã có bản ghi cần thiết

Giao thức ARP là giao thức được sử dụng rất nhiều trong các thiết bị kết nốimạng ngày nay do sự linh hoạt và tiện lợi của nó Tuy nhiên, một cơ chế nguy hiểmcủa giao thức này có thể khiến mọi thiết bị gặp nguy hiểm Để đảm bảo rằng cácthiết bị mạng luôn tìm được địa chỉ MAC của thiết bị muốn kết nối, kể cả khi thiết

bị đó có thay đổi địa chỉ IP, các gói tin ARP sẽ luôn được tiếp nhận mặc dù thiết bị

đó không gửi gói tin ARP request Cơ chế này đã bị lợi dụng nhằm tiến hành nhiềucác dạng tấn công khác nhau, trong đó có tấn công Man – in – the – Middle

Trang 14

I.2.1.2 Tấn công ARP Spoofing

ARP spoofing là kiểu tấn công mà ở đó kẻ tấn công gửi các gói tin ARP sailệch trong toàn bộ khu vực mạng cục bộ Điều này sẽ dẫn đến địa chỉ MAC của kẻtấn công với địa chỉ IP của máy tính hợp pháp hoặc máy chủ trên mạng đó Một khiđịa chỉ MAC của kẻ tấn công kết nối với địa chỉ IP hợp lệ, kẻ đó sẽ bắt đầu nhậnbất kỳ dữ liệu được dành cho địa chỉ IP đó ARP spoofing có thể cho phép các nhân

tố độc hại chặn bắt, chỉnh sửa hoặc có thể ngăn chặn gói tin đang truyền Các cuộctấn công ARP spoofing chỉ có thể xảy ra trên các mạng cục bộ, nơi sử dụng giaothức ARP

Để có thể phân tích rõ hơn về kiểu tấn công này, đồ án sẽ 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 chỉ rõ hoạt động bình thường của mạng máy tính trước khi kẻ tấn công bắt đầu tấn công ARP spoofing Có thể thấy rằng, máy nạn nhân vẫn gửi các yêu cầu và nhận các phản hồi từ Internet thông qua Access point bình thường,

và cả máy kẻ tấn công cũng như vậy Lúc này, bảng ARP của Access point và của nạn nhân không bị thay đổi

Trang 15

Hình 1.3 Cách thực hiện tấn công ARP Spoofing của kẻ tấn công

Ở hình ảnh 1.3, máy kẻ tấn công đã bắt đầu thực hiện cuộc tấn công ARPSpoofing trên mạng LAN Có thể thấy rằng, kẻ tấn công đang gửi các gói tin ARPreply cho cả máy nạn nhân và Access Point Đối với nạn nhân, kẻ tấn công gửi mộtgói tin ARP reply có địa chỉ IP gửi là địa chỉ của Access Point, nhưng địa chỉ MACgửi được sử dụng trong gói ARP reply là địa chỉ của mình Khi máy nạn nhân nhậngói tin này, máy sẽ tưởng rằng Access Point đang gửi địa chỉ MAC cho mình vàcập nhật bảng ARP trên máy của mình Điều tương tự cũng xảy ra như vậy vớiAccess Point

Trang 16

Hình 1.4 Hoạt động mạng sau khi bị tấn công ARP Spoofing

Sau khi đã thay đổi bảng ARP của cả máy nạn nhân và Access point, kẻ tấncông đã thành công trong việc xen giữa bản thân mình trong kết nối của máy nạnnhân đối với Access Point Tại đây, mọi gói tin từ máy nạn nhân, sẽ phải đi quamáy kẻ tấn công để có thể đến Access Point và kết nối với Internet

Tấn công ARP Spoofing là cách thực hiện tấn công MiTM đơn giản và dễthực hiện nhất trong các phương pháp thực hiện tấn công

I.2.2 DHCP Spoofing

I.2.2.1 Giới thiệu về giao thức DHCP

Khả năng kết nối các thiết bị nhanh và dễ dàng là điều rất quan trọng trongquá trình phát triển công nghệ hiện nay, và mặc dù nhiều thập kỉ đã qua, giao thứcDHCP vẫn là một trong phương pháp cần thiết để đảm bảo rằng các thiết bị có thểkết nối mạng và được cấu hình chính xác DHCP giảm đi rất nhiều những lỗi khicài đặt địa chỉ IP thủ công và có thể mở rộng số lượng địa chỉ IP bằng cách giới hạnthời gian các thiết bị có thể giữ địa chỉ IP được cấp

Giao thức DHCP (Dynamic Host Configuration Protocol) là một giao thứcmạng, hoạt động theo mô hình server – client, được sử dụng trong các mạng IP mà

ở đó, một máy chủ DHCP tự động phân phát một địa chỉ IP và các thông tin mạng

Trang 17

khác cho mỗi thiết bị trên mạng để chúng có thể kết nối với nhau một cách hiệu quảvới các thiết bị khác Một máy chủ DHCP cho phép các máy tính yêu cầu các địachỉ IP và các tham số mạng tự động, giảm thiểu trách nhiệm cho các nhân viênquản trị mạng hoặc người dùng phải tự cài đặt các địa chỉ IP thủ công cho tất cảthiết bị mạng

Hình 1.5 Quá trình hoạt động của giao thức DHCP

Việc cấp phát và tiếp nhận giữa máy chủ DHCP và máy khách DHCP trênhình 1.5 có thể được diễn giải như sau:

 Bước 1: Máy khách DHCP gửi broadcast một thông điệp DHCPDISCOVERtrên mạng hiện tại

 Bước 2: Khi máy chủ DHCP tiếp nhận thông điệp DHCPDISCOVER từ mộtclient, máy chủ DHCP sẽ dành riêng một địa chỉ IP cho client và tạo một đềnghị cho thuê bằng cách gửi một thông điệp DHCPOFFER cho client Thôngđiệp này chứa địa chỉ MAC của client, địa chỉ cho thuê, subnet mask, thờihạn cho thuê và địa chỉ của máy chủ DHCP tạo đề nghị

 Bước 3: Để trả lời cho thông điệp DHCPOFFER, client trả lời với thông điệpDHCPREQUEST, gửi broadcast cho máy chủ, yêu cầu địa chỉ được thuê

Trang 18

Một client có thể nhận nhiều thông điệp DHCPOFFER từ nhiều máy chủ,nhưng chúng chỉ có thể nhận một thông điệp DHCPOFFER Khi các máychủ DHCP khác nhận thông điệp DHCP Request này, chúng sẽ thu về bất kì

đề nghị nào dành cho client đó và trả địa chỉ IP đề nghị về với tập các địa chỉsẵn sàng sử dụng

 Bước 4: Khi một máy chủ DHCP tiếp nhận thông điệp DHCPREQUEST từphía client, server sẽ trả về thông điệp DHCPACK nhằm công nhận việc tiếpnhận đề nghị của máy chủ DHCP Thông điệp DHCPACK chứa thời hạn sửdụng địa chỉ và bất kì các thông tin cấu hình khác mà client có thể yêu cầu.Giao thức DHCP đã và đang là giao thức được sử dụng rất nhiều trong cácmạng máy tính, chính vì vậy, đấy cũng chính là lý do nhiều kẻ tấn công muốn khaithác điểm yếu của giao thức này để có thể thực hiện một số cuộc tấn công nhưDHCP Spoofing, DHCP Stavation, …

Trang 19

I.2.2.2 Tấn công DHCP Spoofing

Tấn công DHCP Spoofing, hay còn gọi là giả mạo DHCP, là một kiểu tấncông mà ở đó máy tính của kẻ tấn công đóng vai hay giả dạng thành một máy chủDHCP trong mạng nội bộ LAN Kiểu tấn công này thường được kết hợp với kiểutấn công DHCP Starvation để tăng tính hiệu quả và chính xác

Hình 1.6 Tấn công DHCP Starvation

DHCP Starvation là kiểu tấn công nhằm đến máy chủ DHCP, ở đó kẻ tấncông sẽ gửi một lượng lớn thông điệp DHCP Request với các địa chỉ MAC giảmạo Nếu máy chủ DHCP tiếp nhận các thông điệp DHCP Request này và xử lý

nó, các địa chỉ IP trong máy chủ của DHCP sẽ bị cạn kiệt trong một khoảng thờigian rất ngắn Hình 1.6 ở trên là một ví dụ về cách thực hiện tấn công DHCPStarvation

Một khi các địa chỉ IP khả dụng của máy chủ DHCP bị cạn kiệt, kẻ tấn công

sẽ dựng lên một máy chủ DHCP giả mạo và trả lời các DHCP request từ các clienttrong mạng Bằng việc dựng lên một máy chủ DHCP giả mạo, kẻ tấn công giờ đã

có thể bắt đầu cuộc tấn công DHCP Spoofing

Trang 20

Hình 1.7 Tấn công DHCP Spoofing

Sau khi tấn công DHCP Starvation và xây dựng lên máy chủ DHCP giả mạo,

kẻ tấn công có thể bắt đầu phân phối các địa chỉ IP và các điều chỉnh cấu hình TCP/

IP khác đến các client DHCP trong mạng nội bộ bằng cách gửi các thông điệpDCHPOFFER cho toàn mạng Các điều chỉnh cấu hình TCP/IP bao gồm DefaultGateway và địa chỉ IP của máy chủ DNS Kẻ tấn công giờ có thể thay thế các địachỉ này bằng chính địa chỉ IP của kẻ tấn công Một khi địa chỉ IP của DefaultGateway của các thiết bị mạng bị thay đổi, các client trong mạng bắt đầu gửi cácđường truyền ra ngoài mạng đến máy tính của kẻ tấn công Kẻ tấn công giờ đãđứng giữa đường truyền giữa các client kết nối với DHCP giả mạo và Internet,đóng vai trò giống như là một gateway trước khi các thông điệp từ các client kếtnối gửi ra ngoài mạng

Tấn công DHCP Spoofing có thể gây ảnh hưởng lớn đến toàn bộ các thiết bị

sử dụng giao thức DHCP trong mạng LAN, khiến cho đường truyền của toàn bộcác thiết bị trong mạng bị nghe lén và thay đổi nếu hệ thống không có các biệnpháp bảo vệ kịp thời

Trang 21

I.2.3 DNS Cache Poisoning

I.2.3.1 Giới thiệu về giao thức DNS

DNS (Domain Name System) là một dịch vụ phân giải tên miền có khả năngánh xạ tên miền (Domain) sang địa chỉ IP và ngược lại DNS có cơ sở dữ liệu phâncấp, phân tán và sử dụng Port giao tiếp là 53 (UDP/TCP)

DNS bao gồm hai thành phần quan trọng: Máy chủ DNS và DNS Client:

 Máy chủ DNS sẽ thực hiện phân giải tên miền ra IP và ngược lại từ IP sangtên miền bằng cách tìm kiếm trong cơ sở dữ liệu của nó, nếu không tìm thấy

nó sẽ đi hỏi máy chủ DNS khác

o Forward Lookup Zone sẽ phân giải tên miền sang địa chỉ IP

o Reverse Lookup Zone sẽ phân giải IP sang tên miền

 DNS Client dùng để phân giải cho máy người dùng, khi người dùng truy cậptên miền DNS Client sẽ đi hỏi máy chủ DNS để lấy thông tin phân giải tênmiền

Máy chủ DNS sử dụng 2 giao thức để hoạt động là TCP và UDP Giao thứcTCP dùng để đóng gói khi 2 Server DNS thực hiện trao đổi dữ liệu với nhau, TCPđảm bảo quá trình cập nhật thông tin diễn ra an toàn và chính xác Giao thức UDPđược dùng để đóng gói và trả lời các Query một cách nhanh chóng cho các Clientgửi yêu cầu phân giải tên miền

Quá trình hoạt động của giao thức DNS:

 Bước 1: Đầu tiên Client sẽ gửi yêu cầu phân giải tên miền DNS Request tớimáy chủ DNS trong mạng cục bộ Nếu máy chủ DNS trong mạng cục bộ sẽkiểm tra trong cơ sở dữ liệu của nó có chứa bản ghi không Nếu có, nó sẽ gửitrả lại địa chỉ IP của máy có tên miền nói trên

 Bước 2: Trong trường họp máy chủ DNS cục bộ không có cơ sở dữ liệu vềtên miền này, nó sẽ hỏi lên các máy chủ DNS Root

 Bước 3: Máy chủ DNS Root sẽ tìm kiếm thông tin phân giải trong cơ sở dữliệu để trả về địa chỉ IP tương ứng cho Client

Trang 22

 Bước 4: Trường hợp máy chủ DNS Root không tìm thấy thông tin phân giảitrong cơ sở dữ liệu của nó thì sẽ gửi truy vấn hỏi các máy chủ DNS thứ cấpkhác.

 Bước 5: Các máy chủ DNS khác nếu tìm được thông tin phân giải tên miềnđược yêu cầu sẽ gửi phản hồi DNS Reply về cho máy chủ DNS Root

Giao thức DNS máy tính có thể dễ dàng truy cập vào các trang web màkhông cần phải nhớ những địa chỉ IP để truy cập Nhưng chính tiện ích này cũngchính là điểm yếu của giao thức DNS Vì người dùng không thể nhớ được tên miềnnày được gán với địa chỉ IP nào, kẻ tấn công có thể lợi dụng việc này để thay thếđịa chỉ IP của tên miền đó bằng địa chỉ IP của một máy chủ độc hại do kẻ tấn côngkiểm soát Đây còn được gọi là tấn công DNS poisoning

I.2.3.2 Tấn công DNS Cache Poisoning

Hình 1.8 Tấn công DNS Cache Poisoning

Hình 1.8 mô tả cách thực hiện tấn công DNS Cache Poisoning, một dạng tấncông nguy hiểm, khai thác các lỗ hổng trong giao thức DNS để đổi hướng đườngtruyền Internet khỏi các máy chủ hợp pháp và hướng đến các máy chủ giả mạo

Trang 23

Một trong những lí do khiến kiểu tấn công DNS poisoning trở nên nguy hiểm nhưvậy vì nó có thể lan ra từ máy chủ DNS này sang máy chủ DNS khác

Internet không chỉ có một máy chủ DNS, như vậy sẽ kém hiệu quả Nhàcung cấp mạng sử dụng chính các máy chủ DNS của họ làm nơi lưu trữ bộ đệm cácthông tin từ các máy chủ DNS khác Router tại nhà hiện nay hoạt động như mộtmáy chủ DNS, lưu trữ bộ đệm các thông tin từ các máy chủ DNS của nhà cung cấpmạng đăng ký Máy tính của người dùng cũng có một bộ nhớ bộ đệm DNS cục bộ,

để máy có thể tra cứu các bản ghi DNS đã yêu cầu từ trước hơn là gửi yêu cầu đếnmáy chủ DNS lần này đến lần khác

Nếu kẻ tấn công có thể điều khiển một máy chủ DNS và thay đổi một sốthông tin trên nó, ví dụ, kẻ tấn công có thể trỏ google.com đến một địa chỉ IP mà kẻtấn công điều khiển, máy chủ đó sẽ nói với những người dùng của nó tìmgoogle.com ở địa chỉ giả Ở địa chỉ giả đó, kẻ tấn công có thể tiếp nhận và chuyểntiếp yêu cầu của người truy cập đến tên miền muốn truy cập, thậm chí là thay đổiyêu cầu đến website thật, đứng giữa đường truyền của nạn nhân và website

Tấn công DNS poisoning có thể lan rộng ra nhiều mạng khác Ví dụ, nếunhiều nhà cung cấp mạng lấy các thông tin DNS của họ từ một máy chủ bị xâmnhập, bản ghi DNS bị chỉnh sửa sẽ lan ra các nhà cung cấp mạng và lưu vào bộ nhớ

bộ đệm ở đó Từ đó, chúng sẽ lan ra các bộ định tuyến tại nhà và các bộ nhớ bộđệm DNS trên các máy tính khi chúng phân giải tên miền, nhận phản hồi sai lệch

và lưu trữ nó Người dùng chịu ảnh hưởng của kiểu tấn công DNS poisoning sẽ bịđiều hướng đến máy chủ kiểm soát bởi kẻ tấn công, từ đó kẻ tấn công có thể thựchiện các kiểu tấn công lừa đảo, nhằm lừa người dùng cung cấp các thông tin nhạycảm như thông tin tài khoản mạng xã hội, ngân hàng, CMND, …

I.2.4 ICMP Redirect

I.2.4.1 Giới thiệu về ICMP

ICMP (Internet Control Message Protocol), là một giao thức hỗ trợ trên tầngmạng, được sử dụng bởi các thiết bị mạng nhằm gửi các thông điệp báo lỗi hoặc

Trang 24

hoặc các thông điệp vận hành thành công, thất bại khi giao tiếp đến các địa chỉ IPkhác trong mạng Các thông điệp ICMP thường được sử dụng trong hoạt độngchuẩn đoán, mục đích điều khiển, hoặc được tạo ra nhằm thông báo lỗi trong quátrình hoạt động của tầng mạng Ví dụ, mọi thiết bị (như là các bộ định tuyến trunggian) trước khi chuyển tiếp một gói tin IP, phải hạ trường TTL (Time to Live) trong

IP headers xuống 1 Nếu trường TTL hạ xuống 0 trước khi đến đích, gói tin sẽ bịloại bỏ và một gói tin ICMP Time Exceed sẽ được gửi lại đến địa chỉ nguồn, thôngbáo gửi thất bại

Một số dạng thông điệp ICMP phổ biến, thường thấy trong quá trình hoạtđộng mạng:

 ICMP Request (Type 8), ICMP Reply (Type 0): Là 2 dạng thông điệp được

sử dụng trong ping để kiểm tra kết nối của thiết bị từ xa, hoặc kiểm tra hoạtđộng của thiết bị mạng

 ICMP Destination Unreachable (Type 3): Thông điệp được sử dụng nhằmbáo về địa chỉ IP nguồn rằng đích đến không thể kết nối được

 ICMP Parameter Problem (Type 12): Thông điệp báo lỗi trong header củadatagram

 ICMP Redirect/Change Request (Type 5): Thông điệp điều khiển, được gửibởi gateway, nhằm báo cho các host biết rằng có một đường đi tốt hơn

 ICMP Timestamp Request (Type 13), ICMP Timestamp Reply (Type 14):Thông điệp được sử dụng nhằm đồng bộ thời gian ứng dụng giữa nơi chuyền

Trang 25

biệt, nhằm đổi hướng đường đi của mục tiêu Kiểu tấn công MiTM này còn đượcgọi là kiểu tấn công ICMP Redirect.

I.2.4.2 ICMP Redirect

Tấn công ICMP Redirect là một dạng tấn công MiTM, xen giữa đườngtruyền của nạn nhân bằng cách sử dụng thông điệp ICMP Redirect (Type 5) nhằmchuyển hướng đường truyền của nạn nhân Các gói tin của máy nạn nhân thay vì điqua gateway, chúng sẽ đi qua máy của kẻ tấn công do sự điều chỉnh trong bảngđịnh tuyến của máy nạn nhân

Như đã giới thiệu ở trên, thông điệp ICMP Redirect đảm bảo các host trongmạng sử dụng gateway tốt nhất có thể, hoặc đổi sang gateway khác phòng trườnghợp bị lỗi Những thông điệp này thường được gửi bởi các cầu nối để thông báo vớicác host rằng có một đường đi tốt hơn để liên lạc với đích đến định trước Thôngđiệp ICMP Redirect là dạng thông điệp chỉ được gửi bởi các bộ định tuyến, khônghost nào có thể gửi được Khi một gói tin ICMP Redirect được nhận bởi host, mộttuyến đường mới được thêm vào nhằm giúp host sử dụng được thông tin đó Thôngđiệp ICMP Redirect là tổng họp của địa chỉ IP của Gateway, theo đó là gói tin IP đểđịnh danh đường đi mới sẽ áp dụng Có 4 mã, được sử dụng để định danh các đốitượng chuyển hướng:

 Code 0: Chuyển hướng cho mạng

 Code 1: Chuyển hướng cho host

 Code 2: Chuyển hướng cho một dạng dịch vụ và mạng

 Code 3: Chuyển hướng cho một dạng dịch vụ và host

Để thực hiện được tấn công ICMP Redirect, kẻ tấn công sẽ phải tạo ra mộtgói tin ICMP Redirect giả mạo, với địa chỉ IP nguồn từ gateway Từ đó máy nạnnhân sẽ nhận gói tin và cập nhật đường đi mới, với gateway mới chính là địa chỉcủa IP của kẻ tấn công Hình 1.9 dưới đây minh họa cách thực hiện tấn công ICMPRedirect của kẻ tấn công

Trang 26

Hình 1.9 Tấn công ICMP Redirect

Tấn công ICMP Redirect thường rất khó để phát hiện do không thể phát hiệnđược sự bất thường trong lưu lượng mạng, nhưng để thực hiện được kiểu tấn côngnày, người thực hiện tấn công cũng gặp rất nhiều khó khăn Để có thể tạo ra mộtgói tin giả mạo, người tấn công cần phải biết được địa chỉ IP đích mà nạn nhânmuốn kết nối đến, thông thường là các địa chỉ IP ngoài Internet

Việc phát hiện địa chỉ IP đích của nạn nhân có thể dễ dàng đối với nhữngmạng sử dụng các thiết bị hub, chuyển gói tin theo dạng broadcast, nhưng với mạngmáy tính hiện đại, sử dụng switch để chuyển tiếp, việc lắng nghe các gói tin trongmạng sẽ trở nên khó khăn hơn rất nhiều, vì vậy rất khó để tạo ra một gói tin phùhợp được Tuy vậy, tấn công MiTM sử dụng ICMP Redirect vẫn là một trongnhững phương pháp tấn công hiệu quả

I.3 Các hình thức tấn công Man – in – the – middle

I.3.1 Packet Injection and Modification (Thêm và thay đổi gói tin)

Tấn công Packet Injection and Modification (Thêm và thay đổi gói tin) làhình thức tấn công mà ở đó, khi người tấn công đã đứng giữa đường truyền củamục tiêu và nghe lén được các gói tin đang truyền, lúc đó kẻ tấn công có thể thayđổi tham số của gói tin hoặc thay đổi số thứ tự của gói tin để thêm vào gói tin độc

Trang 27

hại, rồi truyền lại cho mục tiêu nhằm chuyển hướng, ngụy trang hoặc thay đổi cáchlàm việc của máy tính nạn nhân

Hình 1.10 Tấn công DNS Spoofing sử dụng kỹ thuật sửa đổi gói tin

Hình ảnh 1.10 một ví dụ về việc sử dụng Packet Modification để thực hiệntấn công DNS Spoofing Ở đây, kẻ tấn công nghe lén các gói tin đi từ nạn nhân raInternet nhằm tìm kiếm các gói tin DNS Query yêu cầu phân giải tên miềnYahoo.com Khi nhận được gói tin DNS Query đến tên miền Yahoo.com, kẻ tấncông sẽ chuyển tiếp yêu cầu đó đến tên miền và chờ đợi gói tin DNS Reply từ tênmiền Sau khi nhận được gói tin trả về cho yêu cầu, kẻ tấn công sẽ chặn và thay đổiđịa chỉ phân giải từ tên miền thành địa chỉ của máy chủ độc hại mà kẻ tấn côngmuốn mục tiêu chuyển hướng đến và chuyển về cho mục tiêu Lúc này, nạn nhânnhận được gói tin DNS Reply bị chỉnh sửa của kẻ tấn công và chuyển hướng đếnmáy chủ của kẻ tấn công Từ đó mọi gói tin được gửi đến Yahoo.com sẽ bị chuyểnđến máy chủ của kẻ độc hại mà nạn nhân không hề hay biết

Hình thức tấn công này rất phổ biến trong tấn công MiTM, giúp cho kẻ tấncông can thiệp và điều hướng đường truyền của nạn nhân, thêm vào những tệp tinđộc hai vào đường truyền nạn nhân, v.v Tuy nhiên, cũng có nhiều nhược điểm cầncân nhắc khi thực hiện Vì đây là một hình thức tấn công can thiệp đến đườngtruyền đang xảy ra và yêu cầu độ trễ thấp, hình thức này phải thực hiện tự động và

Trang 28

can thiệp ít để đảm bảo đường truyền không bị trễ Để thực hiện được kiểu tấn côngnày hiệu quả, kẻ tấn công cần phải sử dụng công cụ can thiệp gói tin có thể chỉnhsửa nhanh chóng, chính xác và hoàn toàn tự động

I.3.2 Session Hijacking (Chiếm đoạt phiên)

Session Hijacking là một hình thức tấn công mà phiên làm việc của ngườidùng bị chiếm đoạt bởi kẻ tấn công Thông thường, một phiên làm việc bắt đầu khingười dùng đăng nhập hay sử dụng một dịch vụ, ví dụ như ứng dụng ngân hàng, vàkết thúc khi người dùng thoát ra Kiểu tấn công này phụ thuộc vào việc kẻ tấn côngphải biết được session cookie, vì vậy kiểu tấn công này còn được gọi là kiểu tấncông cookie hijacking hay cookie side-jacking Mặc dù bất kỳ phiên máy tính nàocũng có thể bị chiếm đoạt, tấn công Session hijacking thường chỉ được áp dụng đốivới các phiên của trình duyệt hoặc của các ứng dụng web

Trong hầu hết các trường hợp khi người dùng truy cập vào một ứng dụngweb, máy chủ sẽ tạo ra một session cookie tạm thời ở trình duyệt của người dùng

để nhớ rằng họ đang truy cập và đã được xác thực Giao thức HTTP là một giaothức stateless và session cookie gán vào mọi HTTP header là cách phổ biến nhất đểmáy chủ có thể định danh trình duyệt của người dùng hoặc phiên hoạt động hiện tạicủa họ

Trang 29

Hình 1.11 Tấn công Session Hijacking

Hình 1.11 là một ví dụ về tấn công Session Hijacking

Để có thể thực hiện được tấn công session hijacking, kẻ tấn công cần phảibiết session ID, hay còn gọi là khóa phiên (session key) của nạn nhân, điều này cóthể làm được bằng cách nghe lén tìm session cookie của nạn nhân Sau khi nạnnhân đã đăng nhập thành công vào máy chủ, kẻ tấn công có thể cướp được phiênlàm việc đó bằng cách sử dụng chính session ID đó cho chính phiên trình duyệt của

kẻ tấn công Máy chủ khi đó sẽ đối xử với phiên làm việc của kẻ tấn công nhưphiên làm việc của nạn nhân

Nếu tấn công thực hiện thành công, kẻ tấn công có thể thực hiện bất kì hànhđộng nào mà nạn nhân được phép làm trong phiên hoạt động Tùy thuộc vào mụctiêu nhắm đến, điều này có thể là chuyển tiền từ tài khoản ngân hàng của nạn nhân,mua sắm trên các trang bán hàng online với tư cách là nạn nhân, truy cập vào các

Trang 30

thông tin cá nhân cho những tên cướp danh tính, cướp dữ liệu cá nhân của khánhhàng từ hệ thống công ty, mã hóa các dữ liệu quan trọng và yêu cầu tiền chuộc đểgiải mã chúng, v.v, tất cả đều mang lại hậu quả nghiêm trọng.

I.3.3 SSL Stripping

SSL Stripping hay còn gọi là tấn công hạ cấp SSL là một dạng tấn công được

sử dụng để phá vỡ bảo mật được áp dụng bởi chứng chỉ SSL trên các trang web sửdụng HTTPS Nói một cách khác, SSL Stripping là một kỹ thuật hạ cấp đườngtruyền của người dùng từ đường truyền HTTPS bảo mật xuống đường truyềnHTTP không mã hóa và để lộ đường truyền trước mối nguy bị nghe lén hoặc thaotúng dữ liệu Trong SSL Stripping, mọi đường truyền từ máy nạn nhân được địnhtuyến thông qua một proxy được tạo ra bởi kẻ tấn công

sẽ đóng vai trò như một người truy cập, thay thế nạn nhân gửi thông điệpnhận được từ nạn nhân đến máy chủ Khi đó, kết nối giữa kẻ tấn công và

Trang 31

máy chủ là kết nối an toàn do máy kẻ tấn công và máy chủ web thiết lập kếtnối SSL/TLS thành công.

 Máy chủ trả lời với trang web đăng nhập có URL sau:https://www.foobank.com/online_banking Ở giai đoạn này, kẻ tấn công cótruy cập vào trang web đăng nhập Tiếp theo, kẻ tấn công sửa đổi phản hồi từmáy chủ từ HTTPS xuống HTTP và gửi nó lại cho nạn nhân, kết quả là URLcủa phản hồi sẽ có địa chỉ là http://www.foobank.com/online_banking

 Lúc này, máy nạn nhân có truy cập vào trang đăng nhập của ngân hàng vớiđường truyền không an toàn với máy kẻ tấn công Từ thời điểm đó, mọi yêucầu của nạn nhân được truyền dưới dạng văn bản rõ và kẻ tấn công có thểnghe lén được dữ liệu

 Máy chủ nghĩ rằng nó đã thiết lập thành công kết nối SSL/TLS với máy nạnnhân nhưng thực ra là đang kết nối với máy kẻ tấn công Ngược lại, máy nạnnhân cũng nghĩ rằng nó đang kết nối với máy chủ hợp pháp

Tấn công SSL Stripping được sử dụng nhiều trong nghe lén dữ liệu do trìnhduyệt không hiện bất kì lỗi chứng chỉ SSL nào và nạn nhân cũng không hề hay biếttấn công đó đang diễn ra

Trang 32

CHƯƠNG II: XÂY DỰNG CÔNG CỤ TẤN CÔNG MITMII.1 Giới thiệu

II.1.1 Scapy

Scapy là một chương trình Python cho phép người dùng gửi, lắng nghe, phântích và tạo các gói tin mạng máy tính Những khả năng này giúp cho việc xây dựngcác công cụ có thể do thám, quét và tấn công mạng hiệu quả cao

Nói một cách khác, Scapy là một chương trình thao tác gói tin có khả năngtương tác mạnh mẽ, có thể tạo và giải mã các gói tin của nhiều giao thức, gửi vànhận chúng, ghép các yêu cầu và trả lời và nhiều hơn nữa Scapy có thể dễ dàng xử

lý các nhiệm vụ cổ điển như quét, theo dấu, do thám, tấn công và do thám mạng

Nó có thể thay thế công cụ hping, arpspoof, arp-sk, arping, p0f và một phần củacông cụ Nmap, tcpdump và tshark

Scapy còn có thể thực hiện nhiều công việc cụ thể khác mà một số công cụkhác không thể làm được, như là gửi frame không hợp lệ, thêm các frame 802.11,kết hợp các kỹ năng (VLAN hopping + ARP poisoning), giải mã VOIP trên kênhtruyền được mã hóa WEP, …

Ý tưởng rất đơn giản Scapy chủ yếu làm hai việc: gửi gói tin và nhận gói tintrả về Người sử dụng scapy định nghĩa một tập các gói tin, scapy gửi chúng, nhậncâu trả lời, ghép các yêu cầu với câu trả lời và gửi về một danh sách các cặp gói tin(yêu cầu, trả lời) và một danh sách các gói tin không khớp Đây là một lợi thế lớntrước các công cụ như Nmap hoặc Hping, ở đó mà câu trả lời không bị thu hẹptrong open, closed, filtered mà là cả gói tin

Một số chức năng chính của Scapy:

 Thiết kế gói tin nhanh chóng: Scapy cho phép người dùng miêu tả một góitin hoặc một tập các gói tin thành các tầng xếp lên nhau Các trường của mỗitầng có các giá trị mặc định có thể thay đổi Scapy không bắt buộc ngườidùng phải sử dụng các phương thức định nghĩa trước hoặc các khuôn mẫu cótrước Trong C, người lập trình phải cần đến trung bình 60 dòng để mô tả

Trang 33

một gói tin Với Scapy, các gói tin được gửi có thể chỉ cần mô tả trên 1 dòng

và 1 dòng nữa để in kết quả 90% các công cụ do thám mạng có thể đượcviết lại bằng 2 dòng của Scapy

 Do thám một lần, thu nhiều dữ liệu: Không như nhiều công cụ khác, Scapycung cấp toàn bộ các thông tin, ví dụ như toàn bộ các gói tin gửi và gói tintrả về nhận được Xem xét các gói tin này sẽ cho người dùng thông tin mongmuốn Hầu hết các công cụ chọn điểm nhìn và loại bỏ các gói tin không liênquan đến điểm nhìn đó Vì Scapy cho người sử dụng toàn bộ dữ liệu gói tin,

dữ liệu đó có thể được sử dụng nhiều lần cho phép các điểm nhìn thay đổiliên tục trong quá trình phân tích

 Scapy giải mã, không phải giải thích: Một trong những vấn đề của các thiết

bị do thám mạng máy tính là chúng cố gắng giải thích các phản hồi thay vìchỉ giải mã và đưa ra các dữ liệu Việc giải thích các kết quả có thể giúpnhững người dùng không biết gì về quét cổng nhưng chúng cũng có thể cóhại hơn là đem là lợi ích, do chúng có thể đưa ra các thành kiến về kết quả.Điều có thể có xu hướng xảy ra là để họ có thể tự mình thực hiện việc giảithích, những người dùng có hiểu biết sẽ cố gắng đảo ngược kỹ thuật diễn giảicủa công cụ để rút ra các sự kiện đã kích hoạt sự diễn giải đó Thật khôngmay, nhiều thông tin bị mất trong hoạt động này

 Giá trị mặc định hợp lý: Scapy sẽ cố gắng sử dụng các giá trị mặc định hợp

lý cho tất cả các trường của gói tin, nếu chúng không bị viết đè lên Scapycòn cung cấp khả năng tính toán các checksum, kích thước gói tin, … khôngcần sự can thiệp của người dùng

Sau khi đã tìm hiểu về Scapy, đồ án sẽ ứng dụng thư viện Scapy vào trongcông cụ để tạo ra các gói tin nhằm tác động lên hoạt động mạng của máy tính

Trang 34

II.1.2 Giới thiệu về công cụ được xây dựng

Công cụ được xây dựng, đặt tên là Who – in – the – Middle (viết tắt làWiTM), là công cụ nhằm cung cấp cho người sử dụng một số các phương thức và

kỹ thuật tấn công, phục vụ cho việc thực hiện tấn công MiTM

Công cụ WiTM sử dụng ngôn ngữ lập trình Python làm ngôn ngữ xây dựngcông cụ và Scapy làm module chính nhằm tạo các gói tin mạng, phục vụ cho việcquét và thực hiện tấn công Bằng việc sử dụng Python, công cụ có thể tương tác vớiScapy bằng cách import Scapy vào script với tư cách là một module Từ đó, công

cụ có thể thao tác với các chức năng của Scapy như tạo và phân tích gói tin

WiTM được xây dựng là một công cụ tấn công MiTM có thể được sử dụng

và cài đặt dễ dàng, không phụ thuộc nhiều vào các module ngoài các module mặcđịnh của Python Ngoài ra, WiTM có thể được sử dụng linh hoạt kết hợp với cáccông cụ tấn công mạng khác do các chức năng của WiTM được xây dựng độc lập

và không phục thuộc vào nhau

WiTM được thiết kế cùng với các chức năng sau:

 Quét mạng

 Tấn công ARP Spoofing

 Phát hiện ARP Spoofing

 Lắng nghe đường truyền HTTP

 DNS Spoofing

Chi tiết cụ thể về các chức năng của công cụ xây dựng sẽ được trình bày vàgiải thích ở phần Phân tích và thiết kế chức năng tiếp theo

Trang 35

II.2 Phân tích và thiết kế chức năng

II.2.1 Quét mạng (Network Scanner)

II.2.1.1 Phân tích

Ở chức năng Quét mạng, mục tiêu phải đạt được là xác định được thông tin

về địa chỉ IP và địa chỉ MAC của những thiết bị kết nối mạng trong LAN, đồngthời xác định địa chỉ IP của Gateway, phục vụ cho việc xác định hướng tấn côngMiTM của người sử dụng

Để có thể làm được điều này, công cụ cần phải sử dụng giao thức ARP để cóthể vừa xác định được các thiết bị đang kết nối trong mạng, vừa phân giải được địachỉ IP thành địa chỉ MAC Ngoài ra, giao thức ARP là một giao thức mạng truyềntải nhanh và không bị hạn chế bởi tường lửa có trên các máy tính, khiến cho việcquét mạng trở nên chính xác hơn

Ở chức năng này, công cụ yêu cầu người dùng nhập vào mạng cần quét, địnhdạng là network/subnet Từ đó công cụ sẽ phải kiểm tra địa chỉ mạng nhập vào cóhợp lệ hay không Nếu hợp lệ, địa chỉ mạng người dùng cung cấp để tạo gói tinARP request, gửi đi và nhận về các gói tin trả lời, kết quả trả về sẽ được in ra dướidạng bảng Nếu không hợp lệ, công cụ sẽ yêu cầu người dùng nhập lại Lưu đồ mô

tả quá trình hoạt động của chức năng được thể hiện ở hình 2.1 dưới đây:

Trang 36

Hình 2.13 Lưu đồ mô tả hoạt động của chức năng quét mạng

Để sử dụng chức năng này, chọn option 1 ở giao diện chính

II.2.1.2 Thiết kế

Trước khi xây dựng chức năng, cần phải tạo ra một hàm có khả năng kiểm tra địa chỉ IP được nhập vào, từ đó sẽ thiết kế thêm hàm kiểm tra mạng nhập vào hợp lệ hay không Phần lập trình các hàm kiểm tra địa chỉ nhập vào sẽ có ở phần

Trang 37

phụ lục 2 Sau đó, đồ án sẽ mô tả cách lập trình hàm nhập địa chỉ mạng từ phía người dùng.

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

Ở đây, áp dụng hàm kiểm tra địa chỉ mạng đã tạo, nếu địa chỉ nhập vào hợp

lệ, công cụ trả về dữ liệu Nếu dữ liệu nhập vào không hợp lệ, người dùng sẽ được yêu cầu nhập lại

Như đã nói ở phần trước, công cụ sẽ sử dụng giao thức ARP để quét mạng Bằng cách sử dụng Scapy, tạo ra một hàm nhằm gửi gói tin ARP broadcast đến địa chỉ mạng đã nhập và nhận các gói tin trả lời

Trang 38

trả lời Để lấy các gói tin đã được trả lời, lấy giá trị đầu tiên của cặp và trả về giá trịđó.

print("[!] Return " + str(num) + " results!")

print("[!] Gateway: " + scapy.conf.route.route("0.0.0.0")[2])

Sau khi đã tạo ra được hàm gửi gói tin ARP broadcast và nhận gói tin trả lời, tạo ra một hàm in ra kết quả đã lấy được từ hàm gửi ARP broadcast ở trên Giá trị của hàm send_ARP_broadcast lưu trữ cặp giá trị gồm gói tin gửi đi và gói tin trả lời từ đó lấy thông tin của gói tin trả về bằng cách lấy giá trị thứ 2 của cặp và trích xuất giá trị IP nguồn và MAC nguồn của chúng Để tìm được địa chỉ gateway, sử dụng hàm conf.route.route Hàm này sẽ trả về thông tin của một đường đi được chỉ định trước theo định dạng sau (interface, outgoing_interface, gateway) Ở đây, lấy địa chỉ gateway bằng cách lấy thông tin từ đường đi 0.0.0.0 Chức năng quét mạng cục bộ đã tạo xong

II.2.2 Tấn công ARP Spoofing

II.2.2.1 Phân tích

Đây là chức năng thực hiện tấn công ARP Spoofing Ở chức năng này, để có thể thực hiện kiểu tấn công này như định nghĩa, cần phải thực hiện xây dựng chức năng tấn công theo hình 2.2:

Trang 39

Hình 2.14 Lưu đồ mô tả hoạt động của chức năng tấn công ARP Spoofing

Để giải thích cụ thể chức năng này, đồ án sẽ phân tích lưu đồ trên như sau:

 Bước 1: Yêu cầu người dùng nhập 2 địa chỉ IP: địa chỉ IP của mục tiêu tấncông và địa chỉ IP của đối tượng giả mạo Nếu 2 địa chỉ nhập vào không hợp

lệ, công cụ sẽ yêu cầu người dùng nhập lại

Trang 40

 Bước 2: Sau khi đã nhập 2 địa chỉ IP, tạo ra 2 gói tin ARP Reply giả mạonhằm đánh lừa hai mục tiêu: máy bị tấn công và máy bị giả mạo, có địnhdạng như sau:

o Gói tin ARP reply 1: Có địa chỉ MAC trả lời là địa chỉ MAC của máyngười sử dụng công cụ nhưng địa chỉ IP là địa chỉ của máy giả mạo,gửi đến máy bị tấn công

o Gói tin ARP reply 2: Có địa chỉ MAC trả lời là địa chỉ MAC của máyngười sử dụng công cụ nhưng địa chỉ IP là địa chỉ của máy bị tấncông, gửi đến máy bị giả mạo

 Bước 3: Sau khi tạo được 2 gói tin giả mạo, cần phải thực hiện việc gửi 2 góitin này liên tục nhằm hạn chế khả năng máy của nạn nhân có thể lấy lại địachỉ MAC thật của thiết bị đang giả mạo Việc này có thể thực hiện đượcbằng cách tạo ra vòng lặp và cài đặt thời gian thực hiện việc gửi 2 gói tintrên

 Bước 4: Khi người dùng muốn kết thúc tấn công ARP spoofing, dừng quátrình gửi gói tin ARP reply giả mạo và tạo ra 2 gói tin ARP reply khác nhằmkhôi phục lại bảng ARP của 2 máy, xóa giấu vết tấn công của công cụ

Để có thể vừa thực hiện được tấn công ARP spoofing, vừa có thể thực hiệnđược các tính năng khác trong công cụ, công cụ sẽ phải phân luồng xử lý và chạytấn công một cách ngầm định để người sử dụng có thể chọn các lựa chọn khác màkhông ảnh hưởng đến quá trình tấn công ARP spoofing

Để sử dụng tấn công ARP Spoofing, lựa chọn option 2 Để ngắt tấn côngARP spoofing, chọn lại option 2 để ngắt tấn công đã thực hiện từ trước

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Philippe Biondi – Scapy documentation: https://scapy.readthedocs.io/en/latest/index.html Link
[2] Sab0tag3d – MITM cheatsheet: https://github.com/Sab0tag3d/MITM-cheatsheet Link
[3] Tomasz Andrzej Nidecki - All That You Need to Know About Man-in-the- Middle Attacks: https://www.acunetix.com/blog/articles/man-in-the-middle-attacks/ Link
[4] Netsparker Security Team - Man-in-the-middle Attacks and How To Avoid Them: https://www.netsparker.com/blog/web-security/man-in-the-middle-attack-how-avoid/ Link
[5] Tomasz Andrzej Nidecki – All about Man-in-the-middle Attacks:https://www.acunetix.com/blog/articles/man-in-the-middle-attacks/ Link
[6] CrowdStrike - Man-in-the-Middle (MITM) Attacks Explained: https://www.crowdstrike.com/epp-101/man-in-the-middle-mitm-attacks/ Link
[7] Anastasios Arampatzis -What Are SSL Stripping Attacks? https://www.venafi.com/blog/what-are-ssl-stripping-attacks Link
[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-icmp-protocol-an-active-approach-IJERTV3IS051581.pdf Link
[9] Jeff Peters - What is DNS Cache Poisoning?: https://www.varonis.com/blog/dns-cache-poisoning/ Link
[10] Andrew Ayer - ICMP Redirect Attacks in the Wild: https://www.agwa.name/blog/post/icmp_redirect_attacks_in_the_wild Link
[11] Zbigniew Banach - What Is Session Hijacking: Your Quick Guide to Session Hijacking Attacks: https://www.netsparker.com/blog/web-security/session-hijacking/ Link

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

🧩 Sản phẩm bạn có thể quan tâm

w