Skip to content
LIVE FEED

BlogTài Liệu Toàn Diện: Wireshark, Tshark, Tcpdump

Bố cục bài viết

Tài Liệu Toàn Diện: Wireshark, Tshark, Tcpdump Từ cơ bản đến trình độ chuyên gia phân tích mạng & mã hóa MỤC LỤC 1. TỔNG QUAN 2. CÀI ĐẶT 3. TCPDUMP 3.1. Cú pháp cơ bản 3.2. Lưu & đọc file 3.3. Berkeley Packet Filter (BPF) — cú pháp filter của tcpdump 3.4. Nâng cao: xoay vòng file, ring buffer cho hệ thống production 3.5. Bắt gói kèm payload đầy đủ, phục vụ phân tích sâu sau này 3.6. Capture từ xa qua SSH (không cần cài Wireshark trên server) 3.7. In nội dung hex/ASCII của gói (khi không có Wireshark) 4. WIRESHARK 4.1. Giao diện & khái niệm nền tảng 4.2. Display filter cơ bản 4.3. Thao tác thiết yếu 4.4. Coloring rule tùy chỉnh (ví dụ hữu dụng) 4.5. Profile (hồ sơ cấu hình riêng cho từng loại việc) 4.6. Custom columns hữu ích cho phân tích chuyên sâu 4.7. Nâng cao: viết Lua dissector tùy chỉnh 5. TSHARK 5.1. Cơ bản 5.2. Trích xuất field cụ thể → dữ liệu có cấu trúc (rất mạnh cho tự động hóa) 5.3. Thống kê từ CLI (không cần mở GUI) 5.4. Theo dõi stream giống “Follow TCP Stream” trên CLI 5.5. Tách 1 pcap lớn theo tiêu chí 5.6. Bắt theo thời gian / kích thước, dùng cho giám sát dài hạn 6. PHÂN TÍCH VÀ GIẢI MÃ TLS/SSL 6.1. Phương pháp chuẩn: SSLKEYLOGFILE (hoạt động với TLS 1.2 & 1.3) 6.2. Phương pháp cũ: RSA Private Key (chỉ dùng được với RSA key exchange, TLS ≤ 1.2, không có PFS) 6.3. Đọc TLS Handshake để chẩn đoán mà không cần giải mã 6.4. Phân tích SSH (metadata, không giải mã payload) 6.5. Phân tích IPsec/ESP 7. GIẢI MÃ WPA2/WIFI 8. KỸ NĂNG CHUYÊN GIA 8.1. Đọc “Expert Information” như bản đồ vấn đề 8.2. Phân biệt vấn đề Client vs Server vs Network qua timing 8.3. Phát hiện tấn công/bất thường qua pattern, không cần giải mã nội dung 8.4. So sánh 2 pcap (before/after) để cô lập thay đổi 8.5. Đo hiệu năng ứng dụng qua TCP window & congestion 8.6. Bắt gói ở tốc độ cao (10G+) mà không rớt gói 9. THREAT HUNTING & FORENSICS 9.1. Quy trình phân tích 1 pcap “lạ” (ví dụ: điều tra sự cố) 9.2. Trích chứng chỉ TLS để kiểm tra (không cần giải mã) 9.3. Trích toàn bộ file truyền qua HTTP để phân tích tĩnh (sandbox riêng) 10. TỰ ĐỘNG HÓA & PIPELINE 10.1. Kết hợp tshark + jq để lọc/biến đổi JSON 10.2. Dùng pyshark trong Python để xử lý theo luồng 10.3. Đẩy dữ liệu vào Elasticsearch/ELK để dashboard hóa 10.4. Cảnh báo tự động khi phát hiện pattern (ví dụ cron job) 11. GHI FILE PCAP NÂNG CAO 11.1. Rotate theo dung lượng (size-based) 11.2. Rotate theo thời gian (time-based) 11.3. Kết hợp CẢ hai điều kiện: rotate khi đạt thời gian HOẶC dung lượng, cái nào tới trước 11.4. Tự dừng theo điều kiện (autostop) — dùng cho capture 1 lần có giới hạn 11.5. Ghi file “theo điều kiện” nội dung — chỉ lưu traffic thỏa filter cụ thể 11.6. Mô hình “always-on ring buffer + snapshot khi có cảnh báo” (dùng trong SOC/IR) 12. XỬ LÝ CERTIFICATE TRONG PCAP 12.1. Trích xuất certificate từ pcap ra file .der/.pem 12.2. Kiểm tra thông tin certificate bằng openssl sau khi trích xuất 12.3. Trích trực tiếp các trường certificate quan trọng bằng tshark (không cần openssl) 12.4. Phát hiện certificate đáng ngờ (dấu hiệu thường gặp ở C2/phishing) 12.5. Kiểm tra certificate qua Certificate Transparency (đối chiếu ngoài pcap) 12.6. HASSH — “JA3 cho SSH” 13. PHÂN TÍCH NÂNG CAO CHUYÊN SÂU 13.1. Bộ công cụ đi kèm Wireshark: capinfos, editcap, mergecap 13.2. Phân tích VoIP/RTP 13.3. Phân tích HTTP/2 và QUIC (HTTP/3) 13.4. Phân tích hành vi traffic đã mã hóa mà KHÔNG cần giải mã (traffic fingerprinting) 13.5. Script triage tự động: chấm điểm “độ đáng ngờ” của 1 pcap 13.6. Phân tích jitter/độ trễ chi tiết cho ứng dụng nhạy cảm thời gian thực 14. CHEAT SHEET Tcpdump filter nhanh Display filter (Wireshark/tshark) nhanh Tshark output flags Quy trình giải mã TLS (tóm tắt) 15. LỘ TRÌNH MỞ RỘNG 15.1. Công cụ bổ trợ nên học tiếp 15.2. Kiến thức chuyên sâu nên bổ sung 15.3. Thực hành để lên trình 15.4. Quy trình pháp lý khi làm forensics thật 15.5. Lộ trình chứng chỉ nếu muốn đi sâu chuyên nghiệp

Trang này

Sunex 24/08/2026 · 31 phút đọc

Ngày tạo

24/08/2026

Cập nhật

Lượt xem

9

Đọc

31m

Tài Liệu Toàn Diện: Wireshark, Tshark, Tcpdump

Từ cơ bản đến trình độ chuyên gia phân tích mạng & mã hóa

