NỘI DUNG
Kết thúc nội dung Penetration Testing Step 1.b – Port Scanning với “hàng nóng” Nmap, kỳ này tôi sẽ chuyển sang Step 2 là Vulnerability Scanning (Step 1.b Active Information Gathering cũng còn một số nội dung khác cần giới thiệu, nhưng tôi sẽ quay lại sau).
Trong nội dung đợt này, tôi sẽ không cắm đầu vô demo ngay mà sẽ dạo đầu với một số thông tin quan trọng liên quan đến Vulnerability Scanning trước. Ngoài ra, tôi cũng sẽ giới thiệu quá trình cài cắm một Vulnerability Scanner rất phổ biến là Nessus để làm bước đệm cho phần demo trong kỳ tới.
#1. Manual vs Automated Vulnerability Scanning
Vulnerability Scanning có thể chia thành 2 phương án là:
- Manual Vulnerability Scanning: Sử dụng các kỹ năng/ công cụ để rà soát vulnerabilites kiểu thủ công mỹ nghệ. Kiểu này rất tốn thời gian nhưng kết quả sẽ chính xác hơn, đặc biệt là với các hệ thống target phức tạp;
- Automated Vulnerability Scanning: Sử dụng tool tự động như Nessus hoặc Nmap để chơi kiểu công nghiệp. Ưu điểm của phương án này là nhanh, khỏe thân nhưng kết quả thường không chính xác bằng Manual Vulnerability Scanning. Ngoài ra, một số Scanner có thể có dạng Configuration (cấu hình) có khả năng làm sập hệ thống (ví dụ khi chơi kiểu brute-force) nên cần đặc biệt lưu ý trước khi bấm chạy.
Về cơ bản, quá trình Automated Vulnerability Scanning cũng phải bao gồm các bước giống như Manual Vulnerability Scanning (nhưng phần lớn Scanner nó sẽ làm, bạn chỉ thiết lập Configuration rồi ngồi rung đùi chờ kết quả thôi). Quá trình sẽ bao gồm các bước chính như sau:
- Dò coi target có đang chạy không;
- Thực hiện full/partial port scan;
- Xác định hệ điều hành dựa vào các dấu hiệu đặc trưng;
- Xác định services đang chạy dựa vào các kỹ thuật như banner grabbing, service behavior hoặc file đặc thù;
- Thực thi signature-matching để dò vulnerabilities.
#2. Lưu ý trước khi chạy Automated Vulnerability Scanning
Để tối thiểu hóa nguy cơ làm sập hệ thống cũng như tăng hiệu quả của quá trình scanning, khi sử dụng Automated Vulnerability Scanner, bạn cần lưu ý:
- Cập nhật signature database của Scanner trước khi chạy để có thể hốt được các vulnerabilities mới nhất;
- Giao lưu phối hợp sâu rộng với Manual Vulnerability Scanning để hạn chế False Positive/ False Negative (tức là mấy tình huống có vulnerabilities mà scan không thấy hoặc báo vulnerabilities sai) song song với việc giảm tải các manual task mà bạn phải làm;
- Việc bố trí Scanner nằm trong cùng Local Network với target sẽ có thể tăng tốc độ xử lý, quyền truy cập và dữ liệu thu thập (nhưng khả năng làm sập hệ thống target cũng sẽ cao hơn). Với Internet-connected target, các hệ thống bảo vệ như Firewalls/ Intrusion Prevention Systems – IPS có thể đánh chặn Scanner từ vòng gửi xe đạp thông qua việc chặn truy cập đến host/port dẫn đến che đậy thành công các vulnerabities của target;
- Đa phần Scanner cho phép cấu hình để chạy Authenticated Scanning (login vào hệ thống target với credentials chính chủ) để thu thập nhiều thông tin với độ chính xác cao hơn Unauthenticated Scanning. Với Linux target, bạn sẽ chơi kiểu bật SSH trên target lên rồi cho cấu hình credential cho Scanner xông vào đọc thông tin packet version và configuration tương ứng. Với Windows target, bạn có thể sẽ cần cấu hình Windows Management Instrumentation – WMI (bạn có thể bơi vào đây – Windows Management Instrumentation – Wikipedia để đọc thêm nếu cần), credential chuẩn (domain hoặc local account với remote management permissions) cũng như thiết lập User Account Control – UAC và Firewall tương ứng. Khi đã ngon ăn thì Scanner sẽ có thể bay vô phân tích system configuration, registry settings, application/system patch levels cũng như rà soát file trong Program Files, các dạng file thực thi và DLLs file trong thư Windows folder để dò ra các vulnerabilities tiềm ẩn.
#3. Cài đặt Vulnerability Scanner quốc dân – Nessus
#3.1 Câu chuyện bên lề về Vulnerability Scanner Nessus (chuyện bên lề nhưng nên biết để tránh bị ăn hành)
Bàn về Vulnerability Scanning Tools, bạn sẽ có rất nhiều lựa chọn với nhiều khuôn mặt nổi bật như Burp Suite, Nessus, Nmap, Netsparker,…Mỗi thằng đều có thế mạnh (và điểm yếu) riêng nên bạn cần xem xét xài kết hợp nhiều thằng chứ đừng chơi solo với một thằng duy nhất.
Do vậy, tôi sẽ cố gắng giới thiệu về mấy đối tượng này nhiều nhất có thể. Và như đã nói ở phần đầu, kỳ này tôi sẽ tập trung vô thằng Nessus trước.
Nessus nguyên thủy là open source nhưng đã bị chuyển thành dạng “đóng” từ năm 2005. Nếu vẫn thích chơi với open source, bạn có thể dùng OpenVAS.
Tuy nhiên, dù đã “đóng”, Nessus vẫn cho phép bạn đăng ký phiên bản Essentials scan maximum lên đến 16 IP (không giới hạn tính năng/ thời gian) nên để nghiên cứu, vọc vạch thì cứ vô tư nhé.
Điều kế tiếp cần lưu ý là đám Vulnerability Scanner (hay cụ thể hơn là Nessus trong trường hợp này) rất hao tổn tài nguyên (cấu hình đề xuất cỡ 2 CPU + 8GB RAM trở lên) nên bạn cần chọn thiết bị (hoặc cấu hình Virtual Machine) cho phù hợp.
#3.2 Download và kiểm tra Checksum của Vulnerability Scanner Nessus
Để download Nessuss, bạn mò vào trang Download Nessus | Tenable®. Tại đây, bạn sẽ tha hồ quẹo lựa tùy theo nhu cầu Windows/Linux/MacOS… Vì đám Scanner như Nessus sẽ ngốn nhiều tài nguyên nên triển trên MacOS sẽ hơi chát. Vì vậy ở đây, tôi sẽ demo trên 2 thằng “thân thiện” với ví tiền hơn là Windows và Linux.
Với Windows, bạn có thể múc thằng bên dưới ở trang download.
Lưu ý: Nhớ kiểm tra Checksum như tôi đã đề cập trong nội dung Giải ngố Cryptography – Phần 2: Đảm bảo Integrity với Hashing Algorithm.
Với Linux (cụ thể ở đây tôi đang dùng Kali Linux), bạn có thể xúc thằng sau ở trang download.
Như trên, bạn cũng có thể kiểm tra Checksum của file cài dặt với command sha256sum <filename>
.
#3.3 Đăng ký (và sửa lỗi) trong quá trình cài đặt Vulnerability Scanner Nessus
Quá trình cài đặt Nessus trên Windows khá trực quan tương tự như các software thông thường nên tôi không bàn gì thêm. Các vấn đề phát sinh (nếu có) tôi sẽ trình bày gộp chung với trường hợp con Kali Linux luôn cho gọn.
Với Kali Linux, sau khi kiểm tra Checksum bạn có thể tiến hành cài đặt với command:
sudo apt install ./<filename>
Sau đó bạn chạy service với command:
sudo /bin/systemctl start nessusd.service
Rồi truy cập Nessus Web Client tại:
https://kali:8834
Lưu ý: Trên con Windows, bạn sẽ thấy kiểu như https://localhost:8834
.
Vì đây là hàng tự dựng nên bạn sẽ gặp lỗi báo cái HTTPS vớ vẩn. Tuy nhiên, với tình huống này thì bạn có thể Accept Risk and Continue (bạn nên xem kỹ hơn về HTTPS như tôi giới thiệu trong nội dung Giải ngố WWW – Phần 3: HTTPS có gì ngon hơn HTTP).
Kế đến bạn sẽ cần chọn Nessus product. Vì đang muốn xài chùa để vọc vạch nên bạn sẽ triển với thằng Nessus Essentials
Tại đây bạn sẽ cần đăng ký để lấy activation code.
Lưu ý:
- Nếu bạn đã đăng ký và có activation code thì có thể chọn Skip rồi điền thông tin code vô thôi;
- Nếu quá trình đăng ký bị lỗi bạn có thể truy cập trực tiếp vô trang Obtain an Activation Code | Tenable® để lấy activation code.
Nếu mọi chuyện êm đẹp thì Nessus sẽ bắt đầu chạy và hốt các plugins cần thiết về (cái này chạy cũng hơi mất thời gian đấy).
Nếu đời không như mơ, bạn bị lỗi đâu đó trong quá trình này thì có thể thử lại với phương án dùng command line như sau:
cd /opt/nessus/sbin/
sudo ./nessuscli update
Kết quả thành công (nếu chơi command line mà cũng bị lỗi thì bạn đi tắm rửa cúng kiến giải hạn cái đi rồi hãy chạy lại) sẽ kiểu như sau.
Lúc này khi truy cập Nessus Web Client bạn sẽ thấy trang đăng nhập để chuẩn bị chiến đấu như sau.
Rồi thôi bữa nay đến đây tạm dừng đi. Kỳ tới tôi sẽ bàn kỹ về phần configuration và demo chạy thử một lượt luôn cho gọn đẹp.
1 thought on “Penetration Testing Step 2 – Vulnerability Scanning và 3 điều cơ bản cần biết”