Trong thời đại công nghiệp 4.0 hiện nay, thì vai trò của Công nghệ Thông tin nói chung và Internet nói riêng ngày càng vô cùng quan trọng. Điều này kéo theo đa phần các doanh nghiệp, công ty hay các tổ chức đều phải phụ thuộc vào máy vi tính. Chính vì vậy, luôn có nhiều ý đồ phá hoại đã nhắm vào hệ thống này, và yếu tố từ những sự cạnh tranh trên thị trường chính là một trong những nguyên nhân phổ biến khiến các hệ thống của các công ty tổ chức đó được nhắm đến. Do vậy để bảo đảm rằng các hệ thống, 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. Một trong những bộ công cụ được các chuyên gia an ninh mạng sử dụng và đề xuất đến đó chính là bộ công cụ Nmap (Network Mapped) một công cụ bảo mật được dùng để giám sát mạng, nó đượ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ó đã và đang ngày cảng trở nên nổi tiếng. Và để hiểu rõ hơn về các tính năng cũng như cách thức áp dụng công cụ này thì trong bài báo cáo này chúng em 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 – để chúng ta có thể làm chủ bộ công cụ này. Chúng em xin chân thành cảm ơn
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
HỆ PHÂN TÁN
ĐỀ TÀI:
Tìm hiểu bộ công cụ Nmap
Sinh viên thực hiện : DƯƠNG PHƯƠNG NAM
: MAI QUANG VINH
Hà Nội , tháng 05 năm 2019
LỜI CẢM ƠN
Trang 2Trước tiên, chúng em xin gửi lời cám ơn chân thành tới thầy TS Ngô HảiAnh đã 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 về
môn học “Hệ phân tán” và đưa ra những nhật xét góp ý để chúng em có thể hoàn thành báo cáo Dưới đây là bài báo cáo phục vụ kiểm tra hết môn “Hệ
phân tán” của chúng em Trên ý tưởng là “Tìm hiểu về cách thức hoạt động của Nmap”.
Mặc dù có nhiều cố gắng trong quá trình học tập cũng như trong thời gianthự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!
Trân trọng! Hà Nội, tháng 05 năm 2019
Sinh viên thực hiện:
Dương Phương Nam Mai Quang Vinh
Trang 3MỤC LỤC
LỜI CẢM ƠN 2
TÓM TẮT VỀ NỘI DUNG ĐỀ TÀI 1
LỜI NÓI ĐẦU 2
CHƯƠNG 1: GIỚI THIỆU CHUNG 3
1.1 Giao thức TCP 3
1.1.1 Cấu tạo gói tin TCP 3
1.1.1 Quá trình một phiên làm việc TCP với Server 5
1.2 Nguyên tắc quét cổng trên một hệ thống 6
1.2.1 TCP Scan 6
1.2.2 UDP Scan 9
1.3 Giới thiệu bộ công cụ Nmap 10
CHƯƠNG II: CÁC TÍNH NĂNG VÀ CÁCH SỬ DỤNG NMAP 13
2.1 Các giai đoạn của Nmap Scan 13
2.2 Các trạng thái quét của Nmap 18
2.3 Cách sử dụng Nmap cơ bản 19
2.3.1 Xác định mục tiêu cần quét 19
2.3.2 Kỹ thuật về phát hiện máy chú (Host Discovery) 20
2.4 Các tùy chọn quét và kỹ thuật chọn cổng 23
2.4.1 Các tùy chọn quét của Nmap 23
2.4.2 Kỹ thuật quét cổng mà Nmap hỗ trợ 24
2.4.3 Kỹ thuật lựa chọn cổng khi quét 27
CHƯƠNG III: NMAP SCRIPT ENGINE 29
3.1 Giới thiệu Nmap Script Engine 29
3.2 Các lệnh cơ bản NSE 30
CHƯƠNG IV : DEMO SỬ DỤNG NMAP VỚI MỘT SỐ TRƯỜNG HỢP36 4.1 Demo sử dụng Nmap 36
4.1.1 Phát hiện máy chủ (Host Discovery) 36
4.1.2 Quét cổng (Scan Port) 40
4.1.3 Nmap Script Engine (NSE) 43
CHƯƠNG V: TỔNG KẾT 47
Trang 4TÓM TẮT VỀ 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
Tìm hiểu về những cách thức Scan Port của Nmap
Demo sử dụng bộ công cụ Nmap, Zenmap vào trường hợp cụ thể, thực tế
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
Trang 5LỜI NÓI ĐẦU
Trong thời đại công nghiệp 4.0 hiện nay, thì vai trò của Công nghệ Thôngtin nói chung và Internet nói riêng ngày càng vô cùng quan trọng Điều này kéotheo đa phần các doanh nghiệp, công ty hay các tổ chức đều phải phụ thuộc vàomáy vi tính Chính vì vậy, luôn có nhiều ý đồ phá hoại đã nhắm vào hệ thốngnày, và yếu tố từ những sự cạnh tranh trên thị trường chính là một trong nhữngnguyên nhân phổ biến khiến các hệ thống của các công ty tổ chức đó được nhắmđến Do vậy để bảo đảm rằng các hệ thống, 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 Một trongnhững bộ công cụ được các chuyên gia an ninh mạng sử dụng và đề xuất đến đóchính là bộ công cụ Nmap (Network Mapped) một công cụ bảo mật được dùng
để giám sát mạng, nó được phát triển bởi Flydor Vaskovich và công bố lần đầutiên vào tháng 9 năm 1997 Nó đã và đang ngày cảng trở nên nổi tiếng Và đểhiểu rõ hơn về các tính năng cũng như cách thức áp dụng công cụ này thì trongbài báo cáo này chúng em 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 – để chúng ta có thể làm chủ bộ công cụ này Chúng em xin chânthành cảm ơn!
Trang 6CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 Giao thức TCP
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền
vận") là một giao thức mạng cơ bản và quan trọng được sử dụng trong việctruyền dữ liệu qua một mạng nào đó Sử dụng TCP, các ứng dụng trên các máychủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thểtrao đổi dữ liệu hoặc các gói tin (packet)
Là một trong các giao thức cốt lõi của bộ giao thức TCP/IP
Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đángtin cậy và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng(chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng mộtmáy chủ
TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và cácứng dụng kết quả, trong đó có WWW, thư điện tử và Secure Shell
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ốntruyề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ế full-duplex (truyền và nhận dữ liệu cùng mộtlúc)
Ngoài ra, nó còn cung cấp cơ chế đánh số gói tin (sequencing): để ráp cácgó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
Trang 7Hình 1.1: Cấu tạo gói tin TCP
Ở đâ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 để gửi yêu cầu kết nối giữa hai máy tính
Thông số ACK để trả lời, cho phép 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.1 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:
Trang 8Hình 1 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)
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ậncho 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 2 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
Trang 91.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 1tới port 1024 Dựa vào nguyên tắc truyền thông TCP ta có thể biết được trạngthái các port trên hệ thống máy mục tiêu
Dựa vào các nguyên tắc truyền thông tin của TCP chúng ta có thể ScanPort nào mở trên hệ thống bằng nhưng phương thức sau đây:
- 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ênServer đóng
Hình 1 3 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 ACKthì Client biết port đó đang được mở trên Server Nếu Server gửi về góiRST thì Client biết Server đang đóng port đó
Hình 1 4 FIN Scan
Trang 10- 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ếuServer gửi lại gói RST thì biết port đó trên Server bị đóng
Hình 1 5 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
Hình 1.6: 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 Servertrả về gói SYN/ACK thì Client biết port đó mở, nếu Server gửi về góiRST/ACK thì Client biết port đó trên Server bị đóng
Trang 11Hình 1.7 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 đượcgói là Host Unreachable thì Client sẽ biết port đó trên server đã bị lọc
Hình 1.8 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
Trang 12tả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ằngTCP kẻ tấn công dễ dàng Scan được hệ thống đang mở những port nào dựa trêncá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 ngayvà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ếtgói tin có bị mất mát trên đường đi hay không)
Cấu trúc gói tin UDP:
Hình 1.9: Cấu trúc 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 Tuy vậy, hầuhết hệ các 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ề
Trang 13Client Khi thực hiện UDP Scan chúng ta hãy chuẩn bị tinh thần nhận được cáckế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 Baogồm cả cơ chế quét port (TCP và UDP), phát hiện hệ điều hành, phát hiện phiênbả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ànmáy tính
Hình 1.10 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ểntrê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ũngnhư 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
Trang 14tiến để khám phá mạng của họ Nmap tải về miễn phí, và kèm theo đó là mãnguồn chúng ta có thể chính sửa và phân phối lại theo các điều khoản đượcphé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ậtcô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ộtcộng đồng các nhà phát triển và người dùng vô cùng lớn như Facebook vàTwitter
Các tính năng của Nmap bao gồm:
Phát hiện máy chủ - Xác định máy chủ trên mạng Ví dụ: liệt kê các máychủ đáp ứng các yêu cầu TCP và / hoặc ICMP hoặc mở một cổng cụ thể
Quét cổng - liệt kê các cổng mở trên máy chủ đích
Phát hiện phiên bản - Truy vấn các dịch vụ mạng trên các thiết bị từ xa đểxác định tên ứng dụng và số phiên bản
Phát hiện hệ điều hành - Xác định đặc điểm hệ điều hành và phần cứngcủa thiết bị mạng
Tương tác có thể đọc được với mục tiêu - sử dụng Nmap ScriptingEngine (NSE) và ngôn ngữ lập trình Lua
Nmap có thể cung cấp thêm thông tin về các mục tiêu, baogồm tên DNS ngược, loại thiết bị và địa chỉ MAC
Các ứng dụng điển hình của Nmap:
Kiểm tra tính bảo mật của thiết bị hoặc tường lửa bằng cách xác định cáckết nối mạng có thể được thực hiện hoặc thông qua thiết bị
Xác định các cổng mở trên máy chủ đích để chuẩn bị kiểm toán
Kiểm kê mạng , lập bản đồ mạng , bảo trì và quản lý tài sản
Trang 15 Kiểm tra tính bảo mật của mạng bằng cách xác định máy chủ mới
Tạo lưu lượng truy cập đến máy chủ trên mạng, phân tích phản hồi và đothời gian phản hồi
Tìm kiếm và khai thác lỗ hổng trong một mạng
Truy vấn DNS và tìm kiếm tên miền phụ
Trang 16CHƯƠNG II: CÁC TÍNH NĂNG VÀ CÁCH SỬ DỤNG NMAP
2.1 Các giai đoạn của Nmap Scan
Chương này sẽ đề cập đến một số ứng dụng của Nmap, chúng ta sẽ xemsét những gì sẽ xảy ra khi 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 Theo các giai đoạnđược mô tả dưới đây, thì Nmap có thêm nhiều tác dụng hơn việc chỉ để quétcổ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 hơn về hệ thống từ xa.NSE không được thực hiện trừ khi chúng ta 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 các lệnh đó được
lựa chọn Giai đoạn này để cho các script mà chỉ có thể chạy một lần mỗi khiNmap 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ụngphá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ủacác tên máy chủ DNS, địa chỉ IP, ký hiệu mạng CIDR và nhiều hơn nữa Nmapgiả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ăngquét sâu hơn, nhưng chúng ta 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 chúng ta
vượt qua các tùy chọn -n –sL (Quét mà không tra cứu DNS giúp việc quét nhanh
hơn) thì 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
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ếthợp của TCP, ICMP, và các loại đầu dò Giai đoạn này được chạy theo mặc định,
Trang 17mặc dù chúng ta 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áchping 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ậpcấu hình scan và các thuật toán để cải thiện tốc độ và độ chính xác Portscanning được thực hiện theo mặc định, mặc dù chúng ta có thể bỏ qua nó vớitùy chọn -sn và vẫn thực hiện một số các traceroute sau và giai đoạn NmapScripting 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ềunà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ạngbằng 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
Trang 18hơ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ànhbằng nmap, có thể thấy tỉ lệ trùng khớp với các hệ điều hành bằng %, % càngcao thì tỉ lệ máy chủ đang sử dụng hệ càng lớn.
Hình 2.1: 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áthiện trước đó của Nmap Traceroute thường liên quan đến một vòng phân giảingược DNS cho các host trung gian Ví dụ về traceroute đến địa chỉ 8.8.8.8 củaGoogle:
Trang 19Hình 2.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ườngchạ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ựchiệ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ếnhơn là phát hiện phiên bản NSE không được thực hiện trừ khi chúng ta 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.3: Nmap Script Scanning
Trang 20Output: 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 cungcấ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.4:Nmap Output
Còn đây là nội dung được ghi lại trong file text
Hình 2.5 Nmap TEXT Output
Trang 21Nmap cung cấp nhiều tùy chọn để kiểm soát việc của những giai đoạn nàychạ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ừ khigiao 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 quét 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ơithự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 đóngcá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ắngnghe 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ể truycập nên nó có thể được quét cổng trường hợp một số cổng được mở ra Ngườiquả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ở nếu 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ấtbạ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ờivới gói tin ICMP lỗi như kiểu 3 mã 13 (destination unreachable: communicationadministratively 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
Trang 22trong trạng thái này Quét cổng sử dụng các Scan Port như: Window scan, SYNscan, hoặc FIN scan, có thể giúp giải quyết vấn đề an ninh cho dù các cổng đượcmở.
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ôngtrả 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 đượcfiltered Scan kiểu UDP, IP protocol, FIN, NULL và Xmas là một trong nhữngcá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ụngcho các IP ID idle quét để xác định tình trạng của máy chủ
Quét 1 dải IP nmap 192.168.1.1/24
Quét 1 domain nmap google.com
Bảng 2.1: Xác định mục tiêu cần quét
Trang 23Ngoà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:
-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.2 Tùy chọn khi quét mục tiêu
2.3.2 Kỹ thuật về 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àngnghì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 Câu lệnh thực thi (viết in hoa)
TCP SYN PING -PS<port-list>
TCP ACK PING -PA<port-list>
UDP PING -PU<port-list>
ICMP Ping Type -PE, -PP, -PM
IP Protocol Ping -PO<protocol-list>
Bảng 2.3.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<port-list>)
Trang 24-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 tinSYN/ACK được gửi trả về Khi đó, nmap sẽ đóng kết nối mới chuẩn bị mở bằngcách gửi gói RST thay vì gói ACK để hoàn thành three-way-handshake và thiêtlập full connection Ở đây nmap không quan tâm port mở hay đóng Chỉ cần biếtgói trả về là RST hay SYN/ACK để xác định target up hay down Trên Unix, chỉ
có user privileged root mới có thể tạo gửi và nhận gói TCP raw Vớiunprivileged user, phương pháp thay thế được thực hiện bằng system callconnect() được khởi tạo với target port
TCP ACK PING (-PA<port-list>)
Giống với SYN Ping, nhưng khác ở chỗ gửi đi gói ACK để đồng ý thiếtlập kết nối, nhưng không có kết nối đó tồn tại, do đó target luôn trả lời bằng góiRST, làm lộ diện sự tồn tại của target
-PA sử dụng default port 80 Nếu unprivileged user thử option này, hoặc
IPv6 được chỉ định, system call connect() được thảo luận ở phía trên được sửdụng Phương pháp thay thế này không hoàn hảo vì connect() thực chất gửi đigói SYN thay vì gói ACK Mục đích của việc cung cấp cả SYN và ACK pingprobe làm tăng cơ hội bypass fw Hầu hết các admin cấu hình router và các fwkhác block incomming SYN ngoại trừ các dịch vụ public như website hay mailserver
UDP Ping (-PU<port-list>)
-PU gửi gói UDP rỗng (nếu không sử dụng data-length để chỉ định độ
dài của dữ liệu) đến một port xác định Nếu không chỉ định port, port mặc định
là 31,338 Chỉ định port cao không phổ biến được khuyến khích ở đây vì khi gửiđến port open thường không mong muốn cho loại scan này Dựa trên việc gửivào port close của target, nếu target up, nó sẽ trả về gói tin ICMP portunreachable Có nhiều loại ICMP error, như host/network unreachable hay TTLexceeded chỉ ra host down hay unreachable Việc không trả về kết quả có thểxảy ra theo cách này, khi gửi gói tin UDP rỗng vào port open, hầu hết các
Trang 25service sẽ ignore gói tin đó, và tất nhiên sẽ không có gói tin nào sẽ được trả về.Lợi ích của kĩ thuật này chính là có khả năng bypass fw cũng như filter chỉ quantâm đến TCP.
ICMP Ping Type (-PE, -PP, -PM)
-PE nmap sẽ gửi gói tin imcp type 8 (echo request) đến target, và hy vọng
nhận về icmp type 0 (echo reply) từ host available Nhưng nhiều host và firewallblock loại scan này, dẫn đến kết quả có thể không chính xác Trong khi echorequest được xem như là dạng chuẩn của ICMP ping query, nhưng nmap khôngdừng lại ở đây ICMP standard (RFC 792) cũng chỉ định các loại request khácnhư: timestamp request (code 13), information request (code 15), address maskrequest (code 17) Nmap hiện tại chưa hỗ trợ gói tin information request vì nóchưa được hỗ trợ rộng rãi (RFC 1122 nhấn mạnh "a host SHOULD NOTimplement these messages")
-PP sẽ gửi gói icmp timestamp request ICMP code 14 sẽ trả về nếu host
available
-PM sẽ gửi gói icmp address mask request ICMP code 18 sẽ trả về nếu
host available
IP Protocol Ping (-PO<protocol-list>)
-PO gửi gói tin IP mà protocol number được set trong IP header Nêu
không có protocol nào được chỉ định, mặc định sẽ gửi gói IP với ICMP (protocol1), IGMP (protocol 2), IP-in-IP (protocol 4) Chú ý đối với ICMP, IGMP, TCP(protocol 6), UDP (protocol 17), the packets are sent with the proper protocolheaders while other protocols are sent with no additional data beyond the IPheader (unless the data-length option is specified)
Phương pháp này tìm kiếm những trả lời sử dùng cùng chung protocol khiprobe, hay ICMP unreachable message chỉ ra dấu hiệu protocol không được hỗtrợ Cả 2 dấu hiệu đó điều chỉ ra là host available
ARP Scan (-PR)
Trang 26Một trong những môi trường sử dụng Nmap nhiều nhất là LAN Khinmap thử gửi raw IP như là ICMP echo request, OS phải xác định được địa chỉ
ARP của target IP do đó send-ip chỉ định nmap gửi gói tin ở cấp độ IP (chứ
không phải raw ethernet) ngay cả khi ta ở trong mạng local
2.4 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
-v (giống như –verbose): Nmap thường chỉ đưa ra hoạt động đáp ứng tới
host
source-port <portnum> (giống với -g): thiết lập một cổng nguồn không
đổi cho việc ping scan (TCP và UDP) Một vài người quản trị đã vô tình mởcổng 53 (DNS) hoặc cổng 20(FTP-DATA) Tất nhiên mở cổng này đủ để nmap
có thể quét thăm dò thông tin của máy đích
-n, -R: Với –n lựa chọn này sẽ disable phân giải tên miền DNS giúp cho
việc Scan trở nên nhanh chóng hơn, trong khi lệnh -R sẽ enable DNS cho toàn
bộ host thậm chí cả máy đang down Hành vi mặc định là để giới hạn tên miềnDNS đối với các host đang hoạt động
data-length <length>: Lựa chọn này là thêm chiều dài bytes dữ liệu đối
với mỗi gói tin, va làm việc với TCP, UDP và cả ICMP ping scan
ttl <value>: Thiết lập thời gian sống của gói tin nếu vượt quá sẽ tự động
out, là một biện pháp hữu ích phòng ngừa an toàn để đảm bảo một máy quétkhông truyền vượt ra ngoài mạng nội bộ
-T (-T3, -T4, -T5, vv ): Tăng tốc độ quét cho Nmap giá trị càng cao tốc
độ càng nhanh
-iL <filename>, -ỉR <number>: Người sử dụng thường kết hợp với một
danh sách các địa chỉ IP được nhập vào một file với lựa chọn –PN để tránh scanning host đối với các host đang hoạt động –iR là để chọn host ở chế độngẫu nhiên từ một khoảng địa chỉ IP