Lưu ý đạo đức/pháp lý: Mọi kỹ thuật giải mã (TLS, WPA2…) trong tài liệu này chỉ áp dụng hợp pháp khi bạn có quyền trên hệ thống/traffic đó — traffic của chính bạn, hệ thống bạn quản trị, hoặc trong phạm vi pentest được ủy quyền bằng văn bản. Bắt traffic hoặc giải mã traffic của người khác mà không được phép là vi phạm pháp luật ở hầu hết các quốc gia.


MỤC LỤC

  1. Tổng quan & khi nào dùng công cụ nào
  2. Cài đặt
  3. Tcpdump: cơ bản → nâng cao
  4. Wireshark: cơ bản → nâng cao
  5. Tshark: cơ bản → nâng cao
  6. Phân tích & giải mã TLS/SSL
  7. Giải mã WPA2/WiFi
  8. Kỹ năng chuyên gia đẳng cấp thế giới
  9. Threat hunting & phân tích forensics
  10. Tự động hóa & tích hợp pipeline
  11. Ghi file PCAP nâng cao: điều kiện, rotate theo thời gian/dung lượng
  12. Xử lý Certificate trong PCAP
  13. Phân tích nâng cao chuyên sâu
  14. Cheat sheet tổng hợp
  15. Lộ trình mở rộng: công cụ, kiến thức, thực hành & chứng chỉ

1. TỔNG QUAN

Công cụLoạiĐiểm mạnhDùng khi nào
tcpdumpCLI, capture-onlyNhẹ, có sẵn hầu hết Unix/Linux, tốt cho server không GUIBắt gói tin nhanh trên server, troubleshooting production
tsharkCLI, capture + phân tíchSức mạnh của Wireshark ở dạng CLI, dễ script hóaTự động hóa, pipeline, phân tích hàng loạt file pcap
WiresharkGUITrực quan, follow stream, thống kê đồ họa, dissector phong phúPhân tích sâu, debug thủ công, dạy học, demo

Cả ba đều dùng chung engine bắt gói (libpcap/npcap) và tshark/Wireshark dùng chung bộ dissector — nên filter cú pháp Wireshark display filter học một lần dùng được cả ba (tshark dùng -Y).


2. CÀI ĐẶT

# Debian/Ubuntu
sudo apt update
sudo apt install tcpdump tshark wireshark

# Cho phép user thường capture không cần sudo (khuyến nghị)
sudo usermod -aG wireshark $USER
sudo dpkg-reconfigure wireshark-common   # chọn "Yes" cho non-root capture
newgrp wireshark

# RHEL/CentOS/Fedora
sudo dnf install tcpdump wireshark wireshark-cli

# macOS (Homebrew)
brew install tcpdump wireshark

# Windows
# Cài Wireshark (kèm Npcap) từ wireshark.org — tshark.exe nằm trong thư mục cài đặt

Kiểm tra quyền capture không cần root trên Linux:

sudo setcap cap_net_raw,cap_net_admin=eip $(which dumpcap)

3. TCPDUMP

3.1. Cú pháp cơ bản

tcpdump -i eth0                       # bắt trên interface eth0
tcpdump -i any                        # bắt trên tất cả interface
tcpdump -D                            # liệt kê các interface khả dụng
tcpdump -i eth0 -n                    # -n: không resolve DNS (nhanh hơn, rõ ràng hơn)
tcpdump -i eth0 -nn                   # -nn: không resolve cả DNS lẫn port name
tcpdump -i eth0 -c 100                # bắt đúng 100 gói rồi dừng
tcpdump -i eth0 -v / -vv / -vvv       # tăng độ chi tiết output

3.2. Lưu & đọc file

tcpdump -i eth0 -w capture.pcap       # ghi ra file (định dạng nhị phân, mở được bằng Wireshark)
tcpdump -r capture.pcap               # đọc lại file đã lưu
tcpdump -r capture.pcap -w filtered.pcap 'tcp port 443'   # đọc rồi lọc, ghi lại file mới

3.3. Berkeley Packet Filter (BPF) — cú pháp filter của tcpdump

tcpdump host 192.168.1.10                     # traffic đến/từ 1 host
tcpdump src 192.168.1.10                      # chỉ traffic nguồn từ host
tcpdump dst 192.168.1.10                      # chỉ traffic đích đến host
tcpdump net 192.168.1.0/24                    # cả subnet
tcpdump port 443                              # port 443 (TCP hoặc UDP)
tcpdump tcp port 443                          # chỉ TCP port 443
tcpdump portrange 8000-8100                   # dải port

# Kết hợp bằng and / or / not
tcpdump 'host 10.0.0.5 and port 22'
tcpdump 'src 10.0.0.5 and not port 53'
tcpdump '(tcp port 80 or tcp port 443) and host example.com'

# Filter theo cờ TCP (rất hữu dụng khi debug handshake / kết nối bị reset)
tcpdump 'tcp[tcpflags] == tcp-syn'             # chỉ gói SYN (mở kết nối)
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'  # SYN hoặc FIN
tcpdump 'tcp[tcpflags] & tcp-rst != 0'         # gói RST (kết nối bị reset)

# Lọc theo kích thước gói
tcpdump 'greater 1000'                        # gói > 1000 byte
tcpdump 'less 64'                              # gói < 64 byte

# Lọc ICMP
tcpdump icmp
tcpdump 'icmp[icmptype] == icmp-echoreply'

3.4. Nâng cao: xoay vòng file, ring buffer cho hệ thống production

# Ghi xoay vòng: mỗi file 100MB, giữ tối đa 10 file (tự xóa file cũ nhất)
tcpdump -i eth0 -w /var/log/pcap/capture-%Y%m%d-%H%M%S.pcap \
        -C 100 -W 10 -Z tcpdump

# -C: kích thước tối đa mỗi file (MB) trước khi xoay
# -W: số file tối đa giữ lại (ring buffer)
# -Z: hạ quyền tiến trình xuống user chỉ định sau khi mở interface (an toàn hơn)

3.5. Bắt gói kèm payload đầy đủ, phục vụ phân tích sâu sau này

tcpdump -i eth0 -s 0 -w full.pcap 'tcp port 443'
# -s 0: snaplen = full packet (mặc định tcpdump hiện đại đã là 0/262144, 
#        nhưng nên set tường minh để chắc chắn không bị cắt bớt payload)

3.6. Capture từ xa qua SSH (không cần cài Wireshark trên server)

