Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,63 MB
Nội dung
1 Hiểu phương pháp kiểm tra thâm nhập - 1.1 Tổng quan thử nghiệm thâm nhập - 1.2 Hiểu rõ thử nghiệm thâm nhập - 1.2.1 Vulnerability Assessments - 1.2.2 Reverse engineering engagements 1.2.3 Hacking - 1.3 Phương pháp đánh giá - Xác định mục tiêu Nmap, Scapy Python 2.1 Hiểu rõ cách hệ thống giao tiếp - 2.1.1 Cấu trúc Ethernet frame - 2.1.2 Cấu trúc gói IP 2.1.3 Cấu trúc TCP header 2.1.4 Hiểu rõ cách TCP hoạt động - 2.1.5 Cấu trúc UDP header 2.1.6 Hiểu rõ cách UCP hoạt động 2.2 Hiểu rõ công cụ Nmap - 2.2.1 Phạm vi mục tiêu Nmap 2.2.2 Các kiểu quét - 2.2.3 Thực quét UDP TCP kết hợp 2.2.4 Bỏ qua trình quét hệ điều hành 2.2.5 Các loại đầu khác a) Đầu Grepable b) Đầu XML - 2.2.6 Nmap scripting engine 2.2.7 Hiệu với tính quét Nmap 2.3 Thư viện Nmap cho Python - 11 2.4 Thư viện Scapy cho Python - 14 Chương Hiểu phương pháp kiểm tra thâm nhập 1.1 Tổng quan thử nghiệm thâm nhập Có quan niệm sai lầm lớn thử nghiệm thâm nhập Điều phổ biến chuyên gia tham gia vào lĩnh vực Những người kiểm tra thâm nhập chuyên gia yêu cầu kiểm tra thâm nhập thường nói việc kiểm tra chứng minh khả khai thác lỗ hổng, dễ bị khai thác môi trường diện lỗ hổng Sự hiểu lầm thể thành tác động thực cam kết chúng xác định phạm vi, nguồn gốc tiến hành Hơn nữa, nhận thức sai lầm bao gồm suy nghĩ kiểm tra thâm nhập tìm thấy tất lỗ hổng, tất mục tiêu đáp ứng biện pháp kiểm soát đưa Kiểm tra khả thâm nhập hoạt động đánh giá khả bảo vệ liệu quan trọng tổ chức khỏi hành động tác nhân độc hại Chiến lược bảo mật chương trình bảo mật thơng tin bao trùm tổ chức Nó tập trung vào việc trì tính bảo mật, tính tồn vẹn tính sẵn có liệu tài ngun quan trọng tổ chức Điều nhằm giảm thiểu rủi ro đến mức chấp nhận cách sử dụng kết hợp người, quy trình công nghệ Sự khác biệt định nghĩa định nghĩa thứ hai thử nghiệm thâm nhập ban đêm ban ngày Định nghĩa tập trung vào lỗ hổng, điều có nghĩa người mong đợi hoạt động mà người đánh giá thực có liên quan đến việc khai thác tìm lỗ hổng cấu hình sai đơn giản Nó khơng tính đến hành động sai liên quan đến sách, quy trình mối quan hệ khơng an tồn mà tổ chức có Những định kiến thường có tác động đáng kể sau tổ chức người đánh giá Lãnh đạo tổ chức không tạo mục tiêu liên quan đến việc vi phạm kiểm soát truy cập liên quan đến kho liệu quan trọng xác định vị trí liệu quan trọng Cũng có niềm tin ban đầu Intrusion Protection Systems (IPS) Intrusion Detection Systems (IDS) sở cốt lõi để ngăn chặn mối nguy hại; tất người đánh giá có kinh nghiệm biết điều khơng Ngồi ra, đánh giá khơng xác định phạm vi theo cách mang lại kết thực tế Kết tai hại nhầm lẫn tổ chức không xác định người đánh giá thiếu kỹ cần thiết để thực cam kết bắt buộc 1.2 Hiểu rõ thử nghiệm thâm nhập 1.2.1 Đánh giá lỗ hổng bảo mật Đánh giá lỗ hổng bảo mật Vulnerability Assessments (VA) sử dụng VMS để quét lỗ hổng Các VA tốt sau sử dụng chuyên gia đánh giá để loại bỏ kết dương tính giả, sau xếp hạng rủi ro thực tế phát điều chỉnh sở tác động kinh doanh khả bị khai thác Thông thường nhà tư vấn bảo mật người kiểm tra thâm nhập thực đánh giá này, yêu cầu khai thác thực tế lỗ hổng để có chứng khái niệm Loại đánh giá tốt thấy tổ chức thực tốt việc vá lỗi triển khai nội dung cấu hình an tồn Mấu chốt kiểu đánh giá không tập trung vào việc đạt quyền truy cập vào liệu quan trọng từ quan điểm tác nhân độc hại, mà thay vào liên quan đến việc tìm kiếm lỗ hổng 1.2.2 Reverse engineering engagements Reverse phần thử nghiệm thâm nhập, ngày nhiều so với trước Các thử nghiệm thâm nhập bao gồm phát triển khai thác, thực để tạo chứng khái niệm liên quan đến mã nhà vườn giành quyền truy cập vào hệ thống quan trọng nơi liệu cư trú Ngược lại, cam kết đảo ngược quy mô lớn, người đánh giá cố gắng chứng minh tính dễ bị đảo ngược tổng thể ứng dụng điểm yếu liên quan đến mã nguồn, biên dịch thư viện liên quan Những loại tương tác phù hợp với kỹ sư đảo ngược, người dành thời gian xác định chuỗi phương pháp công phổ biến để xâm phạm ứng dụng, thay giành quyền truy cập vào liệu quan trọng Mức độ kinh nghiệm lĩnh vực cụ thể rộng rãi Thông thường, nhiều người đánh giá chuyển từ thử nghiệm thâm nhập sang kỹ cụ thể này, nơi họ thực đảo ngược tồn thời gian 1.2.3 Hacking Hacking khơng phải đánh giá, mà đề cập trực tiếp đến việc tận dụng lỗ hổng khai thác được; liên quan đến hoạt động độc hại thực để nghiên cứu Mục đích việc hack khơng phải để có quyền truy cập vào liệu quan trọng mà để bẻ khóa lỗ hổng Có nhiều định nghĩa hack, thường thử nghiệm thâm nhập liên quan trực tiếp, mục tiêu cụ thể rõ ràng liên quan đến hack Giờ đây, số khác biệt lớn kiểm tra thâm nhập hoạt động khác xác định, phương pháp luận liên quan đến việc đạt mục tiêu làm bật 1.3 Phương pháp đánh giá Có nhiều phương pháp đánh giá liên quan đến thử nghiệm thâm nhập Ví dụ số phương pháp bao gồm Open Source Security Testing Methodology Manual (OSSTMM), Open Web Application Security Project (OWASP) cho đánh giá web, Ấn phẩm National Institute of Standards and Technology (NIST) 800-115 Hướng dẫn Kỹ thuật Kiểm tra An ninh Thông tin Đánh giá, PTES Phương pháp mà tập trung vào sách PTES nguồn lực vững cho người đánh giá Xác định mục tiêu Nmap, Scapy Python 2.1 Hiểu rõ cách hệ thống giao tiếp Khi hệ thống tạo liệu, liệu gửi xuống thông qua ngăn xếp Transmission Control Protocol (TCP) / Internet Protocol (IP) hệ thống Điều gói liệu thành truyền qua dây Nếu bạn nghe nói mơ hình Open Systems Interconnect (OSI), bạn biết cách người thảo luận cách hệ thống xử lý liệu, Mơ hình TCP/IP cách hệ thống thực hoạt động 2.1.1 Cấu trúc Ethernet frame Frame cách liệu truyền từ máy chủ sang máy chủ lưu trữ có số thành phần tạo nên frame Các frame giao tiếp thông qua địa phần cứng gọi địa Media Access Control (MAC) Frame khác mạng khơng dây mạng Ethernet Ngồi ra, cuối farme tổng kiểm tra Đây kiểm tra toán học nhằm xác minh tính tồn vẹn liệu sau truyền qua dây Ảnh chụp hình khung Ethernet với đích cuối cổng TCP: Ảnh chụp hình khung có destination cổng UDP: Layer in Ethernet networks Các frame sử dụng để giao tiếp broadcast domain vị trí bên default gateways trước truyền qua định tuyến router Sau định tuyến chuyển qua, giao diện địa phần cứng định tuyến sử dụng cho broadcast domain Chúng thường gửi khung tùy thuộc vào giao thức giao tiếp thiết bị Điều thực lặp lặp lại frame đến đích phân định địa IP Điều quan trọng cần hiểu muốn chạy hầu hết công Man-in-the-Middle (MitM) công cụ Responder Ettercap phải Broadcast Domain, công Layer Layer in wireless networks Khái niệm công không dây giống nhau, phải phạm vi mã định danh Service Set Identifier (SSID) tên mạng không dây thực tế Hệ thống truyền thông khác chút tùy thuộc vào thiết kế mạng không dây, ta sử dụng Access Points (AP) phân biệt mã định danh nhóm dịch vụ Basic Service Set Identifiers (BSSID), tên gọi cho địa MAC AP Khi liên kết xác thực vào mạng thơng qua AP, ta phần dịch vụ Basic Service Set (BSS) thành phần mạng doanh nghiệp, bị giới hạn phạm vi AP Nếu chuyển sang mạng không dây kết hợp với AP tín hiệu tốt hơn, ta phần BSS Tất BSS phần dịch vụ doanh nghiệp Enterprise Service Set (ESS); Điều thú vị là, mạng không dây chứa nhiều AP, ESS Để giao tiếp với kỹ sư không dây, bạn phải hiểu bạn mạng không dây doanh nghiệp, SSID thực gọi SSID doanh nghiệp (ESSID) 2.1.2 Cấu trúc gói IP IP header chứa liệu cần thiết để giao tiếp qua mạng sử dụng địa IP Điều cho phép thông tin liên lạc vượt Broadcast Domains Sơ đồ sau cho thấy tiêu đề mẫu cho header IPv4: IPv4 hết thay IPv6 Lược đồ địa cung cấp số lượng đáng kể địa máy chủ mới, so sánh hai loại IP, có số lượng lớn lỗ hổng liên quan đến IPv6 so với IPv4 Có nhiều lý cho điều này, lý quan trọng tổ chức áp dụng khái niệm bảo mật cho mạng họ, họ quên IPv6 hỗ trợ theo mặc định bật Điều có nghĩa họ định cấu hình chế bảo vệ, họ thường sử dụng địa IPv4 Nếu IPv6 bật thiết bị bảo mật không nhận biết loại địa khác mạng liên kết với thiết bị đó, cơng không ý Sơ đồ sau cho thấy ví dụ cấu trúc gói IPv6: 2.1.3 Cấu trúc TCP header Nói cách tương đối, TCP packet header lớn nhiều so với UDP packet header Nó phải phù hợp với trình tự, cờ chế điều khiển cần thiết Cụ thể, packet để xử lý thiết lập chia nhỏ phiên cách sử dụng số AC khác Các cờ điều khiển để nhận phản hồi từ hệ thống mục tiêu theo ý muốn kẻ cơng Hình sau cho thấy TCP header: 2.1.4 Hiểu rõ cách TCP hoạt động Bắt tay ba bước TCP Bắt tay TCP gọi bắt tay ba bước Ý nghĩa điều ba thông điệp gửi qua lại hai hệ thống trước cổng kết nối thiết lập Ba thông báo SYN, SYN-ACK ACK Hệ thống cố gắng khởi tạo kết nối bắt đầu với gói có cờ SYN Hệ thống trả lời trả gói tin có cờ SYN ACK Cuối cùng, hệ thống khởi tạo trả gói tin cho hệ thống đích ban đầu với cờ ACK đặt Trong hệ thống cũ hơn, khơng thể kết nối, dẫn đến hậu không lường trước Ngày nay, hầu hết hệ thống đủ thông minh để cần thiết lập lại (RST) kết nối đóng 2.1.5 Cấu trúc UDP header Trong TCP giao thức hướng kết nối, UDP giao thức hướng khơng kết nối đơn giản Như thấy hình sau, header cho gói UDP đơn giản đáng kể Điều có chi phí cho UDP để trì socket thay TCP 2.1.6 Hiểu rõ cách UCP hoạt động UDP thiết lập luồng giao tiếp với cổng lắng nghe Cổng chấp nhận liệu chạy lên ngăn xếp TCP/IP cần thiết Trong TCP cần thiết cho giao tiếp đồng đáng tin cậy, UDP khơng 2.2 Hiểu rõ cơng cụ Nmap Nếu có cơng cụ phổ biến thơng qua hầu hết công cụ cấp cao cơng cụ đánh giá mới, nmap Bạn tìm thấy khn khổ khai thác khác nhau, công cụ ứng dụng web tùy chọn khác, nmap công cụ cho nhiều hình thức đánh giá Bây giờ, điều khơng có nghĩa khơng có cơng cụ khác thực thi với khả tương tự; họ không đủ khả Điều bao gồm công cụ AngryIP, HPing, FPing, NetScan, quét Unicorn công cụ khác Từ tất cơng cụ này, có hai cơng cụ bật khác biệt đáng kể, HPing Unicorn scan Sai lầm lớn mà người đánh giá mắc phải với nmap thực nhiều lần quét lúc từ máy chủ Nmap sử dụng ngăn xếp TCP/IP tích hợp hệ điều hành chủ Điều có nghĩa trình quét bổ sung thực khơng tăng tốc kết quả; thay vào đó, nhiều phiên phải xử lý lúc ngăn xếp TCP/IP hệ điều hành Điều không làm chậm kết lần quét mà làm tăng lỗi, gói nhận ảnh hưởng đến kết tùy thuộc vào trường hợp mà nhận Mỗi gói bị thiếu gửi lại, điều có nghĩa q trình qt bị chậm lại, khơng số lượng gói gửi lại, mà cịn kết khơng qn ngăn xếp TCP/IP bị hạn chế Điều có nghĩa thực phiên quét nmap máy chủ Vì vậy, bên cạnh việc giải hạn chế ngăn xếp TCP/IP, cịn có hạn chế cách gói chi tiết thao tác thơng qua nmap HPing cung cấp khả tương đối dễ dàng tạo gói tùy chỉnh đáp ứng mục đích cụ thể Mặc dù tùy chỉnh này, HPing hiệu việc thực kiểm tra máy chủ theo cách tùy chỉnh Nếu nhiều máy chủ cần ping đơn giản với khả tùy chỉnh tương đối, FPing nên công cụ lựa chọn Điều đặc biệt kết tạo Standard Out (STDOUT) FPing dễ dàng phân tích cú pháp để tạo 10 sau gọi hàm trước tạo, điều làm giảm giá trị thành giá trị Sẽ tệ biết giới hạn khóa mật cho hàm, gọi nhiều tài khoản người dùng giống khóa tài khoản Mục cuối trả lại danh sách tên người dùng kết hợp defcombine_usernames(supplemental_list, put_where, username_list, verbose): if "begin" in put_where: username_list[:0] = supplemental_list #Prepend with a slice if "end" in put_where: username_list.extend(supplemental_list) username_list = unique_list(username_list, verbose) return(username_list) Hàm cuối tập lệnh ghi chi tiết vào tệp Để cải thiện khả tập lệnh này, chúng tơi tạo hai loại tệp tên người dùng khác nhau: loại bao gồm miền địa e-mail loại khác danh sách tên người dùng tiêu chuẩn Danh sách tên người dùng bổ sung với miền coi tùy chọn Hàm xóa nội dung tệp cần thiết lặp lại qua danh sách Nếu danh sách danh sách miền, cần áp dụng @ tên miền cho tên người dùng ghi vào tệp defwrite_username_file(username_list, filename, domain, verbose): open(filename, 'w').close() #Delete contents of file name if domain: domain_filename = filename + "_" + domain email_list = [] open(domain_filename, 'w').close() 31 if verbose > 1: print("[*] Writing to %s") % (filename) with open(filename, 'w') as file: file.write('\n'.join(username_list)) if domain: if verbose > 1: print("[*] Writing domain supported list to %s") % (domain_filename) for line in username_list: email_address = line + "@" + domain email_list.append(email_address) with open(domain_filename, 'w') as file: file.write('\n'.join(email_list)) return Bây chức xác định, phát triển phần script giới thiệu đối số tùy chọn cách hợp lý 32 3.4 Testing for users using SMTP VRFY 3.4.1 Creating the SMTP VRFY script Vì Metasploit cơng cụ cơng khác khơng tính đến thời gian chờ cho phiên thử độ trễ lần thử, cần xem xét việc tạo tập lệnh hữu ích cách kết hợp tác vụ Như đề cập trước đây, cơng cụ tuyệt chúng thường phù hợp với 80% tình gặp phải, người chun nghiệp có nghĩa thích ứng với tình mà cơng cụ khơng phù hợp Python Scripting — thư viện socket để kiểm soát giao diện mạng thời gian cho kiểm soát thời gian chờ #/usr/bin/env python import socket, time, argparse, os, sys The next function reads the files into a list that will be used for testing usernames defread_file(filename): with open(filename) as file: lines = file.read().splitlines() return lines Next, a modification of the username_generator.py script function, which wrote the data to a combined username file This provides a confirmed list of usernames to a useful output format defwrite_username_file(username_list, filename, verbose): open(filename, 'w').close() #Delete contents of file name if verbose > 1: print("[*] Writing to %s") % (filename) with open(filename, 'w') as file: file.write('\n'.join(username_list)) 33 return Hàm cuối phức tạp gọi verify_smtp, xác thực tên người dùng chống lại lỗ hổng SMTP VRFY Đầu tiên, tải lên tên người dùng trả từ hàm read_file xác nhận liệu tham số defverify_smtp(verbose, filename, ip, timeout_value, sleep_value, port=25): if port is None: port=int(25) elif port is "": port=int(25) else: port=int(port) if verbose > 0: print "[*] Connecting to %s on port %s to execute the test" % (ip, port) valid_users=[] username_list = read_file(filename) Sau đó, tập lệnh đưa tên người dùng khỏi danh sách sử dụng kiểm tra có điều kiện để thử tạo kết nối với hệ thống IP cổng định Chúng chụp biểu ngữ kết nối, xây dựng lệnh với tên người dùng gửi lệnh Sự trở lại liệu lưu trữ biến kết quả, kiểm tra cho phản hồi lập thành văn trước mã Nếu nhận phản hồi 252, tên người dùng thêm vào danh sách người dùng hợp lệ for user in username_list: try: 34 sys.stdout.flush() s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(timeout_value) connect=s.connect((ip,port)) banner=s.recv(1024) if verbose > 0: print("[*] The system banner is: '%s'") % (str(banner)) command='VRFY ' + user + '\n' if verbose > 0: print("[*] Executing: %s") % (command) print("[*] Testing entry %s of %s") % (str(username_list.index(user)),str( len(username_list))) s.send(command) result=s.recv(1024) if "252" in result: valid_users.append(user) if verbose > 1: print("[+] Username %s is valid") % (user) if "550" in result: if verbose > 1: print "[-] 550 Username does not exist" if "503" in result: print("[!] The server requires authentication") 35 break if "500" in result: print("[!] The VRFY command is not supported") break Các điều kiện ngắt cụ thể đặt để gây kết thúc tương đối tập lệnh điều kiện đáp ứng yêu cầu kết thúc kiểm tra Cần lưu ý tên người dùng có kết nối riêng biệt thiết lập để ngăn kết nối bị giữ trạng thái mở dài, giảm lỗi cải thiện hội để tương lai, tập lệnh tạo thành tập lệnh đa luồng, Thêm tính thường xuyên vào công cụ Python Hai thành phần cuối tập lệnh xử lý lỗi ngoại lệ cuối hoạt động có điều kiện, đóng kết nối, làm chậm trình thực thi cần xóa STDOUT except IOError as e: if verbose > 1: print("[!] The following error occured: '%s'") % (str(e)) if 'Operation now in progress' in e: print("[!] The connection to SMTP failed") break finally: if valid_users and verbose > 0: print("[+] %d User(s) are Valid" % (len(valid_users))) elif verbose > and not valid_users: print("[!] No valid users were found") s.close() if sleep_value is not 0: 36 time.sleep(sleep_value) sys.stdout.flush() return valid_users Phần lớn thành phần tập lệnh trước sử dụng lại chúng tinh chỉnh cho kịch Hãy xem xác định thành phần khác cho bạn sau hiểu cách kết hợp thay đổi vào thay đổi tương lai if name == ' main ': # If script is executed at the CLI usage = '''usage: %(prog)s [-u username_file] [-f output_filename] [-iip address] [-p port_number] [-t timeout] [-s sleep] -q -v -vv -vvv''' parser = argparse.ArgumentParser(usage=usage) parser.add_argument("-u", " usernames", type=str, help="The usernames that are to be read", action="store", dest="username_file") parser.add_argument("-f", " filename", type=str, help="Filename for output the confirmed usernames", action="store", dest="filename") parser.add_argument("-i", " ip", type=str, help="The IP address of the target system", action="store", dest="ip") parser.add_argument("-p"," port", type=int, default=25, action="store", help="The port of the target system's SMTP service", dest="port") parser.add_argument("-t"," timeout", type=float, default=1, action="store", help="The timeout value for service responses in seconds", dest="timeout_value") parser.add_argument("-s"," sleep", type=float, default=0.0, action="store", help="The wait time between each request in seconds", dest="sleep_value") parser.add_argument("-v", action="count", dest="verbose", help="Verbosity level, defaults to one, this outputs each command and result") 37 default=1, parser.add_argument("-q", action="store_const", dest="verbose", const=0, help="Sets the results to be quiet") parser.add_argument(' version', action='version', version='%(prog)s 0.42b') args = parser.parse_args() # Set Constructors username_file = args.username_file # Usernames to test filename = args.filename # Filename for outputs verbose = args.verbose # Verbosity level ip = args.ip # IP Address to test port = args.port # Port for the service to test timeout_value = args.timeout_value # Timeout value for service connections sleep_value = args.sleep_value # Sleep value between requests dir = os.getcwd() # Get current working directory username_list =[] # Argument Validator if len(sys.argv)==1: parser.print_help() sys.exit(1) if not filename: if os.name != "nt": filename = dir + "/confirmed_username_list" else: 38 filename = dir + "\\confirmed_username_list" else: if filename: if "\\" or "/" in filename: if verbose > 1: print(" [*] Using filename: %s") % (filename) else: if os.name != "nt": filename = dir + "/" + filename else: filename = dir + "\\" + filename if verbose > 1: print("[*] Using filename: %s") % (filename) Thành phần cuối script việc gọi hàm cụ thể để thực thi script username_list = verify_smtp(verbose, username_file, ip, timeout_value, sleep_value, port) if len(username_list) > 0: write_username_file(username_list, filename, verbose) Tập lệnh có khả trợ giúp mặc định, giống tập lệnh username_generator.py, hiển thị ảnh chụp hình sau: 39 Phiên cuối tập lệnh tạo đầu sau: Sau thực lệnh sau, lệnh có tên người dùng, địa IP đích, cổng dịch vụ SMTP tệp đầu ra, tập lệnh có giá trị ngủ mặc định 0,0 giá trị thời gian chờ mặc định giây Nếu thử nghiệm qua Internet, phải tăng giá trị Một người dùng mà xác thực hệ thống khơng có ngạc nhiên tài khoản msfadmin Tuy nhiên hệ thống thực, giảm số lượng tài khoản bạn cần để kiểm tra hiệu thu hẹp nửa phương trình cơng thơng tin xác thực Bây giờ, việc cần làm tìm dịch vụ mà bạn muốn thử nghiệm Exploiting Services with Python 4.1 Understanding the new age of service exploitation Khai thác(exploitation) ngày có nghĩa xác định quyền truy cập có đánh cắp thành phần quyền truy cập, xâm phạm hệ thống với cấp độ truy cập đó, nắm bắt thông tin chi tiết hệ thống di chuyển theo chiều ngang xác định liệu quan trọng cấp độ truy cập Khi bạn xác định 40 quyền truy cập vào hệ thống, bạn thử tìm chi tiết cho phép bạn di chuyển truy cập hệ thống khác Điều có nghĩa tệp cấu hình với tên người dùng mật đó, tên người dùng mật lưu trữ chia sẻ gắn kết Mỗi thành phần cung cấp cho bạn thơng tin để có quyền truy cập vào máy chủ khác Các lợi ích việc cơng hệ thống theo cách yên tĩnh nhiều so với việc khai thác tải lên tải trọng; bạn di chuyển giới hạn giao thức cần thiết bạn thực tốt việc mô tác nhân độc hại thực Để thiết lập ngôn ngữ quán, di chuyển từ máy chủ sang máy chủ khác, đồng thời mức đặc quyền gọi chuyển động bên Khi tìm thấy mức cao đặc quyền chẳng hạn Domain Administrator (DA), coi chuyển động dọc báo cáo đặc quyền Khi sử dụng quyền truy cập vào máy chủ khu vực mạng để có quyền truy cập vào hệ thống mà khơng thể nhìn thấy trước đây, kiểm sốt truy cập mạng tách biệt, điều gọi xoay vòng 4.2 Understanding the chaining of exploits 4.2.1 Checking for weak, default, or known passwords Thực phun mật chống lại Metasploitable với tên người dùng biết msfadmin, sử dụng mật giống với tên người dùng Tiến hành quét máy chủ đích để mở dịch vụ để kiểm tra thơng tin đăng nhập 41 Sau đó, lưu ý dịch vụ Secure Shell (SSH) mở, dịch vụ để nhắm mục tiêu Dịch vụ cung cấp quyền truy cập tương tác vào máy chủ lưu trữ Để làm ví dụ, khởi chạy Hydra chống lại dịch vụ SSH để kiểm tra điểm yếu hộp đích Như thấy hình sau, xác thực tên người dùng mật kết hợp cung cấp quyền truy cập vào hệ thống Bây giờ, nhiều chuyên gia đánh giá sử dụng Metasploit để thực việc công Vấn đề tương tác với dịch vụ, thay vào phải làm việc thơng 42 qua câu lệnh shell a truy cập đầu cuối Để vượt qua giới hạn này, phải sử dụng máy khách SSH 4.2.2 Gaining root access to the system Bây kết hợp tên người dùng mật để truy cập hệ thống, cố gắng truy cập vào máy chủ xác định chi tiết khác hệ thống Cụ thể, muốn xác định tên người dùng mật khác cung cấp quyền truy cập vào hệ thống Để làm điều này, cần xem liệu truy cập vào /etc/passwd /etc/shadow máy chủ đích Sự kết hợp hai tệp cung cấp tên người dùng máy chủ lưu trữ mật liên kết SSH vào hệ thống với tên người dùng mật khẩu: msfadmin Bây giờ, xác minh truy cập tệp /etc/passwd, sau chép tệp vào máy chủ Kali sử dụng Secure Copy (SCP) Bản thành công sau cho thấy ta truy cập vào tệp: Sau đó, cố gắng truy cập /etc/shadow với quyền truy cập xác định khơng thể 43 Điều có nghĩa cần phải nâng cao đặc quyền cục để có quyền truy cập vào tệp; Linux điều thực theo bốn cách Cách dễ tìm tên người dùng mật máy chủ lưu trữ, phổ biến máy chủ Linux UNIX Cách thứ hai, không yêu cầu khai thác đưa vào hệ thống thao tác tệp, đầu vào đầu sử dụng không bit Sticky, Đặt người dùng Set User Identifier (SUID) Globally Unique Identifier (GUID) Thứ ba cách khai thác phiên dễ bị công Kernel Phương pháp thứ tư cách bị bỏ qua nhiều để có quyền truy cập vào tệp quyền truy cập sudo định cấu hình sai Tất cần phải làm thực thi sudo su -, mà khởi tạo phiên với tư cách người chủ Phần sau cho thấy ví dụ đơn giản giành quyền truy cập root vào hệ thống: 4.2.3 Understanding the cracking of Linux hashes Bây giờ, tạo thư mục để xử lý tất liệu bẻ khóa hộp Kali di chuyển tệp mật qua Sau đó, sử dụng John để kết hợp tệp với lệnh unshadow, bắt đầu cố gắng bẻ khóa mặc định 44 4.2.4 Testing for the synchronization of account credentials Với kết này, xác định xem có thơng tin đăng nhập sử dụng lại mạng hay khơng Có máy chủ Windows chủ yếu mạng mục tiêu, cần xác định tài khoản có cổng 445 mở Sau đó, thử xác định, tài khoản cấp cho quyền truy cập lệnh sau chạy: nmap -sS -vvv -p445 192.168.195.0/24 -oG output Sau đó, phân tích cú pháp kết cho cổng mở lệnh sau, lệnh cung cấp tệp máy chủ đích có bật Server Message Block (SMB) grep 445/open output| cut -d" " -f2 >> smb_hosts Mật trích xuất trực tiếp từ John viết dạng tệp mật sử dụng cho công dịch vụ john show unshadowed |cut -d: -f2|grep -v " " > passwords 4.3 Automating the exploit train with Python Q trình khai thác tương đối đơn giản, nhưngcó thể tự động hóa phần việc với exploit Tập lệnh sử dụng thư viện nmap để quét cổng hoạt động 445, sau tạo danh sách mục tiêu để kiểm tra tên người dùng mật truyền qua đối số cho tập lệnh Tập lệnh sử dụng mơ-đun smb_enumusers_domain để xác định hộp có thông tin đăng nhập sử dụng lại người dùng khả thi khác đăng nhập vào họ Đầu tiên, cần cài đặt thư viện msfrpc SpiderLabs dành cho Python Có thể tìm thấy thư viện https://github.com/SpiderLabs/msfrpc.git 45 ... Hiểu phương pháp kiểm tra thâm nhập 1.1 Tổng quan thử nghiệm thâm nhập Có quan niệm sai lầm lớn thử nghiệm thâm nhập Điều phổ biến chuyên gia tham gia vào lĩnh vực Những người kiểm tra thâm nhập. .. lớn kiểm tra thâm nhập hoạt động khác xác định, phương pháp luận liên quan đến việc đạt mục tiêu làm bật 1.3 Phương pháp đánh giá Có nhiều phương pháp đánh giá liên quan đến thử nghiệm thâm nhập. .. Hướng dẫn Kỹ thuật Kiểm tra An ninh Thông tin Đánh giá, PTES Phương pháp mà tập trung vào sách PTES nguồn lực vững cho người đánh giá Xác định mục tiêu Nmap, Scapy Python 2.1 Hiểu rõ cách hệ thống