Lệnh tcpdump trên Linux
Tcpdump xuất ra màn hình nội dung các gói tin (chạy trên card mạng mà nó đang lắng nghe) phù hợp với biểu thức logic chọn lọc mà người dùng nhập vào. Với option –w người dùng có thể xuất những mô tả về gói tin này ra một file “pcap” để phân tích sau, và có thể đọc nội dung của file “pcap” đó với option –r của lệnh tcpdump, hoặc sử dụng các phần mềm khác như là : Wireshark.
Trong trường hợp không có option –c, lệnh tcpdump sẽ tiếp tục chạy cho đến khi nào nó nhận được một tín hiệu ngắt từ phía người dùng (có thể sử dụng tổ hợp phím ctrl+C hoặc sử dụng lệnh kill). Sau khi kết thúc việc bắt các gói tin, tcpdump sẽ báo cáo các cột sau:
- Packet capture: số lượng gói tin mà nó bắt được và xử lý.
- Packet received by filter: số lượng gói tin được nhận bởi bộ lọc.
- Packet dropped by kernel: số lượng packet đã bị dropped, do thiếu không gian vùng đệm, bởi cơ chế bắt gói tin của hệ điều hành.
time-stamp src > dst: flags data-seqno ack window urgent options
- Time-stamp: hiển thị thời gian gói tin được capture.
- Src và dst: hiển thị địa IP của người gởi và người nhận.
- Cờ Flag thì bao gồm các giá trị sau:
- S(SYN): cờ này được sử dụng trong quá trình bắt tay của giao thức TCP.
- .(ACK): cờ này được sử dụng để thông báo cho bên gửi biết là nó đã nhận được dữ liệu thành công.
- F(FIN): được sử dụng để đóng kết nối TCP.
- P(PUSH): thường được đặt ở cuối khối dữ liệu, đánh dấu việc truyền dữ liệu.
- R(RST): được sử dụng khi muốn thiết lập lại đường truyền.
- Data-sqeno: số sequence number của gói dữ liệu hiện tại.
- ACK: mô tả số sequence number tiếp theo của gói tin do bên gởi truyền (số sequence number mà nó mong muốn nhận được).
- Window: vùng nhớ đệm có sẵn theo hướng khác trên kết nối này.
- Urgent: cho biết có dữ liệu khẩn cấp trong gói tin.
- -i : sử dụng option này khi người dùng muốn chụp các gói tin trên một interface được chỉ định.
- -D : khi sử dụng option này, tcpdump sẽ liệt kê ra tất cả các interface đang hiện hữu trên máy tính mà nó có thể capture được.
- -c N : khi sử dụng option này, tcpdump sẽ dừng hoạt động sau khi capture N gói tin.
- -n : khi sử dụng option này, tcpdump sẽ không phân giải từ địa chỉ IP sang hostname.
- -nn : tương tự như option –n, tuy nhiên tcpdump sẽ không phân giải cả portname.
- -v : tăng số lượng thông tin về gói tin mà bạn có thể nhận được, thậm chí có thể tăng thêm với option –vv hoặc –vvv.
- -s : định nghĩa snaplength (kích thước) gói tin sẽ lưu lại, sử dụng 0 để mặc định.
- -q : khi sử dụng option này thì lệnh tcpdump sẽ hiển thị ít thông tin hơn.
- -w filename : khi sử dụng option này tcpdump sẽ capture các packet và lưu xuống file chỉ định.
- -r filename : sử dụng kèm với option –w, dùng để đọc nội dung file đã lưu từ trước.
- -x : hiển thị dữ liệu của gói tin capture dưới dạng mã Hex.
- -xx : tương tự option –x tuy nhiên sẽ chuyển đổi cả ethernet header.
- -X : hiển thị dữ liệu của gói tin capture dưới dạng mã Hex và ASCII
- -XX : tương tự như option –X tuy nhiên sẽ chuyển đổi luôn cả ethernet header.
- -A : hiển thị các packet được capture dưới dạng mã ACSII.
- -S : khi tcpdump capture packet, thì nó sẽ chuyển các số sequence number, ACK thành các relative sequense number, relative ACK. Nếu sử dụng option –S này thì nó sẽ không chuyển mà sẽ để mặc định.
- -F filename: dùng để filter các packet với các luật đã được định trước trong tập tin filename.
- -e : khi sử dụng option này, thay thì hiển thị địa chỉ IP của người gửi và người nhận, tcpdump sẽ thay thế các địa chỉ này bằng địa chỉ MAC.
- -t : khi sử dụng option này, tcpdump sẽ bỏ qua thời gian bắt được gói tin khi hiển thị cho người dùng.
- -tt : khi sử dụng option này, thời gian hiển thị trên mỗi dòng lệnh sẽ không được format theo dạng chuẩn.
- -ttt : khi sử dụng option này, thời gian hiển thị chính là thời gian chênh lệnh giữa thời gian tcpdump bắt được gói tin của gói tin và gói tin đến trước nó.
- -tttt : khi sử dụng option này, sẽ hiển thị thêm ngày vào mỗi dòng lệnh.
- -ttttt : khi sử dụng option này, thời gian hiển thị trên mỗi dòng chính là thời gian chênh lệch giữa thời gian tcpdump bắt được gói tin của gói tin hiện tại và gói tin đầu tiên.
- -K : với option này tcpdump sẽ bỏ qua việc checksum các gói tin.
- -N : khi sử dụng option này tcpdump sẽ không in các quality domain name ra màn hình.
- -B size : sử dụng option này để cài đặt buffer_size .
- -L : hiển thị danh sách các datalink type mà interface hỗ trợ.
- -y : lựa chọn datalinktype khi bắt các gói tin.
- dst A : khi sử dụng option này, tcpdump sẽ chỉ capture các gói tin có địa chỉ đích là “A”, có thể sử dụng kèm với từ khóa net để chỉ định một dãy mạng cụ thể. Ví dụ: tcpdump dst net 192.168.1.0/24.
- src A : tương tự như option dst, nhưng thay vì capture các gói tin có địa chỉ đích cụ thể thì nó sẽ capture các gói tin có địa chỉ nguồn như quy định.
- host A : khi sử dụng option này, tcpdump sẽ chỉ capture các gói tin có địa chỉ nguồn hoặc địa chỉ đích là “A”.
- port / port range : khi sử dụng option này, tcpdump sẽ chỉ capture các gói tin có địa chỉ port được chỉ định rõ, hoặc nằm trong khoảng range định trước. Có thể sử dụng kèm với option dst hoặc src.
- less : khi sử dụng từ khóa này, tcpdump sẽ lọc (filter) các gói tin có dung lượng nhỏ hơn giá trị chỉ định.
- greater : khi sử dụng từ khóa này, tcpdump sẽ lọc (filter) các gói tin có dung lượng cao hơn giá trị chỉ định.
- (ether | ip) broadcast: capture các gói tin ip broadcast hoặc ethernet broadcast.
- (ether | ip | ip6) multicast: capture các gói tin ethernet, ip , ipv6 multicast.
- Ngoài ra, tcpdump còn có thể capture các gói tin theo các protocol như : udp, tcp, icmp, ipv6 (chỉ cần gõ trực tiếp các từ khóa vào là được). Ví dụ: tcpdump icmp
- AND : sử dụng từ khóa and hoặc &&.
- OR : sử dụng từ khóa or hoặc ||.
- EXCEPT : sử dụng từ khóa not hoặc !.
- Ngoài ra để gom nhóm các điều kiện ta có thể dùng cặp từ khóa ‘’. Ví dụ: tcpdump –i eth0 ‘dst host 192.168.1.1 or 192.168.1.10 or 192.168.1.11’
- Hiển thị tất cả các interface trên máy tính mà tcpdump có thể lắng nghe được.
- Lọc các gói tin trên card mạng eth0, có địa chỉ đích là 192.168.1.0 hoặc địa chỉ nguồn là 192.168.1.0
#tcpdump –i eth0 src 192.168.1.0 or host 192.168.1.0
- Lọc các gói tin ARP chạy trên card mạng eth0, xuất phát từ dãy mạng 192.168.1.0/24
- Lọc các gói tin ICMP chạy trên mạng eth0, đi đến máy đích có địa chỉ MAC là 00-23-14-43-E8-08. Khi xuất ra màn hình không cho phân giải tên miền, cũng như không sử dụng số relative sequence. Lưu output vào file test.cap. Khi đọc file đó lên: không hiển thị số sequence number, không phân giải hostname.
#tcpdump –Snnr test.cap
- Lọc gói tin ICMP request and reply: sử dụng option icmp[icmptype]
- Lọc một số cờ TCP bằng tcpdump: sử dụng option tcp[tcpflags] && tcp-syn!=0. (Giá trị của các cờ TCP lần lượt là U (32) – A (16) – P (8) – R (4) – S (2) – F (1)).
- Lọc các gói tin TCP có cờ URG được bật:
- Lọc các gói tin TCP có cờ ACK được bật:
- Lọc các gói tin TCP có cờ PSH được bật:
- Lọc các gói tin TCP có cờ SYN/ACK được bật:
http://k3nshjnz.wordpress.com/2013/05/31/lenh-tcpdump-tren-linux/
Không có nhận xét nào:
Đăng nhận xét