
Chào mừng các bạn đã đến với bài viết này của mình.
Nhằm mục đích giúp cho các bạn nhập môn Cybersecurity (cả blue team lẫn red team) có cái nhìn toàn diện về quy trình tấn công mạng nhắm đến một đối tượng xác định, mình xin giới thiệu đến các bạn khái niệm Cyber Kill Chain, một quy trình gồm 7 bước miêu tả gần như toàn diện từ khi bắt đầu đến khi kết thúc của một cuộc tấn công mạng ngoài thực tế.
Trước khi đọc bài mình cũng xin có vài lưu ý nhỏ sau:
- Bài viết nhắm đến đối tượng các bạn mới bước đầu học và làm quen với Cybersecurity chứ không dành cho các bạn đã ở mức chuyên gia. Do đó trong bài mình sẽ cố gắng diễn giải mọi thứ ở mức độ đơn giản và dễ hiểu nhất
- Các gợi ý của mình ở từng phase của Cyber Kill Chain chỉ nhằm giúp cho người đọc hình dung được những gì nên làm để đạt được mục đích của từng phase chứ không nhằm mục đích đóng khung và bắt buộc người đọc phải dùng các kỹ thuật này trong tất cả trường hợp. Chính người làm Cybersecurity sẽ phải phân tích và quyết định phương hướng tấn công ở từng phase. Hãy là kỹ sư Cybersecurity, đừng là thợ Cybersecurity.
- Để việc học mang lại hiệu quả tối đa, các bạn nên ghi chú và ngay lập tức tìm hiểu thêm các khái niệm mà bạn không biết, như vậy kiến thức của bạn sẽ ngày càng phong phú hơn
Tổng quát
“Kill chain” là một khái niệm được phát triển bởi quân đội nhằm ám chỉ cấu trúc của một nhiệm vụ tấn công bao gồm các bước như:
- Xác định mục tiêu
- Tìm hiểu mục tiêu
- Ra quyết định và tiến hành tấn công mục tiêu
- Xác nhận mục tiêu đã hoàn toàn bị tiêu diệt
Lockheed Martin, một nhà thầu quân sự Mỹ, đã dựa vào khái niệm này để phát triển nên mô hình Cyber Kill Chain vào năm 2011 nhằm mô tả khái quát các bước mà một hacker sẽ thực hiện khi tấn công một mục tiêu xác định nào đó.
Một vụ tấn công mạng được xem là thành công khi tất cả mục tiêu của mỗi bước (phase) trong Cyber Kill Chain đều đã hoàn thành.
Cyber Kill Chain quan trọng đến như thế nào?
Cyber Kill Chain rất hữu ích với các bạn làm red team khi nó gợi ý cho bạn một quy trình chuẩn và thực tế khi bạn pentest. Đồng thời, với các bạn blue team làm nhiệm vụ bảo vệ hệ thống, Cyber Kill Chain cung cấp cho các bạn một quy trình thực tế mà những hackers sẽ sử dụng khi tấn công để từ đó các bạn có thể rà soát lại hệ thống của mình để khắc phục những điểm còn thiếu sót.
Với các bạn làm nhiệm vụ điều tra sau khi sự cố an ninh mạng xảy ra, các bạn có thể dùng Cyber Kill Chain để định hình quy trình điều tra của mình.
Cụ thể như thế nào thì chúng ta hãy đi xem các bước của Cyber Kill Chain sẽ như thế nào nhé.
1 – Reconnaissance (do thám và thu thập thông tin)

