CompTIA Pentest+ (PT0-002) – Bài 16 : Thực hiện Hậu khai thác Pivoting và Xâm nhập hệ thống

Tài liệu hướng dẫn về Thực hiện Hậu khai thác Pivoting và Xâm nhập hệ thống

Mục tiêu:

  • Khi được giao một tình huống, nghiên cứu các vectơ tấn công và thực hiện các cuộc tấn công mạng.
  • Khi được giao một tình huống, thực hiện các kỹ thuật hậu khai thác.
  • Giải thích các trường hợp sử dụng của các công cụ sau đây trong các giai đoạn của một cuộc kiểm tra xâm nhập.

Chủ đề 16A: Kiểm tra Thông tin Đăng nhập
Sau khi có được quyền truy cập ban đầu vào hệ thống mục tiêu, việc lấy được thông tin đăng nhập người dùng là ưu tiên hàng đầu cho Đội ngũ Pentest của Security365. Những thông tin xác thực này có thể khai thác để truy cập sâu hơn vào mạng và leo thang đặc quyền. Có nhiều kỹ thuật khác nhau để lấy thông tin đăng nhập, từ đoán mật khẩu bằng vũ lực (brute-force) đến vét cạn danh sách từ (dictionary) và tấn công mật khẩu bằng phương pháp thô (password spraying). Đội cũng có thể sử dụng kỹ thuật xã hội như lừa đảo và keylogging. Kiểm tra và khai thác thông tin đăng nhập là một bước quan trọng trong quy trình kiểm tra xâm nhập.

Tấn công mật khẩu ngoại tuyến (offline password attack) là khi kẻ tấn công lấy một bản sao tên người dùng và mật khẩu rồi tấn công ngoại tuyến.

  • Ví dụ có thể là /etc/shadow trong Linux hoặc cơ sở dữ liệu SAM trong Windows
  • Khi đã có được thông tin đăng nhập, họ sẽ chạy một cuộc tấn công trên chính máy của họ
  • Điều này được gọi là “bẻ khóa mật khẩu” (password cracking).
  • Một cách thay thế là lấy thông tin đăng nhập ở định dạng băm (hash)
  • Điều này cũng được gọi là bẻ khóa hàm băm (hash cracking).

Ví dụ: Sau khi xâm nhập thành công một máy chủ Windows tại comptia.edu.vn, Đội ngũ Pentest của Security365 trích xuất tệp SAM chứa hàm băm mật khẩu người dùng. Họ sử dụng một công cụ như John the Ripper để thực hiện tấn công từ điển ngoại tuyến trên các hàm băm này, cuối cùng khôi phục các mật khẩu rõ ràng cho một số tài khoản quản trị.

Tấn công từ điển (Dictionary attack) là loại tấn công mật khẩu tự động đơn giản nhất.

  • Công cụ bẻ khóa mật khẩu chạy qua danh sách các từ cho đến khi tìm thấy mật khẩu hoặc hết danh sách.
  • Có những giới hạn thực tế khi sử dụng tấn công từ điển.
  • Bạn phải biết tên người dùng trước.
  • Danh sách mật khẩu có thể trở nên quá cồng kềnh và khó để bộ bẻ mật khẩu (hoặc hệ thống của nó) tải hoặc quản lý.
  • Hầu hết các hệ thống có chính sách khóa người dùng sau khi vượt quá một giới hạn nhất định.

Ví dụ: Khi kiểm tra một dịch vụ web trên comptia.edu.vn, Đội ngũ Pentest của Security365 lưu ý rằng nó cho phép nhiều lần đăng nhập không thành công mà không khóa tài khoản. Họ tận dụng điều này bằng cách sử dụng công cụ Hydra để chạy một cuộc tấn công từ điển trên trang đăng nhập, cuối cùng đoán đúng mật khẩu của tài khoản quản trị.

Có một số kỹ thuật được sử dụng để vượt qua giới hạn khóa tài khoản (lock out limits) khi thử tấn công trực tuyến (on-line). Chúng bao gồm:

  • Đánh cắp bản sao của tệp hoặc cơ sở dữ liệu chứa thông tin đăng nhập của người dùng và cố gắng bẻ khóa mật khẩu ngoại tuyến
  • Khiến hệ thống “dump” mật khẩu đã băm của nó để bạn có thể bẻ khóa chúng ngoại tuyến
  • Chạy bộ bẻ mật khẩu chống lại một dịch vụ mạng không có chính sách khóa tài khoản
  • Chạy bộ bẻ mật khẩu chống lại tài khoản người dùng như quản trị viên (administrator) hoặc gốc (root) được miễn áp dụng chính sách khóa tài khoản

Ví dụ: Đội ngũ Pentest của Security365 phát hiện ra một lỗ hổng trong ứng dụng web của comptia.edu.vn cho phép họ kích hoạt một cuộc tấn công SQL injection. Họ sử dụng điều này để dump hàm băm mật khẩu của người dùng từ cơ sở dữ liệu. Họ sau đó bẻ khóa các hàm băm này ngoại tuyến, cho phép họ lấy được các mật khẩu rõ mà không cần lo lắng về chính sách khóa tài khoản.

