Mục tiêu của Module 04 ENUMREATION
Sau khi hoàn thành module này, bạn sẽ có thể:
- Mô tả các khái niệm về enum
- Giải thích các kỹ thuật enum NetBIOS khác nhau
- Giải thích các kỹ thuật enum SNMP khác nhau
- Giải thích các kỹ thuật enum LDAP và NTP khác nhau
- Giải thích các enum khác như IPsec, VoIP, RPC và enum Linux/Unix
- Giải thích các kỹ thuật enum SMTP và DNS khác nhau
- Áp dụng các biện pháp đối phó với enum
- Thực hiện kiểm thử thâm nhập enum
Những nội dung chính
- Khái niệm Enum
- Enum NetBIOS
- Enum SNMP
- Enum LDAP
- Enum NTP
- Enum SMTP và DNS
- Các kỹ thuật Enum khác
- Biện pháp đối phó với Enum
- Kiểm thử thâm nhập Enum
Khái niệm Enum
Enum là gì?
Enum là quá trình trích xuất tên người dùng, tên máy, tài nguyên mạng, chia sẻ và dịch vụ từ một hệ thống hoặc mạng. Trong giai đoạn enum, kẻ tấn công tạo các kết nối hoạt động với hệ thống và thực hiện các truy vấn trực tiếp để có thêm thông tin về mục tiêu.
Kẻ tấn công sử dụng thông tin thu thập được để xác định các điểm tấn công hệ thống và thực hiện các cuộc tấn công mật khẩu để có quyền truy cập trái phép vào tài nguyên hệ thống thông tin.
Các kỹ thuật enum được thực hiện trong môi trường mạng nội bộ.
Thông tin được Enum bởi kẻ xâm nhập
- Tài nguyên mạng
- Chia sẻ mạng
- Bảng định tuyến
- Cài đặt kiểm toán và dịch vụ
- Chi tiết SNMP và FQDN
- Tên máy
- Người dùng và nhóm
- Ứng dụng và banner
Trong quá trình enum, kẻ tấn công có thể vô tình gặp phải một chia sẻ IPC từ xa, chẳng hạn như IPC$ trong Windows, mà chúng có thể thăm dò thêm về các phiên null để thu thập thông tin về các chia sẻ và tài khoản hệ thống khác.
Các module trước đã nhấn mạnh cách kẻ tấn công thu thập thông tin cần thiết về mục tiêu mà không thực sự vi phạm rào cản pháp lý. Tuy nhiên, các hoạt động enum có thể là bất hợp pháp tùy thuộc vào chính sách của tổ chức và bất kỳ luật nào có hiệu lực. Là một hacker đạo đức hoặc người kiểm thử thâm nhập, bạn nên luôn xin ủy quyền thích hợp trước khi thực hiện enum.
Các kỹ thuật Enum
Để trích xuất thông tin về mục tiêu:
- Trích xuất tên người dùng bằng ID email Mỗi địa chỉ email chứa hai phần: tên người dùng và tên miền. Cấu trúc của một địa chỉ email là username@domainname. Xem xét abc@gmail.com; trong địa chỉ email này, “abc” (chuỗi ký tự đứng trước ký hiệu ‘@’) là tên người dùng và “gmail.com” (chuỗi ký tự theo sau ký hiệu ‘@’) là tên miền.
- Trích xuất thông tin bằng mật khẩu mặc định Nhiều tài nguyên trực tuyến cung cấp danh sách mật khẩu mặc định được nhà sản xuất chỉ định cho sản phẩm của họ. Người dùng thường bỏ qua việc thay đổi tên người dùng và mật khẩu mặc định do nhà sản xuất hoặc nhà phát triển sản phẩm cung cấp. Điều này giúp kẻ tấn công dễ dàng hơn trong việc liệt kê và khai thác hệ thống mục tiêu.
- Tấn công vét cạn Active Directory Microsoft Active Directory dễ bị tấn công bằng enum tên người dùng tại thời điểm xác minh đầu vào do người dùng cung cấp. Đây là lỗi thiết kế trong việc triển khai Microsoft Active Directory. Nếu người dùng kích hoạt tính năng “giờ đăng nhập”, thì tất cả các nỗ lực xác thực dịch vụ đều dẫn đến các thông báo lỗi khác nhau. Kẻ tấn công lợi dụng điều này để liệt kê tên người dùng hợp lệ. Kẻ tấn công thành công trong việc trích xuất tên người dùng hợp lệ có thể tiến hành tấn công vét cạn để bẻ khóa các mật khẩu tương ứng.
- Trích xuất thông tin bằng chuyển vùng DNS Quản trị viên mạng có thể sử dụng Chuyển vùng DNS để sao chép dữ liệu Hệ thống tên miền (DNS) trên một số máy chủ DNS hoặc để sao lưu các tệp DNS. Quản trị viên cần thực hiện yêu cầu chuyển vùng cụ thể đến máy chủ tên. Nếu máy chủ tên cho phép chuyển vùng, nó sẽ chuyển đổi tất cả các tên DNS và địa chỉ IP, được lưu trữ bởi máy chủ đó thành văn bản ASCII. Nếu quản trị viên mạng không cấu hình máy chủ DNS đúng cách, chuyển vùng DNS là một phương pháp hiệu quả để lấy thông tin về mạng của tổ chức. Thông tin này có thể bao gồm danh sách tất cả các máy chủ được đặt tên, vùng phụ và địa chỉ IP liên quan. Người dùng có thể thực hiện chuyển vùng DNS bằng nslookup.
- Trích xuất nhóm người dùng từ Windows Để trích xuất nhóm người dùng từ Windows, kẻ tấn công phải có ID đã đăng ký làm người dùng trong Active Directory. Sau đó, kẻ tấn công có thể trích xuất thông tin từ các nhóm mà người dùng là thành viên bằng cách sử dụng giao diện Windows hoặc phương pháp dòng lệnh.
- Trích xuất tên người dùng bằng SNMP Kẻ tấn công có thể dễ dàng đoán các chuỗi cộng đồng chỉ đọc hoặc đọc-ghi bằng cách sử dụng API SNMP để trích xuất tên người dùng.
Dịch vụ và cổng để Enum
Giao thức điều khiển truyền (TCP) và Giao thức dữ liệu người dùng (UDP) quản lý truyền thông dữ liệu giữa các thiết bị đầu cuối trong mạng.
TCP là một giao thức hướng kết nối. Chúng có khả năng mang tin nhắn hoặc email qua Internet. Chúng cung cấp dịch vụ truyền thông đa quy trình đáng tin cậy trong môi trường đa mạng. Các tính năng và chức năng của TCP bao gồm:
- Hỗ trợ xác nhận nhận dữ liệu thông qua hệ thống xác nhận cửa sổ trượt
- Cung cấp khả năng truyền lại tự động dữ liệu bị mất hoặc chưa được xác nhận
- Cung cấp khả năng định địa chỉ và ghép kênh dữ liệu
- Khả năng thiết lập, quản lý và kết thúc kết nối
- Cung cấp truyền tải chất lượng dịch vụ
- Cung cấp quản lý tắc nghẽn và kiểm soát luồng
UDP là một giao thức không kết nối, cung cấp dịch vụ không đáng tin cậy. Chúng mang các tin nhắn ngắn qua mạng máy tính.
Các ứng dụng bao gồm:
- Truyền âm thanh
- Video và Hội nghị truyền hình
Các dịch vụ và cổng TCP/UDP để enum có thể bao gồm:
- TCP/UDP 53: Chuyển vùng DNS Quá trình phân giải DNS thiết lập giao tiếp giữa máy khách DNS và máy chủ DNS. Máy khách DNS gửi tin nhắn DNS đến máy chủ DNS lắng nghe trên cổng UDP 53. Trong trường hợp kích thước tin nhắn DNS vượt quá kích thước mặc định của UDP (512 octet), phản hồi chỉ chứa dữ liệu mà UDP có thể chứa, và máy chủ DNS đặt cờ để chỉ ra phản hồi bị cắt ngắn. Bây giờ máy khách DNS có thể gửi lại yêu cầu qua TCP trên cổng 53 đến máy chủ DNS. Trong cách tiếp cận này, máy chủ DNS sử dụng UDP làm giao thức mặc định và trong trường hợp truy vấn dài mà UDP thất bại, sử dụng TCP làm giải pháp dự phòng. Một số phần mềm độc hại như ADM worm, Bonk Trojan, v.v. sử dụng cổng 53 để khai thác lỗ hổng trong máy chủ DNS. Điều này có thể giúp kẻ xâm nhập phát động các cuộc tấn công.
- TCP/UDP 135: Microsoft RPC Endpoint Mapper RPC là một giao thức được sử dụng bởi hệ thống khách để yêu cầu dịch vụ từ máy chủ. Một điểm cuối là cổng giao thức mà máy chủ lắng nghe các cuộc gọi thủ tục từ xa của máy khách. RPC endpoint mapper cho phép máy khách RPC xác định số cổng hiện được gán cho một dịch vụ RPC cụ thể. Có một lỗ hổng trong phần của RPC trao đổi tin nhắn qua TCP/IP. Lỗi xảy ra do xử lý không chính xác các tin nhắn được định dạng sai. Điều này ảnh hưởng đến RPC endpoint mapper lắng nghe trên cổng TCP/IP 135. Lỗ hổng này có thể cho phép kẻ tấn công gửi tin nhắn RPC đến quá trình RPC Endpoint Mapper trên máy chủ, để phát động một cuộc tấn công Từ chối Dịch vụ (DoS).
- UDP137: NetBIOS Name Service (NBNS) NBNS, còn được gọi là Windows Internet Name Service (WINS), cung cấp dịch vụ phân giải tên cho các máy tính chạy NetBIOS. Các máy chủ tên NetBIOS duy trì cơ sở dữ liệu về các tên NetBIOS cho các máy chủ và địa chỉ IP tương ứng mà máy chủ đang sử dụng. Công việc của NBNS là khớp địa chỉ IP với tên NetBIOS và truy vấn. Kẻ tấn công thường tấn công dịch vụ tên trước tiên. Thông thường, NBNS sử dụng UDP 137 làm giao thức truyền tải của nó. Chúng cũng có thể sử dụng TCP 137 làm giao thức truyền tải cho một số hoạt động, mặc dù điều này có thể không bao giờ xảy ra trong thực tế.
- TCP139: NetBIOS Session Service (SMB qua NetBIOS) Đây có lẽ là cổng Windows được biết đến nhiều nhất. Chúng được sử dụng để truyền tệp qua mạng. Hệ thống sử dụng cổng này cho cả thiết lập phiên NULL và chia sẻ tệp và máy in. Quản trị viên hệ thống xem xét hạn chế quyền truy cập vào các cổng trên hệ thống Windows nên ưu tiên TCP 139. Một cổng TCP 139 được cấu hình không đúng cách có thể cho phép kẻ xâm nhập có quyền truy cập trái phép vào các tệp hệ thống quan trọng hoặc toàn bộ hệ thống tệp, dẫn đến trộm cắp dữ liệu hoặc các hoạt động độc hại khác.
- TCP/UDP 445: SMB qua TCP (Direct Host) Windows hỗ trợ lưu lượng chia sẻ tệp và máy in sử dụng giao thức Server Message Block (SMB) được lưu trữ trực tiếp trên TCP. Trong các hệ điều hành trước đó, lưu lượng SMB yêu cầu giao thức NetBIOS qua TCP (NBT) để hoạt động trên một giao thức vận chuyển TCP/IP. Lưu lượng SMB được lưu trữ trực tiếp sử dụng cổng 445 (TCP và UDP) thay vì NETBIOS.
- UDP 161: Simple Network Management Protocol (SNMP) Simple Network Management Protocol (SNMP) được sử dụng rộng rãi trong các hệ thống quản lý mạng để giám sát các thiết bị được kết nối mạng như bộ định tuyến, switch, tường lửa, máy in, máy chủ, v.v. Chúng bao gồm một trình quản lý và các tác nhân. Tác nhân nhận yêu cầu trên Cổng 161 từ các trình quản lý và trả lời cho các trình quản lý trên Cổng 162.
- TCP/UDP 389: Lightweight Directory Access Protocol (LDAP) LDAP là một giao thức để truy cập và duy trì các dịch vụ thông tin thư mục phân tán qua mạng Giao thức Internet (IP). Theo mặc định, LDAP sử dụng TCP hoặc UDP làm giao thức vận chuyển của nó qua cổng 389.
- TCP/UDP 3268: Global Catalog Service Máy chủ Global Catalog của Microsoft, một bộ điều khiển miền lưu trữ thông tin bổ sung, sử dụng cổng 3268; cơ sở dữ liệu của nó chứa các hàng cho mọi đối tượng trong toàn bộ tổ chức thay vì chỉ các hàng cho các đối tượng trong một miền. Global Catalog cho phép người ta định vị các đối tượng từ bất kỳ miền nào mà không cần biết tên miền. LDAP trong Máy chủ Global Catalog sử dụng cổng 3268. Dịch vụ này lắng nghe cổng 3268 thông qua kết nối TCP. Quản trị viên sử dụng Cổng 3268 để khắc phục sự cố trong Global Catalog bằng cách kết nối với nó bằng LDP.
- TCP 25: Simple Mail Transfer Protocol (SMTP) SMTP là một giao thức gửi thư TCP/IP. Chúng chuyển email qua Internet và qua mạng cục bộ. Chúng chạy trên dịch vụ hướng kết nối được cung cấp bởi Giao thức Điều khiển Truyền tải (TCP), và chúng sử dụng số cổng nổi tiếng 25. Một số lệnh được sử dụng bởi SMTP và cú pháp tương ứng của chúng:

