CompTIA Pentest+ (PT0-002) Bài 5: Chuẩn bị cho việc Quét lỗ hổng

I. Lập kế hoạch Quét lỗ hổng

  1. Tìm hiểu về lỗ hổng
  • Một phần quan trọng của kiểm tra xâm nhập (PenTesting) là xác định các lỗ hổng có thể bị khai thác vô tình hoặc cố ý và gây ra sự cố bảo mật.
  • Lỗ hổng trải qua một vòng đời, từ khám phá đến nhận thức và ghi nhận, như minh họa trong hình:
    (Hình ảnh: Vòng đời của một lỗ hổng)
  1. Các giai đoạn của lỗ hổng
  2. Khám phá – Nhận ra một lỗ hổng tiềm ẩn tồn tại
  3. Phối hợp – Cả lỗ hổng và khả năng khai thác lỗ hổng đều được biết đến.
  4. Giảm thiểu – Các nhà cung cấp và nhà thiết kế phần mềm xem xét lỗ hổng và đưa ra chiến lược để xử lý.
  5. Quản lý – Khi bản vá đã được phát hành.
  6. Ghi nhận – Lỗ hổng đã được kiểm tra và mọi người liên quan sẽ dành thời gian để ghi lại những gì đã được thực hiện.

Ví dụ:

  • Lỗ hổng Heartbleed trong OpenSSL được phát hiện vào tháng 4/2014, cho phép truy cập trái phép vào dữ liệu nhạy cảm.
  • Các nhà cung cấp dịch vụ web và phần mềm phối hợp để đánh giá mức độ ảnh hưởng và nguy cơ.
  • Bản vá được phát triển và phát hành chỉ trong vài ngày để khắc phục lỗ hổng.
  • Nhiều báo cáo và hướng dẫn được xuất bản để giúp người dùng và quản trị viên cập nhật hệ thống kịp thời, đồng thời nâng cao nhận thức về những rủi ro từ lỗ hổng chưa được vá trong phần mềm nguồn mở phổ biến.
  1. Khai thác những điều chưa biết
  • Tấn công “zero-day” tận dụng lỗ hổng phần mềm chưa được biết hoặc công bố bởi nhà cung cấp.
  • Quy trình như sau:
  1. Lỗ hổng được tìm thấy ngoài thực tế
  2. Tại một thời điểm, lỗ hổng được nhà cung cấp biết đến
  3. Nhà cung cấp sẽ giảm thiểu hoặc khắc phục lỗ hổng bằng cách tạo bản vá.
  • Khoảng cách rủi ro là khoảng thời gian từ khi nhà cung cấp phát hành bản vá đến khi bản vá được áp dụng.

Ví dụ:

  • Ngày 12/5/2017, một cuộc tấn công mã độc tống tiền quy mô lớn (WannaCry) đã bùng phát, lây nhiễm hơn 200.000 máy tính tại 150 quốc gia chỉ trong 1 ngày.
  • WannaCry khai thác lỗ hổng “zero-day” (MS17-010) trong giao thức SMB của Windows để lan truyền trong mạng nội bộ.
  • Mặc dù Microsoft đã phát hành bản vá bảo mật MS17-010 từ tháng 3/2017, nhưng nhiều tổ chức vẫn chưa kịp cập nhật và trở thành nạn nhân của mã độc.
  • Sự việc cho thấy tác động thảm khốc của việc chậm trễ vá lỗ hổng và khoảng cách rủi ro giữa thời điểm phát hành và áp dụng bản vá.
  1. Giảm thiểu rủi ro cho dữ liệu
  • Mục tiêu chính của kiểm tra xâm nhập là bảo vệ dữ liệu của tổ chức.
  • Truy cập trái phép vào dữ liệu có thể dẫn đến:
  • Lộ dữ liệu nhạy cảm xảy ra khi ai đó hoặc thứ gì đó để lộ dữ liệu nhạy cảm hoặc cá nhân, vi phạm tính bảo mật.
  • Sửa đổi hoặc làm hỏng dữ liệu là khi dữ liệu bị thay đổi theo cách nào đó, vi phạm tính toàn vẹn.