Tấn công vét cạn (brute force attack) là một cuộc tấn công mà kẻ tấn công thử nhiều mật khẩu với hy vọng cuối cùng sẽ đoán đúng mật khẩu.

  • Tấn công vét cạn bị giới hạn bởi sức mạnh xử lý và các tài nguyên khác (chẳng hạn như bộ nhớ và không gian lưu trữ).
  • Password spraying là khái niệm kiểm soát vét cạn bằng cách kiểm tra một số tài khoản với các mật khẩu phổ biến hoặc mật khẩu được nhắm mục tiêu.

Ví dụ: Đội ngũ Pentest của Security365 nhận thấy rằng nhiều người dùng trong môi trường comptia.edu.vn có mật khẩu yếu. Thay vì cố gắng đoán từng mật khẩu riêng lẻ, họ tạo một danh sách ngắn các mật khẩu phổ biến dựa trên chính sách mật khẩu của tổ chức. Họ sau đó “phun” (spray) những mật khẩu này trên nhiều tài khoản, cuối cùng truy cập được một số trong số chúng mà không kích hoạt các khóa tài khoản.

Mật khẩu Linux được lưu trữ dưới dạng giá trị băm trong /etc/shadow.

  • Xác định thuật toán băm đang được sử dụng sau đó cố gắng bẻ khóa hàm băm
    Windows lưu trữ tên người dùng và mật khẩu cục bộ trong Trình quản lý Tài khoản Bảo mật (Security Account Manager – SAM).
  • Mật khẩu được lưu trữ dưới dạng hai loại hàm băm: LanMan (LM) và NT hash
    Cơ quan Bảo mật Cục bộ (Local Security Authority – LSASS) của Windows sử dụng bí mật LSA để lưu trữ nhiều loại mật khẩu người dùng, dịch vụ và ứng dụng.
  • Trong một số trường hợp, chúng có thể được tìm thấy trong bộ nhớ sau khi người dùng đăng nhập hoặc máy tính khởi động và có thể được dump bằng các công cụ như Mimikatz.

Ví dụ: Sau khi xâm nhập một máy chủ Linux tại Comptia.edu.vn, Đội ngũ Pentest của Security365 trích xuất tệp /etc/shadow. Họ xác định rằng các hàm băm sử dụng thuật toán SHA-512. Sử dụng hashcat với một từ điển mật khẩu lớn, họ có thể bẻ khóa một số mật khẩu người dùng, bao gồm cả người dùng gốc.

Có nhiều công cụ bẻ khóa mật khẩu, nhiều công cụ đa tính năng.

  • hashcat – có thể tăng tốc quá trình bằng cách sử dụng các phương pháp tấn công khác nhau (từ điển, mặt nạ, lai) để thêm tính phức tạp và biến đổi.
  • medusa – Công cụ brute-forcer song song cho đăng nhập mạng. Trọng tâm của nó là hỗ trợ nhiều dịch vụ mạng cho phép xác thực từ xa.
  • brutespray – Công cụ cho phép diễn giải kết quả từ quét Nmap để tự động bắt đầu medusa chống lại các cổng mở được xác định.

Ví dụ: Đội ngũ Pentest của Security365 sử dụng bộ công cụ hashcat để bẻ khóa các hàm băm mật khẩu của comptia.edu.vn mà họ trích xuất. Họ sử dụng kết hợp tấn công trên GPU, tấn công lai từ điển/mặt nạ và quy tắc tùy chỉnh để tối ưu hóa quá trình bẻ khóa. Điều này cho phép họ khôi phục mật khẩu rõ ràng nhanh chóng, ngay cả đối với các hàm băm phức tạp.

Sử dụng kỹ thuật xã hội để lấy thông tin đăng nhập của người dùng
Cài đặt một keylogger phần cứng hoặc phần mềm để chụp thông tin đăng nhập

  • Keylogger USB phần cứng (yêu cầu quyền truy cập vật lý)
  • Meterpreter keyscan_start và keyscan_dump

Ví dụ: Như một phần của cuộc kiểm tra xâm nhập tại comptia.edu.vn, Đội ngũ Pentest của Security365 tiến hành một cuộc tấn công lừa đảo nhắm vào nhân viên. Họ gửi email với liên kết đến một trang đăng nhập giả mạo, yêu cầu người dùng nhập thông tin đăng nhập của họ. Một số người dùng nhẹ dạ và đội thu thập được thông tin xác thực của họ. Họ cũng vật lý cài đặt một keylogger USB trên một máy tính bị xâm nhập để ghi lại mật khẩu khi chúng được nhập vào.

Hoạt động ôn tập:

  1. Mô tả hoạt động nào xảy ra trong tấn công mật khẩu ngoại tuyến
  2. Phác thảo cách thức hoạt động của tấn công Từ điển
  3. Liệt kê các cách đội có thể vượt qua giới hạn khóa tài khoản
  4. Thảo luận về những gì liên quan khi sử dụng tấn công vét cạn
  5. So sánh các phương pháp tấn công mật khẩu Linux và Windows
  6. Liệt kê một số công cụ bẻ khóa mật khẩu
  7. Xem lại các phương pháp thay thế để lấy thông tin đăng nhập

