<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Network Forensics on Roduygo | Blog</title><link>/categories/network-forensics/</link><description>Recent content in Network Forensics on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 21 May 2026 22:57:00 +0700</lastBuildDate><atom:link href="/categories/network-forensics/index.xml" rel="self" type="application/rss+xml"/><item><title>Quản trị từ xa (SSH) &amp; Lỗ hổng Terrapin (CVE-2023-48795)</title><link>/post/ssh-terrapin-cve-2023-48795/</link><pubDate>Thu, 21 May 2026 22:57:00 +0700</pubDate><guid>/post/ssh-terrapin-cve-2023-48795/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã thấy SFTP tận dụng sự kiên cố của kiến trúc đường hầm SSH để bảo vệ việc truyền tải dữ liệu. Tuy nhiên, vỏ bọc nào cũng có điểm yếu chí mạng nếu quá trình &amp;ldquo;đàm phán&amp;rdquo; ban đầu bị thao túng. Hôm nay, chúng ta sẽ đi sâu vào kỹ thuật quản trị từ xa bằng SSH, giải phẫu cơ chế nhận diện Fingerprint và mổ xẻ lỗ hổng &lt;strong&gt;Terrapin (CVE-2023-48795)&lt;/strong&gt; — đòn tấn công tinh vi đánh thẳng vào tính toàn vẹn của quá trình bắt tay.&lt;/p&gt;
&lt;h2 id="1-ssh-secure-shell---vua-của-dòng-lệnh-từ-xa"&gt;1. SSH (Secure Shell) - &amp;ldquo;Vua&amp;rdquo; của dòng lệnh từ xa
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;SSH&lt;/strong&gt; (hoạt động ở Cổng &lt;code&gt;22&lt;/code&gt;) ra đời để thay thế cho giao thức Telnet lỗi thời, được sử dụng chủ yếu để đăng nhập và điều khiển các máy chủ Linux từ xa với độ bảo mật cực cao.&lt;/p&gt;
&lt;p&gt;Bản chất của SSH là tạo ra một đường hầm mã hóa để bạn truyền các lệnh văn bản (Text-based). Nó sử dụng cơ chế bảo mật dựa trên cặp khóa &lt;strong&gt;Public/Private Key&lt;/strong&gt; hoặc mật khẩu đã được băm. Đứng ở góc độ một SOC Analyst soi gói tin bằng Wireshark, toàn bộ dữ liệu giao tiếp bên trong SSH chỉ hiện ra dưới dạng các khối &lt;strong&gt;Encrypted Packet&lt;/strong&gt; — kẻ tấn công không thể đọc được bạn đang gõ lệnh quản trị gì.&lt;/p&gt;
&lt;h2 id="2-ranh-giới-chống-mitm-dấu-vân-tay-fingerprint-và-known_hosts"&gt;2. Ranh giới chống MitM: Dấu vân tay (Fingerprint) và known_hosts
&lt;/h2&gt;&lt;p&gt;Vậy làm sao máy tính của bạn biết nó đang kết nối đúng đến Server thật chứ không phải một máy chủ giả mạo do hacker dựng lên (&lt;strong&gt;Man-in-the-Middle&lt;/strong&gt;)? Bí quyết nằm ở cơ chế &lt;strong&gt;Dấu vân tay&lt;/strong&gt; (Fingerprint).&lt;/p&gt;
&lt;p&gt;Khi bạn thực hiện kết nối SSH lần đầu tiên, máy khách chưa biết gì về Server. Lúc này, Server sẽ gửi &amp;ldquo;chứng minh thư&amp;rdquo; của nó dưới dạng một mã Fingerprint (thường dùng thuật toán băm &lt;code&gt;ED25519&lt;/code&gt; từ Khóa công khai).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Lệnh kết nối SSH vào máy chủ Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Hệ thống sẽ hỏi xác nhận Fingerprint trong lần kết nối đầu tiên&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh admin@10.10.50.20
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# The authenticity of host &amp;#39;10.10.50.20 (10.10.50.20)&amp;#39; can&amp;#39;t be established.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# ED25519 key fingerprint is SHA256:bafc947d6e921971472e82f52462129e.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Are you sure you want to continue connecting (yes/no/[fingerprint])?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Khi bạn gõ &lt;code&gt;yes&lt;/code&gt;, máy của bạn sẽ lưu vĩnh viễn khóa này vào file &lt;code&gt;known_hosts&lt;/code&gt;. Kể từ những lần đăng nhập sau, nếu dấu vân tay này bị thay đổi (do hacker can thiệp và ép dùng khóa giả), SSH sẽ lập tức hiển thị &lt;strong&gt;cảnh báo đỏ&lt;/strong&gt; và ngắt kết nối để bảo vệ bạn.&lt;/p&gt;
&lt;h2 id="3-lỗ-hổng-terrapin-cve-2023-48795---thao-túng-gói-tin-bắt-tay"&gt;3. Lỗ hổng Terrapin (CVE-2023-48795) - Thao túng gói tin bắt tay
&lt;/h2&gt;&lt;p&gt;Mặc dù khóa phiên được trao đổi và lưu an toàn trong RAM ngay từ đầu, SSH vẫn tồn tại một lỗ hổng chí mạng mang tên &lt;strong&gt;Terrapin Attack (CVE-2023-48795)&lt;/strong&gt;. Điểm đáng sợ của Terrapin là nó &lt;strong&gt;không thèm bẻ khóa&lt;/strong&gt; thuật toán mã hóa, mà đánh trực tiếp vào tính toàn vẹn của quá trình &amp;ldquo;bắt tay&amp;rdquo; (Handshake).&lt;/p&gt;
&lt;p&gt;Trong giao thức SSH, mỗi gói tin được gửi đi đều đi kèm với một &lt;strong&gt;số thứ tự&lt;/strong&gt; (Sequence Number) ngẫu nhiên và tăng dần ngầm định. Cả Client và Server đều kiểm tra gắt gao số này để đảm bảo không một gói tin nào bị rơi rớt hay bị kẻ xấu chèn thêm vào.&lt;/p&gt;
&lt;p&gt;Cách thức tấn công của Terrapin (kỹ thuật &lt;strong&gt;&amp;ldquo;Cắt dán&amp;rdquo; số thứ tự&lt;/strong&gt;) diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hacker chiếm vị trí &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; giữa máy bạn và Server.&lt;/li&gt;
&lt;li&gt;Trong giai đoạn đầu của quá trình bắt tay (khi mã hóa toàn phần chưa được thiết lập), hacker chủ động &lt;strong&gt;xóa bỏ&lt;/strong&gt; một số gói tin cụ thể — ví dụ: gói tin báo hiệu việc hỗ trợ các thuật toán bảo mật cao.&lt;/li&gt;
&lt;li&gt;Để hai bên Client và Server không phát hiện ra sự thiếu hụt này, hacker &lt;strong&gt;điều chỉnh lại số thứ tự&lt;/strong&gt; của các gói tin kế tiếp sao cho chúng khớp hoàn hảo với mong đợi của hai bên — như thể gói tin bị xóa chưa từng tồn tại.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="4-hậu-quả-hạ-cấp-bảo-mật-và-vô-hiệu-hóa-keystroke-obfuscation"&gt;4. Hậu quả: Hạ cấp bảo mật và Vô hiệu hóa Keystroke Obfuscation
&lt;/h2&gt;&lt;p&gt;Mục đích cuối cùng của việc &amp;ldquo;xóa dấu vết&amp;rdquo; khéo léo này là để thực hiện đòn &lt;strong&gt;Hạ cấp bảo mật&lt;/strong&gt; (Downgrade Attack). Bằng cách xóa các gói tin mở rộng (Extension Info), hacker đánh lừa cả hai bên về khả năng bảo mật của nhau.&lt;/p&gt;
&lt;p&gt;Hậu quả mang lại cực kỳ tàn khốc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ép dùng thuật toán yếu:&lt;/strong&gt; SSH sẽ bị lừa và tự động lùi về sử dụng các bộ thuật toán mã hóa cũ hơn, yếu hơn, dễ bị hacker dùng kỹ thuật tấn công kênh kề để khai thác.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vô hiệu hóa Keystroke Obfuscation:&lt;/strong&gt; Đây là tính năng quan trọng của SSH dùng để làm nhiễu &amp;ldquo;nhịp gõ phím&amp;rdquo; khi truyền qua mạng. Khi Terrapin vô hiệu hóa thành công tính năng này, hacker đứng giữa có thể dễ dàng đoán được độ dài mật khẩu và thực hiện tấn công Sniffing.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Lỗ hổng Terrapin cho thấy tầm quan trọng của việc cập nhật phần mềm. Để chống lại đòn tấn công này, quản trị viên mạng phải đảm bảo cả &lt;strong&gt;SSH Client&lt;/strong&gt; (như PuTTY, OpenSSH) và &lt;strong&gt;SSH Server&lt;/strong&gt; đều được cập nhật lên phiên bản mới nhất có hỗ trợ cờ &lt;strong&gt;&amp;ldquo;Strict KEX&amp;rdquo;&lt;/strong&gt; (Bắt tay nghiêm ngặt) nhằm chặn đứng hành vi thao túng gói tin.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Khép lại Bài 10, chúng ta đã hoàn tất việc mổ xẻ những giao thức quan trọng nhất ở Tầng Ứng dụng (Lớp 7) như DNS, DHCP, HTTP, FTP và SSH. Bức tranh về cách dữ liệu truyền tải trên mạng đã hoàn thiện. Giờ là lúc chúng ta chuyển sang thế chủ động: Làm thế nào để xây dựng các công sự bảo vệ mạng lưới này? Trong Bài 11 tiếp theo, chúng ta sẽ bắt đầu Phần 4 của Series với chủ đề Vành đai Tường lửa (Firewall) &amp;amp; Cơ chế NAT. Hãy cùng chờ đón nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giao thức Truyền tải (HTTP/HTTPS &amp; FTP/SFTP)</title><link>/post/http-ftp-sftp-protocols/</link><pubDate>Thu, 21 May 2026 22:55:00 +0700</pubDate><guid>/post/http-ftp-sftp-protocols/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở phần trước, chúng ta đã đi sâu vào hạ tầng mạng với DNS và DHCP. Khi gói tin đã có IP và tìm được đích đến, hệ thống sẽ chuyển giao nhiệm vụ cho các giao thức truyền tải văn bản và tệp tin ở Lớp Ứng dụng (Tầng 7). Hôm nay, chúng ta sẽ đặt HTTP/HTTPS và FTP/SFTP lên bàn mổ Wireshark để thấy rõ ranh giới sinh tử giữa dữ liệu trần trụi và kiến trúc đường hầm mã hóa.&lt;/p&gt;
&lt;h2 id="1-http-và-https-ranh-giới-giữa-trần-trụi-và-kín-đáo"&gt;1. HTTP và HTTPS: Ranh giới giữa &amp;ldquo;Trần trụi&amp;rdquo; và &amp;ldquo;Kín đáo&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;HTTP&lt;/strong&gt; (Cổng &lt;code&gt;80&lt;/code&gt;) là giao thức nền tảng để duyệt web, nhưng bản chất của nó là truyền &lt;strong&gt;văn bản thuần&lt;/strong&gt; (Clear-text) hoàn toàn không được mã hóa. Đứng ở góc độ bảo mật, nếu bạn sử dụng mạng Wi-Fi công cộng để truy cập một trang web HTTP, bất kỳ ai có kiến thức cơ bản về mạng đang dùng Wireshark cũng có thể &amp;ldquo;nghe lén&amp;rdquo;. Họ sẽ thấy toàn bộ nội dung bạn chat, tài khoản, mật khẩu và thậm chí có thể can thiệp sửa đổi dữ liệu trên đường đi.&lt;/p&gt;
&lt;p&gt;Để khắc phục điều này, &lt;strong&gt;HTTPS&lt;/strong&gt; (Cổng &lt;code&gt;443&lt;/code&gt;) ra đời. Nó thực chất là giao thức HTTP được chạy trên nền của SSL/TLS ở Tầng 6 (Presentation).&lt;/p&gt;
&lt;p&gt;Khi bạn truy cập &lt;code&gt;facebook.com&lt;/code&gt; qua HTTPS, sau khi hoàn tất quá trình Bắt tay TCP ở Tầng 4, quy trình mã hóa sẽ diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Chuẩn bị (TLS Handshake):&lt;/strong&gt; Trình duyệt (&lt;code&gt;Client Hello&lt;/code&gt;) và máy chủ (&lt;code&gt;Server Hello&lt;/code&gt;) đàm phán để chọn ra một bộ công cụ mật mã (Cipher Suite) chung.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa (Application Data):&lt;/strong&gt; Chỉ sau khi &amp;ldquo;đường hầm&amp;rdquo; TLS được thiết lập xong, dữ liệu web thực sự (phương thức &lt;code&gt;GET&lt;/code&gt;/&lt;code&gt;POST&lt;/code&gt;, mật khẩu, hình ảnh) mới bắt đầu được đẩy đi dưới dạng các khối &lt;strong&gt;Encrypted Application Data&lt;/strong&gt;. Lúc này, hacker đứng giữa mạng sẽ hoàn toàn mù tịt.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-ftp-và-thảm-họa-lộ-mật-khẩu-clear-text"&gt;2. FTP và Thảm họa Lộ Mật khẩu (Clear-text)
&lt;/h2&gt;&lt;p&gt;Tương tự như câu chuyện của HTTP, giao thức truyền tải tệp tin &lt;strong&gt;FTP&lt;/strong&gt; (File Transfer Protocol) hoạt động ở Cổng &lt;code&gt;20&lt;/code&gt; và &lt;code&gt;21&lt;/code&gt; cũng là một giao thức cực kỳ yếu kém về bảo mật.&lt;/p&gt;
&lt;p&gt;Hãy tưởng tượng một kịch bản thực chiến: Một nhân viên dùng FTP để upload báo cáo nội bộ qua mạng Wi-Fi ở quán cà phê. Hacker ngồi góc phòng, bật Wireshark (hoặc Ettercap) để thực hiện tấn công &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt;. Vì FTP không hề có lớp bảo vệ mã hóa nào, hacker sẽ bắt được toàn bộ gói tin giao tiếp trần trụi giữa máy trạm và Server.&lt;/p&gt;
&lt;p&gt;Dưới đây là bằng chứng kết xuất từ Wireshark khi hacker bắt thành công gói tin FTP:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Gói tin FTP cho thấy thông tin đăng nhập bị lộ hoàn toàn
# IP Nạn nhân: 192.168.1.15 | IP Máy chủ FTP: 10.10.50.20

