GIỚI THIỆU CHUNG VỀ NMAP
Tổng quan về Nmap
Nmap (Network mapper) là một tiện ích mã nguồn mở và miễn phí dùng để khai thác thông tin mạng và kiểm tra bảo mật Nhiều quản trị viên hệ thống và quản trị viên network đã chứng minh sự hữu dụng của Nmap trong các tác vụ như kiểm tra mạng, quản lý dịch vụ và theo dõi thời gian hoạt động của máy chủ và dịch vụ
Nmap sử dụng các kỹ thuật tại có trong các gói IP cùng một số kĩ thuật tương tác nâng cao nhằm xác định máy chủ nào có sẵn trên mạng, những dịch vụ nào (tên ứng dụng và phiên bản OS) đang hoạt động, những bộ lọc packet / tưởng lửa nào đang sử dụng và hàng tá những đặc điểm khác
Nmap được thiết kế để nhanh chóng quét các mạng lớn nhưng đạt hiệu suất cao với một máy chủ duy nhất Nmap có thể hoạt động trên rất nhiều các hệ điều hành quen thuộc và các gói binary chính thức có sẵn trên Linux, Windows và Mac OS X. Ngoài lệnh Nmap thực thi nguyên bản, Nmap còn cung cấp giao diện phần mềm (Zenmap), một công cụ chuyển data, chuyển hướng linh hoạt và gỡ lỗi (Ncat), một tiện ích để so sánh kết quả (Ndiff) và một công cụ phân tích và tạo gói (Nping).
Nmap, the renowned network scanner, has gained widespread Anerkennung by industry experts and has been featured in prestigious publications such as Linux Journal, Info World, LinuxQuestion.org, and Codetalker Digest Its popularity extends beyond the security realm, as it has also made notable appearances in blockbuster films including The Matrix, Die Hard 4, and The Bourne Ultimatum, solidifying its reputation as a powerful and versatile tool.
Lịch sử của Nmap
Nmap được viết trên nền tảng C++ và được giới thiệu lần đầu tiên cùng với mã nguồn trong tạp chí Phrack vào tháng 9 năm 1997 Sau đó được mở rộng với C, Perl và Python Tác giả Gordon Lyon đã sử dụng bút danh Fyodor Vaskovitch FyodorVaskovitch cho biết sở dũ ông lựa chọn bút danh này là do ông đã bị ấn tượng mạnh sau khi đọc những dòng ghi chú của Fyodor Dostoevsky từ Underground.
Trong suốt những năm qua kể từ khi ra mắt, Nmap đã được hưởng lợi từ sự đóng góp lớn của cộng đồng người hâm mộ và các nhà phát triển đang không ngừng tăng và giờ đây ứng dụng này sở hữu số lượt tải xuống lên tới hàng ngàn lần mỗi ngày. Cùng với sự ủng hộ từ giới công nghệ, Nmap cùng đã được đông đảo công chúng, những người không có nhiều chuyên môn về an ninh mạng biết đến thông qua những bộ phim điện ảnh Trong những bộ phim này Nmap đã trở thành một công cụ đột phá cho các đạo diễn cùng với sự diễn xuất của các ngôi sao như Rihanna và Kate Mara. Nmap xuất hiện lần đầu trong bộ phim The Matrix Reloaded, trong đó nhân vật Trinity do Carrie-Anne Moss thủ vai đã cho thấy khả năng bẻ khóa bảo mật ấn tượng của cô bằng cách sử dụng phần mềm Nmap một cách chính xác.
Những ưu điểm của Nmap
Linh hoạt: Hỗ trợ hàng chục kỹ thuật tiên tiến cho việc tạo lập sơ đồ mạng với các thống kê về bộ lọc IP, firewall, router và các thành phần khác Với bao gồm nhiều cơ chế kĩ thuật port scanning (cả TCP và UDP), phát hiện hệ điều hành và phiên bản, ping sweeps và nhiều thứ hay ho khác.
Mạnh mẽ: Nmap đã được sử dụng để quét mạng lớn với hàng trăm nghìn máy.
Portable: Hỗ trợ hầu hết các hệ điều hành bao gồm Linux, Microsoft Windows,
FreeBSD, OpenBSD, Solaris, IRIX, Mac OS X, HP-UX, NetBSD, Sun OS, Amiga và nhiều hệ điều hành khác nữa.
Dễ dàng: Nmap cung cấp bộ tính năng nâng cao phong phú và mạnh mẽ cho người dùng, bạn có thể sử dụng lệnh đơn giản như “nmap –v –A targethost” Cả thao tác lệnh hay giao diện đều rất dễ và phù hợp với bạn Có bản cài đặt sẵn cho bạn nếu không thích biên dịch từ mã nguồn ra.
Miễn phí: Với mục tiêu nâng cao tính bảo mật của internet, dự án Nmap cung cấp cho quản trị viên hệ thống (hoặc tin tặc) một công cụ kiểm tra mạng miễn phí hoàn toàn Nmap được phát hành kèm theo mã nguồn đầy đủ, cho phép người dùng tải về, chỉnh sửa và phân phối lại theo các điều khoản của giấy phép cấp phép.
Tài liệu đầy đủ: bạn có thể tìm được tất cả tài liệu hướng dẫn về Nmap dễ dàng.
Hỗ trợ: Nmap là tiện ích mã nguồn mở, vì vậy nó được cộng đồng các nhà phát triển và người dùng hỗ trợ rất tốt Hầu hết các tương tác được gửi về mail Nmap.
Sự công nhận: Nmap nhận được nhiều giải thưởng bao gồm “sản phẩm bảo mật thông tin của năm” được trao bởi Linux Jonrnal, Info World và Codetalker Digest.
Nó được giới thiệu trong hàng trăm bài báo, các bộ phim, sách và truyện tranh.
Phổ biến: Hàng ngàn người download Nmap mỗi ngày và được sử dụng trong nhiều hệ điều hành như Redhat Linux, Debian Linux, Gentoo, FreeBSD…Nó nằm trong top 10 chương trình hàng đầu (trong số 30000 chương trình) tại kho lưu trữFreshmeat.net
Giao thức TCP
Hình 1.1 Cấu tạo gói tin TCP
Ta chỉ quan tâm tới Flags trong gói tin TCP nhằm mục đích sử dụng Scan Port:
- Thông số SYN để yêu cầu kết nối giữa hai máy tính.
- Thông số ACK để trả lời kết nối giữa hai máy có thể bắt đầu được thực hiện.
- Thông số FIN để kết thúc quá trình kết nối giữa hai máy.
- Thông số RST từ Server để nói cho Client biết rằng giao tiếp này bị cấm (không thể sử dụng).
- Thông số PSH sử dụng kết hợp với thông số URG.
- Thông số URG sử dụng để thiết lập độ ưu tiên cho gói tin này.
Thực tế các thông số này trong gói tin nó chỉ thể hiện là 1 hoặc 0 nếu 0 thì gói tin TCP không thiết lập thông số Nếu là 1 thì thông số nào được thực hiện nó sẽ lần lượt trong 8 bits trong phần Flag.
1.4.2 Khi Client muốn thực hiện kết nối TCP tới Server
Hình 1.2 Quá trình Client kết nối TCP tới Server
- Bước 1: Client gửi đến Server một gói tin SYN để yêu cầu kết nối.
- Bước 2: Server trả lời Client một gói tin SYN/ ACK.
- Bước 3: Khi Client nhận được gói tin SYN/ ACK sẽ gửi lại Server một gói ACK và quá trình trao đổi thông tin giữa hai máy bắt đầu
1.4.3 Khi Client muốn kết thúc một phiên làm việc với Server
Hình 1.3 Quá trình Client kết thúc một phiên làm việc với Server
- Bước 1: Client gửi đến Server một gói tin FIN ACK.
- Bước 2: Server gửi lại cho Client một gói tin ACK
- Bước 3: Server lại gửi cho Client một gói FIN ACK.
- Bước 4: Client gửi lại cho Server gói ACK và quá trình ngắt kết nối giữaServer và Client được thực hiện.
CÁC TÍNH NĂNG VÀ CÁCH SỬ DỤNG
Các giai đoạn của Nmap Scan
Các giai đoạn của Nmap Scan được trải qua như sau:
1 Giai đoạn khám phá mạng (Host Discovery): Trước khi bắt đầu quét cổng,
Nmap sẽ thực hiện một quá trình khám phá mạng để xác định các địa chỉ IP hoạt động trong mạng Điều này giúp xác định các máy chủ hoặc thiết bị mục tiêu cần được quét.
2 Giai đoạn xác định cổng (Port Scanning): Sau khi có danh sách các địa chỉ
IP hoạt động, Nmap sẽ thực hiện quét cổng để xác định các cổng mạng đang mở trên các máy chủ hoặc thiết bị đó Quét cổng cho phép Nmap phát hiện các dịch vụ đang chạy trên các cổng đó và đánh giá mức độ sẵn sàng và bảo mật của hệ thống.
3 Giai đoạn phát hiện dịch vụ (Service and Version Detection): Khi Nmap đã xác định được các cổng đang mở, nó tiếp tục kiểm tra các dịch vụ đang chạy trên các cổng đó Nmap sẽ gửi các yêu cầu thông tin đến các dịch vụ đó để xác định phiên bản, giao thức hoạt động và thông tin chi tiết khác về dịch vụ.
4 Giai đoạn xác định hệ điều hành (OS Detection): Nmap có khả năng xác định hệ điều hành đang chạy trên các máy chủ hoặc thiết bị trong mạng Bằng cách phân tích các phản hồi từ các gói tin mạng, Nmap đưa ra đánh giá về hệ điều hành mà mục tiêu đang sử dụng.
5 Giai đoạn khảo sát mạng (Network Scanning): Ngoài việc quét cổng và xác định hệ điều hành, Nmap còn cung cấp các tính năng khác như quét mạng và phân tích dải địa chỉ IP Điều này cho phép người dùng tìm kiếm các máy chủ, thiết bị và tài nguyên trong mạng một cách toàn diện.
Các trạng thái quét của Nmap
Trong quá trình scan ta có thể thấy trạng thái các cổng như sau:
- Open: đây là trạng thái khi Nmap phát hiện một cổng mạng đang mở trên mục tiêu, nghĩa là đang có một dịch vụ thực hiện kết nối ra bên ngoài nhưng không bị giám sát bởi tường lửa.
- Closed: Trạng thái này xảy ra khi Nmap không thể thiết lập kết nối tới cổng mạng Máy mục tiêu vẫn nhận và phản hồi, nhưng ko có ứng dụng nào đang nghe trên cổng đó Khi đó cổng được báo là đóng vẫn có thể cho ta biết host đang sống
- Filtered: Trạng thái này không thể xác định xem cổng đó mở hay đóng, đã có sự ngăn chặn bởi tường lửa.
- Unfiltered: Trạng thái "Unfiltered" đại diện cho cổng mạng đã xác định là không bị chặn bởi bất kỳ bộ lọc mạng nào, nhưng Nmap không thể xác định chắc chắn xem cổng đó mở hay đóng.
- Open/Filtered: không biết là cổng mở hay bị lọc Nó xảy ra đối với kiểu quét mà cổng dù mở nhưng không phản hồi gì cả nên biểu hiện của nó giống như bị lọc.
- Closed/Filtered: Trạng thái xuất hiện khi Nmap không biết được port đó đang
Closed hay Filtered Nó được sử dụng cho quét IPID Idle.
- Unspecified: Đây là trạng thái mặc định khi không có thông tin nào về trạng thái của cổng được tìm thấy.
Cách sử dụng Nmap cơ bản
2.3.1 Xác định mục tiêu cần quét
Nmap thường được sử dụng để kiểm tra an ninh mạng, lập bản đồ mạng, xác định các port đang mở và tìm kiếm các thiết bị trực tuyến.
Cú pháp đơn giản của lệnh nmap như sau: nmap [Options] [Target ]
Khi sử dụng Nmap, bước đầu tiên là xác định mục tiêu cần quét Mục tiêu này có thể là một tên miền, địa chỉ IP, một dải địa chỉ IP hoặc danh sách (tập tin) các địa chỉ IP và tên miền.
Ví dụ: Bảng xác định mục tiêu cần quét
Mục tiêu cần quét Câu lệnh thực thi
Quét 1 domain nmap google.com
Quét 1 danh sách các mục tiêu từ 1 file với tùy chọn -iL nmap -iL list.txt
Ví dụ cơ bản nhất của việc sử dụng Nmap là quét một mục tiêu như một người dùng tiêu chuẩn mà không chỉ định bất kỳ tùy chọn nào: nmap scanme.nmap.org
Khi được gọi với tư cách là người dùng không phải root không có đặc quyền, hãy chạy nmap quét kết nối TCP Dấu (-sT) được bật theo mặc định ở chế độ không đặc quyền. Đầu ra sẽ giống như thế này, bao gồm thông tin cơ bản về quá trình quét và danh sách các port TCP đang mở và được filter.
Starting Nmap 7.91 (https://nmap.org) at 2020-12-16 20:19 CET Nmap scan report for cast.lan (192.168.10.121)
1025/tcp open NFS-or-IIS
Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds.
Tùy chọn quét phổ biến nhất là TCP SYN scan (-sS) nhanh hơn tùy chọn kết nối và hoạt động dựa trên tất cả các ngăn xếp TCP tuân thủ.
-sS được bật theo mặc định khi nmap được gọi là người dùng có đặc quyền quản trị: sudo nmap 192.168.10.121 Để có kết quả chi tiết hơn, hãy sử dụng tăng độ dài bằng -v hoặc -vv: sudo nmap -vv 192.168.10.121 Để thực hiện quét UDP, hãy gọi lệnh với -sU tùy chọn () với tư cách là người dùng root: sudo nmap -sU 192.168.10.121 Để có danh sách đầy đủ các phương pháp quét port, hãy truy cập trang tài liệu Nmap.
Nmap cũng hỗ trợ địa chỉ IPv6 Để chỉ định một máy chủ IPv6, hãy sử dụng -6 tùy chọn: sudo nmap -6 fd12:3456:789a:1::1
2.3.2 Kỹ thuật về phát hiện máy chủ (Host Discovery)
List scan (-sL):Đưa ra một danh sách các host mục tiêu cần quét.
Ping scan (-sP): Nmap chỉ thực hiện ping scan, đưa ra trả lời các host Nó có thể sử dụng để đếm các máy trên mạng hoặc giám sát các máy Thường gọi là ping sweep, và nhiều tin cậy hơn ping địa chỉ broadcast bởi vì nhiều host không reply tới broadcast Lựa chọn –sP sẽ gửi ICMP echo và TCP ACK tới cổng mặc định 80 Một gói SYN được gửi và được sử dụng TCP connect system call tới cổng 80 của máy mục tiêu cần quét Khi một user quét một target trên một mạng local, ARP yêu cầu (-PR) được sử dụng trừ khi lựa chọn – send-ip là đặc biệt.
Disable ping (-PN): Nmap sử dụng để xác định máy đang hoạt động phục vụ cho việc quét Nmap sử dụng để xác định máy đang được hoạt động phục vụ cho việc quét Nmap chỉ thực hiện hành vi thăm dò như quét cổng, xác định phiên bản, hệ điều hành đối với các host đang được up Vô hiệu hóa máy chủ với lựa chọn –PN, nmap thử các chức năng quét các địa chỉ IP mục tiêu yêu cầu đặc biệt.
Kỹ thuật phát hiện máy chủ
Tại sao cần host discovery, đối với một mục tiêu xác định thì có vẻ không cần thiết nhưng đối với mục tiêu là một dải mạng với hàng nghìn host, việc quét hàng nghìn port trên mỗi host sẽ tốn rất nhiều thời gian vì vậy việc xác định các host đang chạy sẽ
Nhóm Dui dẻ 10 rút ngắn thời gian trong quá trình quét Nmap sử dụng một số kĩ thuật sau để thực hiện host discovery:
TCP SYN Ping (-PS ): Tùy chọn –PS sẽ gửi gói TCP trống với thiết lập cờ SYN Cổng mặc định là 80 Cũng có thể khai bảo một danh sách các cổng ví dụ: -PS22-25,80,113,1050,35000.
Hình 2.4 Ví dụ về kỹ thuật TCP SYN Ping
TCP ACK Ping (-PA ): TCP ACK tương tự như SYN Ping, nhưng có sự khác biệt là TCP ACK thiết lập thay vì cờ SYN Mục đích của gói ACK là thừa nhận việc thiết lập kết nối TCP Nếu không có kết nối như vậy, máy chủ từ xa sẽ gửi gói RST.
Lựa chọn -PA sử dụng cổng mặc định như thăm dò gói tin SYN 80 và cũng có thể đưa ra một danh sách các cổng trong một định dạng tương tự nhau.
Hình 2.5 Ví dụ về kỹ thuật TCP ACK Ping
Cố gắng ping chống lại Microsoft Gói tin bị firewall drops, dẫn đến Nmap sai kết luận nên host down.
Hình 2.6 Ví dụ về kỹ thuật TCP ACK Ping khi gói tin bị firewall drops
UDP Ping (-PU ): Một phát hiện khác với lựa chọn UDP ping là sẽ gửi gói tin UDP rỗng tới các port Một danh sách định dạng tương tự với PS và PA. Nếu không có cổng nào đặc biệt thì cổng mặc định là 31 và 338.
Một cổng đóng trên máy mục tiêu, thăm dò kiểu UDP có thể gợi ra một gói tin ICMP port unreachable Nhiều kiểu khác của ICMP lỗi như host/network unreachable hoặc vượt quá TTL hoặc unreachable host Nếu một cổng mở là đạt, hầu hết các dịch vụ đơn giản bỏ qua gói tin trống và fail để trả về bất kỳ trả lời nào.
Hình 2.7 Kỹ thuật UDP Ping
ARP Ping (sử dụng trong mạng LAN) -PR: Khi Nmap cố gắng gửi gói tin raw IP như ICMP echo request, hệ điều hành phải xác định địa chỉ phần cứng đích (ARP) tương ứng với địa chỉ IP đích Yêu cầu này là gửi một loạt các yêu cầu ARP.
ICMP Ping (-PE, -PP, -PM): Nmap gửi gói tin ICMP (-8 echo request) tới các địa chỉ đích, kiểu mong đợi là 0 (echo reply) trả về giá trị cho host Nhiều host và firewall bây giờ blog gói tin, không trả lời các yêu cầu khi Nmap gửi gói tin tới ICMP chỉ quét hiểm khi đủ tin cậy để khai thác thông tin trên mạng Nhưng đối với các quản trị viên hệ thống giám sát một mạng nội bộ, điều này có thể là một cách tiếp cận thực tế và hiệu quả khi sử dụng -PE để cho phép hành vi echo request.
Các tùy chọn quét và kỹ thuật chọn cổng
2.4.1 Các tùy chọn quét của Nmap
Quét TCP SYN (tùy chọn mặc định): Đây là phương pháp quét cổng mạng phổ biến nhất và tường lửa thân thiện nhất Nó gửi một gói tin SYN đến các cổng được chọn và xem xét phản hồi của máy chủ.
Quét TCP Connect: Phương pháp này tạo một kết nối TCP hoàn chỉnh đến các cổng được chọn để xác định xem chúng có mở hay không Tuy nhiên, nó ít phổ biến hơn do tạo ra nhiều lưu lượng mạng hơn so với TCP SYN.
Quét UDP: Quét UDP cho phép tìm kiếm các dịch vụ chạy trên giao thức UDP. Điều này hữu ích khi muốn kiểm tra các cổng mạng UDP như DNS, SNMP, hoặc DHCP.
Tùy chọn quét xác định hệ điều hành (OS detection) cho phép xác định hệ điều hành hiện đang chạy trên máy tính từ xa bằng cách phân tích các đặc tính mạng và cách máy tính đó gửi phản hồi.
Quét dịch vụ: Tùy chọn này cho phép xác định các dịch vụ đang chạy trên các cổng mạng được quét bằng cách xem xét các phản hồi từ các cổng mạng.
Quét từ điển (Brute-force): Tùy chọn này cho phép thực hiện tấn công từ điển bằng cách kiểm tra một danh sách các mật khẩu phổ biến trên các dịch vụ mạng như SSH hay FTP.
2.4.2 Kỹ thuật quét cổng của Nmap hỗ trợ
Nmap cung cấp một số kỹ thuật quét cổng để kiểm tra trạng thái của các cổng trên một máy chủ hoặc mạng Dưới đây là một số kỹ thuật quét cổng phổ biến của Nmap:
- TCP SYN Scan (quét SYN): Đây là kỹ thuật quét cổng mạng phổ biến nhất và mặc định của Nmap Nó gửi các gói tin SYN đến các cổng được chọn trên máy chủ và xem xét phản hồi để xác định trạng thái của cổng (mở, đóng hoặc lắng nghe).
- TCP Connect Scan (quét kết nối TCP):
Kỹ thuật này tạo một kết nối TCP hoàn chỉnh đến các cổng được chọn để xác định trạng thái của chúng Nmap thiết lập kết nối và kiểm tra xem có thể thiết lập được kết nối thành công hay không.
- TCP ACK Scan (quét ACK):
Kỹ thuật quét ACK sử dụng gói tin ACK để xác định trạng thái của các cổng. Nmap gửi các gói tin ACK tới các cổng được chọn và dựa vào phản hồi để xác định trạng thái của cổng (phản hồi RST hoặc không phản hồi).
- TCP Window Scan (quét cửa sổ TCP):
Kỹ thuật này sử dụng các giá trị cửa sổ TCP trong các gói tin để xác định trạng thái của các cổng Nmap gửi các gói tin TCP với các giá trị cửa sổ khác nhau và phân tích phản hồi để xác định trạng thái của cổng.
Quét UDP cho phép kiểm tra các cổng mạng UDP để xác định xem dịch vụ nào đang lắng nghe trên các cổng đó Nmap gửi các gói tin UDP đến các cổng được chọn và xem xét phản hồi để xác định trạng thái.
- ICMP Echo Scan (quét ICMP Echo):
Kỹ thuật này sử dụng các gói tin ICMP Echo (Ping) để xác định trạng thái của các máy chủ hoặc thiết bị mạng Nmap gửi các gói tin ICMP Echo và kiểm tra phản hồi để xác định xem máy chủ có phản hồi hay không. Đây chỉ là một số kỹ thuật quét cổng phổ biến của Nmap hỗ trợ Ngoài ra còn có:
- Xmas hay NULL (stealth) scanning
- TCP ftp proxy (bounce attack) scanning,
- SYN/FIN scanning thông qua IP (bypass một số bộ loc)
- TCP ACK và Window scanning
- UDP raw ICMP port unreachable scanning
- Direct (non portmapper) RPC scanning
- Nhận diện hệ điều hành bằng TCP/IP Fingerprinting
2.4.3 Kỹ thuật lựa chọn cổng khi quét
- Quét tất cả các cổng (All ports scan):
Sử dụng tùy chọn ‘-p-’ để quét tất cả các cổng từ 1 đến 65535 Ví dụ: ‘nmap -p- targetIP’ Điều này đảm bảo rằng không có cổng nào bị bỏ qua trong quá trình quét.
- Quét một số cổng cụ thể (Specific ports scan):
Sử dụng tùy chọn ‘-p’ để chỉ định các cổng cụ thể mà bạn muốn quét Ví dụ:
‘nmap -p 80,443,22 targetIP’ Bạn có thể liệt kê các cổng cách nhau bằng dấu phẩy.
- Quét các cổng phổ biến (Top ports scan):
Sử dụng tùy chọn ‘ top-ports’ để quét một số cổng phổ biến đã được xác định trước bởi Nmap Ví dụ: nmap ‘ top-ports 100 targetIP’ Bạn có thể chỉ định số lượng cổng (ở đây là 100) bạn muốn quét.
- Quét các cổng từ tệp tin danh sách (Port scan based on a list file):
Sử dụng tùy chọn ‘-p- -iL’ để quét các cổng được liệt kê trong tệp tin danh sách.
Ví dụ: nmap ‘-p- -iL portlist.txt’ Tệp tin danh sách (portlist.txt) chứa các cổng mà bạn muốn quét.
- Quét cổng ngẫu nhiên (Random ports scan):
NMAP SCRIPT ENGINE
Giới thiệu Nmap Script Engine
Nmap Scripting Engine (NSE) là một trong những tính năng linh hoạt và mạnh mẽ nhất của Nmap Nó cho phép người dùng được viết trên ngôn ngữ lập trìnhLua để viết, lưu và chia sẻ các tập lệnh có nhiệm vụ tự động hóa các kiểu quét khác nhau Các tập lệnh đó được thực thi song song với tốc độ và hiệu quả mong đợi từNmap Người dùng có thể dựa vào tập lệnh đang phát triển và đa dạng được phân phối với Nmap hoặc tự viết để đáp ứng nhu cầu tùy chỉnh Mặc dù thường được sử dụng để kiểm tra các lỗ hổng điển hình, các cơ sở hạ tầng mạng, nhưng tất cả các nhiệm vụ đều có thể được tự động hóa.
Các lệnh cơ bản NSE
Trong Nmap chúng ta gồm có 4 loại NSE scripts như sau:
- Host script: là một loại script được thực thi sau khi nmap đã thực hiện tác vụ của nó như quét những host, cổng mạng hay hệ điều hành…
- Prerule script: là một loại script được thực thi trước bất kì 1 tác vụ quét hay thu thập thông tin nào
- Service script: là loại script chạy để chống lại 1 service đang lắng nghe ở trên mục tiêu đang pentest
- Postrule sciprt: là loại script chạy sau khi Nmap thực thi scan mục tiêu
Vị trí của NSE script: Các script (.nse file) nằm trong thư mục script khi cài đặt Nmap, người dùng có thể tùy biến chỉnh sửa, thêm các scirpt khác.
Một số câu lệnh về sử dụng NSE để scan các lỗ hổng bảo mật trên hệ thống:
SSL-HEARTBLEED: Phát hiện lỗ hổng bảo mật OpenSSL Heartbleed bug (CVE-2014-0160).
Lệnh: #sudo nmap -sV -p 443 –script=ssl-heartbleed.nse ủ ụ
NMAP-VULNERS: NSE script giúp cung cấp thông tin về lỗ hổng có thể trên hệ thống dựa theo API của Vulners.com
Lệnh: #sudo nmap -sV script vulners [ script-args mincvss=]
FREEVULNSEARCH: Tập lệnh NSE để truy vấn các lỗ hổng thông qua API cve-search.org
Lệnh: #sudo nmap -sV script freevulnsearch ủ ụ
DEMO SỬ DỤNG NMAP VỚI MỘT SỐ TRƯỜNG HỢP
Phát hiện máy chủ (Host Discovery)
4.1.1 Quét danh sách (List scan) Để liệt kê các máy chủ, ta sử dụng chức năng quét danh sách Câu lệnh được sử dụng ở đây là nmap -sL online.hcmue.edu.vn Kết quả như sau:
Hình 4.8 Kết quả của list scan
- Tên miền được quét: online.hcmue.edu.vn
- Bản ghi rDNS cho địa chỉ IP 113.161.116.191: static.vnpt.vn
- Số lượng IP được quét: 1
- Số lượng máy chủ hoạt động: 0 (0 hosts up)
Kết quả cho thấy Nmap không tìm thấy bất kỳ máy chủ nào có phản hồi lại ICMP ping trong địa chỉ IP đã quét.
4.1.2 Quét Ping (Ping Sweep) Để tìm ra các máy chủ đang hoạt động trong mạng, ta sử dụng câu lệnh nmap
-sn online.hcmue.edu.vn Kết quả như sau:
Hình 4.9 Kết quả của ping sweep
- Tên miền được quét: online.hcmue.edu.vn
- Bản ghi rDNS cho địa chỉ IP 113.161.116.191: static.vnpt.vn
- Trạng thái của máy chủ: Máy chủ đang hoạt động (Host is up)
- Số lượng IP được quét: 1
- Số lượng máy chủ hoạt động: 1 (1 host up)
Kết quả cho thấy Nmap đã tìm thấy một máy chủ đang hoạt động tại địa chỉ IP đã quét.
Quét cổng (Port scanning)
4.2.1 TCP Connect Scan (-sT) Để xác địng các cổng TCP trên máy chủ có sẳn và có thể hay không, ta sử dụng câu lệnh: nmap -sT online.hcmue.edu.vn hoặc nmap tcp-connect online.hcmue.edu.vn
Hình 4.10 Kết quả của TCP connect scan
- Tên miền được quét: online.hcmue.edu.vn
- Bản ghi rDNS cho địa chỉ IP 113.161.116.191: static.vnpt.vn
- Trạng thái của máy chủ: Máy chủ đang hoạt động (Host is up)
- Số lượng IP được quét: 1
- Số lượng máy chủ hoạt động: 1 (1 host up)
- Port 80/tcp: Mở (open), dịch vụ là HTTP.
- Port 443/tcp: Mở (open), dịch vụ là HTTPS.
Kết quả cũng cho thấy có 998 cổng TCP bị lọc (filtered) và không có phản hồi. Điều này cho thấy rằng máy chủ online.hcmue.edu.vn có các dịch vụ HTTP (port 80) và HTTPS (port 443) đang chạy và có thể truy cập.
4.2.2 TCP SYN Scan (-sS) Để xác định xem các cổng TCP trên một máy chủ đích có sẵn và có thể truy cập hay không, ta sử dụng câu lệnh: nmap -sS online.hcmue.edu.vn hoặc nmap syn online.hcmue.edu.vn
Hình 4.11 Kết quả của TCP SYN scan
Kết quả cũng tương tự như TCP Connect Scan, tuy nhiên, thời gian quét cũng như độ trễ đều nhỏ hơn.
4.2.3 TCP ACK Scan (-sA) Để để kiểm tra trạng thái của các cổng mạng trên máy chủ, ta sử dụng câu lệnh nmap -sA online.hcmue.edu.vn Kết quả như sau:
Hình 4.12 Kết quả của TCP ACK Scan
Trong kết quả quét mạng, các cổng TCP ACK Scan bị đánh dấu là ignored (bỏ qua) hoặc filtered (bị chặn) do cấu hình của tường lửa hoặc bộ lọc mạng trên máy chủ.
Kết quả này cho thấy tất cả các cổng mạng trên máy chủ online.hcmue.edu.vn(địa chỉ IP 113.161.116.191) không phản hồi và bị chặn.
Nmap Script Engine (NSE)
Câu lệnh nmap -sC online.hcmue.edu.vn là câu lệnh chung dùng để chỉ định kịch bản NSE Kết quả như sau:
Hình 4.13 Kết quả của kịch bản NSE
Các thông tin kết quả như sau:
- Máy chủ (online.hcmue.edu.vn) đang hoạt động và phản hồi với độ trễ là
- Cổng 80 (HTTP) đang mở, và tiêu đề HTTP cho thấy có chuyển hướng đến HTTPS (https://online.hcmue.edu.vn/).
Cổng 443 (HTTPS) đang mở và có thể truy cập Thông tin chứng chỉ SSL, bao gồm chủ thể và tên thay thế, ngày hết hạn và những chi tiết khác, đều được cung cấp.
- Chứng chỉ SSL được phát hành cho miền *.hcmue.edu.vn và có hiệu lực từ ngày 28 tháng 11 năm 2022 đến ngày 30 tháng 12 năm 2023.
- Tiêu đề HTTP trên cổng 443 cho thấy đó là một "UP Portal ::
- Phân tích ngày SSL cho thấy ngẫu nhiên TLS không đại diện cho thời gian một cách chính xác.
- Các phương thức HTTP trên cổng 443 cũng được báo cáo, và phương thức TRACE được đánh dấu là có nguy cơ tiềm ẩn.
- Các cookie HTTP trên cổng 443 được phân tích, và các cookie ASP.NET_SessionId và BNES_ASP.NET_SessionId được đánh dấu là không có cờ bảo mật đã được đặt trong khi HTTPS đang được sử dụng.
Tổng thể, kết quả quét cho thấy máy chủ đích có dịch vụ HTTP và HTTPS đang hoạt động, cùng với các thông tin chi tiết về chứng chỉ SSL và một số vấn đề liên quan đến bảo mật liên quan đến cookie và phương thức HTTP.
Ngoài ra, có thể sử dụng các tuỳ chọn tiên tiến khác như script-args, script- trace, script-updatedb và nhiều tùy chọn khác.