Chủ đề 16B: Di chuyển trong Hệ thống
Sau khi lấy được thông tin đăng nhập, Đội ngũ Pentest của Security365 cần mở rộng sự hiện diện của họ trên mạng mục tiêu. Điều này liên quan đến việc di chuyển sang các hệ thống khác, leo thang đặc quyền và lấy quyền truy cập vào các tài nguyên bổ sung. Các kỹ thuật như lateral movement, pivoting và pass-the-hash rất quan trọng ở giai đoạn này. Bằng cách khai thác các mối quan hệ tin cậy và tận dụng thông tin đăng nhập đã bị xâm nhập, đội có thể mô phỏng cách thức lan rộng của một kẻ tấn công trong môi trường mục tiêu.

Có những trường hợp mà shell chúng ta lấy được là shell hạn chế (restrictive shell).

  • Có những hạn chế kỹ thuật rất quan trọng đối với người kiểm tra xâm nhập
  • Chẳng hạn như SSH không hoạt động đúng trong shell hạn chế, điều này có thể ảnh hưởng đến nỗ lực của chúng ta trong việc tạo một đường hầm thông qua nó để tiếp tục tấn công.
  • Để có thể tiếp tục thao túng môi trường, đội sẽ cần nâng cấp shell

Ví dụ: Sau khi xâm nhập thành công vào một máy chủ Linux tại comptia.edu.vn, Đội ngũ Pentest của Security365 nhận thấy rằng họ chỉ có quyền truy cập hạn chế vào shell. Họ không thể chuyển hướng thư mục, xem các tệp nhất định hoặc sử dụng SSH. Để khắc phục những hạn chế này, họ sử dụng kỹ thuật nâng cấp shell để có được shell tương tác đầy đủ, cung cấp cho họ khả năng kiểm soát cần thiết để di chuyển sang các hệ thống khác.

Di chuyển ngang hàng (Lateral movement) là quá trình di chuyển từ một phần của môi trường máy tính sang một phần khác.

  • Bạn có thể khám phá thêm hoặc các lỗ hổng mới trong môi trường mà bạn sẽ bỏ lỡ nếu bạn ở yên một chỗ.
  • Khi bạn xâm phạm máy chủ ban đầu, bạn có thể:
  • Quét mạng tìm các máy chủ khác, cũng như liệt kê các giao thức mạng, cổng và ánh xạ logic.
  • Giúp khám phá vị trí của các máy chủ bổ sung và máy chủ nào bạn có thể di chuyển đến.

Ví dụ: Sau khi chiếm quyền điều khiển một máy trạm Windows trong mạng comptia.edu.vn, Đội ngũ Pentest của Security365 sử dụng BloodHound để ánh xạ các mối quan hệ tin cậy trên toàn bộ domain. Họ xác định rằng máy bị xâm nhập có quyền truy cập quản trị vào một số máy chủ quan trọng khác. Họ sử dụng đăng nhập Pass-the-Hash để truy cập các máy này, sau đó thực hiện thêm trinh sát để xác định các mục tiêu hấp dẫn để tấn công thêm.

Bạn có thể tận dụng các shell để truy cập từ xa. Tương tự, bạn có thể sử dụng các dịch vụ CLI để di chuyển ngang:

  • Remote Desktop Protocol (RDP) đi kèm với các hệ thống Windows.
  • Virtual Network Computing (VNC) đa nền tảng cho phép kiểm soát từ xa hoàn toàn.
  • Các dịch vụ quản lý từ xa cho phép bạn ra lệnh cho các hệ thống từ xa:
  • WinRM và PowerShell, và PsExec.
  • Sử dụng RPC/DCOM có thể giúp bạn tránh bị phát hiện.

Ví dụ: Đội ngũ Pentest của Security365 khám phá một máy chủ quan trọng với RDP được bật trong môi trường comptia.edu.vn. Sử dụng thông tin đăng nhập đã bị xâm nhập, họ thiết lập một phiên RDP để truy cập GUI máy chủ. Từ đây, họ có thể cài đặt các công cụ bổ sung, thu thập dữ liệu và thậm chí pivot sang các phân đoạn mạng bổ sung mà trước đó không thể truy cập được.

Pivoting là khi bạn xâm phạm một máy chủ cho phép bạn lan rộng sang các máy chủ khác vốn không thể truy cập được.

  • Điều này là cần thiết khi bạn muốn di chuyển sang một phân đoạn mạng khác với phân đoạn bạn hiện đang ở.
  • Các kỹ thuật có thể cho phép pivoting bao gồm:
  • Chuyển tiếp cổng (Port forwarding), pivoting VPN, pivoting SSH
  • Sửa đổi bảng định tuyến

Ví dụ: Trong khi kiểm tra xâm nhập, Đội ngũ Pentest của Security365 xâm nhập một máy chủ web trong mạng DMZ của comptia.edu.vn. Họ note rằng máy chủ này cũng có giao diện mạng kết nối với mạng nội bộ. Bằng cách thiết lập port forwarding động qua SSH, họ có thể sử dụng máy chủ web bị xâm nhập làm điểm truy cập để quét và tấn công các hệ thống trong mạng nội bộ, mở rộng đáng kể phạm vi cuộc tấn công của họ.