- TCP/UDP 162: SNMP Trap Simple Network Management Protocol Trap (SNMP Trap) sử dụng cổng TCP/UDP 162 để nhận thông báo như các ràng buộc biến tùy chọn, giá trị sysUpTime, v.v., từ tác nhân đến trình quản lý.
- UDP 500: ISAKMP/Internet Key Exchange (IKE) Internet Security Association and Key Management Protocol (ISAKMP) / Internet Key Exchange (IKE) là giao thức được sử dụng để thiết lập một hiệp hội bảo mật (SA) trong bộ giao thức IPsec. Chúng sử dụng cổng UDP 500 để thiết lập, đàm phán, sửa đổi và xóa Hiệp hội Bảo mật (SA) và khóa mật mã trong môi trường VPN.
- TCP/UDP 5060, 5061: Session Initiation Protocol (SIP) Session Initiation Protocol (SIP) là một giao thức được sử dụng trong các ứng dụng điện thoại Internet cho các cuộc gọi thoại và video. Chúng thường sử dụng cổng TCP/UDP 5060 (lưu lượng tín hiệu không mã hóa) hoặc 5061 (lưu lượng được mã hóa với TLS) cho SIP đến các máy chủ và các điểm cuối khác.
Enum NetBIOS
Enum NetBIOS là bước đầu tiên trong việc liệt kê một hệ thống Windows là tận dụng API NetBIOS. NetBIOS là viết tắt của Network Basic Input Output System. Ban đầu nó là một Giao diện lập trình ứng dụng (API) cho phần mềm khách truy cập tài nguyên LAN. Windows sử dụng NetBIOS để chia sẻ tệp và máy in. Tên NetBIOS là tên máy tính duy nhất được gán cho các hệ thống Windows và là chuỗi ASCII 16 ký tự được sử dụng để xác định các thiết bị mạng qua TCP/IP; 15 ký tự được sử dụng cho tên thiết bị và ký tự thứ 16 được dành cho loại bản ghi dịch vụ hoặc tên. NetBIOS sử dụng cổng UDP 137 (dịch vụ tên), cổng UDP 138 (dịch vụ datagram) và cổng TCP 139 (dịch vụ phiên). Kẻ tấn công thường nhắm mục tiêu dịch vụ NetBIOS, vì nó dễ khai thác và chạy trên các hệ thống Windows ngay cả khi không sử dụng.
Kẻ tấn công sử dụng enum NetBIOS để thu được:
- Danh sách máy tính thuộc về một miền
- Danh sách chia sẻ trên các máy chủ riêng lẻ trong mạng
- Chính sách và mật khẩu
Một kẻ tấn công, khi tìm thấy một hệ điều hành Windows với cổng 139 mở, có thể kiểm tra xem những tài nguyên nào có thể truy cập hoặc xem được trên hệ thống từ xa. Tuy nhiên, để liệt kê các tên NetBIOS, hệ thống từ xa phải đã bật chia sẻ tệp và máy in. Enum NetBIOS có thể cho phép kẻ tấn công đọc hoặc ghi vào hệ thống máy tính từ xa, tùy thuộc vào tính khả dụng của các chia sẻ, hoặc phát động DoS.
Dưới đây là danh sách các tên Netbios và mô tả của chúng:
- COMPUTER_NAME: Tên máy tính của thiết bị.
- COMPUTER_NAME[00]: Dịch vụ máy trạm.
- COMPUTER_NAME[03]: Dịch vụ tin nhắn.
- COMPUTER_NAME[06]: Dịch vụ RAS Server.
- COMPUTER_NAME[1F]: Dịch vụ NetDDE.
- COMPUTER_NAME[20]: Dịch vụ máy chủ.
- COMPUTER_NAME[21]: Dịch vụ RAS Client.
- COMPUTER_NAME[BE]: Dịch vụ Network Monitor Agent.
- COMPUTER_NAME[BF]: Dịch vụ Network Monitor Application.
- COMPUTER_NAME[03]: Dịch vụ Messenger.
- COMPUTER_NAME[1B]: Trình điều khiển miền (Domain Master Browser).
- COMPUTER_NAME[1C]: Trình điều khiển miền (Domain Controller).
- COMPUTER_NAME[1D]: Dịch vụ Trình điều khiển chính (Master Browser).
- COMPUTER_NAME[1E]: Dịch vụ trình duyệt (Browser Service Elections).
- MSBROWSE: Dịch vụ Trình điều khiển chính (Master Browser) cho mạng con cụ thể.
- DOMAIN_NAME[1B]: Tên miền và chỉ định trình điều khiển miền.
- DOMAIN_NAME[1C]: Tên miền và chỉ định bộ điều khiển miền.
- DOMAIN_NAME[1D]: Tên miền và chỉ định trình điều khiển chính.
- DOMAIN_NAME[1E]: Tên miền và chỉ định dịch vụ trình duyệt.
- USER_NAME: Tên người dùng đang đăng nhập vào máy tính.
Lưu ý: Microsoft không hỗ trợ phân giải tên NetBIOS cho Internet Protocol Version 6 (IPv6).
Tiện ích Nbtstat
Nbtstat là một tiện ích Windows giúp khắc phục sự cố các vấn đề về phân giải tên NETBIOS. Lệnh nbtstat loại bỏ và sửa chữa các mục đã nạp trước bằng cách sử dụng một số công tắc phân biệt chữ hoa chữ thường. Nbtstat hiển thị thống kê giao thức NetBIOS qua TCP/IP (NetBT), bảng tên NetBIOS cho cả máy tính cục bộ và từ xa, và bộ nhớ cache tên NetBIOS. Nbtstat cho phép làm mới bộ nhớ cache tên NetBIOS và các tên được đăng ký với Windows Internet Name Service (WINS). Nhập lệnh Nbtstat mà không có tham số sẽ hiển thị trợ giúp.
Cú pháp Nbtstat:
nbtstat [-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
Ví dụ Nbstat:
- Chạy lệnh nbtstat “nbtstat.exe –c” để lấy nội dung của bộ nhớ cache tên NetBIOS, bảng tên NetBIOS và địa chỉ IP đã phân giải của chúng
- Chạy lệnh nbtstat “nbtstat.exe –a <địa chỉ IP của máy từ xa>” để lấy bảng tên NetBIOS của một máy tính từ xa. Các bạn có thể tìm hiểu thêm về các tùy chọn còn lại. Đây là lệnh hay được đề cập trong các câu hỏi của kì thi CEH hay CHFI nên các bạn cần chú ý.
Công cụ Enum NetBIOS
Hyena là một sản phẩm GUI để quản lý và bảo mật hệ điều hành Microsoft. Chúng hiển thị chia sẻ và tên đăng nhập người dùng cho các máy chủ Windows và bộ điều khiển miền.
Chúng hiển thị biểu diễn đồ họa của Microsoft Terminal Services, Microsoft Windows Network, Web Client Network, v.v.
Tính năng:
- Tùy chọn khớp nhiệm vụ hoạt động – Đã thêm tùy chọn khớp khóa vào Nhiệm vụ hoạt động khi thực hiện các nhiệm vụ cập nhật Active Directory. Tùy chọn khóa mới cho phép sử dụng bất kỳ thuộc tính thư mục duy nhất nào làm trường ‘khớp’ khi cập nhật các đối tượng thư mục.
- Ma trận thành viên nhóm – Trình bày tất cả các thành viên của nhiều nhóm trong một lưới đơn giản, bao gồm tư cách thành viên trực tiếp, gián tiếp (lồng nhau) và chính.
- Cải tiến trình chỉnh sửa hoạt động – Phiên bản mới của Hyena bao gồm các cải tiến tính năng mới cho Trình chỉnh sửa, bao gồm hỗ trợ cho các thuộc tính đa giá trị, ngày hết hạn tài khoản, cũng như khả năng lựa chọn và cập nhật nhiều.
Một số công cụ enum NetBIOS được liệt kê dưới đây:
- Nsauditor Network Security Auditor (https://www.nsauditor.com)
- NetScanTools Pro (https://www.netscantools.com)
- SoftPerfect Network Scanner (https://www.softperfect.com)
- SuperScan (https://www.mcafee.com)
- NetBIOS Enumerator (http://nbtenum.sourceforge.net)
- Nbtscan (http://www.unixwiz.net)
- IP Tools (https://www.ks-soft.net)
- MegaPing (http://www.magnetosoft.com)
Enum tài khoản người dùng
Enum tài khoản người dùng sử dụng bộ công cụ PsTools giúp điều khiển và quản lý các hệ thống từ xa từ dòng lệnh.
Các lệnh để enum tài khoản người dùng bao gồm:
- PsExec PsExec là một thay thế nhẹ cho telnet có thể thực thi các quy trình trên các hệ thống khác, hoàn toàn với khả năng tương tác đầy đủ cho các ứng dụng bảng điều khiển, mà không cần phải cài đặt thủ công phần mềm khách. Cách sử dụng mạnh mẽ nhất của PsExec bao gồm khởi chạy lời nhắc lệnh tương tác trên các hệ thống từ xa và kích hoạt từ xa các công cụ như Ipconfig vốn không có khả năng hiển thị thông tin về các hệ thống từ xa.
Cú pháp: psexec [\computer[,computer2[,…] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-I [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,…] cmd [arguments]
- PsFile PsFile là một tiện ích dòng lệnh hiển thị danh sách các tệp trên một hệ thống được mở từ xa, và nó có thể đóng các tệp đã mở bằng tên hoặc bằng một định danh tệp. Hành vi mặc định của PsFile là liệt kê các tệp trên hệ thống cục bộ được mở bởi các hệ thống từ xa. Gõ một lệnh theo sau bởi “- ” hiển thị thông tin về cú pháp cho lệnh đó.
Cú pháp: psfile [\RemoteComputer [-u Username [-p Password]]] [[Id | path] [-c]]
- PsGetSid PsGetSid dịch SID thành tên hiển thị của chúng và ngược lại. Chúng hoạt động trên các tài khoản tích hợp, tài khoản miền và tài khoản cục bộ. Chúng cũng hiển thị SID của tài khoản người dùng và dịch một SID thành tên đại diện cho nó. Chúng hoạt động qua mạng để truy vấn SID từ xa.
Cú pháp: psgetsid [\computer[,computer[,…] | @file] [-u username [-p password]]] [account|SID]
- PsInfo PsInfo là một công cụ dòng lệnh thu thập thông tin chính về các hệ thống Windows NT/2000 cũ cục bộ hoặc từ xa, bao gồm loại cài đặt, bản dựng kernel, tổ chức và chủ sở hữu đã đăng ký, số lượng bộ xử lý và loại của chúng, lượng bộ nhớ vật lý, ngày cài đặt của hệ thống, và nếu đó là phiên bản dùng thử, ngày hết hạn. Theo mặc định, PsInfo hiển thị thông tin cho hệ thống cục bộ. Chỉ định tên máy tính từ xa để lấy thông tin từ hệ thống từ xa.
Cú pháp: pskill [- ] [-t] [\computer [-u username] [-p password]]
- PsInfo PsInfo là một công cụ dòng lệnh thu thập thông tin chính về các hệ thống Windows NT/2000 cũ cục bộ hoặc từ xa, bao gồm loại cài đặt, bản dựng kernel, tổ chức và chủ sở hữu đã đăng ký, số lượng bộ xử lý và loại của chúng, lượng bộ nhớ vật lý, ngày cài đặt của hệ thống, và nếu đó là phiên bản dùng thử, ngày hết hạn. Theo mặc định, PsInfo hiển thị thông tin cho hệ thống cục bộ. Chỉ định tên máy tính từ xa để lấy thông tin từ hệ thống từ xa.
Cú pháp: psinfo [[\computer[,computer[,..] | @file [-u user [-p psswd]]] [-h] [-s] [-d] [-c [-t delimiter]] [filter]
- PsList PsList là một công cụ dòng lệnh hiển thị thông tin về CPU và bộ nhớ của quy trình hoặc thống kê luồng. Các công cụ trong bộ công cụ Resource như pstat và pmon hiển thị các loại dữ liệu khác nhau nhưng chỉ hiển thị thông tin về các quy trình trên hệ thống mà các công cụ đó được chạy.
- PsLoggedOn PsLoggedOn là một ứng dụng nhỏ hiển thị cả người dùng đăng nhập cục bộ và người dùng đăng nhập qua tài nguyên cho máy tính cục bộ hoặc máy tính từ xa. Nếu một tên người dùng được chỉ định thay vì một máy tính, PsLoggedOn sẽ tìm kiếm các máy tính trong vùng lân cận mạng và tiết lộ nếu người dùng hiện đang đăng nhập. Định nghĩa của PsLoggedOn về một người dùng đăng nhập cục bộ là người có hồ sơ được tải vào Registry, vì vậy PsLoggedOn xác định ai đang đăng nhập bằng cách quét các khóa dưới khóa HKEY_USERS. Đối với mỗi khóa có tên hoặc SID người dùng (Định danh bảo mật), PsLoggedOn tra cứu tên người dùng tương ứng và hiển thị nó. Để xác định ai đăng nhập vào máy tính qua chia sẻ tài nguyên, PsLoggedOn sử dụng API NetSessionEnum.
Cú pháp: psloggedon [- ] [-l] [-x] [\computername | username]
- PsLogList Tiện ích elogdump trích xuất nội dung của một Nhật ký Sự kiện trên máy tính cục bộ hoặc từ xa. PsLogList là một bản sao của elogdump ngoại trừ việc PsLogList có thể đăng nhập vào các hệ thống từ xa trong các tình huống mà thông tin xác thực bảo mật của người dùng không cho phép truy cập vào Nhật ký Sự kiện, và PsLogList truy xuất các chuỗi thông báo từ máy tính nơi nhật ký sự kiện cư trú. Hành vi mặc định của PsLogList là hiển thị nội dung của Nhật ký Sự kiện Hệ thống trên máy tính cục bộ, với định dạng thân thiện với người dùng của các bản ghi Nhật ký Sự kiện.
Cú pháp:psloglist [- ] [\computer[,computer[,…] | @file [-u username [-p password]]] [-s [-t delimiter]] [-m #|-n #|-h #|-d #|-w][-c][-x][-r][-a mm/dd/yy][-b mm/dd/yy][-f filter] [-i ID[,ID[,…] | -e ID[,ID[,…]]] [-o event source[,event source][,..]]] [-q event source[,event source][,..]]] [-l event log file]
- PsPasswd PsPasswd có thể thay đổi mật khẩu tài khoản trên các hệ thống cục bộ hoặc từ xa, cho phép quản trị viên tạo các tệp batch chạy PsPasswd đối với các máy tính họ quản lý để thực hiện thay đổi hàng loạt mật khẩu quản trị viên. PsPasswd sử dụng các API đặt lại mật khẩu của Windows, vì vậy nó không gửi mật khẩu qua mạng dưới dạng văn bản rõ ràng.
Cú pháp:pspasswd [[\computer[,computer[,..] | @file [-u user [-p psswd]]] Username [NewPassword]
- PsShutdown PsShutdown có thể tắt hoặc khởi động lại máy tính cục bộ hoặc từ xa. Chúng không yêu cầu cài đặt thủ công phần mềm khách.
Cú pháp:psshutdown [[\computer[,computer[,..] | @file [-u user [-p psswd]]] -s|-r|-h|-d|-k|-a|-l|-o [-f] [-c] [-t nn|h:m] [-n s] [-v nn] [-e [u|p]:xx:yy] [-m “message”]
Ví dụ minh họa:
- Sử dụng PsExec để chạy lệnh từ xa: Giả sử bạn là quản trị viên hệ thống và cần kiểm tra tình trạng dịch vụ trên một máy từ xa có tên là “Server01”. Bạn có thể sử dụng lệnh sau:
psexec \\Server01 -u Administrator -p password net startLệnh này sẽ chạy lệnh “net start” trên Server01, hiển thị danh sách các dịch vụ đang chạy. - Sử dụng PsKill để kết thúc một quy trình từ xa: Nếu bạn phát hiện một quy trình đáng ngờ có tên “suspicious.exe” đang chạy trên một máy từ xa “WorkStation02”, bạn có thể kết thúc nó bằng lệnh:
pskill \\WorkStation02 -u Administrator -p password suspicious.exe - Sử dụng PsLoggedOn để kiểm tra người dùng đăng nhập: Để kiểm tra xem ai đang đăng nhập vào một máy cụ thể trong mạng của bạn, ví dụ “LaptopUser01”, bạn có thể sử dụng:
psloggedon \\LaptopUser01Điều này sẽ hiển thị danh sách người dùng hiện đang đăng nhập vào máy đó. - Sử dụng PsInfo để thu thập thông tin hệ thống: Nếu bạn cần nhanh chóng thu thập thông tin về cấu hình phần cứng và phần mềm của một máy từ xa “DesktopPC03”, bạn có thể sử dụng:
psinfo \\DesktopPC03Lệnh này sẽ hiển thị thông tin chi tiết về hệ điều hành, bộ xử lý, bộ nhớ và các thông số khác của máy tính đó.
Các ví dụ trên minh họa cách các công cụ PsTools có thể được sử dụng trong các tình huống quản trị hệ thống thực tế, giúp quản lý và giám sát các hệ thống từ xa một cách hiệu quả.
Enum tài nguyên chia sẻ sử dụng Net View
Tiện ích Net View được sử dụng để lấy danh sách tất cả các tài nguyên chia sẻ của máy chủ từ xa hoặc nhóm làm việc.
Cách sử dụng:
net view \\<tên máy tính>
Trong đó <tên máy tính> là tên của một máy tính cụ thể, mà bạn muốn xem tài nguyên của nó. Hoặc
net view /workgroup:<tên nhóm làm việc>
<tên nhóm làm việc> là tên của nhóm làm việc, mà bạn muốn xem tài nguyên chia sẻ của nó
Ví dụ minh họa:
- Xem tài nguyên chia sẻ của một máy tính cụ thể: Giả sử bạn muốn xem các tài nguyên chia sẻ trên máy tính có tên “FileServer01” trong mạng của bạn. Bạn có thể sử dụng lệnh:
net view \\FileServer01Lệnh này sẽ hiển thị danh sách tất cả các thư mục và máy in được chia sẻ trên FileServer01. - Xem tài nguyên chia sẻ trong một nhóm làm việc: Nếu bạn muốn xem tất cả các tài nguyên chia sẻ trong nhóm làm việc có tên “Marketing”, bạn có thể sử dụng:
net view /workgroup:MarketingLệnh này sẽ liệt kê tất cả các máy tính trong nhóm làm việc Marketing và các tài nguyên họ đang chia sẻ. - Tình huống an ninh: Một hacker đạo đức đang thực hiện đánh giá bảo mật cho một công ty. Họ có thể sử dụng Net View để kiểm tra xem có bất kỳ tài nguyên quan trọng nào đang được chia sẻ không đúng cách. Ví dụ: net view \FinanceServer
Nếu lệnh này hiển thị các thư mục như “Payroll” hoặc “ConfidentialReports” được chia sẻ công khai, đó có thể là một vấn đề bảo mật nghiêm trọng cần được giải quyết ngay lập tức.
- Kiểm tra cấu hình mạng: Một quản trị viên mạng mới có thể sử dụng Net View để nhanh chóng hiểu cấu trúc chia sẻ của mạng:
net view /domain:CompanyName
Lệnh này sẽ hiển thị tất cả các máy tính trong miền “CompanyName”, giúp quản trị viên có cái nhìn tổng quan về mạng.
Enum SNMP
Enum SNMP là quá trình liệt kê tài khoản người dùng và thiết bị trên hệ thống mục tiêu bằng SNMP. SNMP (Simple Network Management Protocol) là một giao thức ứng dụng lớp chạy trên UDP và duy trì, quản lý bộ định tuyến, hub và switch trên mạng IP. Các tác nhân SNMP chạy trên mạng Windows và UNIX trên các thiết bị mạng.
SNMP sử dụng hai loại thành phần phần mềm để giao tiếp. Đó là tác nhân SNMP và trạm quản lý SNMP. Tác nhân SNMP nằm trên thiết bị mạng và trạm quản lý SNMP giao tiếp với tác nhân.
Hầu hết tất cả các thiết bị cơ sở hạ tầng mạng như bộ định tuyến, switch, v.v. đều chứa một tác nhân SNMP để quản lý hệ thống hoặc thiết bị. Trạm quản lý SNMP gửi yêu cầu đến tác nhân; sau khi nhận được yêu cầu, tác nhân trả lời. Cả yêu cầu và phản hồi đều là các biến cấu hình có thể truy cập được bởi phần mềm tác nhân. Trạm quản lý SNMP gửi yêu cầu để đặt giá trị cho một số biến. Bẫy cho phép trạm quản lý biết nếu có bất cứ điều gì đã xảy ra ở phía tác nhân, chẳng hạn như khởi động lại, lỗi giao diện hoặc bất kỳ sự kiện bất thường nào khác.
SNMP chứa hai mật khẩu để cấu hình và truy cập tác nhân SNMP từ trạm quản lý. Hai mật khẩu SNMP là:
- Chuỗi cộng đồng chỉ đọc: o Cấu hình của thiết bị hoặc hệ thống có thể được xem bằng mật khẩu này. o Các chuỗi này là công khai.
- Chuỗi cộng đồng đọc/ghi: o Cấu hình trên thiết bị có thể được thay đổi hoặc chỉnh sửa bằng mật khẩu này. o Các chuỗi này là riêng tư.
Khi quản trị viên để lại các chuỗi cộng đồng ở cài đặt mặc định, kẻ tấn công có thể sử dụng các chuỗi cộng đồng mặc định này (mật khẩu) để thay đổi hoặc xem cấu hình của thiết bị hoặc hệ thống. Kẻ tấn công enum SNMP để trích xuất thông tin về tài nguyên mạng như máy chủ, bộ định tuyến, thiết bị, chia sẻ, v.v. và thông tin mạng như bảng ARP, bảng định tuyến, thông tin cụ thể về thiết bị và thống kê lưu lượng.
Các công cụ enum SNMP thường được sử dụng bao gồm SNMPUTIL (http://www.wtcs.org) và IP Network Browser (https://www.solarwinds.com).
Cách hoạt động của SNMP
SNMP sử dụng kiến trúc phân tán bao gồm các trình quản lý SNMP, tác nhân SNMP và một số thành phần liên quan. Các lệnh liên quan đến SNMP bao gồm:
- GetRequest: Được sử dụng bởi trình quản lý SNMP để yêu cầu thông tin từ tác nhân SNMP.
- GetNextRequest: Được sử dụng bởi trình quản lý SNMP liên tục để truy xuất tất cả dữ liệu được lưu trữ trong mảng hoặc bảng.
- GetResponse: Được sử dụng bởi tác nhân SNMP để đáp ứng yêu cầu từ trình quản lý SNMP.
- SetRequest: Được sử dụng bởi trình quản lý SNMP để sửa đổi giá trị của một tham số trong Cơ sở thông tin quản lý (MIB) của tác nhân SNMP.
- Trap: Được sử dụng bởi tác nhân SNMP để thông báo cho trình quản lý SNMP được cấu hình sẵn về một sự kiện nhất định.
Dưới đây là quá trình giao tiếp giữa trình quản lý SNMP và tác nhân SNMP:
- Trình quản lý SNMP (Host X, 10.10.2.1) sử dụng lệnh GetRequest để gửi yêu cầu số lượng phiên hoạt động đến tác nhân SNMP (Host Y, 10.10.2.15). Để thực hiện bước này, trình quản lý SNMP sử dụng các thư viện dịch vụ SNMP như thư viện Microsoft SNMP Management API (Mgmtapi.dll) hoặc thư viện Microsoft WinSNMP API (Wsnmp32.dll).
- Tác nhân SNMP (Host Y) nhận thông báo và xác minh xem chuỗi cộng đồng (Compinfo) có xuất hiện trên MIB của nó không, kiểm tra yêu cầu đối chiếu với danh sách quyền truy cập của nó cho cộng đồng đó và xác minh địa chỉ IP nguồn.
- Nếu tác nhân SNMP không tìm thấy chuỗi cộng đồng hoặc quyền truy cập trong cơ sở dữ liệu MIB của Host Y và dịch vụ SNMP được đặt để gửi bẫy xác thực, nó sẽ gửi một bẫy lỗi xác thực đến điểm đến bẫy được chỉ định, Host Z.
- Thành phần tác nhân chính của tác nhân SNMP gọi tác nhân mở rộng thích hợp để truy xuất thông tin phiên được yêu cầu từ MIB.
- Sử dụng thông tin phiên mà nó truy xuất từ tác nhân mở rộng, dịch vụ SNMP tạo một thông báo SNMP trả về chứa số lượng phiên hoạt động và địa chỉ IP đích (10.10.2.1) của trình quản lý SNMP, Host X.
- Host Y gửi phản hồi cho Host X.
Cơ sở thông tin quản lý (MIB)
MIB là một cơ sở dữ liệu ảo chứa mô tả chính thức về tất cả các đối tượng mạng có thể được quản lý bằng SNMP. Đó là tập hợp các thông tin được tổ chức theo cấu trúc phân cấp. Nó cung cấp một đại diện tiêu chuẩn cho thông tin và lưu trữ của tác nhân SNMP. Các phần tử MIB được nhận dạng bằng các định danh đối tượng. ID đối tượng (OID) là tên số được đưa ra cho đối tượng và bắt đầu từ gốc của cây MIB. Định danh đối tượng có thể xác định duy nhất đối tượng có mặt trong hệ thống phân cấp MIB.
Các đối tượng được quản lý trong MIB bao gồm đối tượng vô hướng xác định một thể hiện đối tượng duy nhất và đối tượng bảng xác định một nhóm các thể hiện đối tượng liên quan. OID bao gồm loại đối tượng (như bộ đếm, chuỗi hoặc địa chỉ), mức độ truy cập (như không thể truy cập, có thể truy cập để thông báo, chỉ đọc hoặc đọc/ghi), hạn chế kích thước và thông tin phạm vi. Trình quản lý SNMP chuyển đổi các số OID thành dạng hiển thị có thể đọc được cho con người bằng cách sử dụng MIB như một sách mã.
Người dùng có thể truy cập nội dung của MIB bằng trình duyệt web bằng cách nhập địa chỉ IP và Lseries.mib hoặc bằng cách nhập tên thư viện DNS và Lseries.mib. Ví dụ, http://IP.Address/Lseries.mib hoặc http://library_name/Lseries.mib. Microsoft cung cấp danh sách các MIB được cài đặt với Dịch vụ SNMP trong bộ công cụ tài nguyên Windows. Những cái chính là:
- DHCP.MIB: Giám sát lưu lượng mạng giữa các máy chủ DHCP và các máy chủ từ xa
- HOSTMIB.MIB: Giám sát và quản lý tài nguyên máy chủ
- LNMIB2.MIB: Chứa các loại đối tượng cho các dịch vụ trạm làm việc và máy chủ
- WINS.MIB: Cho Dịch vụ tên Internet Windows
Công cụ Enum SNMP
Các công cụ enum SNMP được sử dụng để quét một địa chỉ IP duy nhất hoặc một dải địa chỉ IP của các thiết bị mạng có hỗ trợ SNMP để giám sát, chẩn đoán và khắc phục các mối đe dọa bảo mật.
- OpUtils OpUtils là phần mềm quản lý cổng switch và địa chỉ IP. Nó chứa một tập hợp các công cụ mà các kỹ sư mạng có thể sử dụng để giám sát, chẩn đoán và khắc phục các vấn đề về mạng. Sử dụng OpUtils, người ta có thể quản lý địa chỉ IP, lập bản đồ cổng switch, phát hiện thiết bị rogue, giám sát việc sử dụng băng thông, giám sát máy chủ DHCP, sao lưu tệp cấu hình Cisco, xem các bẫy SNMP được gửi từ các thiết bị mạng, lấy danh sách MAC IP, khắc phục sự cố mạng, v.v. Tính năng: o Quản lý địa chỉ IP – Quét các mạng con IPv4 & IPv6 trong mạng để xác định các địa chỉ IP có sẵn và đã sử dụng. o Quản lý cổng Switch – Quét tất cả các switch trong mạng của bạn và lập bản đồ các cổng switch đến các thiết bị xuống đến vị trí vật lý của chúng. o Phát hiện thiết bị Rogue – Xác định các xâm nhập của thiết bị rogue và chặn quyền truy cập của chúng. o Công cụ mạng – Giám sát các máy chủ quan trọng trong mạng để biết tính khả dụng và cảnh báo để được chú ý ngay lập tức.
- Engineer’s Toolset Ứng dụng IP Network Browser trong Engineer’s Toolset thực hiện khám phá mạng trên một mạng con duy nhất hoặc một dải mạng con bằng ICMP và SNMP. Nó quét một IP duy nhất, dải địa chỉ IP hoặc mạng con và hiển thị các thiết bị mạng trong thời gian thực, cung cấp quyền truy cập ngay lập tức vào thông tin chi tiết về các thiết bị trên mạng. Trên một bộ định tuyến Cisco, ứng dụng sẽ xác định phiên bản và bản phát hành IOS hiện tại, cũng như xác định các thẻ được cài đặt vào các khe, trạng thái của mỗi cổng và bảng ARP. Khi nó phát hiện một máy chủ Windows, nó trả về thông tin bao gồm trạng thái giao diện, sử dụng băng thông, dịch vụ đang chạy và thậm chí cả chi tiết về phần mềm đã cài đặt. Tính năng:
- o Khám phá mạng tự động – Khám phá toàn bộ mạng của bạn, bao gồm thiết bị, mối quan hệ địa chỉ MAC đến IP, lập bản đồ cổng Switch và hơn thế nữa.
- o Giám sát và cảnh báo thời gian thực – Giám sát và nhận cảnh báo theo thời gian thực về tính khả dụng và sức khỏe của mạng.
- o Chẩn đoán mạnh mẽ – Thực hiện chẩn đoán mạng mạnh mẽ để khắc phục sự cố nhanh hơn và giải quyết nhanh chóng các vấn đề mạng phức tạp.
- o Tăng cường bảo mật mạng – Mô phỏng các cuộc tấn công vào mạng của bạn để xác định các lỗ hổng bảo mật.
- o Quản lý cấu hình và nhật ký – Cấu hình các thiết bị trên mạng của bạn và khắc phục sự cố bất kỳ vấn đề cấu hình nào bằng các công cụ chuyên dụng.
Một số công cụ enum SNMP khác bao gồm:
- Nsauditor Network Security Auditor (https://www.nsauditor.com)
- Spiceworks Network Monitor (https://www.spiceworks.com)
- NetScanTools Pro (https://www.netscantools.com)
- SoftPerfect Network Scanner (https://www.softperfect.com)
- Network Performance Monitor (http://www.solarwinds.com)
- SNMP Informant (https://www.snmp-informant.com)
- OiDViEW SNMP MIB Browser (http://www.oidview.com)
- iReasoning MIB Browser (http://ireasoning.com)
- SNScan (https://www.mcafee.com)
- SNMPCHECK (http://www.nothink.org)
- Net-SNMP (http://www.net-snmp.org)
- Getif (http://www.wtcs.org)
Ví dụ minh họa:
- Sử dụng OpUtils để quản lý địa chỉ IP: Giả sử bạn là quản trị viên mạng của một công ty vừa và nhỏ. Bạn cần kiểm tra xem có địa chỉ IP nào đang không được sử dụng trong mạng của mình. Bạn có thể sử dụng tính năng quản lý địa chỉ IP của OpUtils để quét mạng con 192.168.1.0/24:
OpUtils > IP Address Manager > Scan Subnet > 192.168.1.0/24Công cụ sẽ hiển thị danh sách các địa chỉ IP đang được sử dụng và những địa chỉ có sẵn, giúp bạn quản lý hiệu quả tài nguyên IP. - Sử dụng Engineer’s Toolset để phát hiện thiết bị mạng: Trong một tình huống khác, bạn nghi ngờ có một thiết bị mới được thêm vào mạng mà không được ủy quyền. Bạn có thể sử dụng IP Network Browser trong Engineer’s Toolset để quét nhanh mạng:
IP Network Browser > Scan Network > 192.168.1.0/24Công cụ sẽ hiển thị tất cả các thiết bị trong mạng, bao gồm cả những thiết bị mới. Bạn có thể so sánh kết quả này với danh sách thiết bị được phép để xác định bất kỳ thiết bị không xác định nào. - Sử dụng SNMP để giám sát hiệu suất: Bạn nhận được báo cáo về hiệu suất mạng kém từ một bộ phận trong công ty. Để điều tra, bạn có thể sử dụng một công cụ như Network Performance Monitor để kiểm tra hiệu suất của switch chính phục vụ bộ phận đó:
Network Performance Monitor > Add Device > 192.168.1.10 (địa chỉ IP của switch)Sau khi thêm thiết bị, bạn có thể xem các chỉ số như sử dụng băng thông, lỗi giao diện và độ trễ. Điều này có thể giúp bạn xác định liệu vấn đề có phải do quá tải mạng hay lỗi thiết bị hay không. - Phát hiện cấu hình SNMP không an toàn: Trong quá trình kiểm tra bảo mật, bạn muốn xác định xem có thiết bị nào trong mạng đang sử dụng chuỗi cộng đồng SNMP mặc định. Bạn có thể sử dụng một công cụ như SNMPCHECK:
snmpcheck -t 192.168.1.0/24Công cụ sẽ quét toàn bộ mạng con và báo cáo bất kỳ thiết bị nào đang sử dụng chuỗi cộng đồng mặc định như “public” hoặc “private”. Điều này giúp bạn xác định các thiết bị cần được cấu hình lại để tăng cường bảo mật.
Các ví dụ này minh họa cách các công cụ enum SNMP có thể được sử dụng trong các tình huống thực tế để quản lý, giám sát và bảo vệ mạng. Chúng cho phép quản trị viên mạng nhanh chóng xác định và giải quyết các vấn đề, cũng như duy trì tổng quan về cơ sở hạ tầng mạng của họ.
Enum LDAP
Các giao thức khác nhau cho phép giao tiếp và quản lý việc truyền dữ liệu giữa các tài nguyên mạng. Tất cả các giao thức này mang thông tin có giá trị về tài nguyên mạng cùng với dữ liệu. Một người dùng bên ngoài có thể liệt kê thông tin đó bằng cách thao túng các giao thức, có thể đột nhập vào mạng và có thể sử dụng sai các tài nguyên mạng. Lightweight Directory Access Protocol (LDAP) là một trong những giao thức như vậy truy cập các danh sách thư mục. Phần này tập trung vào enum LDAP, thông tin được trích xuất thông qua enum LDAP và các công cụ enum LDAP.
LDAP là một giao thức Internet để truy cập các dịch vụ thư mục phân tán. LDAP truy cập các danh sách thư mục trong Active Directory hoặc từ các dịch vụ thư mục khác. LDAP là một dạng thư mục theo thứ bậc hoặc logic, tương tự như sơ đồ tổ chức của công ty. Dịch vụ thư mục có thể cung cấp bất kỳ tập hợp bản ghi có tổ chức nào, thường ở dạng cấu trúc phân cấp và logic, chẳng hạn như thư mục email doanh nghiệp. Chúng sử dụng DNS để tra cứu nhanh và giải quyết các truy vấn nhanh chóng. Máy khách bắt đầu một phiên LDAP bằng cách kết nối với một Tác nhân hệ thống thư mục (DSA) thường trên cổng TCP 389 và gửi yêu cầu hoạt động đến DSA. Quy tắc mã hóa cơ bản (BER) truyền thông tin giữa máy khách và máy chủ.
Người ta có thể truy vấn ẩn danh dịch vụ LDAP để lấy thông tin nhạy cảm như tên người dùng, địa chỉ, chi tiết phòng ban, tên máy chủ, v.v., mà kẻ tấn công có thể sử dụng để phát động các cuộc tấn công.
Công cụ Enum LDAP
Có nhiều công cụ enum LDAP truy cập các danh sách thư mục trong Active Directory hoặc các dịch vụ thư mục khác. Sử dụng các công cụ này, kẻ tấn công có thể liệt kê thông tin như tên người dùng hợp lệ, địa chỉ, chi tiết phòng ban, v.v. từ các máy chủ LDAP khác nhau.
- Softerra LDAP Administrator Softerra LDAP Administrator là một công cụ quản trị LDAP hoạt động với các máy chủ LDAP như Active Directory, Novell Directory Services, Netscape/iPlanet, v.v. Nó duyệt và quản lý các thư mục LDAP. Ngoài ra, nó cung cấp nhiều tính năng thiết yếu cho việc phát triển, triển khai và quản trị LDAP của các thư mục. Tính năng: o Nó cung cấp các cơ sở tìm kiếm thư mục, các hoạt động cập nhật hàng loạt, các cơ sở quản lý thành viên nhóm, v.v. o Nó hỗ trợ LDAP-SQL, cho phép quản lý các mục LDAP bằng cú pháp giống SQL.
Một số công cụ enum LDAP được liệt kê dưới đây:
- LDAP Admin Tool (https://www.ldapsoft.com)
- LDAP Account Manager (https://www.ldap-account-manager.org)
- LDAP Search (http://securityxploded.com)
- JXplorer (http://www.jxplorer.org)
- Active Directory Explorer (https://docs.microsoft.com)
- LDAP Admin (http://www.ldapadmin.org)
- LDAP Administration Tool (https://sourceforge.net)
- OpenLDAP (https://www.openldap.org)
- ad-ldap-enum (https://github.com)
- LEX – The LDAP Explorer (http://www.ldapexplorer.com)
- LDAP Browser/Editor (https://www.novell.com)
Ví dụ minh họa:
- Tìm kiếm người dùng trong Active Directory: Giả sử bạn là quản trị viên hệ thống và cần tìm tất cả người dùng trong phòng kế toán. Bạn có thể sử dụng Softerra LDAP Administrator:
Kết nối đến máy chủ AD > Duyệt đến OU=Accounting > Tìm kiếm (objectClass=user)Điều này sẽ hiển thị tất cả tài khoản người dùng trong phòng kế toán, giúp bạn quản lý quyền truy cập hoặc thực hiện các thay đổi hàng loạt nếu cần. - Kiểm tra cấu trúc LDAP: Trong quá trình kiểm tra bảo mật, bạn muốn xem xét cấu trúc tổng thể của LDAP. Sử dụng JXplorer:
Kết nối đến máy chủ LDAP rồi Duyệt cây LDAPĐiều này cho phép bạn xem toàn bộ cấu trúc thư mục, giúp xác định bất kỳ đơn vị tổ chức (OU) nào có thể được cấu hình không chính xác hoặc có quyền truy cập quá rộng. - Tìm tài khoản không hoạt động: Để duy trì bảo mật, bạn cần xác định và vô hiệu hóa các tài khoản không hoạt động. Sử dụng LDAP Search:
ldapsearch -x -H ldap://your_domain -b "dc=yourdomain,dc=com" "(&(objectClass=user)(lastLogon<=20230101000000.0Z))"Lệnh này sẽ tìm tất cả người dùng chưa đăng nhập kể từ ngày 1 tháng 1 năm 2023, giúp bạn xác định các tài khoản có thể cần được vô hiệu hóa. - Kiểm tra chính sách mật khẩu: Để đảm bảo tuân thủ chính sách bảo mật, bạn cần kiểm tra cài đặt chính sách mật khẩu. Sử dụng Active Directory Explorer:
Kết nối đến máy chủ AD sau đó Duyệt đến CN=Password Settings Container,CN=System,DC=yourdomain,DC=comĐiều này cho phép bạn xem và sửa đổi các cài đặt chính sách mật khẩu, đảm bảo rằng chúng đáp ứng các tiêu chuẩn bảo mật của tổ chức bạn.
Các ví dụ này minh họa cách các công cụ enum LDAP có thể được sử dụng trong các tình huống quản trị và bảo mật thực tế. Chúng cung cấp khả năng truy cập và quản lý thông tin thư mục quan trọng, giúp duy trì bảo mật và hiệu quả của hệ thống thư mục.
Enum NTP
Quản trị viên thường bỏ qua máy chủ Network Time Protocol (NTP) về mặt bảo mật. Tuy nhiên, nếu được truy vấn đúng cách, nó có thể cung cấp thông tin mạng có giá trị cho kẻ tấn công. Do đó, cần thiết phải biết kẻ tấn công có thể thu được thông tin gì về mạng thông qua enum NTP. Phần này mô tả enum NTP, thông tin được trích xuất thông qua enum NTP, các lệnh enum NTP khác nhau và các công cụ enum NTP.
NTP được thiết kế để đồng bộ hóa đồng hồ của các máy tính trong mạng. Nó sử dụng cổng UDP 123 làm phương tiện giao tiếp chính. NTP có thể duy trì thời gian trong vòng 10 mili giây (1/100 giây) qua Internet công cộng. Nó có thể đạt được độ chính xác 200 micro giây hoặc tốt hơn trong các mạng cục bộ trong điều kiện lý tưởng.
Kẻ tấn công truy vấn máy chủ NTP để thu thập thông tin có giá trị như:
- Danh sách máy chủ kết nối với máy chủ NTP
- Địa chỉ IP của máy khách trong mạng, tên hệ thống và hệ điều hành của chúng
- Các IP nội bộ cũng có thể thu được nếu máy chủ NTP nằm trong vùng DMZ
Lệnh Enum NTP
- ntpdate Lệnh này thu thập số lượng mẫu thời gian từ một số nguồn thời gian.
Cú pháp: ntpdate [-bBdoqsuv] [-a key] [-e authdelay] [-k keyfile] [-o version] [-p samples] [-t timeout] [server/IP_address]
Các bạn hãy chạy trực tiếp trên máy của mình để xem xét và hiểu rõ các tùy chọn. Tôi nhớ có lần mình thi gặp một câu hỏi liên quan đến lệnh này.
- ntptrace Lệnh này xác định máy chủ NTP lấy thời gian từ đâu và theo dõi chuỗi máy chủ NTP trở lại nguồn thời gian chính của nó.
Cú pháp:ntptrace [-vdn] [-r retries] [-t timeout] [servername/IP_address]

Ví dụ:
# ntptrace
localhost: stratum 4, offset 0.0019529, synch distance 0.143235
10.10.0.1: stratum 2, offset 0.0114273, synch distance 0.115554
10.10.1.1: stratum 1, offset 0.0017698, synch distance 0.011193
- ntpdc Lệnh này truy vấn daemon ntpd về trạng thái hiện tại của nó và yêu cầu thay đổi trạng thái đó.
Cú pháp: ntpdc [-ilnps] [-c command] [hostname/IP_address]
- ntpq Lệnh này giám sát các hoạt động của daemon NTP ntpd và xác định hiệu suất.
Cú pháp: ntpq [-inp] [-c command] [host/IP_address]
Ví dụ:
ntpq> version
ntpq 4.2.8p10@1.3728-o
ntpq> host
current host is localhost
Công cụ Enum NTP
Các công cụ enum NTP được sử dụng để giám sát hoạt động của các máy chủ NTP và SNTP có trong mạng và cũng giúp trong việc cấu hình và xác minh kết nối từ máy khách thời gian đến các máy chủ NTP.
- PRTG Network Monitor PRTG giám sát tất cả các hệ thống, thiết bị, lưu lượng và ứng dụng của cơ sở hạ tầng CNTT bằng cách sử dụng các công nghệ khác nhau như SNMP, WMI, SSH, v.v. PRTG Network Monitor bao gồm các cảm biến giám sát SNTP, một máy chủ Simple Network Time Protocol (SNTP) hiển thị thời gian phản hồi của máy chủ và chênh lệch thời gian so với thời gian hệ thống cục bộ.
Một số công cụ enum NTP bao gồm:
- Nmap (https://nmap.org)
- Wireshark (https://www.wireshark.org)
- udp-proto-scanner (https://labs.portcullis.co.uk)
- NTP Time Server Monitor (https://www.meinbergglobal.com)
Ví dụ minh họa:
- Kiểm tra đồng bộ hóa thời gian trong mạng: Giả sử bạn là quản trị viên hệ thống và cần đảm bảo rằng tất cả các máy trong mạng đang đồng bộ hóa thời gian chính xác. Bạn có thể sử dụng lệnh ntpq để kiểm tra trạng thái đồng bộ hóa: ntpq -p Lệnh này sẽ hiển thị danh sách các máy chủ NTP mà hệ thống của bạn đang sử dụng, cùng với thông tin về độ trễ và độ lệch. Nếu bạn thấy các giá trị độ lệch lớn, điều đó có thể chỉ ra vấn đề với đồng bộ hóa thời gian.
- Xác định nguồn thời gian chính: Trong một cuộc điều tra về sự cố, bạn cần biết nguồn thời gian chính mà mạng của bạn đang sử dụng. Bạn có thể sử dụng lệnh ntptrace: Lệnh này sẽ theo dõi chuỗi máy chủ NTP từ máy cục bộ của bạn đến nguồn thời gian stratum 1 cuối cùng, giúp bạn xác định bất kỳ vấn đề nào trong chuỗi đồng bộ hóa.
- Quét mạng để tìm máy chủ NTP: Trong quá trình kiểm tra bảo mật, bạn muốn xác định tất cả các máy chủ NTP trong mạng của mình. Bạn có thể sử dụng Nmap:
nmap -sU -p 123 192.168.1.0/24Lệnh này sẽ quét toàn bộ mạng con 192.168.1.0/24 để tìm các máy chủ có cổng UDP 123 (NTP) mở. Điều này có thể giúp bạn xác định bất kỳ máy chủ NTP không được ủy quyền nào trong mạng. - Phân tích gói tin NTP: Nếu bạn nghi ngờ có vấn đề với lưu lượng NTP trong mạng, bạn có thể sử dụng Wireshark để phân tích chi tiết:
wireshark -i eth0 -f "udp port 123"Lệnh này sẽ bắt đầu Wireshark và lọc chỉ lưu lượng NTP. Điều này cho phép bạn kiểm tra chi tiết các gói tin NTP, giúp xác định bất kỳ hành vi bất thường nào. - Giám sát liên tục máy chủ NTP: Để đảm bảo tính khả dụng và hiệu suất của máy chủ NTP quan trọng, bạn có thể sử dụng PRTG Network Monitor. Sau khi thêm máy chủ NTP vào PRTG, bạn có thể thiết lập cảnh báo cho các điều kiện như: Thời gian phản hồi cao, Chênh lệch thời gian lớn so với nguồn chuẩn, Mất kết nối đến máy chủ NTP … Điều này giúp bạn phát hiện và giải quyết nhanh chóng các vấn đề với dịch vụ NTP.
Các ví dụ này minh họa cách các công cụ và lệnh enum NTP khác nhau có thể được sử dụng trong các tình huống quản trị mạng và bảo mật thực tế. Chúng giúp đảm bảo tính chính xác của đồng bộ hóa thời gian, điều quan trọng cho nhiều chức năng mạng và bảo mật, đồng thời cũng giúp xác định các vấn đề tiềm ẩn hoặc cấu hình sai trong dịch vụ NTP.
Enum SMTP và DNS
Enum SMTP
Các hệ thống thư thường sử dụng SMTP với POP3 và IMAP cho phép người dùng lưu các tin nhắn trong hộp thư máy chủ và tải xuống chúng thỉnh thoảng từ máy chủ. SMTP sử dụng các máy chủ Mail Exchange (MX) để chuyển hướng thư qua DNS. Nó chạy trên cổng TCP 25.
SMTP cung cấp 3 lệnh tích hợp:
- VRFY – Xác thực người dùng
- EXPN – Cho biết địa chỉ gửi thực tế của bí danh và danh sách gửi thư
- RCPT TO – Xác định người nhận tin nhắn
Máy chủ SMTP phản hồi khác nhau với các lệnh VRFY, EXPN và RCPT TO cho người dùng hợp lệ và không hợp lệ, từ đó chúng ta có thể xác định người dùng hợp lệ trên máy chủ SMTP. Kẻ tấn công có thể tương tác trực tiếp với SMTP qua lời nhắc telnet và thu thập danh sách người dùng hợp lệ trên máy chủ SMTP.
Quản trị viên và người kiểm thử thâm nhập có thể thực hiện enum SMTP bằng cách sử dụng các tiện ích dòng lệnh như telnet, netcat, v.v. hoặc bằng cách sử dụng các công cụ như Metasploit, Nmap, NetScanTools Pro, smtp-user-enum, v.v., để thu thập danh sách người dùng hợp lệ, địa chỉ gửi, người nhận tin nhắn, v.v.
Công cụ Enum SMTP
- NetScanTools Pro Công cụ tạo email SMTP và công cụ kiểm tra chuyển tiếp email của NetScanTools Pro được thiết kế để kiểm tra quá trình gửi tin nhắn email thông qua máy chủ SMTP và thực hiện kiểm tra chuyển tiếp bằng cách giao tiếp với máy chủ SMTP.
- smtp-user-enum smtp-user-enum là một công cụ để liệt kê tài khoản người dùng cấp hệ điều hành trên Solaris thông qua dịch vụ SMTP (sendmail). Việc liệt kê được thực hiện bằng cách kiểm tra các phản hồi cho các lệnh VRFY, EXPN và RCPT TO. smtp-user-enum chỉ cần được truyền vào một danh sách người dùng và ít nhất một mục tiêu đang chạy dịch vụ SMTP. Cách sử dụng:
smtp-user-enum.pl [options] (-u username|-U file-of-usernames) (-t host|-T file-of-targets)Các tùy chọn bao gồm: o -m n – Số lượng quy trình tối đa (mặc định: 5) - o -M mode – Phương thức sử dụng để đoán tên người dùng EXPN, VRFY hoặc RCPT (mặc định: VRFY)
- o -u user – Kiểm tra xem người dùng có tồn tại trên hệ thống từ xa không o -f addr – Địa chỉ email từ để sử dụng cho đoán “RCPT TO” (mặc định: user@example.com)
- o -D dom – Tên miền để thêm vào danh sách người dùng được cung cấp để tạo địa chỉ email (Mặc định: không có)
- o -U file – Tệp chứa tên người dùng để kiểm tra qua dịch vụ smtp o -t host – Máy chủ đang chạy dịch vụ smtp
- o -T file – Tệp chứa tên máy chủ đang chạy dịch vụ smtp
- o -p port – Cổng TCP mà dịch vụ smtp chạy trên đó (mặc định: 25)
- o -d – Đầu ra gỡ lỗi
- o -t n – Chờ tối đa n giây cho phản hồi (mặc định: 5)
- o -v – Chi tiết
- o -h – Thông báo trợ giúp này
Một số công cụ enum SMTP khác bao gồm:
- Telnet (https://technet.microsoft.com)
- Vanquish (https://github.com)
- MX Toolbox (https://mxtoolbox.com)
Enum DNS sử dụng chuyển vùng
Đây là một quy trình để xác định vị trí máy chủ DNS và các bản ghi của mạng mục tiêu.
Kẻ tấn công có thể thu thập thông tin mạng có giá trị như tên máy chủ DNS, tên máy chủ, tên máy, tên người dùng, địa chỉ IP, v.v. của các mục tiêu tiềm năng.
Trong enum chuyển vùng DNS, kẻ tấn công cố gắng truy xuất một bản sao của toàn bộ tệp vùng cho một miền từ máy chủ DNS.
Để thực hiện chuyển vùng DNS, kẻ tấn công gửi yêu cầu chuyển vùng đến máy chủ DNS giả vờ là một máy khách; sau đó máy chủ DNS sẽ gửi một phần cơ sở dữ liệu của nó dưới dạng một vùng cho bạn. Vùng này có thể chứa nhiều thông tin về mạng vùng DNS.
Ví dụ minh họa:
- Sử dụng SMTP để liệt kê người dùng: Giả sử bạn là một chuyên gia bảo mật đang thực hiện kiểm tra thâm nhập được ủy quyền. Bạn muốn kiểm tra xem máy chủ SMTP của công ty có dễ bị liệt kê người dùng hay không. Bạn có thể sử dụng telnet để kết nối với máy chủ SMTP và thử lệnh VRFY:
$ telnet mail.example.com 25
Trying 192.168.1.100…
Connected to mail.example.com.
Escape character is ‘^]’.
220 mail.example.com ESMTP Postfix
HELO test.com
250 mail.example.com
VRFY john
250 2.1.5 John Doe john@example.com
VRFY nonexistent
550 5.1.1 : Recipient address rejected: User unknown in local recipient table
Trong ví dụ này, máy chủ SMTP xác nhận sự tồn tại của người dùng “john” nhưng từ chối người dùng “nonexistent”. Điều này cho thấy máy chủ dễ bị liệt kê người dùng.
2. Sử dụng công cụ smtp-user-enum: Để tự động hóa quá trình liệt kê người dùng SMTP, bạn có thể sử dụng công cụ smtp-user-enum: ./smtp-user-enum -M VRFY -U users.txt -t mail.example.com (Trong đó users.txt là một tệp chứa danh sách tên người dùng cần kiểm tra. Công cụ sẽ thử từng tên người dùng và báo cáo những tên nào tồn tại trên máy chủ.)
3. Thực hiện chuyển vùng DNS: Trong quá trình đánh giá bảo mật, bạn muốn kiểm tra xem máy chủ DNS của công ty có cho phép chuyển vùng DNS không được ủy quyền hay không. Bạn có thể sử dụng công cụ nslookup: Copynslookup > server ns1.example.com Default server: ns1.example.com Address: 192.168.1.10 > set type=any > ls -d example.com Nếu chuyển vùng thành công, bạn sẽ thấy danh sách tất cả các bản ghi DNS cho miền example.com. Đây có thể là một vấn đề bảo mật nghiêm trọng vì nó tiết lộ thông tin chi tiết về cơ sở hạ tầng mạng.
4. Phân tích kết quả chuyển vùng DNS: Sau khi thực hiện chuyển vùng DNS thành công, bạn có thể phân tích kết quả để tìm thông tin hữu ích:
- Tìm tất cả các bản ghi A để lập bản đồ địa chỉ IP cho tên máy chủTìm bản ghi MX để xác định máy chủ emailTìm bản ghi CNAME để hiểu cấu trúc bí danh của miềnTìm bản ghi TXT để biết thông tin bổ sung như cấu hình SPF
5. Đề xuất biện pháp khắc phục: Sau khi phát hiện các lỗ hổng trong cấu hình SMTP và DNS, bạn sẽ đề xuất các biện pháp khắc phục cho khách hàng:
- Đối với SMTP: Vô hiệu hóa lệnh VRFY và EXPN, hoặc cấu hình chúng để chỉ trả lời cho các yêu cầu được xác thực.
- Đối với DNS: Hạn chế chuyển vùng DNS chỉ cho các máy chủ DNS thứ cấp được ủy quyền bằng cách sử dụng ACL (Access Control Lists) trên máy chủ DNS.
Những ví dụ này minh họa cách các kỹ thuật enum SMTP và DNS có thể được sử dụng trong một cuộc đánh giá bảo mật thực tế. Chúng cũng nhấn mạnh tầm quan trọng của việc bảo vệ đúng cách các dịch vụ này để ngăn chặn việc tiết lộ thông tin nhạy cảm.





Bình luận về bài viết này