Ví dụ:

  • Tin tặc tấn công vào cơ sở dữ liệu khách hàng của một công ty thương mại điện tử. Hắn đánh cắp 1 triệu hồ sơ chứa tên, địa chỉ, email, số thẻ tín dụng của người dùng và rao bán trên diễn đàn ngầm. Sự việc gây thiệt hại nghiêm trọng về uy tín, tài chính và pháp lý cho doanh nghiệp.
  • Nhân viên bất mãn truy cập trái phép vào hệ thống nhân sự, thay đổi nhiều thông tin quan trọng như ngày nghỉ việc, đánh giá hiệu suất, mức lương của đồng nghiệp. Việc này gây ra nhiều sai lệch và tranh cãi, ảnh hưởng hoạt động của cả phòng ban.
  1. Lấy thông tin Banner
  • Được sử dụng trong quá trình trinh sát để thu thập thông tin về các máy chủ mạng và dịch vụ đang chạy trên các cổng mở.
  • Bạn có thể sử dụng Wget, Netcat, Nmap, Curl và các công cụ khác để lấy banner từ các dịch vụ và giao thức
  • Banner có thể giúp bạn tập trung tấn công vào các dịch vụ cụ thể.
  • Ví dụ: khi sử dụng Nmap, hãy chạy lệnh sau để lấy một số thông tin cơ bản về IP đích:
    nmap -sV -p

Ví dụ:
Chạy lệnh sau để lấy thông tin về dịch vụ web trên máy chủ comptia.academy:
nmap -sV comptia.academy -p 80,443

Kết quả cho thấy (lưu ý chỉ là giả định):

  • Máy chủ web Apache 2.4.41 đang chạy
  • Hỗ trợ các phương thức HTTP như GET, POST, HEAD, OPTIONS
  • Có chứng chỉ SSL tự ký, sử dụng TLS 1.2 với các mật mã yếu như 3DES, RC4
  • Tiết lộ chi tiết như phiên bản PHP, OpenSSL, thư viện zlib đang dùng
    Nhờ đó đội ngũ PenTest có thể tập trung tìm kiếm và khai thác các lỗ hổng đã biết liên quan đến các dịch vụ, phiên bản cụ thể này.
  1. Vẽ bản đồ mạng
  • Sử dụng kỹ thuật dò tìm chủ động để thu thập thông tin về mạng:
  • Địa chỉ MAC và IP, cổng, dịch vụ và hệ điều hành
  • Loại thiết bị, máy ảo, tên máy chủ và giao thức
  • Mạng con và cách thức kết nối giữa các thiết bị.
  • Có bản đồ mô hình mạng rất có giá trị cho đội ngũ PenTest
  • Nó xác định sự lựa chọn công cụ và chiến lược khi chuyển sang giai đoạn tấn công.

Ví dụ:
Sử dụng các công cụ như Nmap, Zenmap, Maltego, đội ngũ PenTest đã xây dựng được sơ đồ chi tiết về mạng của tổ chức, bao gồm:

  • Mạng DMZ với 2 máy chủ web, 1 reverse proxy và hệ thống IPS
  • Mạng nội bộ chia thành 3 mạng con: văn phòng, phòng server và phòng lab
  • Hệ thống gồm 120 máy trạm chủ yếu dùng Windows 10, 15 máy chủ dùng Ubuntu Linux và CentOS
  • Máy chủ cơ sở dữ liệu quan trọng đặt trong phòng server, chạy Microsoft SQL Server 2019
  • Access point ở sảnh và phòng họp cung cấp kết nối Wi-Fi cho khách

Dựa trên bản đồ này, đội có thể xác định các mục tiêu tấn công tiềm năng như máy chủ web, máy chủ cơ sở dữ liệu, máy trạm người dùng cuối, điểm truy cập không dây. Họ sẽ chuẩn bị các cuộc tấn công và payload phù hợp nhất cho từng mục tiêu.

  1. Chạy quét
  • Quét dò các mục tiêu trên mạng để xác định các vấn đề:
  • Giao thức mã hóa và xác thực yếu
  • Lỗ hổng hệ thống và lỗi bảo mật
  • Thiếu tuân thủ các quy định về quyền riêng tư dữ liệu
  • Sau đây là một số trình quét lỗ hổng thông dụng:
  • Open Vulnerability Assessment Scanner (OpenVAS)
  • Nexpose Community Edition và Retina Community
  • Nessus/Tenable và Nmap

