Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Lab 4- Kỹ thuật phân tích gói tin

1. Lab FTP-authentication
Khôi phục lại password được sử dụng khi đăng nhập vào ftp server.
2. Lab Telnet-authentication
Tìm mật khẩu được sử dụng trong quá trình sử dụng Telnet.
3. Lab Ethernet-Patched transmission
Đề bài cho nội dung 2 gói tin: trong đó 1 gói tin đến và 1 gói tin đi. Sinh viên
cần phải điền nội dung những byte còn thiếu vào dấu ??.
(Gợi ý: một số dấu hiệu nhận biết 0x45- IPv4, 0x06-TCP, 0x02- ???, sv tự tìm
hiểu dựa trên phân tích 1 kết nối tcp trong file pcap có sẵn – vd như webpage.pcap
ở lab1).

4. Lab Twitter authentication


Đề bài cho chúng ta một file pcap và yêu cầu chúng ta khôi phục lại mật khẩu
được sử dụng.
Sử dụng Follow TCP Stream chúng ta thấy phần ở đây xác thực sử dụng
HTTP Basic Authentication - là một kỹ thuật xác thực nhằm bảo mật cho ứng dụng
web trên giao thức http, yêu cầu người dùng cung cấp tên truy vập và mật khẩu khi
sử dụng ứng dụng. Ví dụ:
Quay trờ lại Follow TCP Stream, thông tin xác thực được gửi lên server là
dXNlcnRlc3Q6cGFzc3dvcmQ=. Dễ dàng nhận ra thông tin ở đây được mã bóa
theo chuẩn base64 (thường có dấu = ở cuối).

Sử dụng https://www.base64decode.org/ để tiến hành giải mã thông điệp ta


thu được mật khẩu cần tìm.
5. Lab IP Time-To-Live
Xác định giá trị TTL (Time-To-Live) được sử dụng để gói tin có thể gửi đến
host.
6. Lab Extract-me
Đề bài cho chúng ta 1 file pcap gồm rất nhiều các protocol khác nhau (TCP,
FTP, TLS….) được sử dụng. Đối với những bài nhiều gói tin như vậy chúng ta nên
nghĩ đến việc sử dụng phân tích luồng để có cái nhìn tổng quan về nội dung của
gói tin pcap chúng ta bắt được. Chọn Analyze > Follow > TCP Stream.
Hộp hội thoại Follow TCP Stream hiện ra. Những dữ liệu màu xanh được gửi
từ server, màu đỏ được gửi lên từ client. Dựa vào hội thoại (tcp.stream 0) ta có thể
thấy đây là một luồng kết nối tới ftp server với tên đăng nhập là ftpuser và mật
khẩu đăng nhập 123456.

Xem xét qua các stream khác một lượt không thấy có gì đặc biệt cho đến
stream 36. Tại đây ta thấy có quá trình truyền file từ client lên server. File này có
tên là Wh1t3H4T.zip
Tiếp tục phân tích Stream 37, chúng ta thấy Header PK…Đây là header của
rất nhiều các định dạng khác nhau như ZIP, JAR, DOC, PPTX
(http://www.garykessler.net/library/file_sigs.html). Tuy nhiên ở trên chúng ta nhận
định có 1 file Wh1t3H4T.zip được truyền nên chúng ta tiến hành trích xuất Stream
37 và lưu lại với tên Wh1t3H4T.zip. Bên trong file Wh1t3H4T.zip có chứa 1 file
flag.png.

Chọn Show and save data as “RAW” và sau đó click vào Save as… để lưu lại
file với tên Wh1t3H4T.zip
Thử tiến hành giải nén file zip chúng ta vừa thu được nhưng thấy thông báo
đòi mật khẩu để giải nén. Vậy ta phải tìm pass giải nén cho file zip này.

Tiếp tục thanh tra các stream không thấy gì đặc biệt cho đến stream 41, tại
stream này có sử dụng các kết nối SSL để mã hóa dữ liệu.
Thực hiện trích xuất chứng thư số được gửi bởi client và server.

Click vào Certificate chọn Export Packet Byte để trích xuất ra Certificate trao
đổi giữa client và server.
và lưu thành file có dạng public.der (Chuẩn X.509).

Sử dụng bộ công cụ OpenSSL trên Linux để xem thông tin chứa bên trong
chứng thư số mà ta thu được. Mã hóa RSA với public key 696 bit. Do đây là bài
tập mẫu nên chiều dài khóa chỉ có 696 bit. Trên thực tế để đảm bảo bảo mât, các hệ
thống thường dùng RSA 2048 bit.
Module được sử dụng có giá trị như trong hình
(BEF86C237C6AA1807256ED1A78E1F451BC49C5E80495FC2D06BB9A7764E
ED272A8CCBC490EEEF6D333243CEB87B907AA1C99D05479DF6F56AC779
26BC7C1BADE54845378C4DB13B8C098C42F3BCC4EB6A9CCE7C1559C1B).

Copy giá trị module và sử dụng python để đổi module từ cơ số 16 sang cơ số


10. Sau khi khởi động python bằng câu lệnh “python” ta gõ 0x sau đó paste giá trị
module cần chuyển đổi. Ta thu được giá trị:
24524664490027821197651766357308801846702678767833275974341445
171506160083003858721695220839933207154910362682719167986407977672
324300560059203563124656121846581790410013185929961993381701214933
5034875870551067
Phân tích module này ra thừa số nguyên tố bằng cách sử dụng các chương
trình phân tích số nguyên tố. Ở đây chúng ta sử dụng trang web
https://factordb.com để tiến hành phân tích (SV cần đọc lại lý thuyết RSA, RSA bị
mất an toàn khi nào…giao viên sẽ hỏi phần này).

Như trên hình chúng ta có thể thấy đã phân tích số nguyên tố của chúng ta có
chiều dài 210 bit ra thành tích của 2 số p và q có chiều dài 105 bit.
Sau khi thu được 2 số p và q, sử dụng công cụ rsatool
(https://github.com/ius/rsatool) để tính khóa mật được sử dụng. Để sử dụng rsatool,
trước tiên phải cài đặt thêm module gmpy.
Sử dụng rsatool để tính khóa bí mật dựa trên 2 số p, q đã biết và lưu lại thành
file private.key

Kết quả thông báo:

Tiến hành giải mã SSL với private.key vừa tính được. Vào Edit > Preferences
> Protocol > SSL. Lưu ý địa chỉ IP được sử dụng ở đây là 192.168.146.1 và
192.168.146.137
Trong phần RSA key list chọn Edit > + rồi điền các giá trị tương ứng. Ví dụ
hàng đầu tiên sẽ giải mã các gói tin đến từ địa chỉ 192.168.146.1 trên cổng 443
thành http với khóa bí mật thu được ở trên.
So sánh nội dung luồng dữ liệu trước và sau khi giải mã. Trước:

Sau:

Sau khi giải mã gói tin ta có thể đọc được nội dung dưới dạng bản rõ. Gói tin
2293 có chứa một tập tin pass.txt.
Thực hiện trích xuất tập tin này bằng cách chọn File > Export Objects >
HTTP sau đó chọn file pass.txt cần trích xuất rồi save lại.

Đọc nội dung file pass.txt, chúng ta thu được “Do_you_look_for_me”


Tiến hành giải nén file Wh1t3H4T.zip với mật khẩu “Do_you_look_for_me”
chúng ta thu được cờ cần tìm.

You might also like