Tấn công truyền hash (pass the hash attack) là khi bạn đăng nhập bằng tên người dùng và hàm băm của mật khẩu, thay vì chính mật khẩu.

  • Bạn lấy hàm băm bằng cách ép hệ điều hành hoặc ứng dụng dump chúng từ RAM, Registry của Windows hoặc tệp thông tin đăng nhập.
  • Bạn có thể sử dụng Mimikatz và các công cụ khác như Responder.py để lấy hàm băm từ các dịch vụ khác nhau trên mạng.
  • Khi bạn có được các hàm băm, có một số công cụ bạn có thể sử dụng để kiểm tra khả năng sử dụng và chuyển hoặc bẻ khóa chúng như Hydra và Medusa.

Ví dụ: Sau khi trích xuất các hàm băm NTLM từ bộ nhớ của một máy chủ bị xâm nhập tại comptia.edu.vn, Đội ngũ Pentest của Security365 sử dụng Mimikatz để chuyển các hàm băm này sang các hệ thống khác trong cùng domain. Điều này cho phép họ mạo danh người dùng đã bị xâm nhập, tận dụng các thông tin đăng nhập của họ mà không cần biết mật khẩu thực tế. Họ sau đó có thể truy cập vào các tài nguyên bổ sung và di chuyển sang các máy mới.

Leo thang đặc quyền (Privilege escalation) là một trong những mục tiêu chính trong bất kỳ bài kiểm tra xâm nhập nào.

  • Nó cho phép kẻ tấn công kiểm soát, truy cập hoặc thay đổi các tệp nhạy cảm và để lại các backdoor vĩnh viễn.
  • Privilege escalation (PrivEsc) được sử dụng để có quyền truy cập vào các tài nguyên bị hạn chế:
  • Vertical Privilege Escalation – Lấy quyền truy cập vào tài khoản có đặc quyền cao hơn tài khoản bạn hiện có.
  • Horizontal Privilege Escalation – Lấy quyền truy cập vào tài khoản người dùng thông thường có đặc quyền khác với tài khoản hiện đang sử dụng.

Ví dụ: Sau khi truy cập ban đầu vào một máy trạm, Đội ngũ Pentest của Security365 note một dịch vụ đang chạy với đặc quyền hệ thống. Họ phát hiện một lỗ hổng trong dịch vụ cho phép họ thực thi mã tùy ý. Khai thác điều này, họ có được shell hệ thống và leo thang đặc quyền theo chiều dọc. Họ sau đó sử dụng truy cập này để trích xuất thông tin đăng nhập cho các người dùng khác, cho phép leo thang đặc quyền ngang hàng.

Ngoài các lỗi khai thác cụ thể của kernel, còn có các loại lỗi khai thác khác có thể nâng cao đặc quyền.

  • Chúng tận dụng các dịch vụ, trình điều khiển và ứng dụng chạy trong đặc quyền SYSTEM hoặc quản trị viên.
  • Giống như các lỗi khai thác kernel, hầu hết được chạy cục bộ sau khi có quyền truy cập vào mục tiêu.
  • Một số ví dụ bao gồm:
  • Tấn công thông tin đăng nhập, bỏ qua UAC cục bộ,
  • Tìm kiếm thông tin nhạy cảm trong các thư mục được chia sẻ, Tìm kiếm các bản vá bị thiếu hoặc cấu hình sai phổ biến có thể dẫn đến leo thang đặc quyền.

Ví dụ: Trong quá trình kiểm tra, Đội ngũ Pentest của Security365 sử dụng Metasploit để đưa ra một số mô-đun leo thang đặc quyền phổ biến đối với máy chủ Windows đã xâm nhập. Một trong những mô-đun này tận dụng lỗi cấu hình quyền tệp để ghi một dịch vụ tùy chỉnh vào thư mục hệ thống. Khi chạy, dịch vụ này cung cấp cho họ shell với đặc quyền hệ thống đầy đủ.

Khi bạn đã xâm nhập một máy chủ Linux, bạn sẽ cần phải leo thang đặc quyền để đạt được mục tiêu của mình. Dưới đây là một số ví dụ về cách leo thang đặc quyền trong Linux:

  • Xâm phạm ứng dụng người dùng
  • Xác định vị trí các dịch vụ thuộc sở hữu (đang chạy với tư cách) root và xem liệu bạn có thể xâm phạm chúng hay không
  • Khai thác các công việc cron được định cấu hình lỏng lẻo để lấy quyền truy cập root.

Ví dụ: Sau khi đã truy cập vào một máy chủ Linux với tư cách người dùng thường, Đội ngũ Pentest của Security365 chạy LinEnum để xác định các vector leo thang đặc quyền tiềm năng. Công cụ phát hiện ra rằng họ có quyền ghi đối với một tập lệnh shell được chạy bởi một công việc cron gốc. Bằng cách thêm mã độc hại vào tập lệnh này, họ cuối cùng có được shell gốc.

