Giải ngố Kali Linux – Phần 12: Bí thuật rình mò, đánh hơi packet với cá mập Wireshark

Kết thúc nội dung Phần 11: Cứu nguy tình thế không có đám “mèo” Netcat/Socat với Windows PowerShell, tôi xin tạm gác lại câu chuyện với đám mèo để chuyển sang một nhân vật nổi danh trong làng rình mò, đánh hơi (sniffing) các packet (gói tin) là cá mập Wireshark.

Với Wireshark, nếu thử mở chỉ mỗi cái mục lục của User Manual, bạn cũng sẽ phải mất một lúc mới lăn chuột xong đấy. Do vậy, mục tiêu của tôi trong kỳ này hiển nhiên không phải giới thiệu từ A đến Z đám thông tin hướng dẫn sử dụng của Wireshark. Ở đây, tôi hướng tới một mục tiêu khiêm tốn hơn là giới thiệu phần nguyên lý cơ bản nhất để bạn có thể bước chân vào con đường rình mò, đánh hơi và nghe lén các kiểu với con cá mập này. Sau đó, tùy thuộc vào các mưu đồ bẩn bựa cụ thể, bạn có thể xem thêm cái User Manual để lấy thêm các thông tin cần thiết.

#1 Quá trình cài cắm và khởi động cá mập Wireshark

Wireshark (hay Ethereal theo cách gọi trước khi được đổi tên vào năm 2006) chính xác là một Network Packet Analyzer (tôi tạm dịch là “công cụ phân tích gói tin trong mạng”) với khả năng chặn bắt các packet phục vụ nhu cầu “người đọc”. Trên nền tảng Linux, Wireshark sử dụng thư viện Libpcap (và thư viện Winpcap trên nền tảng Windows).

Với con Kali Linux, Wireshark đã có sẵn nên bạn có thể bỏ qua bước cài đặt để khởi động nó từ terminal với command “wireshark”. Nếu bạn thuộc trường phái khoái click chuột thì tìm trong menu nội dung “09 – Sniffing & Spoofing” sau đó tia sang phần chi tiết sẽ thấy thằng Wireshark như sau.

Start Wireshark
Start Wireshark

Nói chung cách nào bạn cũng mở được Wireshark lên cả, tuy nhiên, về lâu dài thì cách gọi từ terminal sẽ tiết kiệm cho bạn kha khá thời gian và công sức đấy.

Ngoài ra, nếu vì một lí do nào đó, bạn muốn cài Wireshark trên các OS khác (ví dụ Windows) thì bạn có thể bơi vào Wireshark · Download để lấy hàng tương ứng về mà cài cắm.

Download Wireshark
Download Wireshark

Lưu ý: Đừng quên công tác kiểm tra signature file cài đặt như tôi đề cập trong Giải ngố Tor Browser – Phần 3: Làm sao để kiểm tra signature file cài đặt.

Quay trở lại vấn đề chính, nếu mọi chuyện êm đẹp, đây là cái giao diện bạn có thể thấy sau khi khởi động Wireshark.

Wireshark Welcome Screen
Wireshark Welcome Screen

#2 Thu gọn phạm vi rình mò với thiết lập Network Interface, Capture Filter và Display Filter

#2.1 Thiết lập Network Interface

Việc đầu tiên bạn cần làm ngay sau khi khởi động là chọn Networrk Interface bạn muốn giám sát để sau đó thiết lập display & capture filter. Việc này là để tránh tình huống bạn bị ngập mõm với cả núi packet không liên quan mà Wireshark hốt về.

Để chọn Network Interface bạn chuột phải vô interface tương ứng rồi chọn “Start capture” hoặc double click cho nhanh.

Wireshark Network Interface
Wireshark Network Interface

Với việc tôi chạy Wireshark từ terminal của user thường (testkali trong ví dụ của tôi) với command “wireshark” như trên, tôi có thể gặp vấn đề về permission như bên dưới.

Wireshark Network Interface error
Wireshark Network Interface error

Bạn có thể làm theo hướng dẫn để xử lý bài bản hoặc chơi kiểu “mì ăn liền”bằng cách chạy lại với command “sudo wireshark”. Khi đó bạn sẽ thấy kết quả kiểu như sau với interface eth0 mà tôi đã chọn:

Wireshark Network Interface capturing
Wireshark Network Interface capturing

Sau đó tôi thử mở trình duyệt lượn vài đường bạn sẽ bắt đầu thấy cả núi thông tin đổ về (cái No. lên đến con số 5844 chỉ trong vài giây như hình sau).

Wireshark Network Interface - Captured Packets
Wireshark Network Interface – Captured Packets

Lúc này bạn có thể bấm vô chỗ “No.” để hiển thị thông tin theo thứ tự mới nhất/cũ nhất. Tuy nhiên việc này cũng chỉ mang lại cho bạn một ít lợi thế trong công cuộc đào bới đống thông tin mà Wireshark bắt được thôi chứ thật sự cũng không giúp gì nhiều. Để thực sự “mần ăn” với Wireshark, giờ bạn phải nhờ tới đám Capture Filter.

#2.2 Thiết lập Capture Filter

Để sử dụng tính năng này, bạn cần di chuyển đến menu Capture sau đó chọn “Capture Filters…”.

Capture Filters
Capture Filters

Lúc này Wireshark sẽ phọt ra một đám một đám predefined capture filters phổ biến (ví dụ cái “port 80”) để bạn có thể “ăn nhanh”. Tuy nhiên, nếu muốn “ăn ngon”, bạn sẽ cần đầu tư tự thiết kế cái filter để phục vụ các dã tâm cụ thể của mình (bằng cách bấm dấu “+” như bên dưới).

Predefined Capture Filters
Predefined Capture Filters

