Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
4,23 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ ĐỀ CƯƠNG BÁO CÁO BÀI TẬP LỚN Nghiên cứu tìm hiểu cơng cụ Nmap dị qt mạng Ngành: An tồn thơng tin Sinh viên thực hiện: Trần Văn Hùng AT170423 Nguyễn Ngọc Huân AT170422 Nguyễn Phi Long AT170430 Đặng Thanh Phương AT170137 Nguyễn Lâm Tùng AT150362 Người hướng dẫn: TS Nguyễn Mạnh Thắng Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã Hà Nội - 2023 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 thầy TS Nguyễn Mạnh Thắng nhiệt tình giảng dạy truyền đạt kiến thức tảng quý báu mơn học “Kỹ thuật lập trình” đưa nhận xét góp ý để chúng em hoàn thành báo cáo Dưới báo cáo “Nghiên cứu tìm hiểu cơng cụ Nmap dị quét mạng” Với lượng kiến thức hạn hẹp chúng em thời gian báo cáo có nhiều thiếu sót mong thầy bỏ qua cho Chúng e mong nhận góp ý quý báu thầy tất bạn để báo cáo chúng em hoàn thiện Chúng em xin chân thành cảm ơn! BẢNG PHÂN CÔNG CÔNG VIỆC STT Họ tên Công việc Trần Văn Hùng Nguyễn Ngọc Huân Nguyễn Phi Long Đặng Thanh Phương Nguyễn Lâm Tùng Tìm hiểu giai đoạn, trạng thái quét Nmap Demo Host discovery Tổng hợp word Tìm hiểu giao thức TCP/UDP, giới thiệu chung công cụ Nmap Demo NSE Trình bày slide Tìm hiểu tùy chọn quét kỹ thuật chọn cổng Demo Host discovery Tìm hiểu NSE(Nmap Script Engine).Demo Scan Port Tìm hiểu cách sử dụng Nmap cơ bản.Demo Scan Port Ghi MỤC LỤC Chương 1: Giới thiệu chung giao thức 1.1 Giao thức TCP 1.2 Giao thức UDP 1.3 Giao thức ICMP 1.4 Giao thức ARP Chương 2: Nmap dò quét mạng cổng 2.1 Giới thiệu chung Nmap 2.1.1 Nguồn gốc hình thành phát triển 2.1.2 Tính công cụ Nmap Scanner 2.1.3 Ứng dụng 2.2 Các giai đoạn quét cổng Nmap 2.3 Các trạng thái quét Nmap 2.4 Cách sử dụng Nmap 2.4.1 Xác định mục tiêu cần quét 2.4.2 Kỹ thuật phát máy chủ (Host discovery) 2.5 Các kỹ thuật quét cổng 2.5.1 Các kỹ thuật quét cổng mà Nmap hỗ trợ 2.5.2 Kỹ thuật chọn cổng quét 2.6 Giới thiệu NSE 2.6.1 Giới thiệu chung NSE 2.6.2 Một số câu lệnh 2.7 Ứng dụng NSE dò quét lỗ hổng bảo mật Chương 3: triển khai thực nghiệm 3.1 Host discovery 3.2: Quét cổng (Scan Port) 3.3 Thực nghiệm với NSE KẾT LUẬN DANH MỤC MINH HỌA Hình 1: Cấu tạo gói tin TCP……………………………………………… ……… Hình 2: Q trình Client khởi tạo kết nối TCP với Server…………………… ……3 Hình 3: Quá trình Client Server……………… .4 kết thúc phiên làm việc TCP với Hình 4: Cấu trúc UDP……………………………………………………… gói tin Hình 5: Cấu trúc ARP……………………………………………………… gói tin Hình 6: TCP …………………………………… 30 SYN PING………………… Hình 7: TCP ACK ……………………………………… .31 PING…………… Hình 8: PING……………………………………………………………… 31 UDP Hình 9: Kết Ping……………………………………………………… 32 ICMP Hình 10: Kỹ thuật Scan…………………………………………………… 35 SYN Hình 11: UDP …………………………………………… 36 Hình 12: Kỹ thuật ……………………………… 37 TCP Hình 13: TCP FIN ………………………… 37 Scan Hình 14: Kết ……………………… 43 code quét Scan……………… FIN Scan……………… dải mạng……………… cổng……………………… Hình 15: Kết quét lỗ hổng bảo mật với máy ảo Metasploitable 2………… … 44 Hình 16: Kết thực thi kịch http-stored-xss…………………… ………… 47 Hình 17: Kết ……………… 48 thực thi kịch http-slowloris-check Hình 18: Kết thực thi kịch http-sql-injection………………………… ….48 Hình 19: Kết thực thi kịch ftp-vsftpd-backdoor…………………… … 49 Hình 20: Kết quét cổng thông qua kịch người dùng tự định nghĩa………51 LỜI MỞ ĐẦU Lý chọn đề tài: Trong thời đại cơng nghiệp 4.0 vai trị Cơng nghệ Thơng tin nói chung Internet nói riêng ngày vô quan trọng Điều kéo theo đa phần doanh nghiệp, công ty hay tổ chức phải phụ thuộc vào máy tính để kiểm sốt liệu Chính vậy, ln có nhiều ý đồ phá hoại nhắm vào hệ thống này, yếu tố từ cạnh tranh thị trường nguyên nhân phổ biến khiến hệ thống công ty tổ chức nhắm đến Do để đảm bảo an toàn cho hệ thống hệ thống phải liên tục trang bị công cụ hỗ trợ, biện pháp phòng thủ, hệ thống cảnh báo, bảo mật cao Nmap (Network mapper) phần mềm phát lỗ hổng đe dọa đến liệu người dùng Tuy có nhiều cơng cụ giám sát tiên tiến đóng vai trị trợ thủ đắc lực giúp đỡ nhà quản trị mạng việc quét cổng phát lỗ hổng mạng Nmap coi công cụ chuẩn mực, phổ biến Vì nguyên nên nhóm định lựa chọn đề tài “ Nghiên cứu tìm hiểu cơng cụ Nmap dị qt mạng” làm đề tài báo cáo Mục tiêu: Nghiên cứu, tìm hiểu công cụ Nmap phục vụ việc quét cổng phát lỗ hổng mạng Qua đó, người quản trị có thơng báo hành động kịp thời phát mối nguy hại tiềm ẩn Tên đề tài “Nghiên cứu tìm hiểu cơng cụ Nmap dị qt mạng” Mục tiêu mà nhóm mong muốn đạt sau hồn thành báo cáo là: - Nắm khái niệm, đặc điểm, cách thức hoạt động cơng cụ Nmap dị qt mạng - Thực nghiệm sử dụng Nmap số trường hợp CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ CÁC GIAO THỨC 1.1 Giao thức TCP 1.1.1 Định nghĩa TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") giao thức cốt lõi giao thức TCP/IP Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin 1.1.2 Chức năng Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự TCP phân biệt liệu nhiều ứng dụng (chẳng hạn, dịch vụ Web dịch vụ thư điện tử) đồng thời chạy máy chủ TCP hỗ trợ nhiều giao thức ứng dụng phổ biến Internet ứng dụng kết quả, có WWW, thư điện tử Secure Shell 1.1.3 Cấu trúc gói tin TCP Trong gói tin TCP ta quan tâm tới thiết lập Flag gói tin nhằm mục đích để Scan Port - URG (Urgent Pointer): cờ để xác định liệu đến khẩn cấp tức nâng độ ưu tiên Segment Những segment có cờ Urgent Pointer bật không phải chờ đợi (cho đến Segment trước xử lí) mà gửi trực tiếp xử lý - ACK (ACKnowledgement): dùng để xác nhận việc nhận thành cơng gói tin - PUSH: giống với cờ URG, tồn để đảm bảo liệu ưu tiên xử lý nơi gửi nơi nhận - RESET (RST): cờ sử dụng Segment đến mà không dự định dùng kết nối thời - SYN (SYNchronisation): sử dụng để khởi tạo trình bắt tay bước TCP - FIN (FINished): cờ xuất gói liệu cuối trao đổi -> kết thúc trình trao đổi liệu Hình 1: Cấu tạo gói tin TCP Port nguồn (2 byte): Xác định cổng nguồn sử dụng để gửi gói tin Port đích (2 byte): Xác định cổng đích mà gói tin gửi tới Số xác nhận (4 byte): Chứa số xác nhận gói tin trước gửi Số thứ tự (4 byte): Chứa số thứ tự gói tin chuỗi gói tin Chiều dài tiêu đề (4 bit): Chứa số byte sử dụng để mã hóa tiêu đề TCP Cờ điều khiển (6 bit): Chứa cờ điều khiển, bao gồm ACK, SYN, FIN, PSH, RST, URG, sử dụng để xác định tính gói tin TCP Cửa sổ (2 byte): Chứa thơng tin kích thước cửa sổ trượt (sliding window) sử dụng để kiểm soát luồng liệu Checksum (2 byte): Là giá trị kiểm tra tổng kiểm tra (CRC) tính tốn để đảm bảo tính tồn vẹn gói tin đường truyền Con trỏ ưu tiên (2 byte): Chứa thơng tin vị trí byte ưu tiên liệu Tùy chọn (0-40 byte): Là trường tùy chọn sử dụng để cấu hình điều chỉnh tính giao thức TCP Dữ liệu (0 - 65,535 byte): Chứa liệu truyền tải qua mạng 1.1.4 Quy trình hoạt động Quy trình thiết lập liên kết: Bước 1: Client gửi cho Server yêu cầu kết nối (SYN), thông qua gói tin TCP Bước 2: Server trả lời yêu cầu kết nối client cách gửi gói tin SYNACK cho client Gói tin bao gồm số xác nhận ACK tạo server giá trị SYN client Bước 3: Client trả lời lại yêu cầu kết nối server cách gửi gói tin ACK với giá trị xác nhận server Sau server nhận gói tin này, liên kết TCP client server thiết lập sử dụng để truyền tải liệu Hình 2: Quá trình Client khởi tạo kết nối TCP với Server Quy trình đóng liên kết: Bước 1: Client gửi gói tin FIN (hoặc FIN-ACK) đến server, cho biết client hoàn tất việc truyền tải liệu muốn kết thúc kết nối Bước 2: Server phản hồi cách gửi gói tin ACK để xác nhận nhận thông báo FIN client Bước 3: Server gửi gói tin FIN đến client, cho biết server hoàn thành việc truyền tải liệu muốn kết thúc kết nối Bước 4: Client phản hồi cách gửi gói tin ACK để xác nhận nhận thông báo FIN server Sau nhận gói tin này, server ngừng kết nối giải phóng tài nguyên liên quan đến kết nối Hình 3: Q trình Client kết thúc phiên làm việc TCP với Server 1.2 Giao thức UDP 1.2.1 Định nghĩa Giao thức liệu người dùng giao thức giao tiếp thay cho TCP Ngược lại với TCP UDP giao thức truyền tải hướng khơng kết nối Nó khơng thực thao tác xây dựng kết nối trước truyền liệu mà thực truyền có liệu cần truyền -> truyền tải nhanh cho liệu tầng ứng dụng 1.2.2 Đặc điểm Không đảm bảo độ tin cậy truyền liệu khơng có chế phục hồi liệu (khơng quan tâm gói tin có đến đích hay khơng, khơng biết gói tin có mát đường truyền không) -> dễ bị lỗi Không thực đánh số thứ tự cho đơn vị đường truyền Nhanh hiệu liệu kích thước nhỏ yêu cầu thời gian 1.2.3 Cấu tạo gói tin Gói tin UDP khơng chứa thơng số Flag nên dùng phương thức Scan port TCP cho UDP Port nguồn (2 byte): Xác định cổng nguồn sử dụng để gửi gói tin Port đích (2 byte): Xác định cổng đích mà gói tin gửi tới t_ip = socket.gethostbyname(target) except (UnboundLocalError, socket.gaierror): try: t_ip = socket.gethostbyname_ex(target)[-1][0] except: print("\n[-]Invalid format Please use a correct IP or web address[-]\n") sys.exit() # Bắt đầu quét cổng print("-" * 60) print("Scaning target "+ t_ip) print("Time started: "+ str(datetime.now())) print("-" * 60) # Lấy thời điểm bắt đầu quét cổng t1 = datetime.now() # Hàm portscan để quét cổng def portscan(port): không s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Thử kết nối đến cổng để kiểm tra xem có mở hay try: portx = s.connect((t_ip, port)) 39 with print_lock: print("Port {} is open".format(port)) service = socket.getservbyport(port) print("Service: ", service) discovered_ports.append(str(port)) portx.close() except (ConnectionRefusedError, AttributeError, OSError): pass # Hàm threader để chạy song song nhiều tiến trình quét cổng def threader(): while True: worker = q.get() portscan(worker) q.task_done() # Tạo hàng đợi để chứa cổng cần quét q = Queue() # Tạo 200 tiến trình để chạy song song quét cổng for x in range(200): t = threading.Thread(target=threader) t.daemon = True t.start() 40 # Đưa cổng cần quét vào hàng đợi for worker in range(1, 65536): q.put(worker) q.join() # Lấy thời điểm kết thúc quét cổng tính thời gian tổng cộng t2 = datetime.now() total = t2 - t1 print("Port scan completed in "+str(total)) print("-" * 60) if name == ' main ': try: main() except KeyboardInterrupt: print("\nBYE") quit() Điều cần làm đảm bảo địa mục tiêu địa IP địa web hợp lệ Mã “socket.gethostbyname”là tiện ích tuyệt vời để thực điều Mã “socket.gethostbyname_ex” hữu ích để lấy địa IP trang web Tiếp theo, cần tạo mutex (hoặc khóa) để tránh va chạm in kết Chúng ta thực điều với “print_lock = threading.Lock()” Bước tạo danh sách để lưu trữ cổng mở mà tìm thấy Chúng ta làm điều với “discovered_ports = []” Bây giờ, cần nhắc người dùng nhập địa IP trang web mục tiêu Chúng ta làm điều với “target = input("Enter your target IP address or URL here: ")” 41 Chúng ta bắt đầu quét cổng cách sử dụng mã “print("-" * 60)” Điều tạo đường để phân chia đầu Sau đó, bắt đầu quét mã “print("Scaning target "+ t_ip)” Chúng ta cần ghi lại thời gian mà bắt đầu quét mã “print("Time started: "+ str(datetime.now()))” Sau đó, tạo chức “def portscan(port)” để quét cổng riêng lẻ Chúng ta kiểm tra xem cổng có mở hay khơng mã “socket.connect”sẽ cố gắng kết nối với cổng Chúng ta cần chức “def threader()”sẽ bắt đầu nhiều luồng để thực quét cổng chạy song song Chúng ta tạo hàng đợi “q = Queue()” để lưu trữ cổng cần quét Chúng ta tạo 200 luồng để chạy quét song song “ for x in range(200):” Sau đó, thêm cổng cần quét vào hàng đợi “ for worker in range(1, 65536):” Cuối cùng, nhận thời gian hồn thành q trình qt “t2 = datetime.now()” tính tổng thời gian với “total = t2 - t1” Kết quả: Hình 14 cho biết kết quét cổng địa IP 192.168.1.18 Có cổng quét hiển thị kết Các cổng mở liệt kê với tên dịch vụ sử dụng Cụ thể, cổng mở liệt kê sau: ⁻ Cổng 135 mở sử dụng để chia sẻ tài nguyên mạng Windows, ⁻ ⁻ ⁻ ⁻ ⁻ gọi Endpoint Mapper (epmap) Cổng 139 mở sử dụng để chia sẻ tài nguyên máy in mạng Windows, gọi NetBIOS Session Service (netbios-ssn) Cổng 445 mở sử dụng để chia sẻ tài nguyên mạng Windows, gọi Microsoft-DS Cổng 5938 mở khơng có dịch vụ liên kết với cổng Cổng 7680 mở khơng có dịch vụ liên kết với cổng Cổng 49668 mở khơng có dịch vụ liên kết với cổng 42 ⁻ Thời gian bắt đầu quét ghi lại kết quả, thời gian kết thúc quét tổng thời gian quét cổng tính tốn hiển thị Hình 14: Kết code quét cổng 3.3 Thực nghiệm với NSE 3.2.1 Quét lỗ hổng bảo mật SQL Injection, Stored XSS công Slowloris attack cổng 80 máy ảo Metasploitable Mục tiêu: Xác định lỗ hổng bảo mật khả bị công Slowloris attack ở cổng 80 Phương thức: Qua code python, thực nghiệm máy ảo Kali linux máy ảo Metasploitable Cách thực hiện: Bước 1: Dò quét cổng mở máy ảo Metasploitable câu lệnh: “$sudo nmap -sSV 192.168.161.141” Trong -sS: sử dụng phương thức SYN scan để tìm cổng mở mục tiêu -sV: xác định phiên dịch vụ chạy cổng 192.168.161.141: địa IP máy ảo Kết thu được: 43 Hình 15: Kết quét lỗ hổng bảo mật với máy ảo Metasploitable Bước 2: Chạy đoạn chương trình NmapScannerAsyncHTTP.py để quét lỗ hổng bảo mật: Sau đoạn chương trình: #!/usr/bin/env python3 import nmap import argparse def callbackHTTP(host, result): try: script = result['scan'][host]['tcp'][80]['script'] print("Command line" + result['nmap']['command_line']) for key, value in script.items(): print('Script {0} > {1}'.format(key, value)) except KeyError: pass class NmapScannerAsyncHTTP: 44 def init (self): self.portScanner = nmap.PortScanner() self.portScannerAsync = nmap.PortScannerAsync() def scanning(self): while self.portScannerAsync.still_scanning(): print("Scanning >>>") self.portScannerAsync.wait(10) def nmapScanAsync(self, hostname, port): try: print("Checking port " + port + " ") self.portScanner.scan(hostname, port) self.state = self.portScanner[hostname]['tcp'][int(port)]['state'] print(" [+] " + hostname + " tcp/" + port + " " + self.state) # checking HTTP service if (port == '80') and self.portScanner[hostname]['tcp'][int(port)]['state'] == 'open': print('Checking http port with nmap scripts ') print('Checking http-stored-xss.nse .') self.portScannerAsync.scan(hostname, arguments="-A -sV -p80 script http-stored-xss.nse", callback=callbackHTTP) self.scanning() print('Checking http-slowdoris-check.nse .') self.portScannerAsync.scan(hostname, arguments="-A -sV -p80 script http-slowdoris-check.nse", callback=callbackHTTP) self.scanning() print('Checking http-sql-injection.nse .') 45 self.portScannerAsync.scan(hostname, arguments="-A -sV -p80 script http-sql-injection.nse", callback=callbackHTTP) self.scanning() except Exception as exception: print("Error to connect with " + hostname + " for port scanning", str(exception)) if name == " main ": parser = argparse.ArgumentParser(description='Nmap scanner async') parser.add_argument(" host", dest="host", help="target IP / domain", required=True) parser.add_argument(" ports", dest="ports", help="Please, specify the target port(s) separated by comma[80,8080 by default]", default="80") parsed_args = parser.parse_args() port_list = parsed_args.ports.split(',') ip_address = parsed_args.host for port in port_list: NmapScannerAsyncHTTP().nmapScanAsync(ip_address, port) Phương thức callbackHTTP được sử dụng để xử lý kết quét nmap cho máy chủ có dịch vụ HTTP chạy cổng 80 Nó truy cập kết qt nmap thơng qua đối số "result", trích xuất kịch thực thi in chúng hình để người dùng xem Trong class NmapScannerAsyncHTTP, phương thức init để khởi tạo đối tượng Phương thức ‘nmapScanAsync’ lấy tên host tên cổng tham số truyền vào Nếu cổng cổng 80 mở, tiến hành kịch : http-stored-xss, http slowdoris-check http-sql-injection. Mỗi lần quét thực cách gọi 46 đối tượng PortScannerAsync, với tập hợp đối số hàm gọi lại (callback function) định (callbackHTTP ) Phương thức scanning gọi phương thức nmapScanAsync, sử dụng để liên tục in tin nhắn cho biết quét diễn đối tượng PortScannerAsync hoàn thành việc quét tất cổng định Dòng if name == “ main ” dùng để kiểm tra xem chương trình có chạy trực tiếp dịng lệnh hay khơng Nếu điều kiện đúng, chương trình dùng thư viện ‘argparse’ để chấp nhận đối số đầu vào từ dòng lệnh Đối số ‘—host’ địa IP/tên miền cần quét Đối số ‘—port’ cổng cần quét, mặc định cổng 80 Sau đó, đối số phân tích danh sách cổng lưu biến ‘port_list’, địa IP lưu biến ‘ip_address’ Cuối cùng, chương trình chạy vịng lặp for để gọi phương thức ‘nmapScanAsync’ đối tượng ‘NmapScannerAsyncHTTP’ cho cổng danh sách với tham số truyền vào địa IP cổng Và sau kết thu được: Hình 16: Kết thực thi kịch http-stored-xss Các tùy chọn quét gồm có: Tùy chọn "-A" sử dụng để thực quét toàn diện hệ thống mục tiêu cung cấp cho người dùng thông tin chi tiết hệ thống dịch vụ chạy Tùy chọn “-sV” phiên dịch vụ chạy cổng Kết trả sau thực thi kịch http-stored-xss: Khơng tìm lỗ hổng Stored XSS 47 Hình 17: kết thực thi kịch http-slowloris-check Tiếp kết trả sau thực thi kịch http-slowloris-check, Nmap đưa thơng tin Slowloris DOS attack, tình trạng cổng bị dính cơng này, ngồi đưa đường dẫn để người thực thi tìm hiểu thêm Slowloris Hình 18: kết thực thi kịch http-sql-injection Cuối kết trả sau thi thực thi kịch http-sql-injection Có thể thấy Nmap URL bị công SQL Injection Tổng kết: Thu kết kiểm tra lỗ hổng bảo mật cổng 80 máy ảo thơng qua kịch bản: dính SQL Injection, bị cơng Slowloris attack không bị lỗ hổng Stored XSS 3.2.2 Quét lỗ hổng bảo mật ftp-vsftpd-backdoor cổng 21 máy ảo Metasploitable Mục tiêu: Xác định lỗ hổng bảo mật ftp-vsftpd-backdoor cổng 21 Phương thức: Qua câu lệnh trực tiếp Terminal máy ảo Kali Linux, máy ảo Metasploitable 48 Cách thực hiện: Thực thi câu lệnh: $ sudo nmap -sSV -p21 script ftp-vsftpd-backdoor 192.168.161.141 Hình 19: Kết thực thi kịch ftp-vsftpd-backdoor Sau thực kịch ftp-vsftpd-backdoor, Nmap phát cổng 21 máy ảo Metasploitable dính phải lỗ hổng bảo mật Đồng thời cung cấp thông tin ngày phát lỗ hổng Kết quét cung cấp thông tin khai thác lỗ hổng này, bao gồm shell command để lấy quyền hệ thống (id) kết lệnh cho thấy tin tặc có quyền root hệ thống Tổng kết: Xác định có tồn lỗ hổng bảo mật ftp-vsftpd-backdoor máy ảo 3.2.3 Thực nghiệm quét cổng qua kịch người dùng tự định nghĩa Mục tiêu: Thông qua kịch tự định nghĩa, quét trạng thái cổng 21, 22, 80 Phương thức: Sử dụng ngôn ngữ Lua để tự viết kịch quét, máy ảo Kali Linux để thực thi quét, máy ảo Metasploitable mục tiêu quét Cách thực hiện: Bước 1: Xây dựng script đơn giản với mục đích quét cổng description = [[ This is a simple script example that determines if a port is open or closed 49 ]] author = "Nguyen Huan" RULE - portrule = function(host, port) return port.protocol == "tcp" and (port.state == "open" or port.state == "closed") end ACTION -action = function(host, port) if port.state == "open" then return "This port is open!" else return "This port is closed!" end end Phần description giới thiệu chung kịch quét, phần Rule kiểm tra giao thức cổng có phải ‘tcp’ hay không, giao thức ‘tcp’ trả trạng thái cổng closed hay open Cuối phần Action in kết quét thu Bước 2: Lưu kịch vào nơi lưu trữ kịch Nmap vị trí: usr/share/nmap/scripts Bước 3: Thực thi kịch với mục tiêu máy ảo Metasploitable 2: Sau kết thu được: 50 Hình 20: Kết thực qt cổng thơng qua kịch người dùng tự định nghĩa Có thể thấy ta thực quét cổng 21, 22, 80 cổng trạng thái open Tổng kết: Xác định trạng thái cổng máy ảo thông qua kịch người dùng tự định nghĩa 51 KẾT LUẬN − Thông qua trình tìm hiểu cơng cụ Nmap chức quét cổng, nhóm đúc rút số kết luận chung kết đạt được: Hiểu biết Nmap, công dụng mang lại việc kiểm tra hệ thống mạng, website,… Khai thác nhiều thông tin hệ thống từ để có đánh giá, nhìn tổng quan vấn đề hệ thống Chạy chương trình tìm port mở, khơng mở Tìm hiểu ứng dụng NSE việc dò quét lỗ hổng bảo mật − Tuy nhiên bên cạnh điểm thu hoạch q trình tìm hiểu, cịn hạn chế mặt kĩ kiến thức nên nhóm chưa sâu khai thác vấn đề tính khác có nmap: Phần thực nghiệm chưa thể sâu, cụ thể toàn vào vấn đề − Định hướng phát triển Trong thời gian tới, nhóm mong muốn phát triển cơng cụ Nmap để sâu xây dựng mơ hình qt hữu dụng thao tác sử dụng dễ dàng Hồn thiện cơng cụ quét tất cổng với thời gian thực tối ưu Mong thầy đưa ý kiến góp ý cho chúng em phát triển hoàn thiện 52 TÀI LIỆU THAM KHẢO Những tài liệu tham khảo thực đề tài: Tiếng việt: [1] https://viblo.asia/p/nmap-port-scan-cac-phuong-phap-quet-cong-tu-co ban-den-nang-cao-gDVK2PMwlLj [2] https://quantrimang.com/cong-nghe/tat-tan-tat-ve-nmap-157752 [3] Slide giảng mơn Kỹ thuật lập trình – HVKTMM Tiếng anh: [4] https://nmap.org/book/man.html [5] sách Mastering python for network and security – tác giả Jose Manuel Ortega 53