Ví dụ:
Đội PenTest sử dụng Nessus để quét toàn bộ dải mạng của tổ chức, phát hiện:

  • 5 máy tính cũ chưa cài bản vá hệ điều hành mới nhất, dễ bị tấn công khai thác SMB như WannaCry, NotPetya.
  • Máy chủ web bị dính 2 lỗ hổng nghiêm trọng là remote code execution và SQL injection do sử dụng phiên bản web server và ứng dụng lỗi thời.
  • Nhiều máy trạm bị cảnh báo về mật khẩu yếu, tài khoản không hoạt động, chia sẻ thư mục không cần thiết.
  • Điểm truy cập sử dụng giao thức bảo mật WEP dễ bị bẻ khóa, mạng Wi-Fi không phân tách khách và nội bộ.
  1. Các cân nhắc khi quét
  • Trong giai đoạn lập kế hoạch của PenTest, tổ chức sẽ xác định một số tham số trong phạm vi dự án
  • Thời gian chạy quét, giới hạn băng thông và hệ thống mong manh
  • Quét có thể là xâm nhập hoặc không xâm nhập.
  • Quét không xâm nhập mang tính thụ động và chỉ báo cáo các lỗ hổng đã xác định
  • Quét xâm nhập có thể xác định và sau đó khai thác các lỗ hổng.
  • Khi sử dụng quét xâm nhập, đội ngũ nên cẩn thận vì loại quét này có thể gây hại cho hệ thống.