# Trên máy phân tích local, mở Wireshark trực tiếp xem traffic của server từ xa
ssh user@remote-server "tcpdump -i eth0 -U -s0 -w - 'not port 22'" | wireshark -k -i -

-U: flush buffer ngay sau mỗi gói (bắt buộc khi pipe qua mạng để tránh trễ/deadlock).

3.7. In nội dung hex/ASCII của gói (khi không có Wireshark)

tcpdump -i eth0 -X port 80      # -X: hex + ASCII dump
tcpdump -i eth0 -A port 80      # -A: chỉ ASCII (đọc HTTP header nhanh)

4. WIRESHARK

4.1. Giao diện & khái niệm nền tảng

  • Capture filter (BPF, giống tcpdump) — áp dụng trước khi bắt, để giảm dữ liệu.
  • Display filter (cú pháp riêng của Wireshark, dạng field == value) — áp dụng sau khi đã bắt, để lọc hiển thị, có thể đổi liên tục không mất dữ liệu gốc.
  • Ba khung chính: Packet List (danh sách) → Packet Details (cây field theo từng layer) → Packet Bytes (hex).

4.2. Display filter cơ bản

ip.addr == 192.168.1.10          # gói có IP nguồn hoặc đích là địa chỉ này
ip.src == 10.0.0.1
ip.dst == 10.0.0.1
tcp.port == 443
tcp.flags.syn == 1 && tcp.flags.ack == 0    # chỉ SYN (mở kết nối)
tcp.analysis.retransmission                  # các gói bị truyền lại
tcp.analysis.flags                           # mọi bất thường TCP (retransmission, dup ack, out-of-order...)
http.request.method == "POST"
http.response.code == 404
dns.qry.name contains "example.com"
tls.handshake.type == 1                      # ClientHello
tls.handshake.type == 2                      # ServerHello
frame contains "password"                    # tìm chuỗi bất kỳ trong toàn bộ gói (chậm, nhưng hữu ích)

Toán tử so sánh: ==, !=, >, <, >=, <=, contains, matches (regex), in {a, b, c}.

tcp.port in {80, 443, 8080}
http.request.uri matches "\.php$"

4.3. Thao tác thiết yếu

Thao tácCách làm
Follow TCP/UDP/HTTP/TLS streamChuột phải gói → Follow → TCP Stream (xem toàn bộ hội thoại dạng text)
Export file truyền qua HTTP/SMB/FTPFile → Export Objects → HTTP (tự động trích xuất file như ảnh, exe, tài liệu)
Xem thống kê hội thoạiStatistics → Conversations (ai nói chuyện với ai, bao nhiêu byte)
Xem phân bố giao thứcStatistics → Protocol Hierarchy
Vẽ đồ thị lưu lượng theo thời gianStatistics → I/O Graph
Đánh dấu màu theo điều kiệnView → Coloring Rules
Xem timing round-trip TCPStatistics → TCP Stream Graphs → Round Trip Time

4.4. Coloring rule tùy chỉnh (ví dụ hữu dụng)

Tên rule: "Slow HTTP responses"
Filter:   http.time > 1
Màu nền:  đỏ nhạt

4.5. Profile (hồ sơ cấu hình riêng cho từng loại việc)

Tạo profile riêng cho: “Web debugging”, “VoIP analysis”, “Security incident” — mỗi profile có bộ cột, coloring rule, filter đã lưu riêng. Edit → Configuration Profiles → +

4.6. Custom columns hữu ích cho phân tích chuyên sâu

Thêm cột tùy chỉnh (Edit → Preferences → Appearance → Columns):

  • tcp.analysis.ack_rtt — thời gian ACK trả về (phát hiện độ trễ)
  • tls.handshake.extensions_server_name — SNI, biết client đang kết nối domain nào ngay cả khi traffic mã hóa
  • http.host — domain trong header Host

4.7. Nâng cao: viết Lua dissector tùy chỉnh

Khi Wireshark chưa hỗ trợ sẵn giao thức nội bộ/độc quyền của công ty bạn, viết dissector Lua để tự động parse:

-- File: myproto.lua, đặt vào thư mục Personal Plugins (Help → About → Folders)
local myproto = Proto("myproto", "My Custom Protocol")

local f_type = ProtoField.uint8("myproto.type", "Message Type", base.DEC)
local f_len  = ProtoField.uint16("myproto.len", "Length", base.DEC)
myproto.fields = { f_type, f_len }

function myproto.dissector(buffer, pinfo, tree)
    pinfo.cols.protocol = "MYPROTO"
    local subtree = tree:add(myproto, buffer(), "My Custom Protocol Data")
    subtree:add(f_type, buffer(0,1))
    subtree:add(f_len,  buffer(1,2))
end

-- Gắn dissector vào 1 cổng TCP cụ thể
local tcp_table = DissectorTable.get("tcp.port")
tcp_table:add(9999, myproto)

Nạp lại qua Analyze → Reload Lua Plugins (Ctrl+Shift+L) mà không cần khởi động lại Wireshark.


5. TSHARK

Tshark là “Wireshark không GUI” — dùng chung dissector, chung cú pháp display filter, cực mạnh khi cần script hóa hoặc xử lý hàng loạt pcap.

5.1. Cơ bản

tshark -i eth0                          # bắt live, in ra terminal
tshark -i eth0 -w out.pcap              # bắt và lưu file
tshark -r out.pcap                      # đọc file đã lưu
tshark -i eth0 -f "tcp port 443"        # -f: capture filter (cú pháp BPF, giống tcpdump)
tshark -r out.pcap -Y "http.request"    # -Y: display filter (cú pháp Wireshark)

5.2. Trích xuất field cụ thể → dữ liệu có cấu trúc (rất mạnh cho tự động hóa)

# Xuất ra dạng bảng, chỉ những field cần thiết
tshark -r out.pcap -Y "http.request" \
  -T fields -e frame.time -e ip.src -e http.host -e http.request.uri \
  -E header=y -E separator=,

# Xuất JSON — dễ đưa vào Python/jq/ELK
tshark -r out.pcap -Y "dns" -T json

# Xuất theo định dạng ek (Elasticsearch bulk) để đẩy thẳng vào Elastic
tshark -r out.pcap -T ek > events.json

5.3. Thống kê từ CLI (không cần mở GUI)