Hoạt động ôn tập:

  1. Giải thích tại sao đội sẽ cần phải nâng cấp shell hạn chế
  2. Phác thảo những gì đội có thể đạt được khi di chuyển ngang hàng
  3. Mô tả cách đội có thể đạt được di chuyển ngang hàng với các dịch vụ truy cập từ xa
  4. Thảo luận về những gì có thể đạt được khi pivoting sang các khu vực khác
  5. Xem lại các cách leo thang đặc quyền
  6. So sánh các cách để kiểm soát trong môi trường Windows và Linux

Chủ đề 16C: Duy trì Tồn tại trong Hệ thống Ngay cả khi Đội ngũ Pentest của Security365 đã xâm nhập thành công một hệ thống, công việc của họ vẫn chưa hoàn thành. Để tối đa hóa tác động của cuộc kiểm tra xâm nhập, họ thường cần duy trì truy cập vào môi trường mục tiêu trong thời gian dài. Ở giai đoạn này, họ sẽ triển khai các kỹ thuật liên tục để đảm bảo sự hiện diện liên tục của họ trong hệ thống. Điều này có thể liên quan đến việc cài đặt backdoor, tạo tài khoản bị xâm nhập, lên lịch nhiệm vụ độc hại hoặc vô hiệu hóa các biện pháp kiểm soát bảo mật. Bằng cách làm như vậy, họ cho thấy rủi ro thực sự của một cuộc tấn công thành công, nơi tin tặc có thể tồn tại trong môi trường mà không bị phát hiện trong một thời gian dài.

Persistence là chất lượng mà một mối đe dọa tiếp tục khai thác một mục tiêu trong khi vẫn không bị phát hiện trong một khoảng thời gian đáng kể.

  • Một số mục tiêu liên quan đến tính liên tục bao gồm:
  • Chuyển một phần dữ liệu nhạy cảm trong một khoảng thời gian thay vì tất cả cùng một lúc.
  • Chuyển dữ liệu nhạy cảm thay đổi theo thời gian.
  • Xâm phạm các hệ thống, mạng, ứng dụng và các tài sản khác trong nhiều ngày, tuần, tháng hoặc thậm chí nhiều năm.
  • Giám sát hành vi người dùng theo thời gian.

Ví dụ: Sau khi lấy được quyền truy cập ban đầu vào mạng của comptia.edu.vn, Đội ngũ Pentest của Security365 cài đặt một số cơ chế liên tục khác nhau. Trên một máy chủ, họ định cấu hình một tác vụ được lên lịch để định kỳ kết nối ngược lại với máy chủ C2 của họ, cung cấp quyền truy cập ngay cả khi mật khẩu được thay đổi. Trên một máy khác, họ cài đặt một rootkit kernel che giấu sự hiện diện của họ khỏi các công cụ quản trị thông thường. Những kỹ thuật này cho phép họ giữ chân trong môi trường trong một thời gian dài.

Advanced Persistent Threat (APT) là một cuộc tấn công liên tục nhằm thiết lập sự hiện diện lâu dài và không bị phát hiện trong mạng tổ chức để trộm dữ liệu nhạy cảm.

  • APT là một triển khai của tính liên tục
  • Dựa vào các lỗ khai thác phức tạp, được tùy chỉnh cao.
  • APT có xu hướng nhắm mục tiêu vào các tổ chức nắm giữ một lượng lớn quyền lực đối với người khác.
  • Có thể mất nhiều năm trước khi được phát hiện, chuyển một khối lượng lớn dữ liệu nhạy cảm từ một mục tiêu
  • Đại diện cho một số mối đe dọa nguy hiểm và có hại nhất đối với các tổ chức mục tiêu.

Ví dụ: Trong suốt quá trình kiểm tra, Đội ngũ Pentest của Security365 giả vờ là một APT nhà nước. Họ dành hàng tuần để phát triển các công cụ tùy chỉnh và xây dựng sự hiện diện trong mạng comptia.edu.vn, từ từ trích xuất dữ liệu mật một cách cẩn thận để tránh bị phát hiện. Họ định tuyến lưu lượng của mình thông qua một loạt các proxy để che giấu nguồn gốc thực sự của họ. Cuộc tấn công mô phỏng này nhấn mạnh sự khó khăn trong việc bảo vệ chống lại các đối thủ kiên trì và tinh vi.

Các kỹ thuật khác nhau có thể giúp bạn duy trì quyền truy cập vào mục tiêu.

  • Ví dụ, một số tài khoản người dùng được giám sát chặt chẽ hơn hoặc kiểm soát truy cập chặt chẽ hơn những tài khoản khác.
  • Việc tạo một tài khoản mới có thể giúp bạn vượt qua các hạn chế này khi bạn cần xác thực.
  • Các dịch vụ truy cập từ xa cũng có thể được sử dụng để duy trì kết nối. Các kỹ thuật duy trì kết nối phổ biến khác bao gồm:
  • Backdoors và Trojans, Bind và Reverse Shells
  • Các dịch vụ và Daemons, Registry Startup và Scheduled Tasks