Mục tiêu:
Thu thập càng nhiều thông tin về mục tiêu càng tốt và cố gắng để lại ít dấu vết nhất có thể khi do thám hệ thống nạn nhân.
Giải thích:
Reconnaissance (do thám và thu thập thông tin) bao gồm các kỹ thuật được dùng nhằm mục đích tìm hiểu mục tiêu trước tấn công.
Đây là bước rất quan trọng không chỉ trong thực tế mà còn cả khi chơi CTF, vì thật sự nếu bạn không hiểu gì về hệ thống mục tiêu, chắc chắn bạn sẽ không thể tấn công được nó. Tương tự với blue team, nếu bạn không hiểu gì về hệ thống bạn đang bảo vệ, hackers sẽ làm điều đó thay cho bạn.
Reconnaissance thường được chia làm 2 bước nhỏ:
1a – Passive reconnaissance:
Ở bước này, mục tiêu là tìm hiểu về đối tượng sẽ tấn công nhưng không tương tác trực tiếp với đối tượng đó nhằm tránh để lại dấu vết trên log hệ thống của đối tượng.
Các kỹ thuật mà chúng ta sẽ làm đó là:
- Dùng Google để tìm hiểu thông tin về công ty sẽ tấn công, bao gồm quy mô, số lượng nhân sự, v.v.
- Dùng Google để tìm các thông tin liên quan đến tuyển dụng của công ty. Đặc biệt chú ý tới phần mô tả công việc cũng như yêu cầu đối với ứng viên, đặc biệt là với IT. Những thông tin này cho phép hacker phần nào hình dung được cách vận hành của công ty đặc biệt là các phần mềm và công nghệ mà công ty mục tiêu đang sử dụng cũng như thông tin các hệ thống quan trọng như webserver, mail server, OS, v.v
- Tìm kiếm tài khoản mạng xã hội của các nhân viên trong công ty thông qua các mạng xã hội như Zalo và Facebook. Chú ý xem họ có chia sẻ email hay số điện thoại một cách công khai không. Cũng như chú ý đến các bài post mà họ đăng vì nó sẽ phần nào khái quát tính cách và con người của nhân viên đó. Các thông tin này có thể được dùng để lên kế hoạch tấn công phishing hay social engineering nếu cần thiết.
Với emails thu thập được, bạn có thể:
- Dùng trang haveibeenpawned.com để kiểm tra xem liệu email này có nằm trong các email người dùng đã từng bị lộ thông qua các cuộc tấn công vào các công ty lớn hay không. Nếu có, trang web này sẽ trả lại kết quả như hình bên dưới, cho biết email này nằm trong bao nhiêu vụ rò rĩ dữ liệu

- Dựa vào việc người dùng không có thói quen thay đổi mật khẩu thường xuyên và thường dùng 1 mật khẩu cho nhiều tài khoản khác nhau cũng như ít quan tâm đến việc bảo vệ tài khoản thông qua các thiết lập xác thực đa lớp (Multi-factor authentication), hackers có thể tìm mua các thông tin bị rò rĩ này ở darkweb nhằm phục vụ cho các bước tấn công tiếp theo
Với website của mục tiêu, bạn có thể:
- Dùng website builtwith.com , để tìm hiểu xem những công nghệ nào đang được dùng để vận hành website.
1b – Active reconnaissance
Đến bước này, các bạn sẽ tiến hành thu thập thông tin thông qua tương tác với hệ thống của nạn nhân. Nên nhớ, tương tác càng nhiều, lượng tương tác càng lớn, càng nhanh sẽ càng để lại nhiều dấu vết trên log của hệ thống và làm bạn bị lộ. Thế nên hãy cố gắng tương tác ít nhất có thể.
Mục tiêu của bước này đó là thu thập nhiều nhất có thể thông tin về hệ thống nạn nhân nhưng vẫn đảm bảo không bị phát hiện.
Các kỹ thuật sẽ dùng ở bước này:
- Scan TCP và UDP ports với Nmap
- Tải các trang của website mục tiêu ví dụ index.html và nghiên cứu các đường dẫn (URL) chứa trong các trang này. Cách này tuy có mất thời gian, nhưng sẽ giúp các bạn hạn chế rất nhiều trafic không thật sự cần thiết lưu lại trên log của nạn nhân
- Truy xuất thông tin DNS server
- Truy xuất thông tin SSL certification
- Thử đăng nhập vào các dịch vụ như SMB, FTP, etc.
Lưu ý: Đừng bruteforce username và password hay sử dụng các tools tìm các trang ẩn như Dirb, Gobuster, v.v nếu không thật sự cần thiết. Đó chỉ nên là giải pháp cuối cùng bạn có thể dùng. Vì khi dùng, nó sẽ để lại rất nhiều traffic báo lỗi trong log của hệ thống và dễ làm system admin chú ý.
2. Weaponization (Xây dựng công cụ tấn công)

