- Nmap là một công cụ khá hữu ích dành cho người làm chuyên về ngành security. Nmap có khả năng quét các hệ thống và tìm ra lỗi, những cổng chưa đóng trên hệ thống giúp cho người quản trị tiết kiệm được thời gian và công sức khi bảo trì. Nmap còn có thể cho ta biết thông tin chi tiết về hệ thống, rất thuận tiện khi ta muốn kiểm tra nhanh thông tin một hệ thống nào đó. Tuy nhiên thì Nmap do là một công cụ quét cổng khá mạnh, nên cũng dược các hacker thường xuyên dùng để quét lỗi và xâm nhập vào các hệ thống nạn nhân, thậm chí gửi các gói tin làm tràn hệ thống đích. Do đó với những kiến thức về Nmap, hy vọng các bạn sẽ có cho mình những kiến thức cơ bản về việc đảm bảo an ninh cho hệ thống của mình ngày càng tốt hơn trước những cuộc tấn công hay xâm nhập lấy cắp thông tin qua mạng.
- Zenmap là công cụ mang giao diện đồ hoạ của Nmap, dễ sử dụng với chỉ vài thao tác click chuột. Bạn không cần phải nắm các lệnh và tham số khó nhớ, phức tạp của Nmap, vì các lựa chọn và thông tin đã có sẵn.
Ta có mô hình mẫu sau:
Với mô hình này, máy tính nạn nhân không cần phải là máy sử dụng hệ điều hành cho Server, nó có thể là một máy client bất kỳ nào đó. Máy scanner cần cài đặt sẵn Nmap/Zenmap và các driver cần thiết, như WinPcap hay tương tự.
Để có thể quét được mạng nội bộ, máy scanner cần được đặt theo lớp mạng cùng với máy nạn nhân cần quét.
- Intense scan (nmap -T4 -A -v <target>):
Cách scan này có 3 option:
- -A ra lệnh cho Nmap cố gắng tìm phiên bản của hệ điều hành đích, các dịch vụ và các thông số chi tiết giúp nhận dạng hệ điều hành đích. Option này cũng thực hiện traceroute (tìm đường đi) và dùng các mã lệnh NSE để tìm thêm các thông tin phụ trợ. Option này khiến cách scan này không được bí mật vì nó cộng khá nhiều kiểu scan vào 1 lần scan.
- -v giúp hiển thị thông tin scan một cách tường minh hơn, dễ hiểu hơn.
- -T4 là tuỳ chọn về mẫu tính thời gian (timing template) với các giá trị T khác nhau, từ T0 đến T5, T5 là nhanh nhất. Tuỳ chọn này chính là cách bạn cho Nmap biết bạn muốn Nmap làm việc nhanh hay chậm. Tốc độ khác nhau sẽ dùng cho các mục đích khác nhau.
Như kết quả trên hình các bạn thấy, Intense Scan đã phát hiện ra được 2 cổng TCP đang mở trên hệ thống đích, port 80 (HTTP) và port 443 (HTTPS)
Có 2 cách scan Intense khác nhau, một dành cho giao thức TCP và 1 dành cho giao thức UDP.
Trên đây thể hiện hình ảnh Zenmap với cách scan Intense chuyên cho các port TCP. Cách scan này chỉ thêm 1 option là –p, chỉ định scan các port TCP từ 1-65535.
Cách scan Intense có port UDP thêm option –sU như hình dưới. Option –sS để Nmap dùng cách thức TCP SYN Scan nhằm tìm ra thêm các port UDP khác.
Intense plus UDP scan đã tìm ra được 2 port UDP đang mở trên hệ thống nạn nhân, port 137 (remote desktop) và port 5353 (DNS multicast).
Click sang phần Host Details, các bạn có thể thấy những thông tin về máy nạn nhân mà Nmap đã lọc ra:
- Host Status: bao gồm state (trạng thái, up hoặc down), tổng số port đang mở, các port đã đóng, các port đã được scan, thời gian mà hệ thống đã được mở, lần cuối cùng hệ thống nạn nhân được bật là khi nào.
- Addresses: IPv4, IPv6 và địa chỉ MAC của hệ thống nạn nhân.
- Hostname: tên máy nạn nhân, thông tin domain của máy nạn nhân
- Operating System: tên hệ điều hành kèm theo khả năng chính xác bao nhiêu phần trăm do Nmap đánh giá dựa vào quá trình scan. Sau đó là thông tin các service đang được bật, các port trên hệ thống nguồn, port nào đóng, port nào mở.
Còn 1 cách Intense Scan nữa, không ping (thêm option –Pn) và cũng cho ta những thông tin tương tự như các cách scan Intense trên. Tuy nhiên do không ping để chứng thực host nên cách scan này sẽ mặc định nghĩ rằng host đang còn sống. Cách scan này hữu ích khi bạn đã biết host sống và không cần kiểm tra lại, và host nạn nhân có chặn gói ICMP (ping).
- Ping scan (nmap –sn <target>):
Cách scan này chỉ đơn giản là ping hệ thống đích để xác nhận host đích còn sống hay đã ngắt.
- Quick scan (nmap –T4 –F <target>):
Quick scan tương tự như Intense scan, tuy nhiên chỉ scan 100 port TCP phổ biến, do đó nhanh hơn rất nhiều so với Intense Scan. Cách này được thực hiện bằng cách thêm option –F (fast scan) vào lệnh scan.
Hai biến thể khác của nó là Quick Scan Plus và Quick Traceroute:
- Quick Scan plus giống với Quick scan nhưng thêm vào 2 option –sV (Service detection scan, dùng để dò service và phiên bản của service) và –version-light (option của –sV và –A) giới hạn lại số probe gửi đến service trong quá trình scan.
- Quick Traceroute dùng Ping scan và option –traceroute (tìm đường) để dò đường đi trong mạng, tìm các host và các routers trong mạng.
- Regular scan (nmap <target>):
Cách scan mặc định của Nmap. Không có option phụ trợ.
- TCP SYN Scan sẽ được dùng để scan 1000 port TCP phổ biến nhất
- Gói ICMP (ping) sẽ được gửi kèm để nhận diện host.
- Slow comprehensive scan (nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 –script “default or (discovery and safe)” <target>)
Cách scan đầy đủ nhất, nhưng cũng chậm nhất của Zenmap GUI. Cách scan này phối hợp tất cả các hình thức scan trước, và kết hợp rất nhiều option trong đó. Có thể xem đây là Intense Scan plus UDP và cộng thêm 1 số tính năng phụ.
Cách scan này tự nguỵ trang bằng cách giả làm source port 53 (DNS).
Các options không có mặt trong các cách scan trước đó:
- -sN: TCP Null Scan, gửi các gói TCP nhưng không có cờ nào trong TCP Header được thiết đặt. Gói RST (reset) sẽ được gửi trả, nghĩa là port đó đang đóng, nếu không có gì trả về thì port đang mở.
- -O bắt Nmap tìm xem phiên bản hệ điều hành nạn nhân đang sử dụng là gì.
- -PE là tham số giúp Nmap quyết định cách kiểm tra host, cụ thể đây quyết định xem Nmap có nên dùng gói ICMP Echo (ping) để kiểm tra host hay không.
- -PP giống –PE nhưng lần này Nmap sẽ gửi gói ICMP Timestamp hay vì Echo. Các gói này sẽ được gửi nhằm đồng bộ timestamp của các node với nhau trong quá trình giao tiếp. Sau này nó đã được thay thế bằng các protocol khác.
- -PS dựa vào cơ chế của port 80 (HTTP) gửi trả về gói SYN trống giống như trong quá trình bình thường của giao thức TCP, để xác định host có sống hay không. Có thể thay đổi port 80 thành 443 (HTTPS) tuỳ trường hợp.
- -PA giống –PS nhưng gửi gói TCP với cờ ACK được bật. Gói RST trả về cho biết không có request để ACK cho thấy sự tồn tại của host. Option này dùng port 3389 (remote desktop) để tăng cơ hội thành công so với các option khác.
- -PU gửi một gói UDP tới port mặc định 40125 nhằm nhận được gói ICMP Host Unreachable từ nạn nhân.
- -PY giống như TCP SYN Scan nhưng dùng giao thức SCTP (Stream Control Transmission Protocol).
- -g xác định port mà bạn muốn dùng (để giả hiệu).