tshark -r out.pcap -q -z io,stat,1              # thống kê throughput theo từng giây
tshark -r out.pcap -q -z conv,tcp                # bảng hội thoại TCP
tshark -r out.pcap -q -z http,tree                # cây thống kê HTTP theo host/URI
tshark -r out.pcap -q -z expert                   # liệt kê mọi cảnh báo "Expert Info" (lỗi, retransmission...)
tshark -r out.pcap -q -z dns,tree                 # thống kê truy vấn DNS

5.4. Theo dõi stream giống “Follow TCP Stream” trên CLI

tshark -r out.pcap -q -z follow,tcp,ascii,0    # 0 là chỉ số stream (xem bằng tcp.stream trước)

5.5. Tách 1 pcap lớn theo tiêu chí

tshark -r big.pcap -Y "ip.addr==10.0.0.5" -w host_10.0.0.5.pcap
tshark -r big.pcap -Y "tls" -w tls_only.pcap

5.6. Bắt theo thời gian / kích thước, dùng cho giám sát dài hạn

tshark -i eth0 -b duration:3600 -b files:24 -w /data/cap.pcap
# -b duration:3600 → xoay file mỗi 1 giờ
# -b files:24       → giữ tối đa 24 file (24h)

6. PHÂN TÍCH VÀ GIẢI MÃ TLS/SSL

Đây là kỹ năng phân biệt “biết dùng công cụ” và “chuyên gia”. TLS hiện đại (1.2/1.3) dùng khóa phiên tạm thời (ephemeral, qua Diffie-Hellman) nên không thể giải mã chỉ bằng private key của server trong đa số trường hợp — cách chuẩn hiện nay là dùng SSLKEYLOGFILE.

6.1. Phương pháp chuẩn: SSLKEYLOGFILE (hoạt động với TLS 1.2 & 1.3)

Đây là cách giải mã hợp pháp, phổ biến nhất khi bạn debug ứng dụng/traffic của chính mình: trình duyệt hoặc ứng dụng ghi log khóa phiên ra file, Wireshark đọc file đó để giải mã real-time.

Bước 1 — Bật ghi log khóa phiên:

# Chrome / Edge (Chromium-based)
export SSLKEYLOGFILE=~/sslkeys.log
google-chrome &

# Firefox
export SSLKEYLOGFILE=~/sslkeys.log
firefox &
# (Firefox đọc biến môi trường này mặc định, không cần cấu hình thêm)

# curl
curl --tlsv1.2 --ssl-key-log-file ~/sslkeys.log https://example.com

# Ứng dụng Python (dùng thư viện ssl/requests)
import ssl
ctx = ssl.create_default_context()
ctx.keylog_filename = "/home/user/sslkeys.log"   # Python 3.8+

Bước 2 — Trỏ Wireshark vào file log:

Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename → chọn ~/sslkeys.log

Wireshark sẽ tự động giải mã real-time mọi TLS session tương ứng ngay trong Packet List — cột Protocol chuyển từ “TLS” sang giao thức thật bên trong (HTTP2, v.v.), và Follow Stream hiển thị plaintext.

Với tshark (không cần GUI):

tshark -r capture.pcap -o "tls.keylog_file:/home/user/sslkeys.log" \
       -Y "http2 || http" -T fields -e http.request.full_uri

6.2. Phương pháp cũ: RSA Private Key (chỉ dùng được với RSA key exchange, TLS ≤ 1.2, không có PFS)

Chỉ hoạt động nếu cipher suite không dùng (EC)DHE (tức không có Perfect Forward Secrecy) — ngày nay hầu hết server đã tắt kiểu cipher này, nên phương pháp này chủ yếu gặp trong hệ thống legacy hoặc thiết bị nhúng.

Edit → Preferences → Protocols → TLS → Edit RSA keys list → thêm:

  • IP address của server
  • Port (thường 443)
  • Protocol: http
  • Key File: file .pem chứa RSA private key của server
# Với tshark
tshark -r capture.pcap -o "tls.keys_list:0.0.0.0,443,http,/path/server.key"

6.3. Đọc TLS Handshake để chẩn đoán mà không cần giải mã

Rất nhiều thông tin hữu ích lấy được ngay từ handshake (luôn ở dạng cleartext, kể cả TLS 1.3 một phần):

tls.handshake.type == 1                                  # ClientHello
tls.handshake.extensions_server_name                     # SNI — domain client muốn kết nối
tls.handshake.ciphersuite                                 # danh sách cipher suite client đề xuất
tls.handshake.version                                     # phiên bản TLS
tls.alert_message                                          # lỗi/cảnh báo TLS (handshake failure, cert expired...)

JA3 / JA3S fingerprinting — nhận diện loại client/server (kể cả malware C2) chỉ qua cách chúng thương lượng TLS, không cần giải mã:

tshark -r capture.pcap -Y "tls.handshake.type==1" \
  -T fields -e ip.src -e tls.handshake.ja3 -e tls.handshake.ja3_s

JA3 là hash từ (TLS version, cipher list, extension list, elliptic curves…) trong ClientHello — nhiều họ malware có JA3 signature đặc trưng, dùng để phát hiện dù nội dung mã hóa.

6.4. Phân tích SSH (metadata, không giải mã payload)

SSH luôn có forward secrecy nên không thể giải mã nội dung phiên chỉ với key. Tuy nhiên có thể phân tích:

ssh.protocol                    # version string trao đổi ban đầu
ssh.message_code == 20          # SSH_MSG_KEXINIT — xem thuật toán key exchange được đề xuất
ssh.host_key.data               # host key fingerprint (dò xem có MITM/host key đổi bất thường)

6.5. Phân tích IPsec/ESP

Nếu bạn có SPI + khóa (ví dụ trong môi trường lab của mình), có thể giải mã ESP: Edit → Preferences → Protocols → ESP → tick “Attempt to detect/decode encrypted ESP payloads” → nhập SPI, encryption algorithm, key.


7. GIẢI MÃ WPA2/WIFI

Chỉ áp dụng với mạng của bạn/được ủy quyền kiểm thử.

Yêu cầu: bắt được trọn vẹn 4-way handshake (khi thiết bị kết nối vào AP) + biết PSK (passphrase) hoặc PMK.

# Bước 1: bắt traffic ở chế độ monitor (Linux, cần card hỗ trợ)
sudo airmon-ng start wlan0
sudo tcpdump -i wlan0mon -w wifi_capture.pcap

# Bước 2: trong Wireshark
# Edit → Preferences → Protocols → IEEE 802.11 → Enable decryption
# Decryption keys → Add → Key type: wpa-pwd → "passphrase:SSID"