Ví dụ: Để duy trì tồn tại trong mạng của comptia.edu.vn, Đội ngũ Pentest của Security365 tạo một tài khoản quản trị viên mới có tên trông hợp pháp. Họ cũng bật RDP trên một số máy chủ quan trọng và cấu hình tường lửa để cho phép truy cập đến chúng từ địa chỉ IP của họ. Ngoài ra, họ định cấu hình một số máy để kết nối định kỳ với máy chủ C2 của họ thông qua kênh liên lạc được mã hóa.

Backdoor là một cơ chế ẩn cung cấp cho bạn quyền truy cập vào một hệ thống thông qua một số phương tiện thay thế.

  • Mục tiêu là tránh sự chú ý của những người dùng điển hình của hệ thống trong khi cho phép người dùng trái phép truy cập hệ thống đó.
    Một ví dụ về backdoor là công cụ truy cập từ xa (Remote Access Tool – RAT), còn được gọi là trojan truy cập từ xa.
  • Chủ yếu được tải xuống máy tính của nạn nhân thông qua phần mềm độc hại trojan
  • Chức năng của RAT có thể chỉ cung cấp một shell tương tác hoặc các dịch vụ GUI đầy đủ và được thiết kế để ẩn khỏi tầm nhìn

Ví dụ: Trong cuộc tấn công giả định, Đội ngũ Pentest của Security365 lây nhiễm một số máy tính comptia.edu.vn với RAT tùy chỉnh. RAT trông giống như một chương trình hợp pháp, nhưng nó mở một backdoor mà nhóm có thể sử dụng để truy cập máy từ xa bất cứ lúc nào. Nó cũng có chức năng cho phép họ tải lên và thực thi mã bổ sung, tạo ra một đường dẫn để xâm nhập sâu hơn vào mạng.

Các dịch vụ truy cập từ xa như Telnet, SSH, RDP, VNC, etc., cũng có thể cho phép duy trì tồn tại.

  • Bạn thậm chí có thể tận dụng các tài khoản backdoor với các dịch vụ này để điều khiển mục tiêu từ xa.
  • Tuy nhiên, việc duy trì tính ẩn danh trong khi sử dụng các dịch vụ này đặc biệt khó khăn.

Ví dụ: Sau khi có được quyền truy cập root trên một máy chủ quan trọng, Đội ngũ Pentest của Security365 cấu hình OpenSSH để cho phép đăng nhập bằng khóa. Họ tạo một cặp khóa và cài đặt khóa công khai trên máy chủ. Điều này cho phép họ đăng nhập một cách an toàn bất kỳ lúc nào mà không cần mật khẩu, trong khi tránh để lại dấu vết trong các bản ghi hệ thống như nếu họ sử dụng RDP hoặc VNC.

Shell là bất kỳ chương trình nào có thể được sử dụng để thực thi lệnh. Về cơ bản, có hai loại tấn công shell: bind và reverse.

  • Bind shell được thiết lập khi hệ thống mục tiêu “bind” shell của nó với một cổng mạng cục bộ.
  • Reverse shell được thiết lập khi máy mục tiêu giao tiếp với máy tấn công đang lắng nghe trên một cổng cụ thể.

Ví dụ: Sau khi khai thác thành công một lỗ hổng trong máy chủ web của comptia.edu.vn, Đội ngũ Pentest của Security365 tạo một reverse shell. Họ thiết lập một trình lắng nghe trên máy tấn công của họ và cấu hình lỗ khai thác để kết nối trở lại với nó, thiết lập một kênh truyền tin ẩn. Nếu tường lửa của tổ chức chặn các kết nối đến, họ có thể chuyển sang sử dụng một bind shell để nghe trên cổng của máy chủ web.

Trong thế giới Windows, một dịch vụ (service) là bất kỳ chương trình nào chạy trong nền và là một loại quy trình không tương tác.
Trong thế giới giống Unix, daemon giống như một dịch vụ.

  • Chúng chạy trong nền nhưng không được gắn vào bất kỳ thiết bị đầu cuối nào; do đó, chúng có thể tiếp tục chạy trên hệ thống ngay cả khi thiết bị đầu cuối được đóng.
  • Nếu bạn cài đặt một daemon truy cập từ xa trên mục tiêu:
  • Bạn có thể truy cập vào mục tiêu bất kỳ lúc nào và thậm chí lấy lại truy cập đó ngay sau khi hệ thống được khởi động lại.

Ví dụ: Để duy trì truy cập trong môi trường Windows của comptia.edu.vn, Đội ngũ Pentest của Security365 biên dịch một C++ RAT tùy chỉnh của riêng họ thành dịch vụ Windows. Họ cài đặt RAT dưới dạng một dịch vụ hệ thống trên một số máy, tạo ra một kênh truy cập từ xa ẩn hoạt động liên tục, thậm chí sau khi khởi động lại. RAT kết nối ngược lại với máy chủ C2 của họ, cho phép họ thực thi lệnh và tải xuống các công cụ bổ sung như họ mong muốn.