No. Time Source Destination Protocol Info
34 100.646 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: USER roduygo
36 100.646 10.10.50.20 -&amp;gt; 192.168.1.15 FTP Response: 331 Please specify the password.
38 102.659 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: PASS 7905
40 102.756 10.10.50.20 -&amp;gt; 192.168.1.15 FTP Response: 230 Login successful.
42 102.756 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: SYST
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Chỉ với vài giây phân tích, hacker đã lấy được chính xác tài khoản (&lt;code&gt;USER roduygo&lt;/code&gt;) và mật khẩu (&lt;code&gt;PASS 7905&lt;/code&gt;). Từ đây, chúng có thể đăng nhập thẳng vào Server để trích xuất dữ liệu mật hoặc xóa sạch mọi tài liệu quan trọng.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; FTP mặc định là một lỗ hổng chí mạng. SOC Analyst cần đưa ra cảnh báo khẩn cấp (Alert) trên hệ thống IDS/IPS nếu phát hiện bất kỳ lưu lượng &lt;strong&gt;FTP&lt;/strong&gt; nào (Port &lt;code&gt;21&lt;/code&gt;) truyền tải dữ liệu mà không đi qua các đường hầm VPN hoặc chưa được bọc TLS (&lt;strong&gt;FTPS&lt;/strong&gt;).&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-sftp-kiến-trúc-đường-hầm-bảo-mật-tuyệt-đối"&gt;3. SFTP: Kiến trúc Đường hầm Bảo mật tuyệt đối
&lt;/h2&gt;&lt;p&gt;Để giải quyết vấn đề của FTP, giải pháp an toàn và phổ biến nhất hiện nay trong giới quản trị hệ thống là &lt;strong&gt;SFTP&lt;/strong&gt; (SSH File Transfer Protocol).&lt;/p&gt;
&lt;p&gt;Một sai lầm rất thường gặp là mọi người nghĩ SFTP là &amp;ldquo;FTP cộng thêm bảo mật&amp;rdquo;. Thực chất không phải vậy! &lt;strong&gt;SFTP là một giao thức hoàn toàn mới&lt;/strong&gt; được xây dựng từ đầu ngay bên trong không gian của &lt;strong&gt;SSH&lt;/strong&gt; (Cổng &lt;code&gt;22&lt;/code&gt;). Trong khi SSH cung cấp cho bạn quyền gõ lệnh Terminal từ xa, thì SFTP tận dụng chính &amp;ldquo;đường hầm&amp;rdquo; an toàn đó để truyền tải tệp tin.&lt;/p&gt;
&lt;p&gt;Khi bạn kết nối SFTP lần đầu, hệ thống sẽ sử dụng cơ chế bảo mật cực mạnh:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kiểm tra Fingerprint:&lt;/strong&gt; Máy bạn sẽ hỏi &amp;ldquo;dấu vân tay&amp;rdquo; (thường là mã &lt;code&gt;ED25519&lt;/code&gt;) của Server và lưu vào file &lt;code&gt;known_hosts&lt;/code&gt;. Từ lần sau, nếu dấu vân tay này bị thay đổi (do hacker cố tình dựng Server giả mạo), SSH sẽ báo động đỏ ngay lập tức.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa hoàn toàn:&lt;/strong&gt; Toàn bộ lệnh gõ, tên file, và nội dung file đều bị băm và xáo trộn.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nếu hacker tiếp tục dùng Wireshark để nghe lén luồng SFTP, thứ duy nhất chúng thấy chỉ là vô vọng:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Gói tin SFTP (chạy qua SSH) hoàn toàn bị mã hóa, che giấu mọi hoạt động
# IP Nạn nhân: 192.168.1.15 | IP Máy chủ SFTP: 10.10.50.20