Tôi tạo thử cái “port 443” để xài thử như sau.

Create Capture Filters
Create Capture Filters

Sau khi tạo xong (và chọn interface tương ứng), bạn gõ thử chỗ “…using this filter” sẽ thấy cái đám filter hiện có.

Use Capture Filters
Use Capture Filters

Lưu ý: Nếu bạn lỡ bấm lung tung thì có thể mò về chỗ nhập Capture Filters bằng cách chọn lại Options trong menu Capture (hoặc bấm luôn cái shortcut của nó bên ngoài cũng được).

Capture Filters Menu
Capture Filters Menu

Chọn xong interface và filter thì bạn chọn “Start” để bắt đầu hốt hàng về.

Start Capture Filters
Start Capture Filters

Lưu ý: Promiscuous mode (trong dòng “Enable promiscuous mode on all interfaces” ở trên) là chế độ mà Network Interface Card sẽ “ăn tạp”, nó nhận cả các gói tin gửi đến địa chỉ tương ứng của nó và của các thằng khác trong mạng.

Bạn thử truy cập một trang https (tương ứng port 443) và kết quả khi đó nó sẽ kiểu như thế này.

Capture Filter Result
Capture Filter Result

#2.3 Thiết lập Display Filter

Như bạn thấy đấy, dù đã cố gắng thu gọn cái đống thông tin bằng cách giới hạn Network InterfaceCapture Display, đám thông tin Wireshark phọt ra vẫn còn quá nhiều. Lúc này, bạn có thể chuyển tiếp sang Display Filter để tinh chỉnh phần hiển thị.

Cũng giống như Capture Filter, bạn cũng có thể xem đám filter mà Wireshark định nghĩa sẵn bằng cách truy cập Analyze menu sau đó chọn Display Filters.

Display Filters Menu
Display Filters Menu

Và hiển nhiên, ở đây bạn cũng được quyền tự do (trong khuôn khổ Wireshark cho phép) sáng tác thêm các filter phù hợp với mưu đồ riêng của bạn.

Tôi thử lọc lại theo source IP với filter “ip.src==192.168.188.130” (192.168.188.130 là IP của con Kali Linux).

Add Display Filters
Add Display Filters

Lúc này thông tin sẽ được sắp xếp lại theo đúng cái IP Source mà tôi mong muốn. Trường hợp yêu cầu rắc rối hơn, bạn có thể tham khảo cú pháp viết các Display FiltersWireshark định nghĩa sẵn như trên (ví dụ cách sử dụng “and”) để tiếp tục phức tạp hóa vấn đề.

#3 Mặc đời xô đẩy với Following TCP Streams

Như vậy đến đây bạn đã có đủ công cụ để định vị và soi kèo các gói tin mà bạn quan tâm. Dựa vào nội dung cụ thể của các gói tin mà bạn bắt được, bạn sẽ có được “ảnh chụp” cuộc trao đổi của các bên liên quan trong quá trình “hành sự”. Việc của bạn là chấp vá đám “ảnh chụp” này lại để nắm bắt mạch câu chuyện đã diễn ra. Với các đại hiệp dày dạn kinh nghiệm rình mò, đánh hơi, việc xử lý tổng hợp này chỉ là muỗi. Với “các tấm chiếu mới chưa từng trải”, sẽ có một tính năng hỗ trợ rất tốt cho quá trình này đó là Following TCP Streams (thực ra không chỉ gà mờ, các bậc thầy cũng có thể tận dụng tính năng này để xử lý nhanh thông tin và dành thời gian mần việc khác).

Với Following TCP Streams, mà bạn sẽ không cần nhìn “ảnh chụp” để đoán nữa. Lúc này bạn cứ việc nhắm mắt (nhưng đừng có xuôi tay) mà trôi theo dòng chảy của dữ liệu – data stream. Cái stream này nó “đưa” bạn cái gì (ví dụ username và password đăng nhập ) thì bạn “đẩy” cái đó thôi.

Để phần múa lửa ở mục này đặc sắc hơn, tôi sẽ demo kết nối đến FTP server (với tử huyệt Clear Text Authentication – nghĩa là bạn sẽ đọc được thông tin xác thực trong các gói tin bắt được). Vì mục tiêu demo chính là Wireshark nên tôi không sa đà vào việc trình bày phần dàn cảnh dựng FTP server trên con Windows 10  – 192.168.188.135.

Lưu ý: Clear Text Authentication cũng là vấn đề bảo mật cần bàn kỹ thêm, nhưng để tôi chém gió vào dịp khác.

Tôi thử truy cập đến FTP server và thực hiện việc đăng nhập với thông tin đã thiết lập trước đó.

FTP Authentication
FTP Authentication

Lúc này quay lại Wireshark, chuột phải vào FTP packet, chọn Follow rồi đến TCP Stream như sau.

Follow TCP Stream
Follow TCP Stream

Và bùm chéo! Cái username và password đăng nhập nó hiện rõ mồn một như sau.

Captured Clear Text Authentication
Captured Clear Text Authentication

Bạn biết đấy, dù có là thánh nhân mà bị đời xô đẩy dí cái thông tin đăng nhập này vào mõm thì cũng khó mà nhắm mắt làm ngơ cho được. Do vậy, lần sau, trước khi có ý định sử dụng mấy thứ có dính đến Clear Text Authentication, bạn nên hình dung khả năng có một đại hiệp nào đó đang “cưỡi cá mập” ẩn trong một góc khuất chờ bạn dâng hiến credential nhé.

1 thought on “Giải ngố Kali Linux – Phần 12: Bí thuật rình mò, đánh hơi packet với cá mập Wireshark”

Leave a Reply

Your email address will not be published. Required fields are marked *