Ví dụ:
Trước khi bắt đầu PenTest, đội ngũ và khách hàng thống nhất một số điều khoản trong hợp đồng:

  • Chỉ quét vào khung giờ 22h-6h để giảm thiểu ảnh hưởng đến hoạt động kinh doanh
  • Loại trừ khỏi phạm vi quét các máy chủ quan trọng X, Y, Z vì đang trong thời gian cao điểm
  • Không thực hiện các cuộc tấn công từ chối dịch vụ (DoS) gây gián đoạn hệ thống
  • Giới hạn băng thông quét ở mức 10 Mbps để tránh quá tải mạng
  • Nếu phát hiện lỗ hổng nghiêm trọng, phải báo cáo ngay cho đội ứng cứu sự cố để khắc phục
  • Cam kết bảo mật và không tiết lộ bất kỳ thông tin nhạy cảm nào thu được trong quá trình kiểm tra
  1. So sánh các loại quét khác nhau
  • Quét có thể bao gồm:
  • Ứng dụng web, mạng, ứng dụng và quét tuân thủ
  • Sau khi quét xong, xác thực bất kỳ lỗ hổng nào
  • Cách phổ biến nhất để xác thực là cố gắng khai thác các lỗ hổng và đưa ra bằng chứng về thành công.
  • Hãy nhớ các giới hạn của các công cụ quét khác nhau.
  • Sử dụng công cụ quét thực tế như OpenVAS hoặc Nexpose để tiến hành quét
    Tiếp theo dùng Metasploit để xác thực kết quả.
    Ví dụ:
    Đội PenTest chạy quét lỗ hổng ứng dụng web bằng Acunetix và phát hiện 5 lỗ hổng SQL injection trên trang example.com
    Tuy nhiên khi họ sử dụng sqlmap để khai thác các lỗ hổng này, chỉ có 2 lỗ hổng là thực sự có thể truy cập trái phép vào cơ sở dữ liệu. 3 lỗ hổng còn lại chỉ là kết quả dương tính giả do hạn chế của Acunetix.
    Sau khi quét bằng Nessus, họ dùng Metasploit để tấn công chiếm quyền điều khiển một máy chủ Linux thông qua lỗ hổng từ xa trong dịch vụ Samba. Việc này khẳng định mức độ rủi ro cao và cấp thiết của lỗ hổng, cần được ưu tiên xử lý.
    Các ví dụ trên cho thấy tầm quan trọng của việc sử dụng kết hợp nhiều công cụ và xác thực thủ công kết quả quét tự động, để có cái nhìn chính xác và đầy đủ về trạng thái bảo mật thực tế của hệ thống.
    II. Phát hiện hệ thống phòng thủ
    Xác định thiết bị cân bằng tải
    Trong quá trình quét, đội ngũ PenTest cần chú ý xác định các thiết bị như cân bằng tải (load balancer) có thể làm sai lệch kết quả dò tìm hoặc tấn công.
    Cân bằng tải giúp đảm bảo các máy chủ mạng nhận phản hồi cho yêu cầu kịp thời, cải thiện hiệu suất mạng.
    Đội ngũ có thể phát hiện sự hiện diện của bộ cân bằng tải bằng cách sử dụng ứng dụng Load Balancing Detector (lbd) trong Kali Linux
    Ngoài cân bằng tải, còn có các thiết bị khác có thể gây ra kết quả sai trên quét bảo mật:
    Proxy ngược, hệ thống ngăn chặn/phát hiện xâm nhập và tường lửa.
    Ví dụ:
    Khi quét trang web comptia.edu.vn, đội PenTest nhận thấy mỗi lần truy vấn đến một địa chỉ IP khác nhau, nghi ngờ đằng sau có load balancer.
    Sử dụng lbd, kết quả xác nhận comptia.edu.vn sử dụng cân bằng tải HAProxy với thuật toán Round Robin giữa 3 máy chủ web ở backend.
    Đội điều chỉnh cách tiếp cận, sử dụng tùy chọn -p trong sqlmap để duy trì session, đảm bảo tấn công luôn đến cùng 1 máy chủ để không bị gián đoạn.
    Trang admin.comptia.edu.vn lại luôn trả về địa chỉ IP duy nhất, cho thấy có sự hiện diện của reverse proxy. Thông tin này hữu ích cho các cuộc tấn công mạo danh và vượt qua kiểm soát truy cập.
    Nhận diện tường lửa
    Tường lửa được sử dụng để giám sát và kiểm soát lưu lượng trên mạng
    Tường lửa ứng dụng web (WAF) là tường lửa chuyên dụng, bảo vệ khỏi các cuộc tấn công phổ biến như XSS và SQLi.
    Đội ngũ có thể xác định WAF theo các cách sau:
    WAF có thể tiết lộ sự hiện diện của chúng bằng cách thêm cookie trong các gói tin HTTP.
    Một số sản phẩm WAF sử dụng kỹ thuật thay đổi tiêu đề (header alternation), thay đổi tiêu đề phản hồi ban đầu để gây nhầm lẫn cho kẻ tấn công.
    Một số WAF sẽ tự nhận diện qua thông báo phản hồi, ví dụ: <title>myDefender blocked your request</title>.
    Ví dụ:
    Khi truy cập comptia.academy, trình duyệt nhận được cookie có tên “ASP.NET_SessionId” và giá trị rất dài, tương tự mã hóa Base64. Đây là dấu hiệu của WAF F5 BIG-IP ASM.
    Gửi request có chứa từ khóa “‘ OR 1=1–” (dùng trong tấn công SQLi), server trả về status code 403 Forbidden và HTML chứa <title>Viettel WAF - Access Denied</title>, đã chặn và ngăn chặn request độc hại.
    Dù cố gắng encode và bypass theo nhiều cách, WAF Cloudflare vẫn nhận diện và chặn hầu hết các nỗ lực tấn công vào api.comptia.academy, buộc đội phải tìm vector khác.
    Kiểm tra tường lửa
    Đội ngũ sẽ kiểm tra tường lửa xem liệu các gói tin được tạo đặc biệt có thể vượt qua tường lửa vì một trong các lý do sau không:
    Gói phù hợp với quy tắc cho phép.
    Gói không khớp với quy tắc từ chối.
    Một lý do khác khiến gói đặc biệt có thể lọt qua là vì không phải tất cả tường lửa đều có khả năng kiểm tra phần payload.
    Trong một số trường hợp, gói có thể đã trượt qua vì Access Control List (ACL) không được định cấu hình chính xác.
    Ví dụ:
    Sử dụng nmap với tùy chọn -f (chia nhỏ gói tin), đội PenTest phát hiện tường lửa cho phép gói tin nhỏ hơn 32 byte đi qua mà không cần kiểm tra. Điều này mở ra khả năng đánh lừa và vượt qua tường lửa.
    Gửi các gói tin có địa chỉ nguồn giả mạo là từ mạng nội bộ, đội xác nhận tường lửa tin tưởng hoàn toàn lưu lượng từ “bên trong”, không filter, cho thấy sai lầm trong thiết lập chính sách.
    Thử nghiệm cho thấy tường lửa chỉ kiểm tra phần header của gói SSH, HTTPS nhưng không xem xét payload. Khi truyền mã độc trong phần mã hóa, tường lửa vẫn cho qua vì nghĩ đó là lưu lượng an toàn.
    Quét tường lửa
    Đội ngũ có thể quét cổng trên địa chỉ public của máy chủ hoặc tường lửa để xem cổng nào đang mở hoặc lắng nghe.
    Firewalk là một phương pháp khác để khám phá chi tiết của mạng
    Nó kết hợp traceroute và quét cổng để tìm ra chi tiết mạng nội bộ.
    Để hợp lý hóa quy trình, đội ngũ có thể sử dụng các công cụ tự động
    Ngoài các script nmap tùy chỉnh, còn có một số công cụ tự động để phát hiện WAF trên GitHub như Wafw00f và WAFNinja.
    Ví dụ:
    Chạy lệnh nmap -sS -O -p- -T4 -oA scan_result comptia.academy để quét toàn bộ các cổng của trang, kết quả cho thấy:
    Mở các cổng HTTP/80, HTTPS/443, SSH/22 và DNS/53
    Đóng và lọc các cổng email như SMTP/25, POP3/110, IMAP/143
    Hệ điều hành của máy chủ có thể là Linux kernel 2.6.x
    Tường lửa có vẻ như cho phép tất cả các gói tin ra ngoài từ bên trong
    Sử dụng WAFNinja, đội nhanh chóng xác định được trang sử dụng WAF Sucuri, dựa trên các hành vi và tính năng đặc trưng.
    Thông qua công cụ tùy chỉnh được lập trình bằng Python, đội dò quét và phát hiện được nhiều server ẩn trong mạng nội bộ thông qua việc phân tích thời gian phản hồi TTL của các gói tin trả về, cho dù các IP đó không thể truy cập trực tiếp từ bên ngoài (Firewalk).
    Tránh bị phát hiện bởi phần mềm diệt virus (AV)
    Nhìn chung, có một số cách để tránh bị phát hiện bởi AV:
    Tạo virus siêu biến hình (metamorphic), biến đổi trong quá trình lan truyền, khiến cho việc phát hiện mẫu trở nên gần như không thể.
    Làm rối mã hoặc mã hóa mã độc bằng các công cụ như Obfuscator, Crypter
    Sử dụng các công cụ hoặc mã chuyên biệt như mã độc không tệp tin (fileless) vốn sử dụng các chức năng sẵn có trong hệ điều hành, rất khó phát hiện.
    Ví dụ:
    Khi đội PenTest tạo một payload đơn giản bằng Metasploit và quét với VirusTotal, nó bị 30/60 động cơ AV phát hiện ngay lập tức.
    Sau khi sử dụng công cụ mã hóa Veil-Evasion kết hợp với Hyperion để đóng gói lại mã độc, tỷ lệ phát hiện giảm xuống chỉ còn 5/60.
    Cuối cùng, payload được viết lại hoàn toàn bằng ngôn ngữ Powershell, mã hóa, nén và chia thành nhiều lớp. Khi tải trong bộ nhớ và thực thi bằng kỹ thuật fileless, nó không bị bất cứ AV nào nhận diện và có thể qua mặt cả giải pháp EDR hàng đầu.
    Sử dụng Social Engineering Toolkit (SET)
    Kết hợp SET với Metasploit, đội ngũ PenTest có thể tạo payload độc hại
    Như virus, sâu, mã độc Trojan, và nhúng vào file PDF.
    Sau khi hoàn tất, đội có thể chạy kiểm tra để xem payload có bị phát hiện khi đưa vào mạng hay không.
    Ví dụ:
    Sử dụng SET và Metasploit, đội ngũ thực hiện các bước:
    Tạo file PDF nhiễm mã độc có tên “BaoCaoDoanhThu-Quy2.pdf”
    Soạn email giả danh giám đốc tài chính, đính kèm file PDF độc và gửi cho một số quản lý.
    30% mục tiêu mở file, 50% trong số đó bị nhiễm mã độc thành công.
    Mã độc kết nối ngược về máy tấn công và dump password, cho phép truy cập sâu hơn vào mạng nội bộ.
    Suốt 1 tuần sau đó, không có cảnh báo nào từ hệ thống AV/EDR của tổ chức.
    Qua các ví dụ trên, có thể thấy các biện pháp phòng thủ như AV, IPS, firewall có thể gây cản trở cho việc PenTest, nhưng vẫn tồn tại nhiều cách để vượt qua chúng nếu hiểu rõ nguyên lý hoạt động và có kỹ thuật tốt.
    Phần mềm diệt virus không phải là rào cản với mã độc tinh vi được thiết kế đặc biệt để tránh bị phát hiện. Vì vậy, cần phải kiểm tra và đánh giá toàn diện các biện pháp phòng vệ để xác định điểm yếu và nâng cao an ninh.
    III. Sử dụng các công cụ quét lỗ hổng
    Phân tích bề mặt tấn công (attack surface)
    Trong giai đoạn thu thập dấu vết và trinh sát, đội ngũ đã sử dụng nhiều công cụ OSINT khác nhau để thu thập thông tin.
    Ngoài ra, đội cũng có thể tận dụng các công cụ chuyên biệt cho từng loại mục tiêu trên mạng
    Các công cụ dựa trên web quét các mục tiêu từ xa để tìm máy chủ, dịch vụ và các chi tiết khác.
    Sử dụng Censys và OpenVAS
    Censys là một bộ phân tích bề mặtấn công, để xác định các hệ thống lộ diện trên Internet.
    Sau khi chạy quét, bạn có thể xem xét kỹ hơn các chi tiết:
    Dịch vụ đang chạy, cổng đang sử dụng, cùng với bất kỳ nhà cung cấp phần mềm nào được công nhận.
    OpenVAS sẽ liệt kê các lỗ hổng cùng với đánh giá rủi ro tổng hợp tóm tắt tình trạng chung của trang web được kiểm tra.
    Bên dưới phần tóm tắt, bạn sẽ thấy chi tiết bao gồm giá trị CVSS và số CVE.
    Ví dụ:
    Nhập địa chỉ comptia.edu.vn vào Censys và chạy quét, kết quả cho thấy:
    Website sử dụng web server Nginx phiên bản 1.16.1 trên nền tảng Ubuntu Linux
    Mở các cổng 80, 443, 22 và đang chạy dịch vụ OpenSSH 7.6, MySQL 5.7
    Sử dụng chứng chỉ SSL tự ký, hỗ trợ các giao thức bảo mật đã lỗi thời như TLS 1.0, 1.1
    Khi quét comptia.edu.vn bằng OpenVAS, phần tổng kết cho thấy mức độ rủi ro cao với hơn 10 lỗ hổng nghiêm trọng, CVSS trên 7.0, bao gồm:
    CVE-2018-15473: Lỗ hổng từ chối dịch vụ trong OpenSSH cho phép user enumeration
    CVE-2019-6111, CVE-2019-6110: Lỗ hổng trong PHP 7.x cho phép RCE và đọc dữ liệu tùy ý
    CVE-2019-20372: Lỗ hổng trong MySQL cho phép kẻ tấn công vượt qua xác thực
    Tạo gói tin (packet crafting)
    Trong quá trình PenTest, đội ngũ có thể sử dụng kỹ thuật tạo gói tin để:
    Kiểm tra các quy tắc tường lửa
    Vượt qua hệ thống phát hiện xâm nhập
    Hoặc gây ra từ chối dịch vụ.
    Có thể tạo gói tin bằng các phương pháp sau:
    Dòng lệnh, giao diện đồ họa, tùy chọn script hoặc công cụ chuyên dụng như Scapy, Hping
    Loại gói tin bạn tạo sẽ phụ thuộc vào sản phẩm tường lửa.
    Ví dụ:
    Đội PenTest sử dụng Hping3 để gửi các gói SYN liên tục đến cổng 80 của comptia.academy, mô phỏng cuộc tấn công DDoS:
    hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source comptia.academy
    Scapy được dùng để tạo gói UDP giả mạo với địa chỉ nguồn là máy chủ DNS nội bộ, cổng nguồn 53, gửi đến các máy trạm với nội dung là đoạn mã khai thác lỗ hổng CVE-2020-1350 (SigRed) trong Windows DNS Server.
    Đội cũng viết script Python sử dụng thư viện Socket và Struct để generate hàng nghìn gói SYN có địa chỉ nguồn ngẫu nhiên, tấn công máy chủ web theo kiểu “low and slow” mà rất khó phát hiện và ngăn chặn.
    Đánh giá ứng dụng Web
    Máy chủ web thường là mục tiêu của các cuộc tấn công từ bên ngoài, trong khi máy chủ cơ sở dữ liệu hầu như luôn nằm trên mạng nội bộ.
    Nếu bạn có quyền truy cập vào mạng nội bộ, bạn có thể thử quét máy chủ SQL trực tiếp bằng cách sử dụng cổng TCP 1433 hoặc UDP 1434.
    Kiểm tra xem bạn có thể chuyển các lệnh bất hợp pháp đến máy chủ SQL không
    Thử thực hiện tấn công SQL injection.
    Ví dụ:
    Sử dụng nmap quét cổng 1433 cho thấy MSSQL server ở comptia.academy chạy phiên bản lỗi thời 2008 R2:
    nmap -sV -p 1433 mssql.comptia.academy
    Dùng sqlmap để khai thác lỗ hổng SQL injection trên URL đăng nhập /login.asp:
    sqlmap -u "www.comptia.academy/login.asp" --data "username=admin&password=123" -p username --technique=U -a
    Sau khi leo thang đặc quyền thành công, đội PenTest có thể dump toàn bộ cơ sở dữ liệu người dùng, mật khẩu và các bảng quan trọng khác.
    Tiến hành quét bằng các trình quét lỗ hổng chuyên dụng cho database như Scuba hay DbPwAudit cũng cho thấy hệ thống không bật mã hóa, sử dụng mật khẩu yếu và tài khoản mặc định.
    Quét máy chủ web và cơ sở dữ liệu
    Một số khả năng để quét bao gồm:
    Máy chủ web trên TCP 80 hoặc 443 để tìm lỗ hổng đặc thù cho từng loại web server
    Máy chủ chạy trên các cổng không chuẩn
    Các lỗ hổng liên quan đến SQL injection của ứng dụng web
    Có nhiều trình quét lỗ hổng ứng dụng web sẵn có:
    Arachni, Skipfish, Grabber, Wapiti, OWASP ZAP và Metasploit Pro.
    Ví dụ:
    Sử dụng WhatWeb để xác định máy chủ web và các công nghệ đang chạy:
    whatweb -v comptia.academy
    Kết quả cho thấy sử dụng nginx/1.14.0, PHP/7.2.24 trên nền tảng WordPress 5.4.2
    Chạy WPScan để quét các lỗ hổng và mô-đun WordPress đã cài đặt:
    wpscan --url comptia.academy -e vp,vt,u
    Phát hiện một số plugin và theme lỗi thời, chưa được cập nhật, tiềm ẩn nguy cơ bị tấn công.
    Sử dụng Metasploit và searchsploit để tìm lỗi hổng đã công bố cho các phiên bản cụ thể, tải exploit tương ứng và chỉnh sửa để phù hợp với môi trường.
    Sử dụng SQLmap
    Công cụ mã nguồn mở để quét cơ sở dữ liệu
    Xác định và khai thác các lỗ hổng SQL injection.
    (Hình ảnh minh họa SQLmap)
    Kiểm tra lỗ hổng SSL/TLS
    Hầu hết các trang web ngày nay dựa vào các khái niệm mật mã như SSL/TLS để bảo vệ dữ liệu khỏi bị đánh cắp trong quá trình truyền tải.
    Do đó, đội ngũ cũng sẽ muốn kiểm tra các lỗ hổng:
    Lỗ hổng Logjam có thể làm suy yếu độ phức tạp của mã hóa
    Lỗ hổng Freak tấn công vào khóa RSA-export và có thể cho phép kẻ tấn công giải mã luồng giao tiếp
    Lỗ hổng Poodle thay đổi cách SSL 3.0 xử lý phần đệm (padding) ở chế độ cipher block để có thể chọn nội dung trong phiên SSL
    Ví dụ:
    Quét trang comptia.edu.vn bằng SSL Labs cho kết quả:
    Chỉ hỗ trợ các giao thức TLS 1.2 và TLS 1.3, đạt điểm A+
    Sử dụng chứng chỉ RSA 2048-bit, thuật toán băm SHA-256, cài đặt HSTS
    Không bị ảnh hưởng bởi các lỗ hổng Heartbleed, CCS, POODLE, FREAK…
    Đã vá lỗ hổng ROBOT vào tháng 12/2017
    Ngược lại, trang cũ comptia.academy chỉ đạt điểm C do:
    Vẫn cho phép kết nối SSL 3.0 và TLS 1.0
    Sử dụng chứng chỉ yếu RSA 1024-bit, hàm băm SHA-1
    Dễ bị tổn thương bởi tấn công POODLE, SWEET32
    Không bật HSTS, cho phép kết nối HTTP
    Sử dụng Nikto
    Có thể kiểm tra nhiều loại lỗ hổng:
    Anticlickjacking
    Tiêu đề X-Frame-options
    Các tệp tin nguy hiểm
    CGIs
    (Hình ảnh minh họa Nikto)
    Tổng kết:
    Quét lỗ hổng là một bước không thể thiếu trong quy trình PenTest. Nó giúp xác định các điểm yếu và lỗ hổng trong hệ thống, mạng, ứng dụng web và cơ sở dữ liệu của tổ chức. Từ đó lên kế hoạch để thử nghiệm, khai thác nhằm đánh giá nguy cơ và tác động thực tế của chúng.
    Khi thực hiện quét lỗ hổng, cần chú ý đến các khía cạnh như:
    Xác định phạm vi quét, tài sản quan trọng và các hệ thống dễ bị tổn thương.
    Sử dụng kết hợp nhiều loại công cụ, phương pháp quét khác nhau để có cái nhìn toàn diện.
    Cấu hình và điều chỉnh quá trình quét hợp lý, tránh gây tác động xấu đến hệ thống.
    Phân tích, xác minh thủ công các kết quả quét tự động, loại bỏ các cảnh báo sai.
    Tận dụng thông tin thu được về phiên bản ứng dụng, dịch vụ để tìm lỗ hổng phù hợp.
    Kiểm tra cả cấu hình và vá lỗi để đảm bảo các biện pháp phòng vệ hoạt động hiệu quả.
    Là một Pentester, cần có kiến thức nền tảng vững chắc về các kiểu lỗ hổng phổ biến và cách thức khai thác chúng. Đồng thời phải biết sử dụng thành thạo các công cụ quét thông dụng và tự động hóa quy trình bằng các tập lệnh.
    Khuyến nghị:
    Để nắm vững các kiến thức và kỹ năng cần thiết về kỹ thuật quét lỗ hổng, bạn nên tham gia khóa học CompTIA PenTest+ của CompTIA Vietnam tại website https://CompTIA.edu.vn
    Ngoài ra, bạn cũng có thể tự học thông qua bộ giáo trình CertMaster Learn, luyện tập với CertMaster Labs và kiểm tra kiến thức với CertMaster Practice từ CompTIA.
    Việc học tập nghiêm túc và thực hành chăm chỉ sẽ giúp bạn tự tin chinh phục kỳ thi CompTIA PenTest+ và trở thành một Pentester chuyên nghiệp.
    Tài liệu tham khảo:
    CompTIA PenTest+ Certification Exam Objectives (PT0-002)
    OWASP Web Security Testing Guide v4
    Vulnerability Assessment and Penetration Testing course, SANS Institute
    Metasploit: The Penetration Tester’s Guide by David Kennedy et al.
    The Basics of Web Hacking: Tools and Techniques to Attack the Web by Josh Pauli
    The Basics of Hacking and Penetration Testing by Patrick Engebretson

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ế.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Trending