Trong Windows, để chạy một chương trình hoặc lệnh cụ thể khi khởi động, bạn có thể thêm chương trình hoặc sửa đổi khóa Registry.
Trong Linux, (tùy thuộc vào bản phân phối) /etc/init.d/ và /etc/systemd/ có thể cung cấp chức năng tương tự chạy khi khởi động.

  • Một số bản phân phối duy trì khả năng tương thích ngược với các tập lệnh RC: /etc/rc.local/ và các mục nhập trong tệp rc.common.

Ví dụ: Trên một hệ thống Linux mà họ đã xâm nhập trong comptia.edu.vn, Đội ngũ Pentest của Security365 sửa đổi tệp /etc/rc.local để thực thi một reverse shell khi khởi động. Trong một môi trường Windows, họ sửa đổi khóa Run của Registry để tự động chạy một tập lệnh độc hại mỗi khi người dùng đăng nhập. Những thay đổi này giúp đảm bảo họ sẽ duy trì quyền truy cập ngay cả khi các máy bị khởi động lại.

Scheduled task hoặc job là sẽ khởi tạo một quy trình hoặc chạy một tập lệnh mà hệ thống thực hiện theo một lịch trình đã định.

  • Scheduled tasks có thể giúp ích trong suốt chiến dịch PenTest:
  • Bạn có thể tạo một scheduled task chạy âm thầm một lệnh chuyển dữ liệu trích xuất trong nền để tự động hóa tính liên tục trong khi vẫn không bị phát hiện.
  • Sử dụng Task Scheduler bạn có thể làm khá nhiều điều, bao gồm:
  • Đặt hành động thực tế của tác vụ, ví dụ: chạy một chương trình, tài khoản nào để chạy tác vụ dưới đó, cùng với các điều kiện đặc biệt khi tác vụ sẽ chạy

Ví dụ: Để duy trì khả năng truy cập vào dữ liệu tài chính của comptia.edu.vn, Đội ngũ Pentest của Security365 tạo một scheduled task trên máy chủ cơ sở dữ liệu. Tác vụ này thực thi vào mỗi đêm lúc 2 giờ sáng, xuất bản sao mới nhất của cơ sở dữ liệu, nén nó và chuyển nó đến máy chủ C2 của nhóm thông qua một kết nối được mã hóa, cho phép giám sát và trích xuất dữ liệu liên tục.

Trong Linux, cron jobs là phương pháp chính để lên lịch cho các tác vụ.

  • Cron daemon chạy lệnh shell được chỉ định vào ngày và/hoặc giờ được chỉ định trong tệp crontab của người dùng.
  • Bạn có thể chỉnh sửa tệp này bằng cách nhập crontab -e tại shell.
  • Lưu ý rằng các công việc bạn tạo bằng crontab -e sẽ chạy với tư cách người dùng hiện tại.

Ví dụ: Trên một máy chủ web Linux trong môi trường comptia.edu.vn, Đội ngũ Pentest của Security365 sửa đổi tệp crontab của người dùng root để tạo một công việc định kỳ 5 phút. Công việc này thực thi một tập lệnh PHP độc hại, cung cấp cho họ shell web dựa trên web ẩn cho phép thực thi lệnh từ xa. Công việc cron đảm bảo shell được tải lại nếu nó bị chấm dứt hoặc bị xóa.

Khi sử dụng các kỹ thuật duy trì tồn tại (persistence techniques), một số hướng dẫn bao gồm:

  • Cố gắng duy trì chỗ đứng trong tổ chức để tiếp tục cuộc tấn công của bạn sau khi giai đoạn chính đã kết thúc.
  • Thể hiện tính liên tục với khách hàng mà không nhất thiết phải giữ các tài sản bị xâm nhập trong một khoảng thời gian dài.
  • Tạo một shell bằng Netcat để mở một backdoor để thực thi lệnh.
  • Sử dụng Task Scheduler trong Windows để chạy một lệnh hoặc chương trình xâm nhập theo một lịch nhất quán.
  • Sử dụng cron jobs trong Linux để thực hiện tương tự.

Ví dụ: Để minh họa tính liên tục trong báo cáo của họ, Đội ngũ Pentest của Security365 mô tả một loạt các kỹ thuật họ đã sử dụng trong môi trường của Comptia.edu.vn. Những kỹ thuật này bao gồm tạo các tài khoản bị xâm nhập, thiết lập các kết nối trở lại liên tục bằng cách sử dụng scheduled tasks và cron jobs, cài đặt các dịch vụ backdoor và thậm chí sửa đổi cấu hình tường lửa. Họ cũng chú ý rằng họ đã dọn dẹp sau mình khi hoàn thành, xóa các tải trọng liên tục để không làm xấu môi trường của khách hàng.

Hoạt động ôn tập:

  1. Mô tả khái niệm về reverse và bind shells
  2. Thảo luận về lợi ích của việc sử dụng daemon truy cập từ xa
  3. So sánh các cách để lên lịch cho các tác vụ và công việc trong môi trường Windows hoặc Linux
  4. Liệt kê một số hướng dẫn khi sử dụng các kỹ thuật duy trì tồn tại