Mục tiêu:
Phân tích dữ liệu thu được ở phase 1 và tìm ra được hướng tấn công hiệu quả nhất, tránh bị để ý nhất và sau đó chuẩn bị các công cụ cần thiết để tiến hành tấn công.
Giải thích:
Ở bước này, tất cả thông tin đã thu thập được từ passive và active reconnaissance sẽ được thổng hợp và phân tích nhằm tìm ra giải pháp tấn công hiệu quả nhất.
Sau khi đã tìm ra cách xâm nhập hệ thống, bạn có thể tự tạo một malware để phục vụ cho việc xâm nhập hệ thống với Metasploit hoặc bạn có thể đặt mua một malware thỏa mãn các yêu cầu của bạn ở darkweb.
Với các bạn đã học khóa Legal Hacking Via Network Penetration Testing for beginner đây là bước các bạn sẽ chọn module tấn công trên Metasploit hoặc tạo một malware với msfvenom sau khi các bạn đã phân tích và tìm ra được hướng tấn công.
Lưu ý: Malware không phải lúc nào cũng bắt buộc phải có. Nếu như bạn tìm và khai thác được một lỗ hổng Remote Code Execution (RCE) cho phép bạn thực thi các câu lệnh kiểm soát hệ thống từ xa thì bạn không cần phải có malware làm gì.
3 – Delivery (Chuyển malware đến nạn nhân)

Mục tiêu:
Tìm cách gửi malware đã chuẩn bị ở phase 2 đến máy mục tiêu.
Giải thích:
Sau khi đã có được malware, bạn sẽ lên tiếp kế hoạch để chuyển payload này đến mục tiêu. Có 2 cách phổ biến để làm việc này:
- 1 – Lợi dụng lỗi bảo mật tìm được servers: Bạn có thể lợi dụng các lỗ hổng trên server nạn nhân ví dụ lỗi RCE để chuyển malware đến và lưu lại trên hệ thống của máy nạn nhân
- 2 – Phishing: Sử dụng email phishing, web giả mạo tự động tải phần mềm, USB có kèm mã độc, file dữ liệu như PDF, Word, Excel có kèm mã độc, v.v
4 – Exploitation (Xâm nhập)

Mục tiêu:
Tìm cách chạy malware đã gửi đến máy nạn nhân ở phase 3.
Giải thích:
Sau khi chuyển malware đến hệ thống nạn nhân, bạn cần tìm cách chạy malware để xâm nhập hệ thống và lấy được shell điều khiển hệ thống từ xa.
2 cách phổ biến thường được dùng đó là:
- Chạy malware thông qua lỗ hổng RCE trên server
- Chờ ai đó chạy file malware đính kèm theo email, file dữ liệu v.v
Đồng thời sau khi đã có được shell, tiếp theo, bạn cần do thám bên trong hệ thống của nạn nhân để tìm cách leo thang và có được quyền quản trị hệ thống cao nhất.
5 – Installation (hay privilege escalation phase)