No. Time Source Destination Protocol Info
14 13.1338 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: PQ/T Hybrid Key Exchange Init
15 13.1383 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Server: PQ/T Hybrid Key Exchange Reply, New Keys
17 18.3181 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: New Keys, Encrypted packet (len=68)
19 18.3509 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Client: Encrypted packet (len=52)
34 21.8629 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: Encrypted packet (len=128)
36 21.9083 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Server: Encrypted packet (len=628)
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Thay vì thấy lệnh &lt;code&gt;USER&lt;/code&gt; hay &lt;code&gt;PASS&lt;/code&gt;, tất cả những gì hiển thị trên màn hình của hacker giờ đây chỉ là các khối &lt;strong&gt;Encrypted packet&lt;/strong&gt; khô khan.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Hiểu rõ sự khác biệt giữa giao thức truyền văn bản thuần (HTTP, FTP) và các giao thức bọc giáp (HTTPS, SFTP) giúp SOC Analyst biết phải cấu hình giám sát ở đâu để không bị lọt lưới thông tin nhạy cảm. Dù SSH/SFTP rất kiên cố, nhưng vỏ bọc nào cũng có điểm yếu chí mạng nếu quá trình &amp;ldquo;đàm phán&amp;rdquo; ban đầu bị thao túng. Trong Bài tiếp theo, chúng ta sẽ đi sâu vào kỹ thuật quản trị từ xa (SSH) và mổ xẻ lỗ hổng Terrapin (CVE-2023-48795) — đòn tấn công tinh vi đánh thẳng vào tính toàn vẹn của quá trình bắt tay SSH. Hãy cùng chờ đón nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giải phẫu TLS Handshake &amp; Cipher Suites trên Wireshark</title><link>/post/tls-handshake-cipher-suites/</link><pubDate>Thu, 21 May 2026 22:51:00 +0700</pubDate><guid>/post/tls-handshake-cipher-suites/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã hiểu được tầm quan trọng của Tầng 6 (Presentation) và sự sụp đổ của SSL 3.0. Hôm nay, chúng ta sẽ đặt giao thức TLS lên &amp;ldquo;bàn mổ&amp;rdquo; Wireshark để soi kỹ từng bước trong quá trình đàm phán bảo mật. Hãy cùng giải phẫu các gói tin &lt;code&gt;Client Hello&lt;/code&gt;, &lt;code&gt;Server Hello&lt;/code&gt; và bóc tách ý nghĩa của bộ công cụ mật mã hiện đại như ECDHE hay CHACHA20_POLY1305.&lt;/p&gt;
&lt;h2 id="1-bức-tranh-toàn-cảnh-tls-handshake"&gt;1. Bức tranh toàn cảnh TLS Handshake
&lt;/h2&gt;&lt;p&gt;Trước khi mã hóa bất kỳ dữ liệu thực tế nào (Application Data), máy khách và máy chủ phải thiết lập các quy tắc chung thông qua quá trình &lt;strong&gt;bắt tay TLS&lt;/strong&gt; (TLS Handshake). Quá trình này chỉ được bắt đầu sau khi hai thiết bị đã thiết lập xong kết nối vật lý qua TCP 3-Way Handshake ở Tầng 4.&lt;/p&gt;
&lt;p&gt;Các bước cơ bản của quy trình diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Client Hello:&lt;/strong&gt; Máy khách (như trình duyệt của bạn) gửi lời chào, kèm theo danh sách các bộ công cụ mật mã (Cipher Suites) mà máy của bạn có thể hỗ trợ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Hello:&lt;/strong&gt; Máy chủ nhận lời chào, so sánh và chọn ra một bộ công cụ duy nhất tốt nhất để hai bên cùng sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate &amp;amp; Key Exchange:&lt;/strong&gt; Máy chủ gửi chứng chỉ (Certificate) để chứng minh danh tính, sau đó hai bên tiến hành trao đổi Khóa phiên (Session Key).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finished:&lt;/strong&gt; &amp;ldquo;Đường hầm&amp;rdquo; mã hóa chính thức hoàn tất. Từ thời điểm này, mọi dữ liệu HTTP mới bắt đầu được truyền đi dưới dạng ẩn danh (Encrypted Application Data).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="tls-handshake" class="gallery-image" data-flex-basis="432px" data-flex-grow="180" height="340" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/tls-handshake-cipher-suites/kk.png" width="613"&gt;&lt;/p&gt;
&lt;h2 id="2-đọc-hiểu-client-hello-trên-wireshark"&gt;2. Đọc hiểu Client Hello trên Wireshark
&lt;/h2&gt;&lt;p&gt;Chúng ta sẽ sử dụng bộ lọc &lt;code&gt;tls.handshake.type == 1&lt;/code&gt; trên Wireshark để xem máy khách mang những gì đến &amp;ldquo;buổi đàm phán&amp;rdquo; ban đầu.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Bộ lọc Wireshark để tìm gói tin Client Hello
# IP máy khách: 192.168.1.14 | IP máy chủ đích: 72.34.249.208