Nếu thiếu bất kỳ gói nào trong 4-way handshake (đặc biệt là 2 gói đầu chứa ANonce/SNonce), Wireshark sẽ không thể derive được PTK và giải mã sẽ thất bại — đây là lỗi thường gặp nhất khi mới học.


8. KỸ NĂNG CHUYÊN GIA

8.1. Đọc “Expert Information” như bản đồ vấn đề

Analyze → Expert Information nhóm mọi bất thường theo mức độ (Chat/Note/Warning/Error). Chuyên gia luôn mở tab này đầu tiên khi nhận 1 pcap lạ thay vì đọc từng gói.

8.2. Phân biệt vấn đề Client vs Server vs Network qua timing

tcp.analysis.ack_rtt        # thời gian từ gói tin đến khi được ACK — RTT thực tế
tcp.time_delta               # thời gian giữa gói này với gói trước trong cùng stream
http.time                    # thời gian server xử lý HTTP request (đo được cả "network chậm" và "server chậm")

Quy tắc kinh nghiệm: nếu SYN→SYN-ACK chậm nhưng data transfer sau đó nhanh → vấn đề network/routing. Nếu handshake nhanh nhưng data có nhiều tcp.analysis.retransmission → vấn đề tắc nghẽn hoặc lỗi tầng ứng dụng.

8.3. Phát hiện tấn công/bất thường qua pattern, không cần giải mã nội dung

Dấu hiệuDisplay filter gợi ý
DNS tunneling (exfiltration qua DNS)dns.qry.name.len > 50 hoặc entropy cao trong subdomain
Port scanNhiều SYN từ 1 IP tới nhiều port khác nhau, không có SYN-ACK trả lời tương ứng
Beaconing C2 (kết nối định kỳ đều đặn)Statistics → Conversations, sort theo tần suất, khoảng cách thời gian đều nhau bất thường
ARP spoofingarp.duplicate-address-detected hoặc nhiều gói ARP reply không tương ứng request
SYN floodSố lượng SYN cao bất thường, tỷ lệ SYN:SYN-ACK lệch hẳn

8.4. So sánh 2 pcap (before/after) để cô lập thay đổi

tshark -r before.pcap -T fields -e ip.src -e ip.dst -e tcp.port | sort > before.txt
tshark -r after.pcap  -T fields -e ip.src -e ip.dst -e tcp.port | sort > after.txt
diff before.txt after.txt

8.5. Đo hiệu năng ứng dụng qua TCP window & congestion

tcp.analysis.zero_window          # receiver hết buffer, nghẽn ở phía nhận
tcp.analysis.window_full          # sender bị chặn vì window đầy
tcp.analysis.bytes_in_flight      # dữ liệu đã gửi nhưng chưa được ACK

8.6. Bắt gói ở tốc độ cao (10G+) mà không rớt gói

  • Dùng dumpcap thay vì tcpdump/wireshark để capture (nhẹ hơn, ít copy buffer hơn), rồi phân tích sau bằng tshark/Wireshark.
  • Tăng ring buffer OS: ethtool -G eth0 rx 4096
  • Dùng PF_RING hoặc AF_PACKET với multiple capture threads khi cần > 1Gbps ổn định.
  • Luôn set snaplen hợp lý (-s) nếu không cần full payload — giảm tải I/O đáng kể.
dumpcap -i eth0 -b duration:60 -b files:60 -w /data/cap.pcap

9. THREAT HUNTING & FORENSICS

9.1. Quy trình phân tích 1 pcap “lạ” (ví dụ: điều tra sự cố)

  1. tshark -r file.pcap -q -z io,phs — xem phân bố giao thức tổng quan, tìm gì bất thường (giao thức lạ, tỷ lệ port lạ cao).
  2. tshark -r file.pcap -q -z conv,ip — xem ai nói chuyện với ai nhiều nhất.
  3. tshark -r file.pcap -q -z expert — liệt kê cảnh báo.
  4. Export objects (nếu có HTTP) để lấy payload/file khả nghi.
  5. Lọc theo IP/host khả nghi, follow stream để đọc nội dung.
  6. Nếu có TLS: kiểm tra JA3, SNI, chứng chỉ (subject/issuer bất thường, self-signed, thời hạn ngắn — dấu hiệu C2).

9.2. Trích chứng chỉ TLS để kiểm tra (không cần giải mã)

tshark -r file.pcap -Y "tls.handshake.type==11" \
  -T fields -e ip.src -e x509sat.uTF8String -e x509ce.dNSName

9.3. Trích toàn bộ file truyền qua HTTP để phân tích tĩnh (sandbox riêng)

tshark -r file.pcap --export-objects http,/tmp/extracted_files/

Lưu ý: mở các file trích xuất trong môi trường cô lập (sandbox/VM ngắt mạng) nếu nghi ngờ mã độc — không tự chạy trên máy phân tích.


10. TỰ ĐỘNG HÓA & PIPELINE

10.1. Kết hợp tshark + jq để lọc/biến đổi JSON

tshark -r file.pcap -Y "http.request" -T json | \
  jq '.[]._source.layers | {host: .["http.host"][0], uri: .["http.request.uri"][0]}'

10.2. Dùng pyshark trong Python để xử lý theo luồng

import pyshark

cap = pyshark.LiveCapture(interface='eth0', display_filter='tls.handshake.type==1')
for pkt in cap.sniff_continuously():
    sni = pkt.tls.handshake_extensions_server_name if hasattr(pkt, 'tls') else None
    if sni:
        print(f"{pkt.ip.src} -> SNI: {sni}")

10.3. Đẩy dữ liệu vào Elasticsearch/ELK để dashboard hóa

tshark -r file.pcap -T ek | \
  curl -s -H "Content-Type: application/x-ndjson" \
       -XPOST "http://localhost:9200/_bulk" --data-binary @-

10.4. Cảnh báo tự động khi phát hiện pattern (ví dụ cron job)

#!/bin/bash
# Chạy mỗi 5 phút qua cron, cảnh báo nếu có port scan
COUNT=$(tshark -r /data/latest.pcap -Y "tcp.flags.syn==1 && tcp.flags.ack==0" \
        -T fields -e ip.src | sort | uniq -c | sort -rn | head -1 | awk '{print $1}')
if [ "$COUNT" -gt 100 ]; then
    echo "CẢNH BÁO: khả năng port scan, $COUNT SYN từ 1 nguồn" | mail -s "Alert" admin@example.com
fi

11. GHI FILE PCAP NÂNG CAO