Mục tiêu:
- Do thám mạng nội bộ
- Tìm cách leo thang đặc quyền
- Tiến hành tấn công leo thang đặc quyền
- Cài đặt các công cụ cần thiết cho các bước tấn công tiếp theo
- Duy trì kết nối kiểm soát hệ thống vĩnh viễn
Giải thích:
Installation phase của Cyber Kill Chain còn hay được gọi là privilege escalation phase. Mục tiêu của bước này đó là tiến hành leo thang đặc quyền và sau đó là duy trì kết nối kiểm soát toàn hệ thống vĩnh viễn.
Sở dĩ nó có cái tên là Installation đó vì ở bước này, sau khi thành công có được quyền kiểm soát hệ thống cao nhất, bạn sẽ tiến hành cài đặt các công cụ phục vụ cho mục đích chính của kế hoạch tấn công. Đó có thể là công cụ cho phép bạn truy xuất thông tin nhạy cảm được chứa bên trong cơ sở dữ liệu (ví dụ password hash, thông tin hợp đồng, v.v), key blogger để theo dõi người dùng hoặc thậm chí là ransomware để mã hóa toàn bộ thông tin trên hệ thống để đòi tiền chuộc.
Các bạn nào đã học khóa học khóa học Legal Hacking Via Network Penetration Testing for beginner của anh Khoa thì đã biết cách khiến backdoor/trojan tự chạy sau khi khởi động lại máy tính rồi. Bạn nào quên thì xem lại LAB PE9 nhé.
6 – Command and Control (C2)

Mục tiêu:
Duy trì và giấu beacon.
Giải thích:
Khi làm lab, sau khi lấy được shell, các bạn sẽ kiểm soát máy nạn nhân trực tiếp từ máy Kali của mình. Tuy nhiên, trong thực tế, đây chẳng khác nào là hành động “lạy ông tôi ở bụi này” của hacker. Vì vậy để che giấu vị trí của mình, hacker sử dụng một server gọi là C2, viết tắt của command and control server để gián tiếp điều khiển máy nạn nhân thông qua server này.
Cụ thể như sau, để ra lệnh cho máy nạn nhân chạy keyblogger chẳng hạn, thay vì gửi lệnh trực tiếp từ máy mình đến máy nạn nhân, hacker sẽ gửi lệnh từ máy mình đến C2, sau đó C2 sẽ gửi lệnh đến máy nạn nhân sau khi đã thay IP của máy hacker thành IP của mình nhằm mục đích che giấu IP của hacker.

Kết nối truyền dữ liệu giữa máy nạn nhân và C2 server được gọi là beacon.
Do số lượng dữ liệu được truyền giữa máy nạn nhân và C2 thường rất lớn và kết nối được thiết lập rất thường xuyên nên rất dễ bị system admin chú ý và chặn, vì thế, để che giấu beacon, bạn có thể thiết lập beacon được gửi qua port 80 HTTP hoặc 443 HTTPS, vốn là 2 ports được dùng cho giao tiếp web. Vì số lượng dữ liệu đi qua 2 ports này mỗi ngày rất lớn, chúng ta có thể ngụy trang beacon thành các gói tin web thông thường và tránh được sự chú ý của system admin.
Một cách ngụy trang khác đó là sử dụng DNS Tunneling. Đây là cách mà bạn sẽ thiết lập để máy nạn nhân gửi dữ liệu được ngụy trang thành các truy vấn DNS (DNS query) từ máy nạn nhân đến DNS server trên C2 server. Nói cách khác, bạn sẽ ngụy trang các beacon thành dữ liệu DNS.
Do số lượng dữ liệu DNS mỗi ngày rất lớn, nên cũng sẽ tránh bị nghi ngờ.
Bạn nào quên các chức năng của các giao thức HTTP, HTTPS và DNS thì xem lại bài viết này nhé.
7 – Actions on objectives