Tổng kết bài học: Trong bài học này, chúng ta đã khám phá các khía cạnh quan trọng của một cuộc kiểm tra xâm nhập thành công: truy cập thông tin đăng nhập, di chuyển trong mạng và duy trì sự tồn tại trong hệ thống. Những kỹ thuật này cho phép Đội ngũ Pentest của Security365 tận dụng tối đa một cuộc xâm nhập ban đầu, mở rộng sự hiện diện của họ trong môi trường mục tiêu và thu thập thông tin tình báo có giá trị.

Chúng ta bắt đầu bằng cách xem xét các phương pháp để xác thực thông tin đăng nhập người dùng. Từ các cuộc tấn công mật khẩu ngoại tuyến sử dụng danh sách từ điển và vét cạn đến thu thập hash mật khẩu để sử dụng trong các cuộc tấn công chuyển hash, có nhiều cách để vượt qua xác thực. Chúng tôi cũng thảo luận về cách sử dụng kỹ thuật xã hội như lừa đảo và keylogging để lấy thông tin đăng nhập, cũng như các công cụ phổ biến được sử dụng để bẻ khóa mật khẩu.

Tiếp theo, chúng ta chuyển sang chủ đề di chuyển trong mạng. Các kỹ năng như di chuyển ngang, pivoting và leo thang đặc quyền là rất quan trọng ở đây. Bằng cách khai thác các mối quan hệ tin cậy, sử dụng thông tin đăng nhập đã bị xâm nhập và tận dụng các cấu hình sai hoặc lỗ hổng, người pentest có thể mở rộng sự hiện diện của họ trong mạng mục tiêu. Chúng ta đã xem xét các ví dụ cụ thể về cách thức hoạt động của điều này trong môi trường Windows và Linux.

Cuối cùng, chúng ta khám phá chủ đề duy trì sự tồn tại. Đây là giai đoạn mà kẻ tấn công cài đặt các cơ chế backdoor và tận dụng để đảm bảo truy cập lâu dài vào môi trường mục tiêu, ngay cả khi các lỗ hổng ban đầu bị vá. Các kỹ thuật bao gồm cài đặt rootkits, tạo tài khoản ẩn, lên lịch tác vụ độc hại và thao túng cấu hình, tất cả đều được thảo luận. Chúng ta cũng xem xét các khái niệm tiên tiến hơn như APT và cách mô phỏng chúng trong một cuộc kiểm tra xâm nhập.

Xuyên suốt các chủ đề này, chúng ta đã nhấn mạnh tầm quan trọng của tư duy luôn hướng về mục tiêu. Giống như các đối thủ thực sự, người pentest phải luôn tìm kiếm các cơ hội để đạt được và giữ quyền truy cập vào tài sản quan trọng, cho dù đó có thể là danh sách khách hàng, tài liệu sở hữu trí tuệ hay thậm chí là quyền điều khiển hệ thống trong môi trường sản xuất. Mục tiêu là thu thập thông tin chi tiết về cách một cuộc tấn công có thể phát triển và cung cấp cho khách hàng thông tin chi tiết về cách cải thiện triển khai phòng thủ của họ.

Nếu bạn đang tìm cách củng cố kỹ năng pentest của mình liên quan đến những kỹ thuật này, tôi khuyên bạn nên thực hành CompTIA Pentest+ Learning Path trên TryHackMe và lấy chứng chỉ hoàn thành. Trải nghiệm thực hành trên hệ thống lab thực tế sẽ giúp bạn nắm vững các công cụ và quy trình, từ cracking mật khẩu cho đến lateral movement và tạo persistence. Chứng chỉ sẽ là bằng chứng hữu hình về năng lực của bạn cho các nhà tuyển dụng tiềm năng.

Đối với những ai muốn có lộ trình đào tạo toàn diện hơn cho chứng chỉ CompTIA PenTest+, hãy cân nhắc các khóa học trực tiếp tại Comptia Vietnam (website comptia.edu.vn). Với các giảng viên giàu kinh nghiệm và cơ sở vật chất hiện đại, họ cung cấp một môi trường hoàn hảo để phát triển kỹ năng pentest thực tế. Nếu bạn thích linh hoạt hơn, các khóa học trực tuyến thông qua hệ thống LMS (Learning Management System) của Security365 Academy (website security365.vn) là một lựa chọn phù hợp.

Với sự gia tăng liên tục của các mối đe dọa mạng, nhu cầu về các chuyên gia pentest có tay nghề cao chưa bao giờ lớn hơn. Bằng cách nắm vững các kỹ thuật được trình bày trong bài học này, bạn sẽ được trang bị tốt để đóng góp vào cuộc chiến liên tục để bảo vệ không gian mạng. Cho dù là thực hiện các cuộc kiểm tra xâm nhập bên ngoài hay củng cố phòng thủ từ bên trong, kiến thức của bạn sẽ là vô giá trong việc giữ cho các tổ chức an toàn và bảo mật trong thời đại kỹ thuật số này.

Trình bày bởi : Vinh Nguyen Trần Tường
Tài liệu hỗ trợ học tập và ôn thi Chứng Chỉ Quốc Tế CompTIA Pentest +
Chú ý : Các ví dụ chỉ là giả định cho dễ hiểu, không phải là tình huống thực tế.

Bình luận về bài viết này