Professional Documents
Culture Documents
5
Phân tích giao thức
Thực hiện kiểm tra một hoặc nhiều trường dữ liệu
trong một giao thức.
Phân tích giao thức giúp chúng ta hiểu rõ được nội
dung các gói tin hay các luồng dữ liệu:
Ai đang sử dụng băng thông.
Xác định các hành vi tấn công, phá hoại.
Chỉ ra các ứng dụng không được bảo mật.
Thông tin về các giao thức – RFC, IEEE-SA, …
RFC 793 Transmission control protocol
IEEE 802.11, IEEE 802.3...
6
Phân tích giao thức
1. Nhận dạng giao thức (Protocol
Identification).
2. Giải mã nội dung giao thức (Protocol
Decoding).
3. Trích xuất nội dung trong giao thức
(Exporting Fields).
7
Nhận dạng giao thức
Dựa trên việc phân tích nội dung gói tin
Dựa trên các giá trị nhị phân, thập lục phân,
ASCII đi kèm trong một giao thức cụ thể.
Dựa trên thông tin nhận dạng trong giao thức
đóng gói.
Dựa trên các cổng TCP/UDP gắn liền với các
giao thức, dịch vụ quy chuẩn.
Dựa trên việc phân tích thông tin địa chỉ
nguồn, địa chỉ đích.
8
Một số khái niệm toán học
Byte, nibble,bit.
Hệ nhị phân, hệ thập phân, hệ thập lục phân.
Lưu ý việc đếm byte bắt đầu từ 0 chứ không
phải 1.
Ví dụ:
01000101 (byte)
0100(4) 0101(5)
0b01000101 =0x45
9
Ethernet Frame
10
MAC Header
Ethernet type:
0x0800 – IPv4
0x0806 (ARP)
0x888E (EAPoL)…
11
Example – IPv4 Header
• d0 d0 fd c4 09 94 00 08 74 2d 2f 94 08 00 45
00 00 34 7e cf 40 00 40 06 b4 fc c0 a8 1e 1e
0a 1e 1e 14 02 02 84 36 85 68 76 e4 2c 7d 16
73 80 10 07 d3 cb 34 00 00 01 01 08 0a 1b af
ee af 1e 64 ae 84
• Destination MAC: d0 d0 fd c4 09 94
• Source: 00 08 74 2d 2f 94
• Ethernet Type: 0x0800 (IPv4)
12
IPv4 Header
13
Protocol Header
14
Example – IPv4 Header
d0 d0 fd c4 09 94 00 08 74 2d 2f 94 08 00 45 00 00 34
7e cf 40 00 40 06 b4 fc c0 a8 1e 1e 0a 1e 1e 14 02
02 84 36 85 68 76 e4 2c 7d 16 73 80 10 07 d3 cb 34 00
00 01 01 08 0a 1b af ee af 1e 64 ae 84
• IP version (4 bit): 4
• Header length (4 bit): 5*4=20 byte
• Protocol: 06 – TCP
• Source: c0 a8 1e 1e (192.168.32.32)
• Destination: 0a 1e 1e 14 (10.30.30.20)
15
TCP Header
16
Example – TCP Header
• d0 d0 fd c4 09 94 00 08 74 2d 2f 94 08 00 45
00 00 34 7e cf 40 00 40 06 b4 fc c0 a8 1e 1e
0a 1e 1e 14 02 02 84 36 85 68 76 e4 2c 7d 16
73 80 10 07 d3 cb 34 00 00 01 01 08 0a 1b af
ee af 1e 64 ae 84
• Source port: 02 02 (514)
• Destination port : 84 36 (33846)
• Header length: 8*4=32 byte
17
Example 1
00 21 70 4d 4f ae d0 d0 fd c4 09 94 08 00 45 00
02 dc 7e b2 40 00 34 06 3f 89 d1 6b d5 60 c0 a8
1e 6c 00 50 06 93 ab 78 fa 79 a2 a0 ed ef 50 18
1a 10 fc c5 00 00 48 54 54 50 2f 31 2e 31 20 33
30 32 20 4d 6f 76 65 64 20 54 65 6d 70 6f 72 61
72 69 6c 79 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65
6e 67 74 68 3a 20 30 0d 0a 4c 6f 63 61 74 69 6f
- Source, Destination MAC? Ethernet type?
- Source, Destination IP? IP header length? TTL?
20
Example 2
00 0c 29 63 c9 a8 00 0c 29 38 63 95 08 06 00
01 08 00 06 04 00 02 00 0c 29 38 63 95 c0 a8
01 0a 00 0c 29 63 c9 a8 c0 a8 01 1e
Source, Destination MAC? Ethernet type?
Source, Destination IP? IP header length?
TTL
Source, Destination Port? TCP header
length?
21
Example 2
00 0c 29 63 c9 a8 00 0c 29 38 63 95 08 06 00
01 08 00 06 04 00 02 00 0c 29 38 63 95 c0 a8
01 0a 00 0c 29 63 c9 a8 c0 a8 01 1e
23
Nhận dạng giao thức
2. Dựa trên thông tin nhận dạng trong giao
thức đóng gói
Các giao thức thường chứa thông tin cho
biết loại giao thức được đóng gói.
Mô hình OSI, các trường giao thức lớp thấp
thường chỉ ra giao thức lớp cao hơn có thể
được đóng gói, nhằm tạo điều kiện thuận lợi
cho việc xử lý.
24
Nhận dạng giao thức
Protocol Number (0-255) – IANA (Internet
Assigned Numbers Authority)
25
Nhận dạng giao thức
0x4500 – IPv4
0x06 - TCP 26
Nhận dạng giao thức
28
Nhận dạng giao thức
31
Giải mã nội dung giao thức
Là kỹ thuật thông dịch các dữ liệu trong
gói tin theo một cấu trúc đặc tả.
Để giải mã lưu lượng mạng theo một đặc
tả giao thức:
• Sử dụng bộ giải mã tự động tích hợp sẵn
trong công cụ.
• Tham khảo các tài liệu được công bố công
khai và tự giải mã.
• Viết bộ giải mã riêng.
32
Giải mã nội dung giao thức
37
Trích xuất nội dung giao thức
38
Phân tích chi tiết nội dung gói tin
Thanh tra nội dung hoặc metadata trong
một hoặc nhiều gói tin.
Các kỹ thuật cơ bản được sử dụng:
Khớp mẫu (pattern matching).
Trích xuất các trường giao thức (parsing
protocol fields).
Lọc chọn gói tin (packet filtering).
39
Khớp mẫu
Xác định các gói tin cần quan tâm bằng
cách tìm kiếm các giá trị thích hợp trong tập
các gói tin cần phân tích.
40
Khớp mẫu
41
Trích xuất các trường dữ liệu
Trích xuất nội dung các trường của giao
thức bên trong tập các gói tin quan tâm.
42
Lọc chọn gói tin
Thực hiện việc tách gói tin dựa trên giá trị
của các trường trong giao thức.
ip.src==10.1.11.00/24
tcp.port==80 || tcp.port==3389
43
CTF Time
Seems like someone intercepted and altered the frames. Can you
patch it?
>>Ingress>>
0x0000: 35 02 d2 d2 d2 d2 64 c4 14 74 02 94 08 00 45 00
0x0010: 00 3c a6 65 40 00 3e 06 75 a5 45 75 14 25 e3 02
0x0020: e4 14 dd c4 1f 90 00 00 00 00 00 00 00 00 a0 02
0x0030: 38 90 c7 d0 00 00 02 04 05 b4 04 02 08 0a e4 14
0x0040: 45 84 00 00 00 00 01 03 03 07
<<Egress<<
0x0000: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 08 00 45 00
0x0010: 00 3c 00 00 40 00 3e 06 1c 0b ?? ?? ?? ?? ?? ??
0x0020: ?? ?? 1f 90 dd c4 00 00 00 00 00 00 00 01 a0 ??
0x0030: 38 90 18 79 00 00 02 04 05 b4 04 02 08 0a 53 e3
0x0040: 8e e8 e4 14 45 84 01 03 03 07
44
1 Phân tích giao thức
46
Kỹ thuật phân tích luồng dữ liệu
47
Kỹ thuật phân tích luồng dữ liệu
48
Kỹ thuật phân tích luồng dữ liệu
49
Kỹ thuật phân tích luồng dữ liệu
50
Kỹ thuật phân tích luồng dữ liệu
51
Kỹ thuật phân tích luồng dữ liệu
52
Kỹ thuật phân tích luồng dữ liệu
Phân tích luồng dữ liệu thực hiện việc thanh
tra một chuỗi các gói tin có liên quan đến
nhau nhằm xác định các hành vi nghi ngờ,
trích xuất dữ liệu hay phân tích các giao
thức trong luồng.
53
Wireshark-Follow TCP Stream
54
Kỹ thuật phân tích luồng dữ liệu
1. Liệt kê luồng.
2. Trích xuất luồng.
3. Trích xuất dữ liệu từ luồng.
55
Liệt kê luồng
Liệt
. kê luồng sử dụng Tshark
56
Liệt kê luồng
Liệt kê luồng sử dụng Wireshark
.
57
Trích xuất luồng
58
Trích xuất luồng
59
Trích xuất dữ liệu
• Bytes 28-31 thể hiện “Total Size” của file được gửi.
Trong trường hợp này “Total Size” là 0x00002EE8
(12008 bytes).
61
Trích xuất dữ liệu
• Tại Bytes 256 chúng ta thấy OFT header thứ 2 với “type” là
0x0202 thể hiện người nhận sẵn sàng nhận dữ liệu
62
Trích xuất dữ liệu
64
Trích xuất dữ liệu
• ‘
• Size’ 0x2EE8 trong OFT2 “Done” header (Type 0x0204) cho biết
số lượng dữ liệu đã được truyền. Con số này trùng khớp với
Total Size của file được gửi. Điều này có nghĩa là file được
truyền hoàn tất.
65
1 Phân tích giao thức
67
Quá trình kết nối
68
Phân tích WLAN
Client tìm kiếm SSID chứa trong các khung Beacon
SSID được sử dụng như tên mạng, là chuỗi ký tự số
và chữ cái, phân biệt chữ hoa và chữ thường, có chiều
dài từ 2-32 ký tự.
Beacon được gửi từ AP đến các trạm Client (trong
mạng Infrastructure) hoặc từ trạm tới trạm (trong
mạng Ad-hoc) để tổ chức và đồng bộ các truyền thông
trong mạng WLAN.
• Đồng bộ thời gian
• Beacon interval
• Thông tin SSID
• Tốc độ hỗ trợ…
69
Quá trình kết nối
Có 3 tiến trình xảy ra:
Tiến trình thăm dò (Probe)
Tiến trình xác thực (Authentication)
Tiến trình kết nối (Association)
70
Thăm dò bị động
Quét bị động (Passive Scanning):
71
Thăm dò chủ động
72
Tiến trình xác thực
Client bắt đầu gởi một khung Authentication
Request đến AP.
AP sẽ chấp nhận hay từ chối yêu cầu này và
sau đó báo cho máy trạm biết bằng cách gửi
một khung Authentication Response.
Tiến trình xác thực có thể thực hiện tại AP
hay AP có thể chuyển trách nhiệm này sang
tại một máy chủ xác thực khác (RADIUS
server).
73
Tiến trình kết nối
Sau khi xác thực Client sẽ gửi một khung
Association Request đến AP và AP sẽ trả lời
bằng khung Association Response trong đó
cho phép hoặc không cho phép kết nối.
Toàn bộ tiến trình xác thực và kết nối gồm 3
trạng thái khác nhau:
Chưa xác thực và chưa kết nối
Đã xác thực và chưa kết nối
Đã xác thực và đã kết nối
74
Một số giao thức xác thực
IEEE 802.1x và EAP
Supplicant Authenticator Radius Server
EAP-Start
1
Port closed
EAP-Request/Identify
2
EAP-Response/Identify Radius-Access-Request
3
EAP-Request Radius-Access-Challenge
4
EAP-Response Radius-Access-Request
5
Radius-Access-Accept
6
EAP-Success Port open
76
Tập dịch vụ
BSS (Basic Service Set)
ESS (Extended Service Set)
IBSS (Independent BSS - Adhoc)
77
Tập dịch vụ
BSS (Basic Service Set)
Access Point
Client
Client
Client
78
Tập dịch vụ
ESS (Extended Service Set)
Wired Network
79
Tập dịch vụ
IBSS (Independent BSS - Adhoc)
80
Bảo mật trong WLAN
WEP (Wired Equivalent Privacy-RC4)
WPA (Wifi Protected Access-TKIP)
WPA2 (version 2- AES)
81
802.11 Frame
82
802.11 Frame
83
MAC header - Beacon Frame
84
MAC header - Beacon Frame
85
Định dạng khung
Tương tự mạng Ethernet, khi các client tham gia
vào mạng nó sẽ giao tiếp với các thiết bị khác bằng
cách gửi các khung (frame) ở lớp 2
WLAN phân loại khung dựa trên chức năng tổng
quát.
Có 3 dạng khung trong WLAN:
Khung quản lý (Management Frame – Type 0)
86
Khung quản lý
Management Frames dùng để truyền thông
trong WLAN, giữ kết nối các trạm tới AP…
– 0x0- Association request frame
– 0x1- Association response frame
– 0x2- Reassociation request frame
– 0x3- Reassociation response frame
– 0x4- Probe request frame
– 0x5- Probe response frame
– 0x8- Beacon frame
– 0x9- ATIM frame
– 0xA- Disassociation frame
– 0xB- Authentication frame
– 0xC- Deauthentication frame 87
Khung Beacon
88
Khung điều khiển
Control Frames được sử dụng để điều khiển
luồng lưu lượng trong mạng không dây.
– 0x1B - Request to send (RTS)
– 0x1C - Clear to send (CTS)
– 0x1D - Acknowledgement (ACK)
89
Khung điều khiển
90
Khung dữ liệu
Data frame được sử dụng để truyền tải dữ
liệu trong mạng không dây.
– 0x0 - Data
– 0x4 – Null Data
91
Khung dữ liệu
92
Big-Endian vs Little-Endian
Big-Endian: những byte có trọng số cao sẽ được
biểu diễn hoặc truyền tải trước
0x1E240 => 0x00 0x01 0xE2 0x40
Little-Endian: những byte có trọng số thấp sẽ được
biểu diễn hoặc truyền tải trước.
0x1E240 => 0x40 0xE2 0x01 0x00
Mixed-Endian: những byte có trọng số thấp sẽ được
biểu diễn hoặc truyền tải trước.
0x1E240 => 0x01 0x00 0x40 0xE2
0xABCD=>0xB 0xA 0xD 0xC
93
Big-Endian vs Little-Endian
94
95