Mục tiêu:
- Thực hiện mục đích chính của cuộc tấn công (mã hóa đòi tiền chuộc, lấy cắp dữ liệu, v.v.)
- Xóa dấu vết để lại trên hệ thống
Giải thích:
Đây là bước mà các bạn sẽ thực hiện mục đích chính của cuộc tấn công sau khi đã kiểm soát hoàn toàn hệ thống. Các bạn có thể:
- Thực hiện tấn công công ransomware
- Lấy cắp dữ liệu
- Xóa sạch dữ liệu trong database
- v.v
Đừng quên xóa dấu vết sau khi bạn đã hoàn thành cuộc tấn công và đạt được các mục đích đề ra.
8 – Ứng dụng Cyber Kill Chain vào một lab CTF
Đây là phần dành cho các bạn chưa tham gia khóa học Legal Hacking Via Network Penetration Testing for beginner. Trong phần này, chúng ta sẽ thử áp dụng Cyber Kill Chain vào một lab penetration testing trên TryHackMe nhé.
Mình sẽ chọn bài lab tấn công Windows Server bằng lỗ hổng Eternal Blue (Ms17-010) bằng Metasploit. Nội dung bài viết tại đây.
Các bạn chịu khó mở 2 bài viết đễ dễ so sánh qua lại nhé.
1 – Reconnaissance in Cyber Kill Chain
Đây chính là phần 1 – performing reconnaissance trong bài viết tấn công bằng lỗ hổng Eternal Blue của mình.
Lưu ý:
- Do đối tượng trong các bài lab CTF thường là đối tượng không có thật, nên chúng ta có thể tạm bỏ qua passive reconnaissance và đi thẳng đến phần active reconnaissance luôn nhé
- Trong các bài lab của mình trên trang này, mình thường chạy scan với tốc đô gần nhanh nhất để tiết kiệm thời gian, tuy nhiên đây là điều nên tránh khi pentest thật vì rất dễ làm cho system admin chú ý
2 – Weaponization in Cyber Kill Chain
Đây chính là phần từ hình H2B.1 đến H2B.4 trong bài viết tấn công bằng lỗ hổng Eternal Blue của mình.
3 – Delivery and Exploitation in Cyber Kill Chain
Đây chính là phần từ hình H2B.5 đến H2B.6 trong bài viết tấn công bằng lỗ hổng Eternal Blue của mình.
Cụ thể, thay vì phải gửi file malware đến hệ thống nạn nhân rồi chạy nó, mình chạy module tấn công ngay trên máy của mình và khai thác lỗ hổng Eternal Blue từ xa. Điều này khá dễ để thực hiện nếu mục tiêu tấn công và máy của hacker nằm trong cùng một mạng.
4 – Installation in Cyber Kill Chain
Đây chính là phần hình H2B.7 trong bài viết tấn công bằng lỗ hổng Eternal Blue của mình.
Vì dịch vụ SMB trên máy nạn nhân được chạy với quyền SYSTEM (đây là quyền quản trị cao nhất trên hệ thống Windows), nên khi khai thác thành công, mình tự động có quyền SYSTEM luôn.
5 – Command and Control in Cyber Kill Chain
Trong bài viết của mình, mình không dùng C2 server mà dùng thẳng máy Kali của mình để điều khiển máy nạn nhân luôn.
Như các bạn có thể thấy mỗi lần mình chạy một lệnh trên shell (Hình H2B.7) điều khiển máy nạn nhân và nhận được phản hồi, đó chính là kết nối beacon.
6 – Actions on objectives
Tìm kiếm flag để hoàn thành task 5 của lab trên TryHackMe.
9 – Kết
Cám ơn các bạn đã đọc bài viết của mình. Mọi ý kiến đóng góp, các bạn có thể để lại ở comment hoặc inbox fanpage của mình nhé.
Chúc các bạn học tốt,
Vincent Nguyễn
Source:
https://nehrunayak.medium.com/intro-to-c2-tryhackme-556e5299c273
https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html
https://www.splunk.com/en_us/blog/learn/cyber-kill-chains.html
https://www.itpro.com/cyber-attacks/31436/what-is-a-cyber-kill-chain