.8 Các toán tử so sánh trong Bộ lọc Hiển thị

Một phần của tài liệu BÀI BÁO CÁO CUỐI KỲ ĐỀ TÀI: Wireshark (Trang 63 - 66)

Tất cả các trường giao thức đều có một kiểu. Loại trường bộ lọc hiển thị cung cấp danh sách các loại cùng với ví dụ về cách sử dụng chúng trong bộ lọc hiển thị.

Hiển thị các loại trường bộ lọc Số ngun khơng có dấu

Có thể là 8, 16, 24, 32 hoặc 64 bit. Bạn có thể biểu thị số nguyên ở dạng thập phân, bát phân hoặc thập lục phân. Các bộ lọc hiển thị sau là tương đương:

ip.len le 1500

ip.len le 02734 ip.len le 0x5dc

Số nguyên có dấu

Có thể là 8, 16, 24, 32 hoặc 64 bit. Như với số ngun khơng dấu, bạn có thể sử dụng hệ thập phân, bát phân hoặc thập lục phân.

Boolean

Có thể là 1 (đúng) hoặc 0 (sai).

Trường Boolean hiện diện cho dù giá trị của nó là đúng hay sai. Ví dụ: tcp.flags.syn có trong tất cả các gói TCP có chứa cờ, cho dù cờ SYN là 0 hay 1. Để chỉ khớp các gói TCP với bộ cờ SYN, bạn cần sử dụng tcp.flags.syn == 1 .

Địa chỉ Ethernet

6 byte được phân tách bằng dấu hai chấm (:), dấu chấm (.) Hoặc dấu gạch ngang (-) với một hoặc hai byte giữa các dấu phân cách:

eth.dst == ff: ff: ff: ff: ff: ff

eth.dst == ff-ff-ff-ff-ff-ff eth.dst == ffff.ffff.ffff

Địa chỉ IPv4

ip.addr == 192.168.0.1

Ký hiệu Định tuyến liên miền khơng phân lớp (CIDR) có thể được sử dụng để kiểm tra xem địa chỉ IPv4 có nằm trong một mạng con nhất định hay khơng. Ví dụ: bộ lọc hiển thị này sẽ tìm tất cả các gói trong mạng 129.111 Class-B:

ip.addr == 129.111.0.0/16

Địa chỉ IPv6

ipv6.addr == :: 1

Cũng như địa chỉ IPv4, địa chỉ IPv6 có thể khớp với một mạng con.

Chuỗi văn bản

http.request.uri == "https://www.wireshark.org/"

Chuỗi là một chuỗi các byte. Các hàm như Lower () sử dụng ASCII, nếu khơng thì khơng có mã hóa cụ thể nào được giả định. Các ký tự chuỗi được chỉ định bằng dấu ngoặc kép. Các ký tự cũng có thể được chỉ định bằng cách sử dụng chuỗi byte sử dụng

62 hex \ xhh hoặc bát phân \ ddd, trong đó h và d là hex và các chữ số số bát phân tương ứng:

dns.qry.name contains "www. \ x77 \ x69 \ x72 \ x65 \ x73 \ x68 \ x61 \ x72 \ x6b.org"

Ngồi ra, có thể sử dụng cú pháp chuỗi thơ. Các chuỗi như vậy được bắt đầu bằng r hoặc R và coi dấu gạch chéo ngược như một ký tự chữ.

http.user_agent matches r "\ (X11;"

Ngày và giờ

frame.time == "Sep 26, 2004 23:18:04.954975" ntp.xmt ge "2020-07-04 12:34:56"

