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ới
nhằ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 tồ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ạng
khi 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ấn
cơ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
hồ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-TheMiddle 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à:
1
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.
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ếu
só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.
2
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
3
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 tồ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
4
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
5
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 qt 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
6
Hình 3.15. Giao diện trang web có URL . .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 q 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
7
CHƯƠNG I: TÌM HIỂU VỀ TẤN CƠNG MITM
I.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ập
và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ập
và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ặc
khô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 trong
lịch sử an ninh mạng. Đầu những năm 1980 cho đến giờ, các nhà khoa học máy
tí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ơng
nà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ết
nối giả mà kẻ tấn cơng kiểm số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ập
thà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ới
Jill, Peter là Jack. Khi đó, Jack và Jill nghĩ rằng họ đang nói chuyện trực tiếp với
1
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 được
truyền đi. Trong ví dụ, Jack và Jill đang thực hiện một giao dịch chuyển tiền. Peter
thự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 cho
Jack. 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 được
khai 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 được
làm sáng tỏ vào năm 2013 khi Edward Snowden làm rò rỉ các tài liệu của
NSA công khai. Sử dụng khả năng chặn bắt các thông tin và giả mạo các
chứ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à Superfish
trên các máy tính PC Windows. Superfish được sử dụng để quét các đường
truyền SSL và cài đặt các chứng chỉ cho phép chúng chặn bắt và chuyển
hướng các đường truyền an tồn
Năm 2015, một cặp đơi người Anh mất 340.000 Euro trong một cuộc tấn
cô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
2
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ười
dùng. Các địa chỉ này thường được phân thành 2 phần riêng biệt là phần địa
chỉ mạng và phần địa chỉ máy. Cách đánh địa chỉ như vậy nhắm giúp cho
việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng
khá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 để định
danh 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ếp
vớ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ừng
mạng. ARP là giao thức lớp 2 - Data link layer trong mơ hình OSI và là giao thức
lớp Link layer trong mơ hình TCP/IP. Ban đầu ARP chỉ được sử dụng trong mạng
Ethernet để 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.
Q 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
3
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 tồ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ường
Target IP address với địa chỉ IP của chúng. Nếu địa chỉ IP của chúng khơng
giố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ần
phâ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ộ đệm
ARP đã 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ối
mạ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ểm
củ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ác
thiết bị mạng ln 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ẽ ln đượ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ều
các dạng tấn cơng khác nhau, trong đó có tấn công Man – in – the – Middle.
4
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 sai
lệ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ận
bấ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ộc
tấ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 giao
thứ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.
5
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 ARP
Spoofing trên mạng LAN. Có thể thấy rằng, kẻ tấn cơng đang gửi các gói tin ARP
reply 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ột
gói tin ARP reply có địa chỉ IP gửi là địa chỉ của Access Point, nhưng địa chỉ MAC
gử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ận
gó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ới Access
Point.
6
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ấn
cô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ạn
nhâ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 qua
má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 trong
q trình phát triển cơng nghệ hiện nay, và mặc dù nhiều thập kỉ đã qua, giao thức
DHCP 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 khi
cà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ạn
thờ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ức
mạ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
7
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 địa
chỉ IP và các tham số mạng tự động, giảm thiểu trách nhiệm cho các nhân viên
quả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ên
hì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 DHCPDISCOVER
trê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ột
client, 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ời
hạ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ệp
DHCPREQUEST, gửi broadcast cho máy chủ, yêu cầu địa chỉ được thuê.
8
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áy
chủ 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ếp
nhậ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ác
mạ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 khai
thá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, …
9
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ấn
cô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ểu
tấ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ấn
cô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ời gian
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 DHCP Starvation.
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 client
trong 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.
10
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ệp
DCHPOFFER cho tồn mạng. Các điều chỉnh cấu hình TCP/IP bao gồm Default
Gateway và địa chỉ IP của máy chủ DNS. Kẻ tấn cơng giờ có thể thay thế các địa
chỉ này bằng chính địa chỉ IP của kẻ tấn công. Một khi địa chỉ IP của Default
Gateway 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ết
nối gửi ra ngồ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ện
pháp bảo vệ kịp thời.
11
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ân
cấ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 sang
tê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ập
tên miền DNS Client sẽ đi hỏi máy chủ DNS để lấy thông tin phân giải tên
miền.
Máy chủ DNS sử dụng 2 giao thức để hoạt động là TCP và UDP. Giao thức
TCP 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 q trình cập nhật thơng tin diễn ra an tồ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 Client
gử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ới
má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ửi
trả 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.
12
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.
Bước 4: Trường hợp máy chủ DNS Root khơng tìm thấy thơng tin phân giải
trong 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ấp
khá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ũng
chí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ền
nà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ơng
kiểm số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ấn
công nguy hiểm, khai thác các lỗ hổng trong giao thức DNS để đổi hướng đường
13
truyề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.
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ác
thông tin từ các máy chủ DNS khác. Router tại nhà hiện nay hoạt động như một
má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ấp
mạ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 đến
má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ìm
google.com ở địa chỉ giả. Ở địa chỉ giả đó, kẻ tấn cơng có thể tiếp nhận và chuyển
tiế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 đổi
yê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ếu
nhiề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âm
nhậ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 sốt bởi kẻ tấn cơng, từ đó kẻ tấn cơng có thể thực
hiệ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ạy
cảm như thông tin tài khoản mạng xã hội, ngân hàng, CMND, …
14
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ầng
mạ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
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ỉ IP
khác trong mạng. Các thông điệp ICMP thường được sử dụng trong hoạt động
chuẩn đốn, mục đích điều khiển, hoặc được tạo ra nhằm thơng báo lỗi trong q
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 trung
gian) 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ông
bá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ằm
bá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ủa
datagram
ICMP Redirect/Change Request (Type 5): Thông điệp điều khiển, được gửi
bở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
và nơi nhận
15
Trong an ninh mạng, nhiều kẻ tấn công đã xuất hiện nhiều phương thức tấn
công mạng bằng cách sử dụng giao thức ICMP, gây thiệt hại lớn cho mục tiêu. Ví
dụ, bằng cách sử dụng gửi một số lượng lớn gói tin ICMP Request với kích thước
lớn đến mục tiêu, kẻ tấn cơng đã có thể tạo ra một cuộc tấn công DoS, gây rối hoặc
cản trở dịch vụ, hoạt động của mục tiêu nhắm đến. Trong tấn công MiTM, giao
thức ICMP cũng có thể bị lợi dụng bằng cách sử dụng một dạng thông điệp đặc
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 được
gọ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 đường
truyền của nạn nhân bằng cách sử dụng thông điệp ICMP Redirect (Type 5) nhằm
chuyể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ì đi
qua 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 trong
mạng sử dụng gateway tốt nhất có thể, hoặc đổi sang gateway khác phịng trường
hợ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ới
cá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ông
host nào có thể gửi được. Khi một gói tin ICMP Redirect được nhận bởi host, một
tuyế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 đối
tượ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
16
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ột
gói tin ICMP Redirect giả mạo, với địa chỉ IP nguồn từ gateway. Từ đó máy nạn
nhâ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 ICMP
Redirect của kẻ tấn cơng
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ông
nà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ột
gó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ân
muốn kết nối đến, thơng thường là các địa chỉ IP ngồ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ững
mạng sử dụng các thiết bị hub, chuyển gói tin theo dạng broadcast, nhưng với mạng
máy tính hiện đại, sử dụng switch để chuyển tiếp, việc lắng nghe các gói tin trong
mạ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 trong
những phương pháp tấn công hiệu quả.
17
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ủa
mụ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
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ách
là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ện
tấ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 ra
Internet nhằm tìm kiếm các gói tin DNS Query yêu cầu phân giải tên miền
Yahoo.com. Khi nhận được gói tin DNS Query đến tên miền Yahoo.com, kẻ tấn
cơng sẽ chuyển tiếp u cầu đó đến tên miền và chờ đợi gói tin DNS Reply từ tên
miề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ông
muố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ân
nhận được gói tin DNS Reply bị chỉnh sửa của kẻ tấn công và chuyển hướng đến
18