11.1. Rotate theo dung lượng (size-based)

# tcpdump: -C MB mỗi file, -W số file tối đa (ring buffer, tự xóa file cũ nhất)
tcpdump -i eth0 -w /data/cap.pcap -C 200 -W 20

# dumpcap (khuyến nghị hơn cho production — nhẹ, ít drop gói hơn tcpdump/wireshark)
dumpcap -i eth0 -w /data/cap.pcap -b filesize:200000 -b files:20
# filesize tính bằng KB → 200000 KB ≈ 200MB

11.2. Rotate theo thời gian (time-based)

# tcpdump: -G giây, kèm strftime trong tên file để không ghi đè
tcpdump -i eth0 -G 3600 -w '/data/cap-%Y%m%d-%H%M%S.pcap'
# -G 3600: mỗi 3600s (1h) tạo file mới. Không có -W nên KHÔNG tự xóa — cần cron dọn riêng.

# tcpdump: kết hợp -G (thời gian) + -W (số file giữ lại) → vừa rotate theo giờ vừa tự dọn
tcpdump -i eth0 -G 3600 -W 24 -w '/data/cap-%Y%m%d-%H%M%S.pcap'
# Giữ đúng 24 file gần nhất (24h), file thứ 25 sẽ ghi đè lên file cũ nhất

# dumpcap: rotate theo thời gian, tự dọn theo số lượng file
dumpcap -i eth0 -w /data/cap.pcap -b duration:3600 -b files:24

# tshark: tương tự dumpcap (dùng chung engine bắt gói)
tshark -i eth0 -w /data/cap.pcap -b duration:3600 -b files:24

11.3. Kết hợp CẢ hai điều kiện: rotate khi đạt thời gian HOẶC dung lượng, cái nào tới trước

# dumpcap: file mới được tạo ngay khi 1 trong 2 ngưỡng đạt trước
dumpcap -i eth0 -w /data/cap.pcap \
        -b duration:1800 -b filesize:500000 -b files:48
# → rotate mỗi 30 phút HOẶC khi đạt 500MB (tùy cái nào đến trước), giữ tối đa 48 file

11.4. Tự dừng theo điều kiện (autostop) — dùng cho capture 1 lần có giới hạn

# Dừng khi đạt tổng dung lượng
dumpcap -i eth0 -w out.pcap -a filesize:1000000    # dừng khi đạt 1GB

# Dừng sau N giây
dumpcap -i eth0 -w out.pcap -a duration:600        # dừng sau 10 phút

# Dừng khi đủ N gói
dumpcap -i eth0 -w out.pcap -a packets:100000

# Kết hợp nhiều điều kiện dừng — dừng ngay khi điều kiện ĐẦU TIÊN xảy ra
dumpcap -i eth0 -w out.pcap -a duration:3600 -a filesize:2000000

11.5. Ghi file “theo điều kiện” nội dung — chỉ lưu traffic thỏa filter cụ thể

Khác với rotate (chia nhỏ theo thời gian/dung lượng), đây là lọc nội dung trước khi ghi — giảm dung lượng lưu trữ đáng kể khi chỉ cần một loại traffic nhất định:

# Chỉ ghi lại traffic lỗi/bất thường (dùng capture filter BPF — không lọc được theo layer 7)
tcpdump -i eth0 -w errors_only.pcap 'tcp[tcpflags] & (tcp-rst|tcp-fin) != 0'

# Chỉ ghi traffic tới/từ 1 dải IP nghi ngờ, xoay vòng theo giờ
tcpdump -i eth0 -G 3600 -W 48 -w '/data/suspect-%Y%m%d-%H%M%S.pcap' \
        'net 203.0.113.0/24'

# Muốn lọc theo layer 7 (vd: chỉ TLS ClientHello) TRƯỚC KHI ghi ra file mới:
# capture filter (BPF) không hiểu TLS — phải bắt full rồi lọc lại bằng tshark (2 bước)
tshark -i eth0 -w full_temp.pcap -a duration:60
tshark -r full_temp.pcap -Y "tls.handshake.type==1" -w tls_clienthello_only.pcap

11.6. Mô hình “always-on ring buffer + snapshot khi có cảnh báo” (dùng trong SOC/IR)

Kỹ thuật thực chiến: capture liên tục vào ring buffer nhỏ (chỉ giữ vài phút gần nhất), khi hệ thống giám sát (IDS/script) phát hiện bất thường thì copy nhanh các file ring buffer hiện có ra nơi lưu trữ dài hạn trước khi bị ghi đè — tránh phải giữ toàn bộ traffic 24/7 (quá tốn dung lượng) mà vẫn có bằng chứng khi cần điều tra.

# Bước 1: chạy ring buffer nền, mỗi file 60s, giữ 30 file (30 phút gần nhất)
dumpcap -i eth0 -w /var/ringbuf/cap.pcap -b duration:60 -b files:30 &

# Bước 2: script giám sát (cron mỗi phút) — khi phát hiện điều kiện bất thường,
# copy ngay các file ring buffer hiện có sang kho lưu trữ vĩnh viễn
#!/bin/bash
if <điều-kiện-cảnh-báo-đã-kích-hoạt>; then
    ts=$(date +%Y%m%d-%H%M%S)
    mkdir -p /data/incidents/$ts
    cp /var/ringbuf/cap*.pcap /data/incidents/$ts/
fi

12. XỬ LÝ CERTIFICATE TRONG PCAP

12.1. Trích xuất certificate từ pcap ra file .der/.pem

# Liệt kê tất cả certificate handshake (type 11 = Certificate) kèm IP nguồn
tshark -r cap.pcap -Y "tls.handshake.type==11" -T fields -e ip.src -e ip.dst

# Xuất raw bytes của certificate đầu tiên tìm thấy ra file DER
tshark -r cap.pcap -Y "tls.handshake.certificate" \
  -T fields -e tls.handshake.certificate | head -1 | xxd -r -p > cert.der

# Chuyển DER → PEM để dùng với openssl
openssl x509 -inform der -in cert.der -out cert.pem

12.2. Kiểm tra thông tin certificate bằng openssl sau khi trích xuất

openssl x509 -in cert.pem -noout -subject -issuer -dates
# -subject: CN/O của cert   -issuer: ai ký   -dates: notBefore/notAfter (hạn dùng)

openssl x509 -in cert.pem -noout -text | grep -A1 "Subject Alternative Name"
# Xem danh sách domain (SAN) mà cert này bao phủ