Handshake Protocol: Client Hello
 Handshake Type: Client Hello (1)
 Length: 1910
 Version: TLS 1.2 (0x0303)
 Random: a0c794e5688f06092ca15a0a7c7452952d79b8af66b763645a55c5d0689b60dd
 Session ID Length: 32
 Session ID: 5f9fe71acbee191437c11861cf72ad48870cb6bb38d3fd5e0bbe731b6e52a7c7
 Cipher Suites Length: 32
 Cipher Suites (16 suites)
 Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
 [...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Trong gói tin này, trường thông tin mang tính sống còn nhất là &lt;strong&gt;Cipher Suites (16 suites)&lt;/strong&gt;. Trình duyệt của bạn đang gửi một danh sách gồm 16 thuật toán mật mã khác nhau và truyền đạt thông điệp: &amp;ldquo;Đây là tất cả những vũ khí bảo mật mà tôi có, Server hãy chọn ra một cái nhé!&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="3-giải-phẫu-cipher-suite-thuật-toán-chacha20_poly1305"&gt;3. Giải phẫu Cipher Suite (Thuật toán CHACHA20_POLY1305)
&lt;/h2&gt;&lt;p&gt;Ngay sau &lt;code&gt;Client Hello&lt;/code&gt;, Server sẽ đáp lại bằng gói &lt;code&gt;Server Hello&lt;/code&gt; (bộ lọc &lt;code&gt;tls.handshake.type == 2&lt;/code&gt;) và chốt lại một &amp;ldquo;bộ công cụ mật mã&amp;rdquo; duy nhất. Giả sử Server đã chọn &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dưới góc độ một SOC Analyst, bạn bắt buộc phải biết cách &amp;ldquo;dịch&amp;rdquo; chuỗi mã này từ trái sang phải:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;TLS&lt;/code&gt;:&lt;/strong&gt; Tên giao thức nền tảng đang sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt; (Elliptic Curve Diffie-Hellman Ephemeral):&lt;/strong&gt; Thuật toán dùng để trao đổi khóa. Chữ &amp;ldquo;E&amp;rdquo; (Ephemeral) đảm bảo tính &lt;strong&gt;Perfect Forward Secrecy&lt;/strong&gt; — mỗi phiên làm việc có một khóa riêng. Ngay cả khi hacker đánh cắp được Khóa bí mật tĩnh của máy chủ vào ngày mai, chúng cũng không thể dùng nó để giải mã các gói tin Wireshark bắt được từ hôm nay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;RSA&lt;/code&gt;:&lt;/strong&gt; Thuật toán xác thực danh tính. Dùng để chứng minh với máy khách rằng Server thực sự là đúng địa chỉ (thông qua Certificate).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CHACHA20_POLY1305&lt;/code&gt;:&lt;/strong&gt; Thuật toán mã hóa đối xứng — phần lõi dùng để xáo trộn dữ liệu. Cực kỳ hiện đại, chạy mượt mà và tiết kiệm pin trên thiết bị di động so với thuật toán AES cũ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SHA256&lt;/code&gt;:&lt;/strong&gt; Thuật toán băm dùng cho &lt;strong&gt;HMAC&lt;/strong&gt;, đảm bảo không một ai có thể thay đổi dù chỉ 1 bit dữ liệu trên đường truyền mà không bị phát hiện.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-mã-dữ-liệu-tls-trong-thực-chiến-decryption"&gt;4. Giải mã dữ liệu TLS trong thực chiến (Decryption)
&lt;/h2&gt;&lt;p&gt;Bình thường, khi bạn soi các gói tin sau quá trình Handshake, bạn sẽ chỉ thấy một vùng xám xịt mang tên &lt;strong&gt;Encrypted Application Data&lt;/strong&gt; chứa toàn ký tự rác. Để phục vụ công tác điều tra phân tích mạng (Network Forensics), chúng ta có thể ép trình duyệt nhả &amp;ldquo;Khóa phiên&amp;rdquo; (Session Key) ra một file log, sau đó nạp file này vào Wireshark để giải mã toàn bộ luồng dữ liệu.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo bảo mật:&lt;/strong&gt; Cú pháp dưới đây thiết lập biến môi trường để trích xuất khóa mã hóa riêng tư. &lt;strong&gt;Chỉ được phép thực hiện trên môi trường Lab hoặc máy phân tích cách ly.&lt;/strong&gt; Tuyệt đối không chạy lệnh này trên máy tính của người dùng thực tế vì nó sẽ làm lộ toàn bộ dữ liệu duyệt web (tài khoản, mật khẩu) của họ!&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ định đường dẫn file log để lưu Session Key của trình duyệt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export SSLKEYLOGFILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/tls_keys.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Mở trình duyệt Firefox từ terminal hiện tại để bắt đầu ghi nhận khóa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sau khi cấu hình Wireshark trỏ đến file &lt;code&gt;tls_keys.log&lt;/code&gt; này (trong mục &lt;strong&gt;Preferences &amp;gt; Protocols &amp;gt; TLS&lt;/strong&gt;), phép màu sẽ xảy ra. Các gói tin vốn bị mã hóa đen đặc giờ đây sẽ hiển thị thêm một tab &lt;strong&gt;Decrypted TLS&lt;/strong&gt;. Bạn sẽ thấy rõ nguyên hình dữ liệu HTTP/2 trần trụi, bao gồm các phương thức &lt;code&gt;GET&lt;/code&gt;/&lt;code&gt;POST&lt;/code&gt; hay các chuỗi Header rõ ràng.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc đọc hiểu tường tận các bộ Cipher Suites và quy trình TLS Handshake giúp Blue Team đánh giá chính xác chất lượng bảo mật của các kết nối đang diễn ra trên hệ thống. Dù Tầng 6 đã tạo ra một đường hầm mã hóa kiên cố, nhưng chính những ứng dụng ở Tầng trên cùng mới là mục tiêu bị tin tặc khai thác nhiềutích &amp;ldquo;góc khuất ngây thơ&amp;rdquo; của hệ thống phân giải tên miền (DNS) và quá trình xin cấp phát IP của DHCP. Các bạn đừ nhất. Trong Bài 8 tiếp theo, chúng ta sẽ chính thức bước vào Lớp Ứng dụng (Application Layer - OSI 7) để phân ng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Lớp 6 (Presentation) &amp; Lớp vỏ Mã hóa - Từ SSL đến TLS và Lỗ hổng POODLE</title><link>/post/presentation-layer-tls/</link><pubDate>Thu, 21 May 2026 22:50:00 +0700</pubDate><guid>/post/presentation-layer-tls/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã tìm hiểu cách Tầng 5 duy trì các phiên làm việc, nhưng nếu dữ liệu (như mật khẩu, cookie) cứ thế truyền đi trần trụi thì hacker đứng giữa mạng sẽ dễ dàng tóm gọn. Đó là lúc Tầng 6 (Presentation Layer) xuất hiện như một &amp;ldquo;lớp vỏ bọc thép&amp;rdquo; để thông dịch, nén và xáo trộn mọi thông tin trước khi đẩy ra mạng. Hôm nay, chúng ta sẽ cùng mổ xẻ cơ chế hoạt động của Tầng 6, phân tích sự tiến hóa từ SSL lên TLS và bóc trần đòn đánh POODLE khét tiếng đã định hình lại tiêu chuẩn bảo mật toàn cầu.&lt;/p&gt;
&lt;h2 id="1-tầng-6-presentation-làm-nhiệm-vụ-gì"&gt;1. Tầng 6 (Presentation) làm nhiệm vụ gì?
&lt;/h2&gt;&lt;p&gt;Trong khi các tầng dưới chỉ lo việc &amp;ldquo;vận chuyển&amp;rdquo;, Tầng 6 đóng vai trò là một &amp;ldquo;người phiên dịch và đóng gói&amp;rdquo; dữ liệu chuẩn mực để đảm bảo hai thiết bị có hệ điều hành khác nhau vẫn có thể hiểu nhau. Ở tầng này, ranh giới giữa giao thức và định dạng tệp (như JPEG, MP4, JSON, XML) trở nên rất mong manh.&lt;/p&gt;
&lt;p&gt;Tầng 6 đảm nhiệm 3 trọng trách cốt lõi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Thông dịch (Translation):&lt;/strong&gt; Chuyển đổi giữa các bảng mã (như ASCII sang UTF-8). Điều này đảm bảo khi bạn gõ tiếng Việt trên ứng dụng, máy chủ ở Mỹ vẫn hiển thị đúng chữ &amp;ldquo;Học&amp;rdquo; chứ không bị lỗi font ô vuông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nén dữ liệu (Compression):&lt;/strong&gt; Giảm dung lượng dữ liệu (như luồng stream video MP4) trước khi truyền đi để tiết kiệm băng thông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa (Encryption):&lt;/strong&gt; Đây là phần quan trọng nhất đối với Blue Team. Toàn bộ quá trình mã hóa dữ liệu để biến văn bản thuần thành một chuỗi ký tự rác (Encrypted Application Data) được xử lý tại đây. Đại diện tiêu biểu nhất chính là giao thức &lt;strong&gt;SSL/TLS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-kỷ-nguyên-của-ssl-và-lỗ-hổng-chí-mạng-poodle"&gt;2. Kỷ nguyên của SSL và Lỗ hổng chí mạng POODLE
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Secure Sockets Layer (SSL)&lt;/strong&gt; là thế hệ giao thức mã hóa đầu tiên bảo vệ Internet. Nó hoạt động dựa trên cơ chế bắt tay bằng &lt;strong&gt;Khóa công khai&lt;/strong&gt; (Public Key) và &lt;strong&gt;Khóa bí mật&lt;/strong&gt; (Private Key). Máy khách sẽ kiểm tra &amp;ldquo;Chứng chỉ số&amp;rdquo; của Server, tự tạo ra một &lt;strong&gt;Khóa phiên&lt;/strong&gt; (Session Key) ngẫu nhiên, dùng Khóa công khai của Server bọc lại rồi gửi đi. Chỉ Server cầm Khóa bí mật mới mở được hộp để lấy Khóa phiên dùng cho việc liên lạc sau đó.&lt;/p&gt;
&lt;p&gt;Tuy nhiên, SSL 3.0 đã bị khai tử hoàn toàn bởi một lỗ hổng có tên gọi thú vị: &lt;strong&gt;POODLE&lt;/strong&gt; (Padding Oracle On Downgraded Legacy Encryption).&lt;/p&gt;
&lt;p&gt;Đòn tấn công này đánh trực diện vào cách SSL 3.0 xử lý các &amp;ldquo;dữ liệu đệm&amp;rdquo; (padding). Hacker đứng ở giữa mạng (MitM) sẽ chủ động can thiệp làm nhiễu kết nối để ép Server và Client phải &lt;strong&gt;hạ cấp&lt;/strong&gt; (Downgrade) bảo mật từ TLS xịn xuống dùng SSL 3.0 cũ. Sau đó, chúng liên tục gửi các gói tin chỉnh sửa nhẹ đến Server. Chỉ bằng việc quan sát Server trả lời là &amp;ldquo;Lỗi rồi&amp;rdquo; hay &amp;ldquo;OK&amp;rdquo;, hacker có thể đoán ngược lại từng byte dữ liệu. Sau vài trăm lần thử, chúng lấy được toàn bộ Cookie phiên đăng nhập của bạn mà không cần phải tốn công bẻ khóa.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; POODLE chứng minh rằng thuật toán mã hóa mạnh đến đâu cũng vô dụng nếu giao thức đàm phán bị lỗi. SOC Analyst cần cấu hình Firewall và Web Server (Nginx, HAProxy) tắt hoàn toàn việc hỗ trợ &lt;strong&gt;SSL v2/v3&lt;/strong&gt;, chỉ chấp nhận &lt;strong&gt;TLS 1.2 trở lên&lt;/strong&gt; để chống lại đòn Downgrade Attack.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-sự-tiến-hóa-lên-tls-transport-layer-security"&gt;3. Sự tiến hóa lên TLS (Transport Layer Security)
&lt;/h2&gt;&lt;p&gt;Để khắc phục yếu điểm của SSL, &lt;strong&gt;TLS&lt;/strong&gt; ra đời. Thay vì chỉ mã hóa thụ động, TLS đóng vai trò như một hệ thống an ninh chủ động với các nâng cấp vượt bậc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Xác thực mạnh mẽ:&lt;/strong&gt; Bỏ hẳn MD5 và SHA-1 để chuyển sang các hàm băm hiện đại như &lt;strong&gt;SHA-256&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chống sửa đổi (Integrity):&lt;/strong&gt; TLS sử dụng thuật toán &lt;strong&gt;HMAC&lt;/strong&gt; (Hash-based Message Authentication Code). Kẻ tấn công không thể thay đổi dù chỉ 1 bit dữ liệu trên đường đi mà không bị hệ thống phát hiện.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bảo mật chuyển tiếp (Perfect Forward Secrecy):&lt;/strong&gt; Nhờ thuật toán trao đổi khóa &lt;strong&gt;ECDHE&lt;/strong&gt;, mỗi phiên làm việc có một khóa riêng. Ngay cả khi hacker đánh cắp được Khóa bí mật tĩnh của máy chủ vào ngày mai, chúng cũng không thể dùng nó để giải mã các gói tin Wireshark mà chúng đã nghe lén từ hôm nay.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-phẫu-cipher-suite-trên-wireshark"&gt;4. Giải phẫu Cipher Suite trên Wireshark
&lt;/h2&gt;&lt;p&gt;Khi bạn truy cập một trang web HTTPS, trong gói tin &lt;code&gt;Server Hello&lt;/code&gt; trên Wireshark, máy chủ sẽ chốt lại một &amp;ldquo;Bộ công cụ mật mã&amp;rdquo; (&lt;strong&gt;Cipher Suite&lt;/strong&gt;) duy nhất để hai bên sử dụng. Dưới đây là cách SOC Analyst đọc hiểu bộ mã &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Log Wireshark soi gói tin Server Hello chốt thuật toán mã hóa
# Bộ lọc: tls.handshake.type == 2

Handshake Protocol: Server Hello
 Version: TLS 1.2 (0x0303)
 Session ID Length: 32
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Cipher-suite" class="gallery-image" data-flex-basis="455px" data-flex-grow="189" height="339" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/presentation-layer-tls/rsa.png" width="643"&gt;&lt;/p&gt;
&lt;p&gt;Cách đọc chuỗi Cipher Suite trên từ trái sang phải: ví dụ trong ảnh là TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt;:&lt;/strong&gt; Thuật toán trao đổi khóa (đảm bảo Perfect Forward Secrecy).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;RSA&lt;/code&gt;:&lt;/strong&gt; Thuật toán xác thực danh tính (chứng minh máy chủ qua Certificate).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CHACHA20_POLY1305&lt;/code&gt;:&lt;/strong&gt; Thuật toán mã hóa đối xứng thực hiện xáo trộn dữ liệu (tốc độ cực nhanh trên thiết bị hiện đại).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SHA256&lt;/code&gt;:&lt;/strong&gt; Thuật toán băm dùng cho HMAC để kiểm tra tính toàn vẹn của gói tin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dưới góc độ phân tích sự cố, nếu muốn &amp;ldquo;giải mã&amp;rdquo; các gói tin TLS để xem dữ liệu thô (HTTP) trên Wireshark, bạn có thể buộc trình duyệt xuất file lưu trữ Khóa phiên (Session Key) ra ổ cứng:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Thiết lập biến môi trường để Firefox/Chrome nhả Khóa phiên ra file log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ dùng trên máy Lab/máy phân tích, KHÔNG dùng trên máy người dùng thực tế&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export SSLKEYLOGFILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/tls_keys.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5-mã-hóa-tls-có-an-toàn-tuyệt-đối"&gt;5. Mã hóa TLS có an toàn tuyệt đối?
&lt;/h2&gt;&lt;p&gt;Dù TLS rất thông minh, nó vẫn có những &amp;ldquo;gót chân Achilles&amp;rdquo; mà Blue Team cần dè chừng:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tấn công vào Chứng chỉ (Certificate Attacks):&lt;/strong&gt; TLS dựa vào niềm tin của Certificate. Nếu hacker lừa người dùng cài một &amp;ldquo;Root Certificate&amp;rdquo; giả vào máy, chúng có thể thực hiện &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; để giải mã mọi thứ trơn tru.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lỗ hổng thực thi (Implementation Bugs):&lt;/strong&gt; Lỗi không nằm ở lý thuyết TLS mà nằm ở người code thư viện — điển hình là vụ &lt;strong&gt;Heartbleed&lt;/strong&gt; trên OpenSSL cho phép đọc trộm bộ nhớ RAM của máy chủ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tấn công kênh kề (Side-channel):&lt;/strong&gt; Hacker không thèm bẻ khóa, chúng chỉ ngồi đếm kích thước gói tin và thời gian phản hồi để đoán người dùng đang xem trang web gì.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, đi qua Tầng 6, dữ liệu của chúng ta đã được đóng gói định dạng và khoác lên mình lớp áo giáp mã hóa bất khả xâm phạm. Giờ đây, &amp;ldquo;thùng hàng&amp;rdquo; này đã sẵn sàng để được giao cho Tầng cuối cùng: Tầng 7 (Application). Ở bài viết tiếp theo — Bài 7, chúng ta sẽ khám phá thế giới của Tầng Ứng dụng, nơi diễn ra các cuộc tấn công dữ dội nhất nhắm vào các giao thức DNS ngây thơ, quá trình xin cấp IP của DHCP và sự nguy hiểm của FTP truyền thống. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Bắt bệnh Mạng bằng Wireshark &amp; Tấn công DDoS</title><link>/post/wireshark-ddos/</link><pubDate>Thu, 21 May 2026 22:00:00 +0700</pubDate><guid>/post/wireshark-ddos/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã hiểu được &amp;ldquo;trái tim&amp;rdquo; TCP và nghệ thuật bắt tay 3 bước ở Tầng 4. Hôm nay, chúng ta sẽ thực sự ứng dụng Wireshark để &amp;ldquo;bắt bệnh&amp;rdquo; các lỗi đường truyền kinh điển, đồng thời phân tích cách hacker lợi dụng chính cơ chế của TCP/UDP để phát động các đòn tấn công từ chối dịch vụ (DDoS) tàn khốc.&lt;/p&gt;
&lt;h2 id="1-bắt-bệnh-mạng-chậm-và-rớt-gói-tin-bằng-wireshark"&gt;1. &amp;ldquo;Bắt bệnh&amp;rdquo; Mạng chậm và Rớt gói tin bằng Wireshark
&lt;/h2&gt;&lt;p&gt;Giao thức TCP được thiết kế để đảm bảo không một byte dữ liệu nào bị mất trên đường truyền. Do đó, khi mạng gặp sự cố (như đứt cáp, quá tải, nhiễu sóng), TCP sẽ &amp;ldquo;la hét&amp;rdquo; và để lại những dấu vết cực kỳ rõ ràng. Dưới góc độ SOC Analyst, bạn có thể dùng các bộ lọc sau đây trên Wireshark để chẩn đoán nguyên nhân.&lt;/p&gt;
&lt;h3 id="11-mất-gói-và-gửi-lại-retransmission"&gt;1.1 Mất gói và Gửi lại (Retransmission)
&lt;/h3&gt;&lt;p&gt;Khi máy gửi đã đẩy gói tin đi nhưng đợi mãi (hết thời gian &lt;strong&gt;RTO&lt;/strong&gt; - Retransmission Timeout) mà không nhận được gói &lt;code&gt;ACK&lt;/code&gt; xác nhận từ máy nhận, nó bắt buộc phải gửi lại gói tin đó.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.retransmission&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Wireshark sẽ tô màu đen chữ đỏ rực rỡ cho các dòng này. Nếu bộ lọc này trả về hàng ngàn kết quả, đường truyền vật lý đang cực kỳ bất ổn và hệ thống đang lãng phí băng thông để gửi lại dữ liệu cũ, làm tốc độ mạng chậm đi rõ rệt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Gói tin mà máy tính gửi đi để yêu cầu kết nối tcp" class="gallery-image" data-flex-basis="440px" data-flex-grow="183" height="523" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/wireshark-ddos/guilai.png" srcset="/post/wireshark-ddos/guilai_hu_7d35ece5750a65db.png 800w, /post/wireshark-ddos/guilai.png 960w" width="960"&gt;&lt;/p&gt;
&lt;h3 id="12-thiếu-mảnh-dữ-liệu-duplicate-ack"&gt;1.2 Thiếu mảnh dữ liệu (Duplicate ACK)
&lt;/h3&gt;&lt;p&gt;Đây là cảnh tượng máy nhận đang &amp;ldquo;gào thét&amp;rdquo; đòi một mảnh dữ liệu bị mất ở giữa luồng truyền.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.duplicate_ack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Bạn sẽ thấy máy nhận gửi liên tiếp các gói &lt;code&gt;ACK&lt;/code&gt; có cùng một số hiệu xác nhận (ví dụ: 3-4 gói đều mang &lt;code&gt;Ack=4680&lt;/code&gt;). Điều này có nghĩa là: &amp;ldquo;Tôi đã nhận được các gói 4681, 4682 rồi, nhưng cái gói 4680 vẫn chưa tới, hãy gửi lại ngay!&amp;rdquo;. Khi nhận được 3 gói Dup ACK liên tiếp, máy gửi sẽ kích hoạt cơ chế &lt;strong&gt;Fast Retransmit&lt;/strong&gt; để gửi bù ngay lập tức.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Gói tin mà máy tính gửi đi để yêu cầu gói tin bị mất" class="gallery-image" data-flex-basis="472px" data-flex-grow="196" height="530" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/wireshark-ddos/dump.png" srcset="/post/wireshark-ddos/dump_hu_720e120416c0c0fb.png 800w, /post/wireshark-ddos/dump.png 1043w" width="1043"&gt;&lt;/p&gt;
&lt;h3 id="13-hệ-thống-bị-ngộp-zero-window"&gt;1.3 Hệ thống bị ngộp (Zero Window)
&lt;/h3&gt;&lt;p&gt;Sự cố này không do đường truyền, mà do năng lực xử lý của máy tính (hoặc Server) đã chạm đáy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.zero_window&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Máy nhận sẽ ném ra một gói tin với tham số &lt;code&gt;Win=0&lt;/code&gt;. Đây là cơ chế &lt;strong&gt;Kiểm soát luồng&lt;/strong&gt; (Flow Control) của TCP, mang thông điệp: &amp;ldquo;Dừng lại ngay! Bộ nhớ đệm (Buffer) của tôi đã đầy cứng rồi, không còn chỗ chứa thêm dữ liệu nào nữa đâu!&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-syn-flood-đòn-đánh-vào-sự-kỹ-tính-của-tcp"&gt;2. SYN Flood: Đòn đánh vào sự &amp;ldquo;Kỹ tính&amp;rdquo; của TCP
&lt;/h2&gt;&lt;p&gt;Hacker luôn biết cách biến &amp;ldquo;tính năng&amp;rdquo; thành &amp;ldquo;vũ khí&amp;rdquo;. Việc TCP yêu cầu phải Bắt tay 3 bước khắt khe vô tình tạo ra một lỗ hổng chí mạng cho các cuộc tấn công DDoS dạng &lt;strong&gt;SYN Flood&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Kịch bản tấn công diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Kẻ tấn công gửi hàng vạn gói ngỏ lời &lt;code&gt;SYN&lt;/code&gt; đến máy chủ đích.&lt;/li&gt;
&lt;li&gt;Máy chủ ngây thơ phân bổ tài nguyên bộ nhớ, tạo một &amp;ldquo;nửa kết nối&amp;rdquo; (Half-open connection) và gửi lại gói &lt;code&gt;SYN-ACK&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Máy chủ chờ đợi gói &lt;code&gt;ACK&lt;/code&gt; cuối cùng để hoàn tất — nhưng kẻ tấn công tuyệt đối không bao giờ trả lời. Máy chủ cứ thế chờ đợi cho đến khi cạn kiệt tài nguyên (CPU, RAM) và bị treo cứng, từ chối phục vụ người dùng hợp lệ.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Đây là output Wireshark ghi lại khi kẻ tấn công &lt;code&gt;10.10.53.248&lt;/code&gt; liên tục bắn gói &lt;code&gt;SYN&lt;/code&gt; vào Server &lt;code&gt;192.168.1.10&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc để phát hiện SYN Flood: tcp.flags.syn == 1 &amp;amp;&amp;amp; tcp.flags.ack == 0
# Dấu hiệu: hàng ngàn gói SYN từ cùng một IP, không có gói ACK phản hồi

No. Time Source Destination Protocol Info
1 0.0000 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45892 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
2 0.0001 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45893 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
3 0.0002 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45894 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
4 0.0003 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45895 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
[...]
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Kẻ tấn công thường sử dụng địa chỉ IP nguồn giả mạo (&lt;strong&gt;Spoofed IP&lt;/strong&gt;) trong các cuộc tấn công SYN Flood. Do đó, việc dùng Firewall để chặn IP nguồn đơn lẻ là &lt;strong&gt;không hiệu quả&lt;/strong&gt;. SOC cần cấu hình các cơ chế phòng thủ chuyên sâu như &lt;strong&gt;SYN Cookies&lt;/strong&gt; trên Tường lửa/Load Balancer.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-udp-flood-đòn-đánh-lấy-thịt-đè-người"&gt;3. UDP Flood: Đòn đánh &amp;ldquo;Lấy thịt đè người&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Trái ngược với sự kỹ tính của TCP, giao thức UDP lại đại diện cho sự &amp;ldquo;tự do&amp;rdquo;: Không bắt tay, không cần số thứ tự, cứ có dữ liệu là ném đi. Giao thức này thường dùng cho Game hoặc Livestream, nhưng cũng là công cụ tàn phá ưa thích của Hacker.&lt;/p&gt;
&lt;p&gt;Trong tấn công &lt;strong&gt;UDP Flood&lt;/strong&gt;, hacker không cần lừa máy chủ bắt tay. Chúng chỉ đơn giản là huy động một mạng lưới máy tính ma (Botnet) để bắn hàng triệu gói tin UDP rác vào các cổng ngẫu nhiên trên Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hậu quả:&lt;/strong&gt; Khi Server nhận được gói tin UDP ở một cổng, nó bắt buộc phải dùng CPU để kiểm tra xem có ứng dụng nào đang chờ ở cổng đó không. Khi phát hiện không có, nó phải tốn thêm công sức để tạo và gửi lại một gói lỗi &lt;code&gt;ICMP Destination Unreachable (Port Unreachable)&lt;/code&gt;. Khi phải xử lý hàng triệu thao tác vô bổ này trong một giây, máy chủ sẽ sụp đổ hoàn toàn vì quá tải.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Lệnh minh họa tấn công UDP Flood bằng hping3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# CHỈ thực hiện trong môi trường Lab, tuyệt đối KHÔNG dùng trên hệ thống thật&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# -2: chế độ UDP | --flood: xả gói liên tục | --rand-source: IP nguồn ngẫu nhiên&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo hping3 -2 --flood --rand-source 192.168.1.10
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo:&lt;/strong&gt; Lệnh trên có thể gây tê liệt hệ thống mục tiêu. Chỉ sử dụng trong môi trường thực hành (Lab) hoàn toàn cô lập, không kết nối Internet.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Qua bài viết này, chúng ta đã biết cách dùng Wireshark để đọc các tín hiệu &amp;ldquo;kêu cứu&amp;rdquo; của hệ thống (Retransmission, Zero Window) và hiểu rõ bản chất tàn khốc của các đòn tấn công DDoS ở Tầng 4. Sau khi đã nắm vững quá trình vận chuyển gói tin, ở Bài 5 tiếp theo, chúng ta sẽ bước lên Lớp 5 (Session Layer) để khám phá ranh giới của các phiên làm việc và kỹ thuật Cướp phiên (Session Hijacking) tinh vi của Hacker. Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giao thức Lớp 2 &amp; 3 - Truy vết MAC, IP và MAC Spoofing</title><link>/post/giao-thuc-arp-va-mac-spoo/</link><pubDate>Wed, 20 May 2026 08:30:00 +0700</pubDate><guid>/post/giao-thuc-arp-va-mac-spoo/</guid><description>&lt;p&gt;Chào mừng các bạn quay trở lại với Series Giải phẫu Mạng (Network Anatomy) &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã ngắm nhìn toàn cảnh &amp;ldquo;bản đồ kho báu&amp;rdquo; OSI và biết cách đặt một gói tin lên bàn mổ Wireshark. Hôm nay, chúng ta sẽ bắt đầu chuyến thám hiểm thực sự vào thế giới của Tầng 2 (Data Link) và Tầng 3 (Network). Đây là nơi giải quyết câu hỏi cốt lõi nhất của Internet: &amp;ldquo;Làm sao thiết bị A có thể tìm và gửi dữ liệu chính xác cho thiết bị B giữa hàng tỷ thiết bị trên toàn cầu?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="1-tầng-3-network-bản-đồ-thế-giới-và-địa-chỉ-ip"&gt;1. Tầng 3 (Network): Bản đồ Thế giới và Địa chỉ IP
&lt;/h2&gt;&lt;p&gt;Nếu muốn gửi một bức thư xuyên quốc gia, bạn cần một địa chỉ nhà chính xác. Trong thế giới mạng, Tầng 3 (Network Layer) chịu trách nhiệm định tuyến đường đi tốt nhất trên môi trường Internet bằng cách sử dụng Địa chỉ IP (Internet Protocol).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tính chất:&lt;/strong&gt; Địa chỉ IP là địa chỉ logic, được điều khiển bởi phần mềm và có thể thay đổi tùy thuộc vào mạng bạn đang kết nối.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Đóng gói:&lt;/strong&gt; Dữ liệu khi đi qua Tầng 3 sẽ được dán thêm một lớp IP Header để tạo thành một Packet (Gói tin). Lớp vỏ này chứa IP Nguồn (Source IP) và IP Đích (Destination IP).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chẩn đoán lỗi:&lt;/strong&gt; Tầng 3 còn quản lý ICMP (Internet Control Message Protocol), giao thức đứng đằng sau lệnh &lt;code&gt;ping&lt;/code&gt; quen thuộc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đứng ở góc nhìn bảo mật, ICMP không chỉ dùng để ping mạng, mà còn là cách Tường lửa (Firewall) giao tiếp trả về thông báo. Khi Firewall chặn một kết nối bằng lệnh &lt;code&gt;REJECT&lt;/code&gt;, hệ thống sẽ trả về một gói tin ICMP với thông điệp &lt;code&gt;Destination unreachable (Host unreachable)&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="2-tầng-2-data-link-căn-cước-công-dân-và-địa-chỉ-mac"&gt;2. Tầng 2 (Data Link): Căn cước công dân và Địa chỉ MAC
&lt;/h2&gt;&lt;p&gt;Nếu Tầng 3 (IP) là địa chỉ nhà giúp gói tin bay xuyên lục địa, thì Tầng 2 (Data Link Layer) chịu trách nhiệm tìm đúng cánh cửa để gõ khi gói tin đã về đến mạng nội bộ (mạng LAN).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Đơn vị dữ liệu:&lt;/strong&gt; Tầng 2 sẽ bọc Packet của Tầng 3 lại thành một Frame (Khung).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Địa chỉ MAC:&lt;/strong&gt; Giao thức chính ở đây là Ethernet II, sử dụng Địa chỉ MAC (Media Access Control).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MAC giống như cái &amp;ldquo;Căn cước công dân&amp;rdquo; vật lý, một mã số duy nhất gồm 48-bit, ví dụ &lt;code&gt;40:8D:5C:9B:A6:67&lt;/code&gt;, được nhà sản xuất nạp cứng vào card mạng (NIC) của bạn.&lt;/p&gt;
&lt;p&gt;Tại sao đã có IP mà vẫn cần MAC? Trong một mạng LAN, các thiết bị trung tâm như Switch không hề nhìn vào địa chỉ IP. Chúng chỉ đọc địa chỉ MAC trên Frame để biết chính xác phải đẩy xung điện dữ liệu vào cổng (Port) vật lý nào để tới đúng máy tính của bạn chứ không phải máy của anh hàng xóm.&lt;/p&gt;
&lt;h2 id="3-cầu-nối-sinh-tử-giao-thức-phân-giải-địa-chỉ-arp"&gt;3. Cầu nối sinh tử: Giao thức phân giải địa chỉ (ARP)
&lt;/h2&gt;&lt;p&gt;Đây là lúc rắc rối xảy ra: máy tính của bạn biết IP của máy đích (Tầng 3), nhưng card mạng lại bắt buộc phải có địa chỉ MAC (Tầng 2) để truyền Frame đi. Làm sao để biết được MAC của một IP lạ? Giải pháp chính là ARP (Address Resolution Protocol).&lt;/p&gt;
&lt;p&gt;Quá trình &amp;ldquo;hỏi đường&amp;rdquo; ARP diễn ra như sau, hãy tưởng tượng mạng LAN là một căn phòng đông người:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARP Request (Hỏi):&lt;/strong&gt; Máy của bạn &amp;ldquo;hét&amp;rdquo; lên toàn mạng (Broadcast) một thông điệp: &amp;ldquo;Ai là chủ nhân của địa chỉ IP &lt;code&gt;192.168.1.1&lt;/code&gt;? Hãy cho tôi biết địa chỉ MAC của bạn!&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ARP Reply (Trả lời):&lt;/strong&gt; Chỉ duy nhất thiết bị đang giữ IP đó mới lên tiếng đáp lại (Unicast): &amp;ldquo;Là tôi đây! Địa chỉ MAC của tôi là &lt;code&gt;AA:BB:CC:DD:EE:FF&lt;/code&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ARP Cache (Ghi nhớ):&lt;/strong&gt; Sau khi nhận câu trả lời, máy của bạn sẽ lưu cặp IP - MAC này vào Bảng ARP (ARP Table) để lần sau không phải hét lên hỏi nữa.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Ghi chú:&lt;/strong&gt; Chèn ảnh chụp màn hình Wireshark bắt gói tin ARP Request (&lt;code&gt;Who has...&lt;/code&gt;) và ARP Reply (&lt;code&gt;is at...&lt;/code&gt;) tại đây.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="4-góc-nhìn-kẻ-tấn-công-thực-chiến-mac-spoofing"&gt;4. Góc nhìn Kẻ tấn công: Thực chiến MAC Spoofing
&lt;/h2&gt;&lt;p&gt;Địa chỉ MAC được nạp cứng vào phần cứng, nghe có vẻ rất an toàn đúng không? Sai lầm! Địa chỉ MAC hoàn toàn có thể bị giả mạo bằng phần mềm ở cấp độ hệ điều hành. Kỹ thuật này gọi là MAC Spoofing (Giả mạo MAC).&lt;/p&gt;
&lt;p&gt;Tại sao hacker lại làm vậy? Nhiều hệ thống an ninh mạng, như hệ thống Wi-Fi ở khách sạn, công ty hay luật Firewall tĩnh, sử dụng tính năng lọc địa chỉ MAC (MAC Filtering) để quyết định ai được phép vào mạng. Bằng cách giả mạo MAC của một thiết bị hợp lệ như máy của sếp hoặc máy in, hacker có thể đàng hoàng vượt rào.&lt;/p&gt;
&lt;p&gt;Dưới đây là cách thay đổi địa chỉ MAC trên máy Linux trong môi trường lab:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Kiểm tra danh sách card mạng hiện tại&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip link show
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Tắt card mạng muốn thay đổi, ví dụ wlp8s0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 down
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Đổi địa chỉ MAC sang một MAC giả&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 address 00:ad:be:ef:13:40
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Bật lại card mạng&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 up
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Kiểm tra lại xem MAC đã được đổi thành công chưa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip link show wlp8s0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo:&lt;/strong&gt; Kỹ thuật MAC Spoofing cũng là tiền đề cho một đòn đánh nghiêm trọng hơn gọi là ARP Spoofing / ARP Poisoning (đầu độc bộ nhớ cache ARP). Kẻ tấn công sẽ liên tục gửi các gói tin ARP Reply giả mạo để lừa toàn bộ máy tính trong mạng rằng: &amp;ldquo;MAC của tôi chính là Router đây&amp;rdquo;. Từ đó, luồng truy cập Internet của nạn nhân có thể bị điều hướng qua máy của kẻ tấn công trong mô hình Man-in-the-Middle.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Kết thúc Bài 2, chúng ta đã hiểu được &amp;ldquo;sợi dây liên kết&amp;rdquo; giữa địa chỉ logic (IP) và địa chỉ vật lý (MAC), cùng cách thức hoạt động của ARP và ICMP. Tầng 2 và 3 chỉ có nhiệm vụ tìm đường và ném gói tin đi, chúng không hề quan tâm gói tin có đến nơi an toàn hay không. Trách nhiệm nặng nề đó sẽ được giao cho Tầng 4. Ở Bài 3, chúng ta sẽ bước vào &amp;ldquo;trái tim&amp;rdquo; của sự ổn định: giải phẫu giao thức TCP, thuật toán bắt tay 3 bước và đi tìm nguyên nhân gây ra các lỗi rớt mạng kinh điển. Các bạn đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>