Tìm hiểu công cụ phân tích giao thức Wireshark 1.1 Khái niệm về phân tích gói tin Phân tích gói tin, được hiểu thông thường là việc nghe các gói tin và phân tích giao thức; mô tả quá trì
Trang 1BÁO CÁO TÌM HIỂU WIRESHARK
I Nội dung báo cáo
1 Tìm hiểu công cụ phân tích giao thức Wireshark
2 Công cụ phân tích giao thức
3 Các tính năng chính của Wireshark
4 Scenario & Demo
II Nội dung chính
1 Tìm hiểu công cụ phân tích giao thức Wireshark
1.1 Khái niệm về phân tích gói tin
Phân tích gói tin, được hiểu thông thường là việc nghe các gói tin và phân tích giao thức; mô tả quá trình bắt và phiên dịch các luồng dữ liệu trên mạng
Phân tích gói tin thường được thực hiện bởi 1 công cụ chặn bắt gói tin gọi là packet sniffer để bắt các dữ liệu thô trên mạng
Phân tích gói tin sẽ giúp chúng ta hiểu cấu tạo của mạng chúng ta đang sử dụng, phát hiện và tránh các hành vi tấn công
Quá trình nghe gói tin được chia làm 3 bước:
• Thu thập dữ liệu: Trong Wireshark khi cấu hình công cụ này bắt gói tin Nếu ta chọn chế độ Promiscuous cho phép card mạng có thể bắt tất cả các gói tin đang lưu chuyển trong mạng LAN
• Chuyển đổi dữ liệu: Các gói tin nhị phân trên được chuyển thành các khuôn dạng có thể đọc được
• Phân tích: Phân tích các gói tin đã được chuyển đổi
1.2 Các cách nghe gói tin trên mạng
Nghe trong mạng có Hub
Với mạng có sử dụng Hub thì khi với cơ chế truyền gói tin của Hub thì chúng
ta có thể bắt được hết tất cả các gói tin lưu chuyển trên Hub đó
Trang 2Hình trên chỉ ra có 1 gói tin được chuyển đến Hub thì tất cả các gói tin đều được chuyển qua tất cả các cổng tức là chuyển qua tất cả các thiết bị kết nối với Hub đó (Kể cả máy tính A trả lời – response thì trả lời này cũng qua tất cả các port của Hub)
Nghe trong mạng có Switch
Với mạng hiện nay với việc dùng thiết bị Hub như trên không đáp ứng được băng thông tối đa cho các cổng nên chúng ta hay sử dụng thiết bị Switch Căn cứ trên bản ghi địa chỉ MAC của Switch thì những máy nào có địa chỉ MAC đích trên gói tin giống bản ghi địa chỉ MAC của Switch thì mới được nhận thông tin
Trang 3Hình trên chỉ ra Switch chuyển gói tin đến đúng máy tính A Các máy tính khác muốn biết Switch và máy A đang làm gì thì phải sử dụng các cách bắt gói tin sau:
• Port Mirroring
• Hubbing Out
• ARP Cache Poisoning
Ở đấy chúng ta quan tâm đến phương pháp ARP Cache Poisoning đây cũng là cách thức các hacker sử dụng nhiều nhất để bắt gói tin của máy bị đầu độc – poinsoning Bằng cách sử dụng giao thức ARP để giả mạo địa chỉ MAC của Switch khiến cho mọi thông tin từ máy nạn nhân thay vì chuyển đến Switch thì chuyển sang máy kẻ tấn công
Demo sẽ sử dụng công cụ Cain & Abel để làm sang tỏ hơn vấn đề này
2 Công cụ phân tích giao thức
Các giao thức là các quy tắc, quy ước truyền thông của mạng mà tất cả các thiết bị tham gia truyền thống phải tuân theo Vì vậy phân tích giao thức sẽ giúp chúng ta hiểu được các gói tin được truyền đi như thế nào, lỗi ở đâu, truyền lại như thế nào…
Wireshark – the word’s foremost network protocol analyzer
Trang 4Wireshark là công cụ phân tích gói tin điển hình, nó hỗ trợ khoảng 850 loại giao thức khác nhau từ phổ biến đến ít sử dụng
Giao diện của Wireshark:
Download Wireshark -> http://www.wireshark.org/download.html
Sample Captures ->http://wiki.wireshark.org/SampleCaptures cung cấp các mẫu ví dụ để người mới sử dụng có thể tham khảo
User’s Guide -> Đưa ra những hướng dẫn về Wireshark cho người dung
InterFace List-> Đưa ra danh sách các card mạng mà chúng ta có, tuy nhiên tại 1 thời điểm có thể chỉ sử dụng 1 card mạng để nghe và bắt gói tin
Capture Option-> Đưa ra các tùy chọn cho chế độ Ở đây chúng ta quan tâm đến tùy chọn có sử dụng chế độ Promiscuous hay không, nếu sử dụng tức là bắt tất
cả gói tin trong mạng LAN, nếu không chọn thì có nghĩa là chỉ bắt các gói tin thông qua card mạng
3 Các tính năng chính của Wireshark
Trong phần này chỉ trình bày những tính năng chung nhất giới thiệu cho Wireshark
Trang 5Name Resolution
Phân giải 1 loại địa chỉ này sang 1 loại địa chỉ khác dễ nhớ hơn Trong Wireshark hỗ trợ 3 loại phân giải tên:
• MAC Name Resolution: phân giải địa chỉ MAC tầng 2 sang địa chỉ IP tầng 3
• Network Name Resolution: chuyển địa chỉ mạng tầng 3 sang 1 tên miền dễ đọc dễ nhớ hơn
• Transport Name Resolution: chuyển đổi 1 công sang tên dịch vụ tương ứng với nó Ví dụ: 80->http
Protocol Dissection
Dùng để chia 1 giao thức thành 1 số thành phần để phân tích Wireshark sử dụng đồng thời nhiều Protocol Dissection để biên dịch gói tin ICMP protocol dissector cho phép Wireshark phân chia dữ liệu bắt được và định dạng chúng như
là 1 gói tin ICMP
Following TCP Streams
Tính năng vô cùng hữu ích của Wireshark là khả năng xem các dòng TCP như
là ở tầng ứng dụng, tính năng này cho phép chúng ta có thể “nối” tất cả các thông tin liên quan đến các gói tin, tức là sắp xếp lại dữ liệu 1 cách đơn giản
4 Scenario & Demo
Phân tích 1 gói tin bất kỳ (http, dns, dhcp…)
Phân tích gói tin sử dụng Following TCP streams
Phân tích gói tin HTTP có mã hóa ssl: phân tích https (có key mã hóa)
Kỹ thuật HTTP Session Sidejacking - Phân tích gói tin kết hợp Cain (ARP cache poisoning) bắt cookie của trang web http://www.facebook.com - demo cách thực hiện
• Dùng Mozilla Addons (Grease Monkey)
• Cookie Injector 4.1 Phân tích 1 gói tin bất kỳ
- Kịch bản:
Dùng máy tính PC cá nhân để bắt các gói tin trong mạng LAN Chọn Card mạng Ethernet và thiết lập chế độ là Promiscuous Mode để bắt tất cả các gói tin Nên bỏ chọn tính năng Enable network name resolution vì phân giải địa chỉ IP ra tên miền đôi khi quá dài, sẽ khó xem xét gói tin hơn
Card mạng ở đây là Card Gigabit Network Connection là Card Ethernet
Trang 6Sau khi cấu hình xong chúng ta có thể có ngay kết quả như sau:
Trang 7File Demo1.pcap Như hình trên chúng ta có thể thấy được 1 phần của phiên bắt gói tin có các giao thức như TCP, DNS, HTTP…
Wireshark cung cấp cho chúng ta nội dung chung của 1 gói tin Ví dụ như gói tin Frame 353 giao thức HTTP các thông tin về gói tin này như địa chỉ MAC nguồn MAC đích, địa chỉ IP nguồn đích, TCP và HTTP… Bảng dưới cùng là thông tin gói tin viết dưới dạng mã Hexa
Bên trên là 1 ví dụ thực tế Để làm rõ hơn, chúng ta đi vào xem xét từng phần Chúng ta sẽ tập trung vào 54 byte đầu tiên, gồm: frame header (14 bytes), IP header (20 bytes), và TCP header (20 bytes), như được nhìn thấy ở đây:
[00 1C 9C C5 D4 4F 00 1E EC 17 B2 1E 08 00] [45 00 03 B7 21 DA 40 00 80
06 00 00 C0 A8 10 D1 4A 7D 47 8A] [06 5F 00 50 01 81 FA 87 73 60 18 5E 50
18 3F BD 67 2A 00 00]
Từ trái sang phải, chúng ta thấy 14 byte đầu tiên;
00 1C 9C C5 D4 4F 00 1E EC 17 B2 1E 08 00
Trang 800 1C 9C C5 D4 4F là địa chỉ MAC đích
00 1E EC 17 B2 1E là địa chỉ MAC nguồn
08 00 giao thức IP
20 bytes tiếp theo của IP version 4
45 00 03 B7 21 DA 40 00 80 06 00 00 C0 A8 10 D1 4A 7D 47 8A
45 version 4, chiều dài header: 20 bytes
03 B7 chiều dài tổng là 951
21 DA ID 8866
40 0x02 không phân mảnh
80 Time to live
06 TCP
00 00 Header checksum
C0 A8 10 D1 địa chỉ IP nguồn 192.168.16.209 (địa chỉ IP của card mạng) 4A 7D 47 8A địa chỉ IP đích 74.125.71.138
20 bytes tiếp theo của TCP
06 5F 00 50 01 81 FA 87 73 60 18 5E 50 18 3F BD 67 2A 00 00
06 5F port nguồn port 1631
00 50 port đích 80 port http vì chúng ta đang kết nối đến 1 trang web nên port đích ở đây là 80
01 81 fa 87 sequence number 1235 ý nghĩa của trường này là “số thứ tự” TCP sẽ sử dụng trường này kiểm tra để đảm bảo không có gói tin nào bị thất lạc
Số thứ tự này còn được sử dụng để đảm bảo dữ liệu được trao cho ứng dụng đích theo đúng thứ tự TCP sử dụng lại check sum để xem có bytes nào bị hỏng hay không
73 60 18 5E là Acknowledgement number
50 chiều dài header TCP là 20
18 cờ 00 18 cờ Push và Ack bật
3F BD giá trị của window size 16317
Trang 967 2A check sum
00 00
Phần còn lại trong phần Hexa là nội dung của phần Data của dữ liệu truyền đi 4.2 Phân tích gói tin sử dụng Following TCP streams
- Kịch bản:
Một người đăng nhập vào trang web http://www.hvaonline.net (lưu ý ta đăng nhập sử dụng http thường) trên máy có cài Wireshark để theo dõi Theo dõi trên Wireshark ta thấy Frame 409 sử dụng phương thức POST đưa thông tin từ form login để đăng nhập vào HVA
File Demo2.pcap
Vì sử dụng http thường nên chúng ta sử dụng tính năng Following TCP streams nối các thông tin lại và thu được username password đăng nhập của người
đó như hình trên
4.3 Phân tích gói tin có mã hóa ssl: phân tích https (có key mã hóa)
- Kịch bản
Trang 10Mục trên đã trình bày cách bắt gói tin truyền theo giao thức http Với những giao thức sử dụng them giao thức SSL để tăng tính bảo mật như HTTPS, sẽ rất khó giải mã trừ khi chúng ta có khóa cá nhân của webserver đó Ví dụ về sử dụng SSL
để mã hóa https và có private key để giải mã https
Ở phần này chúng ta dùng file mẫu rsasnakeoil2.cap và file key rsasnakeoil2.key để giải mã
Sử dụng tính năng SSL decrypt để nhập key giải mã vào
Trang 11Sau khi sử dụng key giải mã ta thu được kết quả cuối cùng như sau:
Trang 12Chúng ta thấy đã hiện ra HTTP vậy là đã giải mã thành công HTTPS.
4.4 Kỹ thuật HTTP Session Sidejacking
Phân tích gói tin kết hợp Cain (ARP cache poisoning) bắt cookie của trang web http://www.facebook.com - demo cách thực hiện
• Dùng Mozilla Addons (Grease Monkey)
• Cookie Injector Session Sidejacking là kiểu tấn công thuộc họ ma-in-middle attack, mục đích
là nghe lén đường truyền bằng cách đánh lừa nạn nhân gửi thông tin đến chúng
- Kịch bản:
Mô tả các bước thực hiện như sau:
• Bước 1: Kết nối vào mạng wifi hoặc mạng LAN của nạn nhân Giả sử máy
attacker có địa chỉ IP 192.168.16.209 nghe lén thông tin của máy 192.168.16.45 (máy nạn nhân) mục tiêu là xem thông tin phiên đăng nhập khi máy nạn nhân đăng nhập vào facebook
• Bước 2: Thực hiện ARP Cache Poisoning để đầu độc máy trong mạng LAN,
bước này nằm giúp bạn có thể biến máy tính của bạn trở thành một router giả danh (giả mạo địa chỉ MAC) nhằm mục đích nghe lén dữ liệu được trung chuyển trên toàn mạng
• Bước 3: Sniff tất cả dữ liệu trung chuyển trên mạng wifi sau khi mạng này
đã bị ARP Cahe Poisoning thông qua công cụ Wireshark.
• Bước 4: Lọc ra dữ liệu đến từ người dùng cụ thể, ví dụ một người dùng có
IP là: 192.168.1.45 và bóc tách dữ liệu cookie của người dùng
• Bước 5: Thực hiện cookie injection, nhằm chèn dữ liệu về cookie vào trình
duyệt của người tấn công
• Bước 6: Khôi phục hoàn toàn phiên truy cập web của người dùng trên máy
tính của người tấn công
Để thực hiện được tấn công máy attacker cần phải có thêm vài công cụ như Cain & Abel, phần mềm Firefox có sử dụng Grease Monkey và Cookie injector để bắt cookie, dùng Cookies Manager+ để thiết lập lại phiên truy cập
Thực hiện:
• Bước 1: Cài đặt Cain, Wireshark, Firefox trên Firefox có cài Grease Monkey
và Cookie injector và Cookies Manager+
Trang 13• Bước 2: Chạy Wireshark chọn card mạng là card có địa chỉ 192.168.16.230
(là card mạng Wireless để bắt đầu bắt gói tin)
• Bước 3: Sử dụng Cain để tiến hành đầu độc máy nạn nhân.
Chọn chế độ start/stop sniffer, scan mạng LAN với hộp thoại MAC Address Scanner
Trang 14Trong Tab Sniffer ta có kết quả các địa chỉ IP trong mạng LAN
Trang 15• Bước 4: Tiếp theo chúng ta dùng ARP Cache Poinsoning đầu độc ARP máy
nạn nhân có địa chỉ IP 192.168.16.45
Chọn tab ARP và đầu độc thường được thực hiện giữa máy tính bên trái và những máy nạn nhân bên phải Bên trái có thể là router có địa chỉ 192.168.16.1 bên phải là máy có IP 192.168.16.45
Trang 16• Bước 5: Chọn biểu tượng màu vàng\đen nằm phía bên trên trái (Start/Stop
ARP)
Quay lại với Wireshark lúc này đã bắt được phiên đăng nhập vào trang www.facebook.com.vn của máy nạn nhân
Trang 17Tại khung lọc gõ http.cookie contains datr
Dùng tính năng Follow TCP stream ta thu được Cookie
Trang 18Cookie: datr=QweVT4cxkaE9HVWrZfLeblBJ; lu=Rg9pa-NZLw9YzHCBXuAd0Ykg; locale=vi_VN;c_user=100003660010804; xs=64%3AwMNZCc-7gta5-Q%3A0%3A1335426619
Với Cookie thu được từ máy nạn nhân, ta có thể dùng Cookies Manager+ để tái tạo phiên đăng nhập