openssl x509 -in cert.pem -noout -fingerprint -sha256
# Fingerprint SHA-256 — dùng để so khớp với danh sách cert đáng ngờ/blacklist đã biết

12.3. Trích trực tiếp các trường certificate quan trọng bằng tshark (không cần openssl)

tshark -r cap.pcap -Y "tls.handshake.type==11" -T fields \
  -e ip.src \
  -e x509sat.uTF8String \
  -e x509ce.dNSName \
  -e x509af.algorithm \
  -e x509af.notBefore \
  -e x509af.notAfter

12.4. Phát hiện certificate đáng ngờ (dấu hiệu thường gặp ở C2/phishing)

Dấu hiệuCách kiểm tra
Self-signed (issuer == subject)So sánh field x509sat.uTF8String xuất hiện ở cả Issuer và Subject
Thời hạn cực ngắn (vài ngày)So x509af.notBefore và x509af.notAfter — cert hợp lệ lâu dài thường ≥ 90 ngày
Thuật toán ký yếu (MD5/SHA-1)x509af.algorithm chứa md5WithRSAEncryption hoặc sha1WithRSAEncryption
CN/SAN không khớp SNI đã gửiSo tls.handshake.extensions_server_name (ClientHello) với x509ce.dNSName (Certificate)
Cert lặp lại y hệt trên nhiều IP khác nhauSo sánh fingerprint SHA-256 giữa các session — dấu hiệu hạ tầng C2 dùng chung 1 cert
# So sánh SNI (client yêu cầu) với domain thực sự trong certificate trả về
tshark -r cap.pcap -Y "tls.handshake.type==1 || tls.handshake.type==11" \
  -T fields -e frame.number -e tls.handshake.extensions_server_name -e x509ce.dNSName

12.5. Kiểm tra certificate qua Certificate Transparency (đối chiếu ngoài pcap)

Sau khi có fingerprint/serial number từ bước trên, tra cứu trên crt.sh để xem cert có nằm trong log CT công khai không — cert hợp pháp từ CA uy tín luôn xuất hiện ở đây; cert tự tạo phục vụ tấn công thường không có.

12.6. HASSH — “JA3 cho SSH”

Tương tự JA3 với TLS, HASSH là hash từ các thuật toán SSH client/server đề xuất trong gói KEXINIT, giúp nhận diện phần mềm SSH client (kể cả công cụ tấn công tự động) mà không cần giải mã:

tshark -r cap.pcap -Y "ssh.message_code==20" \
  -T fields -e ip.src -e ssh.kex_algorithms -e ssh.encryption_algorithms_client_to_server

13. PHÂN TÍCH NÂNG CAO CHUYÊN SÂU

13.1. Bộ công cụ đi kèm Wireshark: capinfos, editcap, mergecap

# capinfos: xem metadata nhanh của 1 file pcap (thời lượng, số gói, tốc độ trung bình...)
capinfos capture.pcap

# mergecap: gộp nhiều file pcap thành 1, sắp xếp lại theo timestamp
mergecap -w merged.pcap part1.pcap part2.pcap part3.pcap

# editcap: cắt file theo khoảng thời gian
editcap -A "2026-08-24 09:00:00" -B "2026-08-24 10:00:00" full.pcap slice.pcap

# editcap: chia 1 file lớn thành nhiều file nhỏ theo số gói
editcap -c 50000 full.pcap chunk.pcap    # mỗi chunk 50,000 gói: chunk_00000, chunk_00001...

# editcap: loại bỏ gói trùng lặp (thường gặp khi capture ở nhiều SPAN port cùng lúc)
editcap -d full.pcap deduped.pcap

# editcap: ẩn danh hóa IP trước khi chia sẻ pcap ra ngoài (đổi IP nhưng giữ nguyên cấu trúc quan hệ)
editcap --seed 42 -T ether full.pcap anonymized.pcap

13.2. Phân tích VoIP/RTP

tshark -r cap.pcap -q -z rtp,streams          # liệt kê các luồng RTP, jitter, packet loss %
tshark -r cap.pcap -q -z sip,stat             # thống kê bản tin SIP (INVITE, 200 OK, BYE...)

Trong Wireshark GUI: Telephony → VoIP Calls → chọn cuộc gọi → Play Streams để nghe lại audio (nếu codec được hỗ trợ) — cực hữu ích khi debug chất lượng cuộc gọi (jitter, packet loss, MOS score).

13.3. Phân tích HTTP/2 và QUIC (HTTP/3)

# HTTP/2 — vẫn đọc được frame ngay cả khi truyền qua TLS nếu có SSLKEYLOGFILE
tshark -r cap.pcap -Y "http2" -T fields -e http2.streamid -e http2.headers.method -e http2.headers.path

# QUIC (UDP, TLS 1.3 tích hợp sẵn) — cần SSLKEYLOGFILE để giải mã (từ Wireshark 3.4+)
tshark -r cap.pcap -Y "quic" -T fields -e quic.long.packet_type -e quic.version

13.4. Phân tích hành vi traffic đã mã hóa mà KHÔNG cần giải mã (traffic fingerprinting)

Đây là kỹ thuật nghiên cứu bảo mật hợp pháp (dùng trong cả phòng thủ lẫn phân tích QoS): dựa vào kích thước gói, thời gian giữa các gói, số lượng gói trong 1 luồng TLS/QUIC để suy đoán loại nội dung/ứng dụng mà không đọc được payload — hữu ích để phát hiện exfiltration hoặc phân loại traffic khi không có khóa giải mã.

# Xuất chuỗi (kích thước gói, thời gian) của từng luồng TLS để đưa vào phân tích thống kê/ML
tshark -r cap.pcap -Y "tls.record" -T fields \
  -e tcp.stream -e frame.time_relative -e frame.len > tls_timing_features.csv

Đặc trưng thường dùng: phân bố kích thước gói (histogram), tỷ lệ upload/download bytes, khoảng nghỉ giữa các burst gói — các mô hình phát hiện bất thường (anomaly detection) hiện đại (Zeek, Suricata JA3-based rules, các sản phẩm NDR thương mại) đều dựa trên nguyên lý này để gắn cờ traffic mã hóa đáng ngờ.

13.5. Script triage tự động: chấm điểm “độ đáng ngờ” của 1 pcap