Giá trị của trường thời gian tuyệt đối được biểu thị dưới dạng chuỗi, sử dụng một trong hai định dạng ở trên. Phân số giây có thể được bỏ qua hoặc chỉ định với độ chính xác lên đến nano giây; cho phép các số không ở cuối phụ nhưng không được phép sử dụng các chữ số khác. Chuỗi khơng thể có hậu tố múi giờ và ln được phân tích cú pháp như trong múi giờ địa phương, ngay cả đối với các trường được hiển thị bằng UTC. Ở định dạng đầu tiên, tên tháng viết tắt phải bằng tiếng Anh bất kể ngôn ngữ. Ở định dạng thứ hai, có thể bỏ qua bất kỳ số lượng trường thời gian nào, theo thứ tự từ ít quan trọng nhất (giây) đến nhiều nhất, nhưng ít nhất tồn bộ ngày phải được chỉ định:

frame.time <"2022-01-01"

Ở định dạng thứ hai, chữ T có thể xuất hiện giữa ngày và giờ như trong ISO 8601, nhưng khơng xuất hiện khi các khoảng thời gian ít quan trọng hơn bị giảm xuống.

Một vài ví dụ

Bộ lọc hiển thị ở trên khớp các gói chứa chuỗi 3 byte 0x81, 0x60, 0x03 ở bất kỳ vị trí nào trong tiêu đề hoặc payload UDP.

Bộ lọc hiển thị ở trên khớp với các gói trong đó SIP To-header chứa chuỗi "a1762" ở bất kỳ đâu trong tiêu đề.

udp contains 81:60:03

sip.To contains "a1762"

63 Bộ lọc hiển thị ở trên khớp với các gói HTTP trong đó tiêu đề HOST chứa acme.org, acme.com hoặc acme.net. Các phép so sánh không phân biệt chữ hoa chữ thường.

Bộ lọc hiển thị đó sẽ khớp với tất cả các gói chứa trường “tcp.flags” với bit 0x02, tức là bit SYN, được đặt.

Lỗi có thể xảy ra khi sử dụng biểu thức chính quy

Chuỗi ký tự chứa các biểu thức chính quy được phân tích cú pháp hai lần. Một lần bởi công cụ lọc hiển thị của Wireshark và một lần nữa bởi thư viện PCRE2. Điều quan trọng cần ghi nhớ là khi sử dụng toán tử "so khớp" với chuỗi thoát regex và các ký tự đặc biệt.

Ví dụ: khung biểu thức bộ lọc khớp với "AB \ x43" sử dụng chuỗi "ABC" làm mẫu đầu vào cho PCRE. Tuy nhiên, khung biểu thức khớp với "AB \\ x43" sử dụng chuỗi "AB \ x43" làm mẫu. Trong trường hợp này, cả hai biểu thức đều cho kết quả giống nhau vì Wireshark và PCRE đều hỗ trợ chuỗi thoát byte (0x43 là mã hex ASCII cho C).

Một ví dụ mà điều này không thành công là foo khớp với "bar \ x28". Vì 0x28 là mã ASCII cho (đầu vào mẫu cho PCRE là "bar (". Biểu thức chính quy này khơng hợp lệ về mặt cú pháp (thiếu dấu ngoặc đóng)). Để khớp với một dấu ngoặc đơn trong một biểu thức chính quy của bộ lọc hiển thị), biểu thức chính quy này phải được thốt (hai lần) với dấu gạch chéo ngược.

Kết hợp các biểu thức

Bạn có thể kết hợp các biểu thức bộ lọc trong Wireshark bằng cách sử dụng các toán tử logic được hiển thị trong Hoạt động logic của bộ lọc hiển thị

Tiếng Anh Ngôn ngữ C Mô tả Ví dụ

and && Logic AND ip.src==10.0.0.5 and tcp.flags.fin

or || Logic OR ip.src==10.0.0.5 or

ip.src==192.1.1.1

xor ^^ Logic XOR tr.dst[0:3] == 0.6.29 xor

tr.src[0:3] == 0.6.29

not ! Logic NOT not llc

[…] Subsequence Xem phần Slice

64 in Đặt tư cách thành viên http.request.method in

{"HEAD", "GET"}. Xem phần Membership.

Một phần của tài liệu BÀI BÁO CÁO CUỐI KỲ ĐỀ TÀI: Wireshark (Trang 63 - 66)

Tải bản đầy đủ (PDF)

(87 trang)