Làm chủ Nuclei: ‘Sát thủ’ quét lỗ hổng Web và hạ tầng tự động

Security tutorial - IT technology blog
Security tutorial - IT technology blog

Đừng đợi ‘mất bò mới lo làm chuồng’

3 giờ sáng, điện thoại mình rung liên hồi vì cảnh báo server quá tải. Kiểm tra log thì tá hỏa: một IP lạ đang tung hơn 5.000 request mỗi phút để brute-force SSH. Dù có Firewall, nhưng mình đã chủ quan khi để sót một vài service chạy ngầm chưa cập nhật bản vá. Cảm giác ngồi gõ phím trong cơn buồn ngủ, vừa lo mất dữ liệu vừa cuống cuồng tìm chỗ hở để vá thực sự rất ám ảnh. Bài học xương máu rút ra là: Bạn phải là người tìm ra lỗi trước khi hacker kịp gõ cửa.

Trong giới Pentest và DevSecOps, Nuclei không còn là cái tên xa lạ. Khác với Nmap chỉ chuyên dò cổng hay Nessus nặng nề, Nuclei chọn hướng đi linh hoạt hơn. Nó quét lỗ hổng dựa trên các template (mẫu) viết bằng YAML. Điểm mạnh nhất là tốc độ. Khi một mã lỗi (CVE) mới vừa được công bố, cộng đồng thường tung ra template quét chỉ sau vài giờ. Hiện tại, kho template của Nuclei đã vượt con số 8.000 mẫu, bao phủ từ lỗi logic đến cấu hình sai.

Công cụ này giúp mình tự động hóa những việc nhàm chán như check lỗi XSS, SQL Injection hay rò rỉ file cấu hình trên hàng nghìn domain cùng lúc. Tất cả diễn ra chỉ trong vài phút thay vì ngồi test tay cả ngày.

Cài đặt Nuclei trong ‘một nốt nhạc’

Nuclei được viết bằng Go nên cực nhẹ. Nó chạy mượt trên cả Linux, Windows lẫn macOS. Nếu máy bạn đã có sẵn môi trường Go, việc cài đặt chỉ mất đúng một câu lệnh.

Cài đặt qua Go

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Cài xong, hãy gõ lệnh dưới đây để chắc chắn mọi thứ đã sẵn sàng:

nuclei -version

Cập nhật bộ não (Templates)

Lần đầu sử dụng, bạn cần tải về “trí khôn” cho Nuclei. Đây là tập hợp hàng nghìn mẫu quét từ những chuyên gia bảo mật hàng đầu thế giới:

nuclei -update-templates

Mẹo nhỏ: Mình thường treo Nuclei trên một con VPS Ubuntu giá rẻ (tầm 5$/tháng) để quét định kỳ 24/7 mà không lo nóng máy cá nhân.

Các lệnh thực chiến hay dùng

Sử dụng Nuclei rất dễ, nhưng để không bị ngộp trong hàng tá thông báo, bạn cần biết cách lọc kết quả thông minh.

1. Kiểm tra nhanh một trang web

Đây là cách đơn giản nhất để bắt đầu:

nuclei -u https://example.com

Nuclei sẽ tự phân tích và chọn những template phù hợp nhất để chạy. Nếu muốn soi kỹ hơn vào các lỗ hổng cụ thể, hãy dùng thêm flag -tags.

2. Quét theo mức độ ưu tiên

Khi thời gian có hạn, mình chỉ tập trung vào những lỗi cực kỳ nguy hiểm (Critical) hoặc lỗi cấu hình (Misconfig):

nuclei -u https://example.com -severity critical,high -tags misconfig,cve

Cách này giúp bạn loại bỏ các cảnh báo rác và tập trung xử lý ngay những lỗ hổng có thể làm sập hệ thống.

3. Càn quét hàng loạt (Bulk Scan)

Nếu bạn quản lý hàng trăm website, đừng quét từng cái. Hãy bỏ tất cả vào file targets.txt và chạy:

nuclei -list targets.txt -c 50

Flag -c 50 cho phép chạy 50 luồng cùng lúc. Tùy vào sức mạnh của server mà bạn có thể tăng con số này lên để kết thúc công việc nhanh hơn.

4. Tự chế ‘mắt thần’ cho riêng mình

Đôi khi bạn cần tìm một dấu hiệu đặc thù của mã độc trên server. Việc viết một template YAML mới rất đơn giản. Ví dụ, đây là cách mình check xem file .env có bị lộ ra ngoài không:

id: expose-env-file
info:
  name: Quét rò rỉ file .env
  severity: high
requests:
  - method: GET
    path:
      - "{{BaseURL}}/.env"
    matchers:
      - type: word
        words:
          - "DB_PASSWORD"
          - "APP_KEY"

Mất chưa đầy 2 phút viết code, bạn đã có ngay một công cụ quét lỗi độc quyền.

Quản lý kết quả và giám sát

Quét xong rồi thì đọc kết quả ở đâu cho tiện? Đừng dán mắt vào màn hình console đen sì nữa.

Xuất báo cáo để phân tích

Mình thường xuất ra file JSON để sau này dùng script Python lọc lại hoặc đẩy lên Dashboard:

nuclei -u https://example.com -json-export results.json

Nếu chỉ cần đọc nhanh, hãy dùng flag -o results.txt để lưu lại file text truyền thống.

Đưa bảo mật vào quy trình tự động (CI/CD)

Dân làm hệ thống nên tích hợp Nuclei vào GitHub Actions hoặc Jenkins. Mỗi khi code mới được đẩy lên, Nuclei sẽ tự động chạy một vòng quét cơ bản. Nếu có lỗi nghiêm trọng, nó sẽ bắn tin nhắn thẳng về Slack của team.

Kết hợp với công cụ notify, bạn sẽ có một hệ thống trực chiến cực kỳ xịn xò:

nuclei -u https://example.com | notify -provider slack

Kinh nghiệm thực tế khi dùng Nuclei

  • Đạo đức là trên hết: Chỉ quét những hệ thống mà bạn có quyền hoặc đã được xin phép. Đừng biến mình thành hacker mũ đen vì một phút tò mò.
  • Tool không bao giờ đúng 100%: Đôi khi Nuclei báo nhầm (False Positive). Khi thấy báo lỗi, hãy kiểm tra lại bằng tay trước khi cuống cuồng báo cáo với sếp.
  • Luôn làm mới bộ não: Lỗ hổng mới mọc lên như nấm mỗi ngày. Hãy tập thói quen chạy -update-templates mỗi sáng trước khi làm việc.

Làm chủ Nuclei không chỉ giúp hệ thống an toàn mà còn giúp bạn hiểu cách hacker tư duy. Chúc anh em triển khai thành công và giữ cho server luôn sạch bóng lỗi bảo mật!

Share: