TẤN CÔNG ARP (1)
Lưu ý: chỉ sử dụng phần hướng dẫn này với mục
đích tìm hiểu, học tập!!!!! Không nên sử dụng để gây ảnh hưởng tới sự hoạt động
bình thường của hệ thống mạng.
Mục đích
- Hiểu được giao thức ARP.
- Thực hiện một số phương pháp tấn công ARP.
- Biện pháp phòng chống tấn công ARP.
Phần mềm, công cụ cần thiết
- Wireshark
- Cain and Abel
ARP (Address Resolution Protocol)
ARP là giao thức thực hiện việc tìm địa chỉ MAC của một máy
trên mạng khi đã biết địa chỉ IP.
Hoạt động của ARP (hình minh họa dưới đây)
- Trong mô hình TCP/IP, khi tầng IP có một gói tin cần gửi đi (đã biết địa chỉ IP của máy nhận), nó phải thông báo cho tầng Network Access biết địa chỉ MAC của máy nhận trong mạng cục bộ. Nếu IP trên máy gửi không tìm được địa MAC của máy nhận trong bộ nhớ cache ARP, nó sẽ sử dụng ARP để tìm địa chỉ MAC của máy nhận.
- ARP trên máy A sẽ đi hỏi tất cả các máy trong mạng cục bộ bằng cách gửi gói broadcast, với nội dung là: máy nào trong mạng có địa chỉ IP (ví dụ: 192.168.1.2) hãy cho biết địa chỉ MAC (ARP request), tất cả các máy trên mạng đều nhận được gói này, tuy nhiên, các máy có địa chỉ IP khác 192.168.1.2 sẽ hủy gói ARP request này, chỉ có máy B với địa chỉ IP 192.168.1.2 sẽ nhận, xử lý và trả lời cho máy A (ARP reply). Nhận được ARP reply từ máy B, máy A sẽ lưu lại vào ARP table trong bộ nhớ cache ARP.
Cache ARP
Cache ARP là bộ nhớ đệm (trên RAM) chứa ARP table.
ARP table là một bảng, chứa thông tin ánh xạ giữa địa chỉ IP và địa chỉ MAC
tương ứng. Mỗi một bộ ánh xạ này được gọi là một entry.
Có 2 loại entry được lưu trong ARP table là static và
dynamic.
- Entry loại static: là entry được tạo bằng tay, tồn tại trong Cache ARP cho tới khi máy tính khởi động lại.
- Entry loại dynamic: là entry được tạo ra bằng giao thức ARP, tồn tại trong một khởi thời gian nhất định (mặc định là 20 phút).
Trong Windows, sử dụng lệnh arp –a để xem nội dung
của ARP table.
C:\Documents
and Settings\Maxsys>arp -a
Interface:
0.0.0.0 --- 0x4
Internet
Address Physical Address Type
192.168.12.123 00-12-45-67-23-56 static
Interface:
192.168.1.104 --- 0x5
Internet
Address Physical Address Type
192.168.1.1 00-1f-a4-25-d2-d1 dynamic
Bài tập 1: quan sát giao thức ARP
- Mở cửa sổ dòng lệnh, nhập lệnh arp -a để hiển thị nội dung ARP table. Quan sát kết quả và cho biết có bao nhiêu entry? Bao nhiêu entry kiểu static? Bao nhiêu entry kiểu dynamic?
- Nhập tiếp lệnh arp –d * để xóa toàn bộ nội dung của ARP table. Gõ lại lệnh arp –a, kết quả bạn nhận được là gì?
- Mở chương trình wireshark, chọn cạc mạng phù hợp và bắt đầu quá trình bắt gói.
- Trở lại cửa sổ dòng lệnh, thực hiện lệnh arp –d * , chờ một vài giây, nhập lệnh arp –a, nếu thấy xuất hiện bất kỳ entry nào, dừng chương trình bắt gói tin, quan sát cửa sổ kết quả chương trình bắt gói, trả lời các câu hỏi sau:
- Tìm các gói ARP?
- Gói nào là ARP request? Gói nào là ARP reply?
- Dựa vào đâu để biết gói đó là ARP request hay ARP reply?
- Tắt chương trình wireshark, trở lại cửa sổ dòng lệnh:
- Dùng lệnh arp với tham số phù hợp để thêm một entry loại static.
- Xóa một entry kiểu dynamic.
- Xóa một entry kiểu static.
Một số phương pháp tấn công ARP
ARP poisoning
ARP poisoning là một phương pháp tấn công hệ thống ARP, đầu
độc hệ thống ARP làm cho thông tin của ARP table còn chính xác.
ARP có một điểm yếu là không có cơ chế xác thực. Như đã biết
để xây dựng ARP table, máy tính sẽ gửi các ARP request, sau đó nhận lại các ARP
reply. Hệ thống hoàn toàn không có cơ chế xác minh xem thông tin của ARP reply
đó là thật hay giả, thông tin này sẽ được lưu lại vào ARP table để sử dụng.
Lợi dụng điểm yếu này người tấn công sẽ thực hiện đầu độc hệ
thống ARP, sau đó tấn công hệ thống mạng theo một số phương pháp như: man in
the middle, denial of services, MAC flooding…v.v.
Tấn công theo kiểu Man in the middle
Hình trên minh họa tấn công ARP kiểu man in the middle.
Người tấn công ngồi tại máy C, anh ta muốn theo dõi nội dung trao đổi giữa hai
máy A và B.
Để lấy được thông tin trao đổi giữa A và B, máy C sẽ thực
hiện tấn công ARP poisoning theo kiểu man in the middle hai máy A, và B. Bằng
cách:
- Máy C gửi một gói ARP reply tới máy A. Nội dung của ARP reply gồm địa chỉ IP của máy B và MAC của máy C. (192.168.1.4 : AA-BB-CC-DD-00-22). Máy A sẽ nhận và cập nhật vào ARP table.
- Máy C gửi tiếp một gói ARP reply khác tới máy B. Nội dung của ARP reply gồm địa chỉ IP của máy A và MAC của máy C. (192.168.1.3 : AA-BB-CC-DD-00-22). Máy B sẽ nhận và cập nhật vào ARP table.
- Máy C thực hiện chuyển tiếp (forwarding) các gói tin trao đổi giữa máy A và máy B. Điều này giúp hai máy A và B vẫn thực hiện được các trao đổi dữ liệu bình thường mà không hề biết đang có một người thứ ba đang theo dõi nội dung của các cuộc trao đổi.
Bài tập 2: tấn công ARP poisoning kiểu man in the middle
Ở bài tập này, sử dụng mô hình mạng gồm 3 máy.
- Máy tấn công: 192.168.7.36 gọi là máy C
- Hai máy bị tấn công (bị theo dõi): máy ftp client, IP 192.168.7.111 gọi là máy A và máy ftp server 192.168.7.222 gọi là máy B.
- Tại máy C, tải về và cài đặt phần mềm Cain and Abel (từ đây gọi tắt là Cain). Sử dụng phần mềm này để có được địa chỉ MAC của các máy đang hoạt động trong hệ thống mạng cục bộ. Địa chỉ để tải: http://www.oxid.it/cain.html.
- Tại máy C, chạy chương trình Cain, vào mục Configure trên danh mục chính, chọn tab Sniffer, chọn cạc mạng với địa chỉ IP phù hợp với mạng bạn đang dự định thực hiện tấn công, bấm OK.
- Bấm vào biểu tượng cái cạc mạng (thứ hai từ trái qua) để bắt đầu quá trình quét hệ thống, chọn tab Sniffer để hiển thị địa chỉ MAC của các máy đang hoạt động trong hệ thống mạng cục bộ.
Có thể bấm vào biểu tượng dấu “+”
trên thanh công cụ, chọn ARP Test (Broadcast 31-bit) trong phần
Promiscuous-Mode Scanner để có thêm nhiều địa chỉ MAC.
- Quan sát danh sách xem hai máy bạn dự định tấn công đã xuất hiện trên danh sách hay chưa? Nếu đã có, bấm vào tab ARP ở thanh công cụ phía dưới của chương trình Cain, sẽ xuất hiện hai cửa sổ: cửa sổ phía trên (I) hiển thị danh sách các máy đang bị tấn công, cửa sổ phía dưới (II) hiện thị nội dung đang trao đổi giữa các máy đang bị tấn công.
- Bấm chuột vào cửa sổ (I), bấm vào nút có dấu “+” trên thanh công cụ, để lựa chọn các máy sẽ tấn công. Khung bên trái hiển thị tất cả các máy trong mạng, chọn một máy sẽ tấn công, cửa sổ bên phải sẽ xuất hiện tất cả các máy trong mạng (trừ máy đã được lựa chọn ở bên trái). Chọn máy thứ 2 ở khung bên phải, bấm OK.
Bấm vào biểu tượng rada màu vàng –
đen (thứ 3 bên trái qua) để bắt đầu theo dõi hai máy.
- Tại máy C, chạy chương trình bắt gói wireshark.
- Tại máy ftp client (máy A) tạo một phiên kết nối ftp tới máy ftp server. Ví dụ: tên đăng nhập cisco, mật khẩu cisco.
C:\>ftp
192.168.7.222
Connected
to 192.168.7.222.
220
Welcome to the eagle-server FTP service.
User
(192.168.7.222:(none)): cisco
331
Please specify the password.
Password:
230
Login successful.
- Tại máy C, mở chương trình wireshark, lọc gói ftp, sẽ thấy được tên đăng nhập và mật khẩu mà 2 máy ftp client (192.168.7.111) trao đổi với ftp server (192.168.7.222),….và nhiều thông tin khác.
---------------------------------------
LGC.