HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
*******************
BÁO CÁO BÀI TẬP LỚN
MÔN: AN TOÀN HỆ ĐIỀU HÀNH
ĐỀ TÀI: TÌM HIỂU BỘ CÔNG CỤ NMAP
Giảng viên hướng dẫn
: Đỗ Quang Trung
Lớp
: AT10-L02
Sinh viên thực hiện
: Phạm Thế Hùng
Nguyễn Trung Nam
Giang Văn Thắng
Nguyễn Hữu Tú
Hà Nội – Năm 2016
NHẬN XÉT CỦA GIÁO VIÊN
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
2
2
LỜI CẢM ƠN
Trước tiên, chúng em xin gửi lời cám ơn chân thành tới tất cả các thầy, cô giáo
trường Học Viện Kỹ Thuật Mật Mã đã nhiệt tình giảng dạy và truyền đạt những kiến
thức nền tảng quý báu để chúng em có thể hoàn thành báo cáo.
Đặc biệt chúng em xin chân thành cảm ơn thầy giáo Đỗ Quang Trung đã hướng
dẫn, chỉ dạy chúng em các kiến thức tốt làm nền tảng để chúng em có thể hoàn thành
bản báo cáo này.
Mặc dù có nhiều cố gắng trong quá trình học tập cũng như trong thời gian thực
hiện báo cáo, nhưng với lượng kiến thức hạn hẹp nên báo cáo của chúng em không thể
tránh khỏi thiếu sót. Chúng em rất mong nhận được sự góp ý quý báu của tất cả các
thầy, các cô cũng như tất cả các bạn để báo cáo của chúng em được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
3
3
MỤC LỤC
4
4
DANH MỤC HÌNH ẢNH
5
5
DANH MỤC BẢNG BIỂU
DANH MỤC CHỮ VIẾT TẮT
TCP
Giao thức điều khiển truyền vận (Transmission Control Protocol)
UDP
Một trong những giao thức cốt lõi của giao thức TCP/IP (User Datagram
Protocol)
DNS
Hệ thống phân giải tên miền (Domain Name System)
IP
Giao thức Liên mạng (Internet Protocol)
ICMP
Giao thức điều khiển thông điệp Internet (Internet Control Message
Protocol)
IGMP
Giao thức quản lý nhóm (Internet Internet group management
protocol)
FTP
Giao thức chuyển tập tin (File Transfer Protocol)
XML
Ngôn ngữ đánh dấu mở rộng (Extensible Markup Language)
NSE
Công cụ tập lệnh Nmap (Nmap Script Engine)
ARP
Giao thức tìm địa chỉ (Address Resolution Protocol)
TTL
Thời gian sống (Time To Live)
SMTP
Giao thức truyền tải thư tín đơn giản (Simple Mail Transfer Protocol)
HTTP
Giao thức truyền tải siêu văn bản (HyperText Transfer Protocol )
6
6
TÓM TẮT NỘI DUNG ĐỀ TÀI
Đề tài:
Tìm hiều bộ công cụ Nmap.
Mục tiêu – Yêu cầu:
•
•
•
•
Tìm hiểu về bộ công cụ Nmap.
Tìm hiểu về cách hoạt động, cách sử dụng công cụ Nmap.
Áp dụng, thực hiện sử dụng bộ công cụ Nmap vào trường hợp cụ thể.
Thời gian hoàn thành báo cáo: 12/12/2016.
Kết quả đạt được:
• Hiểu về nguồn gốc, công dụng của bộ công cụ Nmap.
• Biết cách sử dụng, ứng dụng bộ công cụ Nmap.
• Hoàn thành báo cáo, thuyết trình báo cáo đầy đủ.
7
7
LỜI NÓI ĐẦU
Trong thời đại ngày nay, vai trò của Công nghệ Thông tin và Internet ngày
càng vô cùng quan trọng. Điều này kéo theo phần lớn các ngành kinh tế phụ
thuộc vào máy vi tính. Chính vì vậy, nhiều ý đồ phá hoại đã nhắm vào hệ thống
này, và cũng không loại trừ khả năng đối thủ cạnh tranh nhau, do đó để bảo đảm
máy tính hoạt động trơn tru, liên tục đòi hỏi hệ thống phải trang bị những công
cụ, những biện pháp phòng thủ, những hệ thống cảnh báo, bảo mật cao nhằm
chống lại những tin tặc (hacker). Chúng ta biết rằng hacker có 2 loại, hacker mũ
đen và hacker mũ trắng. Hacker mũ đen là những tay tinh quái và thông minh vô
cùng, họ không chỉ giỏi về khả năng lập trình mà còn giỏi về cả mạng, giao thức
mạng, họ có thể lợi dụng những lỗi nhỏ nhất từ đó khai thác và tấn công hệ
thống máy chủ, gây thiệt hại lớn nếu đó là 1 doanh nghiệp lớn, 1 tập đoàn lớn,
hay ngân hàng… Quả thật thiệt hại do hacker gây ra quá lớn ảnh hưởng nghiêm
trọng đến người dùng máy tính. Vì vậy nhằm chống lại những hacker mũ đen,
những hacker mũ trắng không ngừng nâng cao kiến thức cũng như sự nhạy bén,
cẩn thận, tư duy sáng tạo không ngừng nhằm ngăn chặn, bảo vệ người dùng máy
tính, tạo nơi người dùng sự tin cậy cũng như những thông tin, tài khoản, kế
hoạch, dự án của họ sẽ hoàn toàn được bảo mật an toàn tuyệt đối. Và dù là
hacker mũ đen hay mũ trắng thì thứ mà bài báo cáo này chúng em đề cập đến là
một trong những công cụ đắc lực để giúp các chuyên gia bảo mật hay cả tin tặc
thực hiện “mục đích” của mình, đó chính là bộ công cụ Nmap (Network
Mapped), được phát triển bởi Flydor Vaskovich và công bố lần đầu tiên vào
tháng 9 năm 1997. Nó đã trở nên ngày càng nổi tiếng, đạt được rất nhiều giải
thưởng cũng như được sử dụng bởi hàng triệu chuyên gia bảo mật hay cả các
hacker trên toàn thế giới. Và để hiểu rõ hơn về nó, bài báo cáo này sẽ mang đến
cái nhìn tổng quan cũng như tác dụng rõ ràng và kèm đó là hướng dẫn sử dụng
một cách cơ bản và dễ hiểu nhất về bộ công cụ Nmap – cánh tay phải của các
chuyên gia bảo mật. Xin chân thành cảm ơn!
8
8
NỘI DUNG CHÍNH
CHƯƠNG I: GIỚI THIỆU CHUNG
1.1. NGUYÊN TẮC TRUYỀN THÔNG TCP
1.1.1. CẤU TẠO GÓI TIN TCP
TCP Là giao thức hướng kết nối (connection-oriented) nghĩa là khi muốn
truyền dữ liệu thì phải thiết lập kết nối trước. Kết nối TCP hỗ trợ cơ chế fullduplex (truyền và nhận dữ liệu cùng một lúc). Ngoài ra, nó còn cung cấp cơ chế
đánh số gói tin (sequencing): để ráp các gói tin cho đúng ở điểm nhận, cung cấp
cơ chế báo nhận (Acknowledgement) và đặc biệt là nó có thể phục hồi dữ liệu
không may bị mất trên đường truyền.
Hình 1. . Cấu tạo gói tin TCP
9
9
Ở đây ta chỉ để ý tới các thiết lập Flag 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.
- Toàn bộ các thông số này trong gói tin nó chỉ thể hiện là 1 hoặc 0 nếu là
0 thì gói tin TCP không thiết lập thông số này, 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.1.2. QUÁ TRÌNH MỘT PHIÊN LÀM VIỆC TCP VỚI SERVER
Khi Client muốn thực hiện một kết nối TCP với Server:
Hình 1. . Quá trình Client khởi tạo kết nối TCP với Server
-
Bước 1: Host A gửi cho B một gói tin có cờ SYN được bật lên.
Bước 2: Host B nhận được gói tin thì B gửi lại gói tin có cờ SYN được
bật lên, kèm theo đó là cờ ACK (để xác nhận).
10
10
-
Bước 3: Sau khi kết nối đã được thiết lập thì A gởi tin để đáp ứng nhu
cầu của B. Và chỉ có cờ ACK được bật lên bởi gói tin bước 3 được dùng
để báo nhận cho gói tin bước 2.
Khi Client muốn kết thúc một phiên làm việc với Server:
Hình 1. . Quá trình Client kết thúc phiên làm việc TCP 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ữa Server và Client được thực hiện.
1.2. NGUYÊN TẮC QUÉT CỔNG TRÊN MỘT HỆ THỐNG
1.2.1. TCP SCAN
Trên gói TCP/UDP có 16 bít dành cho Port Number điều đó có nghĩa nó có
tử 1-65535 port. Không thể một hacker nào lại scan toàn bộ các port trên hệ
thống, chúng chỉ scan những port hay sử dụng nhất thường chỉ sử dụng từ port 1
tới port 1024. Dựa vào nguyên tắc truyền thông TCP ta có thể biết được trạng
thái các port trên hệ thống máy mục tiêu.
-
SYN Scan: Khi Client gửi gói SYN với một thông số Port nhất định tới
Server nếu Server gửi về gói SYN/ACK thì Client biết Port đó trên
Server được mở. Nếu Server gửi về cho Client gói RST/SYN thì biết
port đó trên Server đóng.
11
11
Hình 1. . SYN Scan
-
FIN Scan: Khi Client chưa có kết nối tới Server nhưng vẫn tạo ra gói
FIN với số port nhất định gửi tới Server cần scan. Nếu Server gửi về gói
ACK thì Client biết Server đó mở port. Nếu Server gửi về gói RST thì
Client biết Server đó đóng port.
Hình 1. . FIN Scan
-
NULL Scan: Client sẽ gửi tới Server những gói TCP với số port nhất
định cần scan mà không chứa các thống số Flag như : FIN, URG, PSH,
nếu Server gửi lại gói RST thì biết port đó trên Server bị đóng.
Hình 1. . NULL Scan
-
XMAS Scan: Client sẽ gửi những gói tin TCP với số port nhất định cần
scan chứa nhiều thông số Flag như: FIN, URG, PSH. Nếu Server trả về
gói RST tôi biết port đó trên Server bị đóng.
12
12
Hình 1. . XMAS Scan
-
TCP Connect: Phương thức này rất thực tế nó gửi đến Server những
gói tin yêu cầu kết nối thực tế tới các port cụ thể trên Server. Nếu Server
trả về gói SYN/ACK thì Client biết port đó mở, nếu Server gửi về gói
RST/ACK thì Client biết port đó trên Server bị đóng.
Hình 1. . TCP Connect Scan
-
ACK Scan: dạng Scan này nhằm mục đích tìm những Access Controll
List trên Server cố gắng kết nối tới Server bằng gói ICMP nếu nhận
được gói là Host Unreachable thì Client sẽ biết port đó trên server đã bị
lọc.
13
13
Hình 1. . TCP ACK Scan
Ngoài ra còn có các loại scan trong TCP scan dễ bị tấn công như:
-
RPC Scan: Cố gắng kiểm tra xem hệ thống có mở port cho dịch vụ
RPC không.
- Windows Scan: Tương tự như ACK Scan, nhưng nó có thể chỉ thực
hiện trên một số port nhất định.
- FTP Scan: Có thể sử dụng để xem dịch vụ FTP có được sử dụng trên
Server hay không.
1.2.2. UDP SCAN
Nếu như gói tin truyền bằng TCP để đảm bảo sự toàn vẹn của gói tin sẽ
luôn được truyền tới đích. Gói tin truyền bằng UDP sẽ đáp ứng nhu cầu truyền
tải dữ liệu nhanh với các gói tin nhỏ. Với quá trình thực hiện truyền tin bằng
TCP kẻ tấn công dễ dàng Scan được hệ thống đang mở những port nào dựa trên
các thông số Flag trên gói TCP.
UDP là loại giao thức connectionless (nghĩa là có gói tin nào là đẩy ngay
vào đường truyền mà không cần thiết lập các kết nối trước).
UDP không đảm bảo tính tin cậy khi truyền dữ liệu và không có cơ chế
phục hồi dữ liệu (nó không quan tâm gói tin có đến đích hay không, không biết
gói tin có bị mất mát trên đường đi hay không).
14
14
Cấu tạo gói UDP:
Hình 1. . Cấu tạo gói tin UDP
Như ta thấy gói UDP không chứa các thông số Flag, cho nên không thể sử
dụng các phương thức Scan port của TCP sử dụng cho UDP được. Thật không
may hầu hết hệ thống đều cho phép gói ICMP.
Nếu một port bị đóng, khi Server nhận được gói ICMP từ client nó sẽ cố
gắng gửi một gói ICMP type 3 code 3 port với nội dung là "unreachable" về
Client. Khi thực hiện UDP Scan bạn hãy chuẩn bị tinh thần nhận được các kết
quả không có độ tin cậy cao.
1.3.
GIỚI THIỆU BỘ CÔNG CỤ NMAP
Nmap (Network Mapper) là một công cụ quét, theo dõi và đánh giá bảo
mật một hệ thống mạng được phát triển bởi Gordon Lyon (hay còn được biết
đến với tên gọi Fyodor Vaskovich) được công bố lần đầu tiên vào tháng 9 năm
1997. Kết hợp hàng chục kĩ thuật tiên tiến, dễ dàng vượt qua các bộ lọc từ hệ
thống như các bộ lọc IP, tường lửa, bộ định tuyến và một số bộ lọc khác. Bao
gồm cả cơ chế quét port (TCP và UDP), phát hiện hệ điều hành, phát hiện phiên
bản, quét ping và có thể sử dụng để quét hệ thống mạng lớn với hàng trăm ngàn
máy tính.
15
15
Hình 1. . Logo của công cụ Nmap
Nmap là phần mềm mã nguồn mở miễn phí, ban đầu chỉ được phát triển
trên nền tảng Linux sau đó được phát triển trên nhiều nền tảng khác nhau như
Windows, Solari, Mac OS… và phát triển thêm phiên bản giao diện người dùng
(zenmap).
Nmap đã góp phần giúp cho mạng Internet ngày càng bảo mật hơn cũng
như cung cấp cho các quản trị viên/ kiểm thử viên/ hacker có môt công cụ tiên
tiến để khám phá mạng của họ. Nmap tải về miễn phí, và kèm theo đó là mã
nguồn bạn có thể chính sửa và phân phối lại theo các điều khoản được phép.
Nmap được trao rất nhiều giải thưởng, bao gồm cả giải “Sản phẩm bảo mật
công nghệ thông tin của năm” theo tạp chí Linux. Hàng nghìn người dùng tải về
Nmap mỗi ngày và bao gồm trên rất nhiều hệ điều hành. Nmap nằm trong Top
10 (trên tổng 30,000) phần mềm tại trang Freshmeat.Net và được hỗ trợ bởi một
cộng đồng các nhà phát triển và người dùng vô cùng lớn như Facebook và
Twitter.
Một số chức năng của nmap:
16
16
-
Phát hiện host trong mạng.
Liệt kê các port đang mở trên một host.
Xác định các dịch vụ chạy trên các port đang mở cùng với phần mềm và
phiên bản đang dùng.
- Xác đinh hệ điều hành của thiết bị.
- Chạy các script đặc biệt.
- v.v …
17
17
CHƯƠNG II: HƯỚNG DẪN SỬ DỤNG BỘ CÔNG CỤ NMAP
2.1.
CÁC GIAI ĐOẠN CỦA NMAP SCAN
Bây giờ chúng ta đã nhìn thấy một số ứng dụng của Nmap, chúng ta hãy
nhìn vào những gì sẽ xảy ra khi một Nmap chạy. Trong giai đoạn tiến hành quét,
mỗi giai đoạn hoàn thiện trước khi một giai đoạn kế tiếp bắt đầu. Như bạn có thể
nhìn thấy từ các mô tả giai đoạn dưới đây, Nmap có thêm nhiều tác dụng hơn
việc chỉ để quét cổng.
Script pre-scanning: Các Nmap Scripting Engine (NSE) sử dụng một tập
hợp các script chuyên dụng để đạt được nhiều thông tin về hệ thống từ xa. NSE
không được thực hiện trừ khi bạn yêu cầu với các tùy chọn như --script hoặc
-sC, và giai đoạn trước khi quét chỉ xảy ra khi kịch bản đó cần được lựa chọn.
Giai đoạn này là cho các script mà chỉ có thể chạy một lần mỗi Nmap thực hiện
chứ không phải chạy riêng biệt chống lại các mục tiêu cá nhân. Ví dụ như phát
hiện DHCP và phát hiện dịch vụ broadcast dns, truy vấn sử dụng phát sóng để
có được thông tin từ các dịch vụ mạng phổ biến.
Target enumeration: Trong giai đoạn này, Nmap nghiên cứu các máy chủ
chỉ định được cung cấp bởi người sử dụng, mà có thể là một sự kết hợp của các
tên máy chủ DNS, địa chỉ IP, ký hiệu mạng CIDR và nhiều hơn nữa. Bạn thậm
chí có thể sử dụng (iR) để hỏi Nmap để lựa chọn mục tiêu của bạn dành cho
bạn! Nmap giải quyết những chỉ định vào một danh sách các địa chỉ IPv4 hay
IPv6 để quét. Giai đoạn này không thể bỏ qua kể từ khi nó là điều cần thiết cho
chức năng quét sâu hơn, nhưng bạn có thể đơn giản hóa việc xử lý bằng cách chỉ
các địa chỉ IP để Nmap không phải làm độ phân giải lên phía trước. Nếu bạn
vượt qua các tùy chọn -n -sL (danh sách quét với độ phân giải không đảo ngược
DNS), Nmap sẽ in ra các mục tiêu và không thực hiện quét thêm.
Host discovery (ping scanning): Quét mạng thường bắt đầu khi phát hiện
ra có mục tiêu trên mạng đang trực tuyến và do vậy giá trị điều tra sâu hơn. Quá
trình này được gọi là Host discovery hoặc Ping scanning. Nmap cung cấp
18
18
nhiều kỹ thuật phát hiện máy chủ, từ yêu cầu ARP nhanh chóng để xây dựng kết
hợp của TCP, ICMP, và các loại đầu dò. Giai đoạn này được chạy theo mặc định,
mặc dù bạn có thể bỏ qua nó (đơn giản giả định tất cả các IP mục tiêu đang trực
tuyến) bằng cách sử dụng (không ping) tùy chọn -Pn. Để thoát sau khi phát hiện
máy chủ, xác định -n -sn.
Reverse-DNS resolution: Khi Nmap đã xác định mà chủ để quét, nó sẽ tra
cứu những tên reverse-DNS của tất cả các host tìm thấy trực tuyến bằng cách
ping quét. Đôi khi tên của một máy chủ cung cấp manh mối về chức năng của
nó và cái tên làm các báo cáo dễ đọc hơn ngoài việc cung cấp duy nhất số IP.
Bước này có thể được bỏ qua với các tùy chọn: -n (không có phân giải) hoặc mở
rộng để bao gồm tất cả các IP đích (ngay cả những cái tắt) với -R (giải quyết tất
cả).
Port scanning: Đây là hoạt động cốt lõi của Nmap. Những thăm dò được
gửi đi và các câu trả lời (hoặc không phản ứng) với những thăm dò được sử
dụng để phân loại cổng từ xa vào các trạng thái như open, closed hoặc filtered.
Đó là mô tả ngắn gọn không bắt đầu để bao gồm nhiều loại scan của Nmap, lập
cấu hình scan và các thuật toán để cải thiện tốc độ và độ chính xác. Port
scanning được thực hiện theo mặc định, mặc dù bạn có thể bỏ qua nó với tùy
chọn -sn và vẫn thực hiện một số các traceroute sau và giai đoạn Nmap Scripting
Engine một phần bằng cách xác định tùy chọn dòng lệnh đặc biệt (chẳng hạn
như --traceroute và --script).
Version detection: Nếu bất kỳ cổng được tìm thấy sẽ được mở, Nmap có
thể xác định những phần mềm server đang chạy trên hệ thống từ xa. Nó làm điều
này bằng cách gửi một loạt các thăm dò đến các cổng mở và phù hợp với bất kỳ
phản ứng với một cơ sở dữ liệu của hàng ngàn của hơn 6.500 chữ ký dịch vụ
được biết đến.
OS detection: Nếu được yêu cầu với tùy chọn -O, Nmap tiến hành để phát
hiện hệ điều hành. Hệ điều hành khác nhau thực hiện các tiêu chuẩn mạng bằng
19
19
những con đường tinh vi khác nhau. Bằng cách đo những khác biệt, nó thường
có thể để xác định hệ điều hành chạy trên một máy chủ từ xa. Nmap phù hợp
phản ứng với một bộ tiêu chuẩn của thăm dò đối với một cơ sở dữ liệu của hơn
một ngàn phản ứng hệ điều hành được biết đến. Ví dụ về scan hệ điều hành bằng
nmap, có thể thấy tỉ lệ trùng khớp với các hệ điều hành bằng %, % càng cao thì
tỉ lệ máy chủ đang sử dụng hệ càng lớn.
Hình 2. . Nmap OS Detection
Traceroute: Nmap có một thực hiện traceroute tối ưu hóa, kích hoạt tùy
chọn --traceroute. Nó có thể tìm ra router mạng tới nhiều host song song, sử
dụng các gói tin thăm dò có sẵn tốt nhất theo quy định của các giai đoạn phát
hiện trước đó của Nmap. Traceroute thường liên quan đến một vòng phân giải
ngược DNS cho các host trung gian. Ví dụ về traceroute đến địa chỉ 8.8.8.8 của
Google:
20
20
Hình 2. .Nmap Traceroute
Script scanning: Hầu hết các script Nmap Scripting Engine (NSE) chạy
trong giai đoạn Script scanning này, chứ không phải là giai đoạn prescan và
postscan. NSE được cung cấp bởi ngôn ngữ lập trình Lua và một thư viện chuẩn
được thiết kế để thu thập thông tin mạng. Script chạy trong giai đoạn này thường
chạy một lần cho mỗi host đích và số cổng tương tác với chúng. Họ thường thực
hiện các nhiệm vụ như phát hiện lỗ hổng dịch vụ, phát hiện phần mềm độc hại,
thu thập thêm thông tin từ cơ sở dữ liệu và các dịch vụ mạng khác. Và tiên tiến
hơn là phát hiện phiên bản. NSE không được thực hiện trừ khi bạn yêu cầu với
các tùy chọn như --script hoặc -sC. Ví dụ NSE để xem dịch vụ được chạy trên
port 80:
Hình 2. . Nmap Script Scanning
21
21
Output: Nmap thu thập tất cả các thông tin đã thu thập được và viết nó vào
màn hình hoặc vào một tập tin. Nmap có thể viết ra trong một số định dạng. Mặc
định của nó, định dạng có thể đọc được (định dạng tương tác). Nmap cũng cung
cấp một định dạng đầu ra dựa trên XML. Ví dụ câu lệnh truy xuất dữ liệu quét
được ra một file text, ở đây chính là file scan.txt:
Hình 2. . Nmap Output
Còn đây là nội dung được ghi lại trong file text.
Hình 2. . Nmap TEXT Output
22
22
Nmap cung cấp nhiều tùy chọn để kiểm soát việc của những giai đoạn này
chạy. Để quét các mạng lớn, mỗi giai đoạn được lặp đi lặp lại nhiều lần kể từ khi
giao dịch với các host trong nhóm nhỏ Nmap. Nó quét mỗi nhóm hoàn toàn và
kết quả đầu ra những kết quả, sau đó chuyển sang các đợt tiếp theo của host.
2.2.
CÁC TRẠNG THÁI KẾT QUẢ CỦA NMAP
Open Port: Một ứng dụng tích cực chấp nhận kết nối các gói tin của TCP
và UDP, ngoài ra còn có cả SCTP trên cổng này. Các Open Port thường là nơi
thực hiện các Scan Port vì những kẻ tấn công thường nhằm vào các cổng đang
mở này để tấn công, song song với tấn công thì các quản trị viên cố gắng đóng
các Open Port hoặc bảo vệ người dùng hợp pháp bằng firewalls. Cổng mở thì
không an toàn bởi chúng khi bị quét sẽ thể hiện các dịch vụ đang chạy khi sử
dụng trên mạng.
Closed Port: Một cổng đóng có thể truy cập (nó nhận và phản ứng với các
gói tin thăm dò của Nmap), nhưng không có ứng dụng nào được gửi và lắng
nghe trên đó. Closed Port hữu ích trong việc cho thấy các máy chủ đang online,
sử dụng một địa chỉ IP và một phần của hệ điều hành. Closed Port có thể truy
cập nên nó có thể được quét cổng trường hợp một số cổng được mở ra. Người
quản trị có thể chặn cổng như với ứng dụng firewall.
Port filtered: Nmap không thể xác định bất kỳ cổng nào đang mở bởi vì
gói tin được lọc và ngăn cản trước khi tiến tới cổng. Filtering có thể từ một thiết
bị tường lửa, router rules, hoặc phần mền host-base firewall. Các cổng này làm
thất bại các kể tấn công bởi vì chúng cung cấp quá ít thông tin. Đôi khi chúng trả
lời với gói tin ICMP lỗi như kiểu 3 mã 13 (destination unreachable:
communication administratively prohibited), nhưng filter đơn giản là drop các
thăm dò không trả lời phổ biến.
Port Unfiltered: Đây là gói tin không được lọc có nghĩa là một cổng truy
cập, nhưng Nmap là không thể xác định xem nó là cổng mở hoặc cổng đóng.
Chỉ có ACK scan, được sử dụng để map firewalls rulesets và phân loại các cổng
23
23
trong trạng thái này. Quét cổng sử dụng các Scan Port như: Window scan, SYN
scan, hoặc FIN scan, có thể giúp giải quyết vấn đề an ninh cho dù các cổng được
mở.
Port open|filtered: Nmap đặt cổng ở trạng thái này khi nó là không thể xác
định được một cổng đang được mở hay lọc. Điều này xả ra khi các cổng mở
không đưa ra các trả lời phản hồi với các Scan Port dùng cho cổng mở. Không
trả lời phản hồi cũng có thể có nghĩa là một bộ lọc gói tin bị ngắt quãng hoặc
đáp ứng bất kỳ gợi ra. Nmap không biết chắc rằng cổng đang mở hay đang được
filtered. Scan kiểu UDP, IP protocol, FIN, NULL và Xmas là một trong những
cách để quét cổng dạng này.
Port closed|filtered: Trạng thái này được sử dụng khi Nmap là không thể
xác định liệu một cổng đang được đóng lại hay đang lọc. Nó chỉ được sử dụng
cho các IP ID idle quét để xác định tình trạng của máy chủ.
2.3. SỬ DỤNG NMAP CƠ BẢN
2.3.1. XÁC ĐỊNH MỤC TIÊU CẦN QUÉT
Việc đầu tiên khi sử dụng Nmap là phải xác định được mục tiêu cần quét,
mục tiêu ở đây có thể là 1 domain, 1 IP, 1 dải địa chỉ IP, 1 danh sách (file) các IP
và domain. Ví dụ:
Mục tiêu cần quét
Câu lệnh thực thi
nmap 192.168.1.1
nmap 192.168.1.1/24
nmap google.com
nmap -iL list.txt
Quét 1 IP
Quét 1 dải IP
Quét 1 domain
Quét 1 danh sách các mục tiêu từ 1
file với tùy chọn -iL
Bảng 2. . Xác định mục tiêu cần quét
Ngoài ra có thể kết hợp thêm các tùy chọn sau để kết quả scan thu được
đúng ý muốn và có chọn lọc hơn:
24
24
Tùy chọn
Ý nghĩa
-iL <inputfilename>
Chọn danh sách mục tiêu
-iR <num hosts>:
Chọn mục tiêu ngẫu nhiên.
--exclude <host1[,host2][,host3],...>
Bỏ qua các host.
--excludefile <exclude_file>
Chọn danh sách bỏ qua.
Bảng 2. . Tùy chọn khi quét mục tiêu
2.3.2. KỸ THUẬT PHÁT HIỆN MÁY CHỦ (HOST DISCOVERY)
Tại sao cần phát hiện máy chủ (Host Discovery), đối với 1 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à 1 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ẽ 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:
Host Discovery Techniques
TCP SYN PING
TCP ACK PING
UDP PING
ICMP Ping Type
IP Protocol Ping
ARP Scan
Câu lệnh thực thi
-PS
-PA
-PU
-PE, -PP, -PM
-PO
-PR
Bảng 2. .Host Discovery Techniques
GIẢI THÍCH CHI TIẾT:
Nếu chỉ định option -P... option này sẽ thay thế default discovery probe thay vì
add thêm vào.
TCP SYN PING (-PS)
-PS gửi đi gói tin TCP rỗng được set SYN flag. Port mặc định là 80. Bình
thường khi port closed, gói tin RST được gửi trả về. Khi port open, gói tin
SYN/ACK được gửi trả về. Khi đó, nmap sẽ đóng kết nối mới chuẩn bị mở bằng
cách gửi gói RST thay vì gói ACK để hoàn thành three-way-handshake và thiêt
lập full connection. Ở đây nmap không quan tâm port mở hay đóng. Chỉ cần biết
25
25