#!/bin/bash
# Tổng hợp nhanh các chỉ số nghi vấn từ 1 file pcap để ưu tiên điều tra
FILE=$1
echo "== Expert warnings/errors =="
tshark -r "$FILE" -q -z expert 2>/dev/null | grep -E "Warn|Error"

echo "== Top 10 IP theo số kết nối SYN (dò port scan) =="
tshark -r "$FILE" -Y "tcp.flags.syn==1 && tcp.flags.ack==0" -T fields -e ip.src | \
  sort | uniq -c | sort -rn | head -10

echo "== DNS query có độ dài bất thường (khả năng tunneling) =="
tshark -r "$FILE" -Y "dns.qry.name.len > 50" -T fields -e ip.src -e dns.qry.name | head -20

echo "== Certificate self-signed hoặc hạn ngắn =="
tshark -r "$FILE" -Y "tls.handshake.type==11" -T fields -e ip.src -e x509af.notBefore -e x509af.notAfter

13.6. Phân tích jitter/độ trễ chi tiết cho ứng dụng nhạy cảm thời gian thực

tshark -r cap.pcap -q -z io,stat,0.1,"AVG(tcp.analysis.ack_rtt)tcp.analysis.ack_rtt"
# In ra RTT trung bình theo từng khoảng 0.1 giây — dựng biểu đồ trễ mịn theo thời gian thực

14. CHEAT SHEET

Tcpdump filter nhanh

host X | src X | dst X | net X/24 | port N | portrange N-M
tcp | udp | icmp | arp
tcp[tcpflags] == tcp-syn
and / or / not

Display filter (Wireshark/tshark) nhanh

ip.addr == X          tcp.port == N         http.request
tls.handshake.type    dns.qry.name          tcp.analysis.retransmission
tcp.flags.syn==1      frame contains "x"    tcp.stream == N

Tshark output flags

-T fields -e <field>     # trích field cụ thể
-T json / -T ek          # xuất JSON / Elasticsearch format
-Y "<filter>"            # display filter (sau khi capture)
-f "<filter>"            # capture filter (BPF, khi bắt live)
-z io,stat,N             # thống kê throughput
-z conv,tcp              # bảng hội thoại
-z follow,tcp,ascii,N    # follow stream N

Quy trình giải mã TLS (tóm tắt)

1. export SSLKEYLOGFILE=~/keys.log  (trước khi mở app/browser)
2. Capture traffic song song (tcpdump/Wireshark)
3. Wireshark: Preferences → Protocols → TLS → trỏ tới keys.log
4. Follow → TLS Stream để đọc plaintext

15. LỘ TRÌNH MỞ RỘNG

Sau khi vững Wireshark/tshark/tcpdump, chuyên gia an ninh mạng thường mở rộng theo các hướng sau.

15.1. Công cụ bổ trợ nên học tiếp

Công cụVai tròVì sao cần
Zeek (trước là Bro)Tự sinh log có cấu trúc (conn.log, dns.log, ssl.log, http.log…) từ toàn bộ trafficHunt trên khối lượng dữ liệu lớn mà đọc từng gói bằng tshark sẽ quá chậm
Suricata / SnortIDS/IPS dựa trên rule (hỗ trợ rule theo JA3/JA4)Tự động gắn cờ traffic đáng ngờ thay vì soi thủ công từng pcap
Arkime (Moloch)Lưu trữ & tìm kiếm pcap ở quy mô lớnKhi Wireshark không kham nổi hàng trăm GB traffic lịch sử
NetworkMinerTái dựng file, ảnh, credential từ pcap theo hướng forensicsBổ sung cho Export Objects của Wireshark, giao diện chuyên biệt cho DFIR
Scapy (Python)Tạo/giả lập gói tin tùy ýTest rule IDS, test firewall, mô phỏng tấn công trong lab được ủy quyền
tcpreplayPhát lại pcap đã lưu vào interface thậtKiểm thử IDS/IPS mà không cần traffic sống

15.2. Kiến thức chuyên sâu nên bổ sung

  • Phân tích Kerberos/SMB/RDP trong pcap — nền tảng phát hiện tấn công Active Directory (Kerberoasting, Pass-the-Hash, lateral movement); rất được săn đón trong blue team.
  • eBPF (Cilium, Tetragon, bpftrace) — xu hướng giám sát hiện đại trong môi trường container/Kubernetes, nơi tcpdump truyền thống khó bắt trọn traffic giữa các pod.
  • JA4 — bản kế nhiệm JA3 (2023), hỗ trợ cả QUIC/HTTP/SSH; nên chuyển dần sang dùng vì JA3 giảm hiệu quả khi trình duyệt hiện đại random hóa thứ tự extension (GREASE).
  • ECH (Encrypted Client Hello) và DoH/DoT — xu hướng ẩn luôn cả SNI và truy vấn DNS. Khi metadata này bị mã hóa, kỹ thuật “đọc SNI để biết domain” ở mục 6 mất tác dụng — cần chuyển sang phân tích hành vi/kích thước gói (mục 13.4).

15.3. Thực hành để lên trình

  • malware-traffic-analysis.net — kho pcap thật từ các vụ nhiễm mã độc thực tế, kèm bài tập và đáp án, luyện tập rất sát thực chiến.
  • Wireshark Sample Captures (wiki.wireshark.org) và CloudShark — luyện đọc nhiều loại traffic khác nhau.
  • Tự dựng home lab: 1 VM mô phỏng bị nhiễm mã độc trong sandbox cô lập (ngắt mạng ra ngoài) + capture toàn bộ traffic nội bộ để tự phân tích lại từ đầu.

15.4. Quy trình pháp lý khi làm forensics thật

  • Hash file pcap (SHA-256) ngay khi thu thập để giữ chain of custody, phòng khi cần dùng làm bằng chứng.
  • Ghi lại đầy đủ: ai capture, thời điểm nào, trên interface nào, bằng lệnh gì — thiếu thông tin này pcap có thể không được chấp nhận trong điều tra chính thức hoặc trước tòa.

15.5. Lộ trình chứng chỉ nếu muốn đi sâu chuyên nghiệp

  • SANS FOR572 (Advanced Network Forensics) → chứng chỉ GNFA
  • SANS GCIA (Certified Intrusion Analyst)
  • WCNA (Wireshark Certified Network Analyst)

Tài liệu này mang tính giáo dục/kỹ thuật cho quản trị mạng, kỹ sư bảo mật và nhà phân tích forensics. Áp dụng đúng phạm vi pháp lý và đạo đức nghề nghiệp.

Contact
Facebook
TOP