Các kỹ thuật Enum khác
Enum IPsec
IPsec sử dụng ESP (Encapsulation Security Payload), AH (Authentication Header) và IKE (Internet Key Exchange) để bảo mật giao tiếp giữa các điểm cuối mạng riêng ảo (VPN).
Hầu hết các VPN dựa trên IPsec sử dụng Internet Security Association and Key Management Protocol (ISAKMP), một phần của IKE, để 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.
Một lần quét đơn giản cho ISAKMP tại cổng UDP 500 có thể chỉ ra sự hiện diện của cổng VPN.
Kẻ tấn công có thể thăm dò thêm bằng công cụ như ike-scan để liệt kê thông tin nhạy cảm bao gồm thuật toán mã hóa và băm, loại xác thực, thuật toán phân phối khóa, SA LifeDuration, v.v.
Kẻ tấn công có thể thực hiện quét trực tiếp đơn giản cho ISAKMP tại cổng UDP 500 với các công cụ như Nmap, v.v. để có được thông tin liên quan đến sự hiện diện của cổng VPN.
Bạn có thể nhập lệnh sau để thực hiện quét Nmap để kiểm tra trạng thái của isakmp qua cổng 500:
# nmap –sU –p 500 <địa chỉ IP mục tiêu>
Kẻ tấn công có thể thăm dò thêm bằng cách sử dụng các công cụ lấy dấu vân tay như ike-scan để liệt kê thông tin nhạy cảm bao gồm thuật toán mã hóa và băm, loại xác thực, thuật toán phân phối khóa, SA LifeDuration, v.v. Trong loại quét này, các gói IKE được chế tạo đặc biệt với tiêu đề ISAKMP được gửi đến cổng mục tiêu và các phản hồi được ghi lại.
Khám phá VPN IPsec ban đầu với công cụ ike-scan được thảo luận dưới đây:
# ike-scan –M <địa chỉ IP cổng mục tiêu>
- ike-scan
ike-scan phát hiện các máy chủ IKE và cũng có thể lấy dấu vân tay của chúng bằng cách sử dụng mẫu backoff truyền lại.
ike-scan có thể thực hiện các chức năng sau: o Khám phá: Xác định máy chủ nào trong một dải IP cho trước đang chạy IKE. Điều này được thực hiện bằng cách hiển thị những máy chủ phản hồi với các yêu cầu IKE được gửi bởi ike-scan. o Lấy dấu vân tay: Xác định triển khai IKE mà các máy chủ đang sử dụng, và trong một số trường hợp xác định phiên bản phần mềm mà chúng đang chạy. Điều này được thực hiện theo hai cách: thứ nhất bằng cách lấy dấu vân tay backoff UDP, liên quan đến việc ghi lại thời gian của các gói phản hồi IKE từ các máy chủ mục tiêu và so sánh mẫu backoff truyền lại quan sát được với các mẫu đã biết; và thứ hai bằng cách lấy dấu vân tay ID nhà cung cấp, so sánh các payload ID nhà cung cấp từ các máy chủ VPN với các mẫu ID nhà cung cấp đã biết. o Liệt kê Transform: Tìm các thuộc tính transform nào được hỗ trợ bởi máy chủ VPN cho IKE Phase-1 (ví dụ: thuật toán mã hóa, thuật toán băm, v.v.). o Liệt kê người dùng: Đối với một số hệ thống VPN, khám phá tên người dùng VPN hợp lệ. o Bẻ khóa khóa chia sẻ trước: Thực hiện bẻ khóa mật khẩu từ điển hoặc vét cạn ngoại tuyến cho IKE Aggressive Mode với xác thực khóa chia sẻ trước. Điều này sử dụng ike-scan để lấy băm và các tham số khác, và psk-crack (là một phần của gói ike-scan) để thực hiện việc bẻ khóa.
Ví dụ minh họa:
- Quét để phát hiện các cổng VPN: Giả sử bạn là một chuyên gia bảo mật đang thực hiện đánh giá cơ sở hạ tầng VPN của một công ty. Bạn có thể bắt đầu bằng cách sử dụng Nmap để quét các cổng VPN tiềm năng:
nmap -sU -p 500 192.168.1.0/24Lệnh này sẽ quét toàn bộ mạng con 192.168.1.0/24 cho cổng UDP 500, thường được sử dụng cho ISAKMP/IKE. Nếu bạn thấy các cổng mở, điều đó có thể chỉ ra sự hiện diện của cổng VPN. - Sử dụng ike-scan để lấy thông tin chi tiết: Sau khi xác định một cổng VPN tiềm năng, bạn có thể sử dụng ike-scan để thu thập thêm thông tin:
ike-scan -M 192.168.1.100Lệnh này sẽ gửi một yêu cầu IKE đến địa chỉ IP được chỉ định và hiển thị các thông tin như chế độ VPN (Main Mode hoặc Aggressive Mode), các thuật toán mã hóa và xác thực được hỗ trợ. - Liệt kê các transform được hỗ trợ: Để hiểu rõ hơn về cấu hình bảo mật của VPN, bạn có thể sử dụng ike-scan để liệt kê các transform được hỗ trợ:
ike-scan --showbackoff -M 192.168.1.100Điều này sẽ hiển thị các transform được hỗ trợ bởi cổng VPN, bao gồm các thuật toán mã hóa, xác thực và nhóm Diffie-Hellman. - Kiểm tra lỗ hổng “Aggressive Mode”: Nếu VPN hỗ trợ Aggressive Mode, nó có thể dễ bị tấn công. Bạn có thể kiểm tra điều này bằng cách:
ike-scan -M -A 192.168.1.100Nếu cổng VPN phản hồi với một gói Aggressive Mode, điều đó có thể chỉ ra một lỗ hổng tiềm ẩn. - Đề xuất biện pháp khắc phục: Dựa trên kết quả của các bài kiểm tra này, bạn có thể đề xuất một số biện pháp khắc phục:
- Vô hiệu hóa Aggressive Mode nếu nó không cần thiết
- Đảm bảo rằng chỉ các thuật toán mã hóa và xác thực mạnh được sử dụng
- Cấu hình tường lửa để hạn chế truy cập vào cổng VPN chỉ từ các địa chỉ IP được ủy quyền
- Sử dụng khóa chia sẻ trước (PSK) mạnh và duy nhất cho mỗi kết nối VPN từ xa
Enum VoIP
VoIP sử dụng giao thức SIP (Session Initiation Protocol) để kích hoạt cuộc gọi thoại và video qua mạng IP.
Dịch vụ SIP thường sử dụng các cổng UDP/TCP 2000, 2001, 5050, 5061.
Enum VoIP cung cấp thông tin nhạy cảm như cổng/máy chủ VoIP, hệ thống IP-PBX, phần mềm khách (softphones)/địa chỉ IP tác nhân người dùng điện thoại VoIP và các tiện ích mở rộng người dùng.
Thông tin này có thể được sử dụng để khởi động các cuộc tấn công VoIP khác nhau như Từ chối dịch vụ (DoS), Chiếm đoạt phiên, giả mạo ID người gọi, Nghe lén, Spam qua điện thoại Internet (SPIT), lừa đảo VoIP (Vishing), v.v.
- Svmap Svmap là một công cụ quét miễn phí và Mã nguồn mở để xác định các thiết bị sip và máy chủ PBX trên mạng mục tiêu. Nó cũng có thể hữu ích cho quản trị viên hệ thống khi được sử dụng như một công cụ kiểm kê mạng. Svmap được thiết kế để nhanh hơn các đối thủ cạnh tranh bằng cách nhắm mục tiêu cụ thể SIP qua UDP. Svmap có thể: o Xác định các thiết bị SIP và máy chủ PBX trên các cổng mặc định và không mặc định o Quét các dải mạng lớn o Chỉ quét một máy chủ trên các cổng khác nhau, tìm kiếm dịch vụ SIP trên máy chủ đó hoặc chỉ nhiều máy chủ trên nhiều cổng o Lấy kết quả quét trước làm đầu vào, cho phép bạn chỉ quét các máy chủ đã biết chạy SIP o Sử dụng các phương pháp quét khác nhau (sử dụng REGISTER thay vì yêu cầu OPTIONS) o Làm cho tất cả các điện thoại trên mạng đổ chuông cùng một lúc (sử dụng INVITE làm phương thức) o Quét ngẫu nhiên các dải internet o Tiếp tục các lần quét trước đó
Ví dụ minh họa:
- Quét mạng để tìm thiết bị VoIP: Giả sử bạn là một chuyên gia bảo mật được yêu cầu đánh giá cơ sở hạ tầng VoIP của một công ty. Bạn có thể bắt đầu bằng cách sử dụng svmap để quét mạng:
svmap 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 thiết bị SIP. Nó sẽ hiển thị danh sách các địa chỉ IP đang chạy dịch vụ SIP. - Xác định phiên bản phần mềm VoIP: Sau khi xác định các thiết bị VoIP, bạn có thể muốn biết thêm về phần mềm mà chúng đang chạy. Bạn có thể sử dụng một công cụ như SIPVicious để làm điều này:
svwar -m INVITE -e100-500 192.168.1.100Lệnh này sẽ thử các số máy nhánh từ 100 đến 500 trên máy chủ SIP tại 192.168.1.100, và có thể tiết lộ thông tin về phiên bản phần mềm trong các phản hồi. - Kiểm tra xác thực yếu: Để kiểm tra xem các thiết bị VoIP có dễ bị tấn công brute-force không, bạn có thể sử dụng công cụ như sipcrack:
sipcrack -u 1000 -d wordlist.txt 192.168.1.100Lệnh này sẽ thử brute-force mật khẩu cho số máy nhánh 1000 trên máy chủ SIP tại 192.168.1.100, sử dụng danh sách từ trong wordlist.txt. - Kiểm tra lỗ hổng SIP: Để kiểm tra các lỗ hổng cụ thể trong giao thức SIP, bạn có thể sử dụng các công cụ chuyên dụng như SIPp:
sipp -sn uac 192.168.1.100Lệnh này sẽ chạy một kịch bản kiểm tra đơn giản trên máy chủ SIP, có thể tiết lộ các lỗ hổng trong cách xử lý các giao dịch SIP. - Phân tích lưu lượng VoIP: Để có cái nhìn sâu hơn về lưu lượng VoIP trên mạng, bạn có thể sử dụng Wireshark với bộ lọc SIP: Copy
wireshark -i eth0 -f "udp port 5060"Điều này sẽ bắt và hiển thị tất cả lưu lượng SIP trên cổng UDP 5060, cho phép bạn phân tích chi tiết các giao dịch VoIP. - Đề xuất biện pháp khắc phục: Dựa trên kết quả của các bài kiểm tra này, bạn có thể đề xuất một số biện pháp khắc phục:
- Triển khai xác thực mạnh cho tất cả các thiết bị VoIP
- Sử dụng SRTP (Secure Real-time Transport Protocol) để mã hóa lưu lượng thoại
- Cấu hình tường lửa để hạn chế truy cập vào các dịch vụ VoIP chỉ từ các địa chỉ IP được ủy quyền
- Thường xuyên cập nhật phần mềm VoIP để vá các lỗ hổng đã biết
- Triển khai VLAN riêng cho lưu lượng VoIP để cách ly nó khỏi lưu lượng dữ liệu thông thường
Enum RPC
Remote Procedure Call (RPC) cho phép máy khách và máy chủ giao tiếp trong các chương trình máy khách/máy chủ phân tán. RPC cho phép máy khách và máy chủ giao tiếp trong các chương trình máy khách/máy chủ phân tán. Đó là một cơ chế giao tiếp giữa các quy trình, cho phép trao đổi dữ liệu giữa các quy trình khác nhau. Nói chung, RPC bao gồm các thành phần như máy khách, máy chủ, điểm cuối, trình ánh xạ điểm cuối, stub máy khách và stub máy chủ cùng với các phụ thuộc khác nhau.
Dịch vụ portmapper lắng nghe trên cổng TCP và UDP 111 để phát hiện các điểm cuối và trình bày chi tiết khách hàng về các dịch vụ RPC đang lắng nghe. Việc liệt kê các điểm cuối RPC cho phép kẻ tấn công xác định bất kỳ dịch vụ dễ bị tấn công nào trên các cổng dịch vụ này. Trong các mạng được bảo vệ bởi tường lửa và các thiết lập bảo mật khác, portmapper này thường bị lọc. Do đó, kẻ tấn công quét các dải cổng cao để xác định các dịch vụ RPC mở cho tấn công trực tiếp.
Bạn có thể sử dụng các lệnh quét Nmap sau để xác định dịch vụ RPC đang chạy trên mạng.
# nmap -sR <IP/mạng mục tiêu>
# nmap -T4 –A <IP/mạng mục tiêu>
Ngoài ra, bạn cũng có thể sử dụng các công cụ như NetScanTools Pro để nắm bắt thông tin RPC của mạng mục tiêu.
Ví dụ minh họa:
- Quét để phát hiện các dịch vụ RPC: Giả sử bạn là một chuyên gia bảo mật đang thực hiện đánh giá bảo mật cho một mạng công ty. Bạn muốn xác định bất kỳ dịch vụ RPC nào có thể bị lộ. Bạn có thể bắt đầu với một quét Nmap:
nmap -sR 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 dịch vụ RPC đang chạy. Nó sẽ cố gắng xác định các chương trình RPC đang chạy trên các cổng đã mở. - Xác định thông tin chi tiết về dịch vụ RPC: Sau khi phát hiện một máy chủ đang chạy dịch vụ RPC, bạn có thể muốn biết thêm chi tiết. Bạn có thể sử dụng lệnh
rpcinfo:rpcinfo -p 192.168.1.100Lệnh này sẽ hiển thị danh sách các chương trình RPC đang chạy trên máy chủ, cùng với số chương trình, phiên bản và cổng mà chúng đang lắng nghe. - Kiểm tra lỗ hổng cụ thể: Nếu bạn phát hiện một dịch vụ RPC cụ thể, bạn có thể muốn kiểm tra nó để tìm các lỗ hổng đã biết. Ví dụ, nếu bạn phát hiện dịch vụ NFS (Network File System), bạn có thể sử dụng các công cụ chuyên dụng để kiểm tra nó:
nmap --script=nfs-* 192.168.1.100
Lệnh này sẽ chạy tất cả các script Nmap liên quan đến NFS trên máy chủ mục tiêu, có thể tiết lộ các cấu hình không an toàn hoặc các lỗ hổng tiềm ẩn.
Lệnh này sẽ chạy tất cả các script Nmap liên quan đến NFS trên máy chủ mục tiêu, có thể tiết lộ các cấu hình không an toàn hoặc các lỗ hổng tiềm ẩn.
- Kiểm tra xác thực RPC: Một số dịch vụ RPC có thể được cấu hình để yêu cầu xác thực. Bạn có thể kiểm tra điều này bằng cách thử kết nối với một dịch vụ RPC cụ thể:
rpcclient -U "" -N 192.168.1.100Lệnh này thử kết nối với dịch vụ RPC trên máy chủ Windows mà không cung cấp thông tin đăng nhập. Nếu kết nối thành công, điều đó có thể chỉ ra rằng dịch vụ được cấu hình để cho phép kết nối ẩn danh, có thể là một vấn đề bảo mật. - Phân tích lưu lượng RPC: Để hiểu rõ hơn về cách các dịch vụ RPC đang được sử dụng trong mạng, bạn có thể sử dụng Wireshark để bắt và phân tích lưu lượng:
wireshark -i eth0 -f "port 111 or port 135"Lệnh này sẽ bắt lưu lượng trên các cổng thường được sử dụng cho RPC (111 cho UNIX và 135 cho Windows), cho phép bạn kiểm tra chi tiết các cuộc gọi RPC. - Đề xuất biện pháp khắc phục: Dựa trên kết quả của các bài kiểm tra này, bạn có thể đề xuất một số biện pháp khắc phục:
- Vô hiệu hóa hoặc hạn chế truy cập vào các dịch vụ RPC không cần thiết
- Cấu hình tường lửa để chỉ cho phép truy cập RPC từ các địa chỉ IP được ủy quyền
- Đảm bảo rằng tất cả các dịch vụ RPC đều yêu cầu xác thực mạnh
- Thường xuyên cập nhật phần mềm máy chủ để vá các lỗ hổng đã biết trong các dịch vụ RPC
- Sử dụng mã hóa cho các cuộc gọi RPC khi có thể
- Triển khai giám sát để phát hiện bất kỳ hoạt động RPC bất thường nào
Lệnh này sẽ chạy tất cả các script Nmap liên quan đến NFS trên máy chủ mục tiêu, có thể tiết lộ các cấu hình không an toàn hoặc các lỗ hổng tiềm ẩn.
- Kiểm tra xác thực RPC: Một số dịch vụ RPC có thể được cấu hình để yêu cầu xác thực. Bạn có thể kiểm tra điều này bằng cách thử kết nối với một dịch vụ RPC cụ thể: Copy
rpcclient -U "" -N 192.168.1.100Lệnh này thử kết nối với dịch vụ RPC trên máy chủ Windows mà không cung cấp thông tin đăng nhập. Nếu kết nối thành công, điều đó có thể chỉ ra rằng dịch vụ được cấu hình để cho phép kết nối ẩn danh, có thể là một vấn đề bảo mật. - Phân tích lưu lượng RPC: Để hiểu rõ hơn về cách các dịch vụ RPC đang được sử dụng trong mạng, bạn có thể sử dụng Wireshark để bắt và phân tích lưu lượng: Copy
wireshark -i eth0 -f "port 111 or port 135"Lệnh này sẽ bắt lưu lượng trên các cổng thường được sử dụng cho RPC (111 cho UNIX và 135 cho Windows), cho phép bạn kiểm tra chi tiết các cuộc gọi RPC. - Đề xuất biện pháp khắc phục: Dựa trên kết quả của các bài kiểm tra này, bạn có thể đề xuất một số biện pháp khắc phục:
- Vô hiệu hóa hoặc hạn chế truy cập vào các dịch vụ RPC không cần thiết
- Cấu hình tường lửa để chỉ cho phép truy cập RPC từ các địa chỉ IP được ủy quyền
- Đảm bảo rằng tất cả các dịch vụ RPC đều yêu cầu xác thực mạnh
- Thường xuyên cập nhật phần mềm máy chủ để vá các lỗ hổng đã biết trong các dịch vụ RPC
- Sử dụng mã hóa cho các cuộc gọi RPC khi có thể
- Triển khai giám sát để phát hiện bất kỳ hoạt động RPC bất thường nào
Enum người dùng Unix/Linux
Một trong những bước quan trọng để tiến hành enum là thực hiện enum người dùng Unix/Linux. Enum người dùng Unix/Linux cung cấp danh sách người dùng cùng với các chi tiết như tên người dùng, tên máy chủ, ngày và thời gian bắt đầu của mỗi phiên, v.v.
Bạn có thể sử dụng các tiện ích dòng lệnh sau để thực hiện enum người dùng UNIX / Linux:
- rusers rusers hiển thị danh sách người dùng đã đăng nhập vào các máy từ xa hoặc máy trên mạng cục bộ. Nó hiển thị đầu ra tương tự như who, nhưng cho các máy chủ/hệ thống trên mạng cục bộ. Cú pháp:
/usr/bin/rusers [-a] [-l] [-u| -h| -i] [Host ...]Trong đó, o -a: Đưa ra báo cáo cho một máy ngay cả khi không có người dùng nào đăng nhập o -h: Sắp xếp theo thứ tự bảng chữ cái theo tên máy chủ o -l: Đưa ra một danh sách dài hơn tương tự như lệnh who o -u: Sắp xếp theo số lượng người dùng o -i: Sắp xếp theo thời gian rảnh - rwho rwho hiển thị danh sách người dùng đã đăng nhập vào các máy chủ trên mạng cục bộ. Nó tạo ra đầu ra tương tự như lệnh who chứa thông tin về tên người dùng, tên máy chủ, và ngày giờ bắt đầu của mỗi phiên cho tất cả các máy trên mạng cục bộ đang chạy daemon rwho. Cú pháp:
rwho [ -a]trong đó, o -a: Bao gồm tất cả người dùng. Không có cờ này, những người dùng có phiên rảnh rỗi một giờ hoặc hơn sẽ không được bao gồm trong báo cáo. - finger finger hiển thị thông tin về người dùng hệ thống như tên đăng nhập của người dùng, tên thật, tên thiết bị đầu cuối, thời gian rảnh rỗi, thời gian đăng nhập, vị trí văn phòng và số điện thoại văn phòng. Cú pháp:
finger [-l] [-m] [-p] [-s] [user ...] [user@host ...]Trong đó, o -s: Hiển thị tên đăng nhập của người dùng, tên thật, tên thiết bị đầu cuối, thời gian rảnh rỗi, thời gian đăng nhập, vị trí văn phòng và số điện thoại văn phòng. o -l: Tạo ra một định dạng nhiều dòng hiển thị tất cả thông tin được mô tả cho tùy chọn -s cũng như thư mục chính của người dùng, số điện thoại nhà, shell đăng nhập, trạng thái thư và nội dung của các tệp.plan ''.project ”.pgpkey '' và.forward ” từ thư mục chính của người dùng. o -p: Ngăn tùy chọn -l của finger hiển thị nội dung của các tệp.plan ''.project ” và “.pgpkey ”. o -m: Ngăn khớp tên người dùng.
Ví dụ minh họa:
- Sử dụng lệnh rusers: Giả sử bạn là quản trị viên hệ thống và cần kiểm tra xem ai đang đăng nhập vào các máy trên mạng cục bộ của bạn. Bạn có thể sử dụng lệnh rusers:
rusers -lLệnh này sẽ hiển thị danh sách chi tiết của tất cả người dùng đang đăng nhập trên các máy trong mạng cục bộ, bao gồm tên người dùng, tên máy chủ và thời gian đăng nhập. - Sử dụng lệnh rwho: Nếu bạn muốn một cái nhìn nhanh về hoạt động người dùng trên mạng, bạn có thể sử dụng rwho:
rwhoLệnh này sẽ hiển thị danh sách ngắn gọn của tất cả người dùng đang hoạt động trên mạng, bao gồm tên người dùng và tên máy chủ. - Sử dụng lệnh finger: Nếu bạn cần thông tin chi tiết về một người dùng cụ thể, bạn có thể sử dụng finger:
finger usernameLệnh này sẽ hiển thị thông tin chi tiết về người dùng “username”, bao gồm thời gian đăng nhập, thời gian rảnh rỗi, thư mục chính và shell đăng nhập. - Kiểm tra thông tin người dùng từ xa: Bạn cũng có thể sử dụng finger để kiểm tra thông tin về người dùng trên một máy từ xa:
finger username@remote_hostLệnh này sẽ hiển thị thông tin về “username” trên máy chủ “remote_host”, nếu dịch vụ finger được bật trên máy từ xa. - Đánh giá rủi ro bảo mật: Sau khi thu thập thông tin này, bạn nên đánh giá các rủi ro bảo mật tiềm ẩn:
- Kiểm tra xem có bất kỳ tài khoản nào đang đăng nhập vào nhiều máy cùng lúc không, có thể chỉ ra việc chia sẻ tài khoản hoặc hoạt động đáng ngờ.
- Xem xét thời gian đăng nhập để xác định bất kỳ hoạt động bất thường nào (ví dụ: đăng nhập vào giờ không làm việc).
- Kiểm tra xem có bất kỳ tài khoản nào có shell đăng nhập không an toàn không.
- Đề xuất biện pháp khắc phục: Dựa trên đánh giá của bạn, bạn có thể đề xuất các biện pháp sau:
- Vô hiệu hóa hoặc hạn chế các dịch vụ như rusers, rwho và finger nếu chúng không cần thiết, vì chúng có thể tiết lộ quá nhiều thông tin cho kẻ tấn công tiềm năng.
- Triển khai chính sách mật khẩu mạnh và yêu cầu xác thực hai yếu tố cho tất cả các tài khoản.
- Thiết lập giám sát để phát hiện các mẫu đăng nhập bất thường.
- Thường xuyên kiểm tra và vô hiệu hóa các tài khoản không hoạt động.
- Đảm bảo rằng tất cả người dùng đều sử dụng các shell đăng nhập an toàn.
Những ví dụ này minh họa cách các công cụ enum người dùng Unix/Linux có thể được sử dụng trong các tình huống quản trị hệ thống thực tế. Chúng cũng nhấn mạnh tầm quan trọng của việc cân bằng giữa thu thập thông tin cần thiết cho quản trị hệ thống và bảo vệ quyền riêng tư và bảo mật của người dùng.
Biện pháp đối phó với Enum
Cho đến nay, chúng ta đã mô tả các kỹ thuật và công cụ enum được sử dụng để trích xuất thông tin có giá trị từ mục tiêu. Bây giờ hãy thảo luận về các biện pháp đối phó có thể ngăn chặn kẻ tấn công liệt kê thông tin nhạy cảm từ mạng hoặc máy chủ. Phần này tập trung vào cách tránh rò rỉ thông tin thông qua enum SNMP, DNS, SMTP, LDAP và SMB.
Các biện pháp đối phó sau đây có thể ngăn chặn rò rỉ thông tin thông qua enum SNMP, DNS, SMTP, LDAP và SMB.
Biện pháp đối phó với Enum SNMP
- Xóa tác nhân SNMP hoặc tắt dịch vụ SNMP
- Nếu không thể tắt SNMP, hãy thay đổi tên chuỗi cộng đồng mặc định
- Nâng cấp lên SNMP3, mã hóa mật khẩu và tin nhắn
- Triển khai tùy chọn bảo mật Chính sách nhóm được gọi là “Hạn chế bổ sung cho các kết nối ẩn danh”
- Đảm bảo rằng quyền truy cập vào các đường ống phiên null, chia sẻ phiên null và lọc IPSec bị hạn chế
- Chặn quyền truy cập vào các cổng TCP/UDP 161
- Không cài đặt thành phần Windows quản lý và giám sát trừ khi cần thiết
- Mã hóa hoặc xác thực bằng IPSEC
Biện pháp đối phó với Enum DNS
- Vô hiệu hóa chuyển vùng DNS đến các máy chủ không đáng tin cậy
- Đảm bảo rằng các máy chủ riêng và địa chỉ IP của chúng không được công bố vào tệp vùng DNS của máy chủ DNS công cộng
- Sử dụng dịch vụ đăng ký DNS cao cấp ẩn thông tin nhạy cảm như thông tin máy chủ (HINFO) khỏi công chúng
- Sử dụng liên hệ quản trị mạng tiêu chuẩn để đăng ký DNS nhằm tránh các cuộc tấn công kỹ thuật xã hội
- Cắt bớt tệp vùng DNS để ngăn tiết lộ thông tin không cần thiết
Biện pháp đối phó với Enum SMTP
Cấu hình máy chủ SMTP để:
- Bỏ qua tin nhắn email gửi đến người nhận không xác định
- Không bao gồm thông tin máy chủ thư và máy chủ cục bộ nhạy cảm trong phản hồi thư
- Vô hiệu hóa tính năng chuyển tiếp mở
- Giới hạn số lượng kết nối được chấp nhận từ một nguồn để ngăn chặn các cuộc tấn công vét cạn
- Vô hiệu hóa các lệnh EXPN, VRFY và RCPT TO, hoặc hạn chế chúng đối với người dùng xác thực
- Bỏ qua email gửi đến người nhận không xác định bằng cách cấu hình máy chủ SMTP
Biện pháp đối phó với Enum LDAP
- Theo mặc định, lưu lượng LDAP được truyền không được bảo mật; sử dụng công nghệ SSL hoặc STARTTLS để mã hóa lưu lượng
- Chọn tên người dùng khác với địa chỉ email của bạn và kích hoạt khóa tài khoản
- Hạn chế quyền truy cập vào Active Directory bằng cách sử dụng phần mềm như Citrix
Biện pháp đối phó với Enum SMB
Các dịch vụ chia sẻ thông thường hoặc các dịch vụ không sử dụng khác có thể chứng minh là cánh cửa để kẻ tấn công phá vỡ bảo mật của mạng. Server Message Block (SMB) là một giao thức cung cấp quyền truy cập chia sẻ vào tệp, cổng nối tiếp, máy in và giao tiếp giữa các nút trên mạng. Nếu dịch vụ này đang chạy trên mạng, thì có nguy cơ cao bị enum thông qua SMB. Vì các máy chủ web và DNS không yêu cầu giao thức này, nên nên vô hiệu hóa nó trên chúng. Giao thức SMB có thể được vô hiệu hóa bằng cách gỡ cài đặt thuộc tính Client for Microsoft Networks và File and Printer Sharing for Microsoft Networks của Network and Dial-up Connections. Trên các máy chủ có thể truy cập từ internet, còn được gọi là các máy chủ bastion, SMB có thể được vô hiệu hóa bằng cách gỡ cài đặt hai thuộc tính tương tự của hộp thoại thuộc tính TCP/IP. Một cách khác để vô hiệu hóa giao thức SMB trên các máy chủ bastion, mà không vô hiệu hóa nó một cách rõ ràng, là chặn các cổng được sử dụng bởi dịch vụ SMB. Đây là các cổng TCP 139 và TCP 445.
Vì việc vô hiệu hóa các dịch vụ SMB không phải lúc nào cũng là một lựa chọn khả thi, có các biện pháp đối phó khác có thể được thực hiện chống lại enum SMB. Windows registry có thể được cấu hình để giới hạn quyền truy cập ẩn danh từ internet chỉ vào một tập hợp tệp được chỉ định. Các tệp và thư mục này được chỉ định trong cài đặt Network access: Named pipes that can be accessed anonymously và Network access: Shares that can be accessed anonymously. Cấu hình này liên quan đến việc thêm tham số RestrictNullSessAccess vào khóa registry:
KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Tham số RestrictNullSessAccess nhận giá trị nhị phân với 1 biểu thị đã bật và 0 biểu thị đã tắt. Đặt tham số này thành 1 hoặc bật sẽ hạn chế quyền truy cập của người dùng ẩn danh chỉ vào các tệp được chỉ định trong cài đặt Network access.
Tầm Quan Trọng Của Enum Trong Tiến Trình Kiểm Thử Bảo Mật
Phần này mô tả tầm quan trọng của kiểm thử thâm nhập enum, khung các bước kiểm thử thâm nhập và các công cụ được sử dụng để tiến hành kiểm thử thâm nhập.
Thông qua enum, kẻ tấn công có thể thu thập thông tin nhạy cảm về các tổ chức có bảo mật yếu. Thông tin nhạy cảm đó có thể được sử dụng để hack và đột nhập vào mạng của tổ chức, có khả năng dẫn đến mất mát lớn về thông tin, dịch vụ hoặc tài chính. Để ngăn chặn những loại tấn công này, mọi tổ chức phải kiểm tra bảo mật của chính mình. Kiểm thử thâm nhập enum dựa trên dữ liệu thu thập được trong giai đoạn trinh sát. Nó được sử dụng để xác định tài khoản người dùng hợp lệ hoặc chia sẻ tài nguyên được bảo vệ kém bằng cách sử dụng các kết nối hoạt động với hệ thống và truy vấn trực tiếp.
Pentester nên tiến hành kiểm thử thâm nhập đối với các kỹ thuật enum khác nhau để kiểm tra xem mạng mục tiêu có tiết lộ bất kỳ thông tin nhạy cảm nào có thể giúp kẻ tấn công thực hiện một cuộc tấn công hay không. Điều này có thể tiết lộ thông tin nhạy cảm như tài khoản người dùng, địa chỉ IP, liên hệ email, DNS, tài nguyên và chia sẻ mạng, thông tin ứng dụng, v.v. Người kiểm thử thâm nhập nên cố gắng khám phá càng nhiều thông tin càng tốt về mục tiêu. Điều này giúp xác định các lỗ hổng/điểm yếu trong bảo mật của tổ chức mục tiêu.
Người kiểm thử thâm nhập nên thực hiện tất cả các kỹ thuật enum có thể để liệt kê càng nhiều thông tin càng tốt về mục tiêu. Để đảm bảo phạm vi đầy đủ của bài kiểm tra, kiểm thử thâm nhập enum bao gồm một loạt các bước để cung cấp thông tin.
- Bước 1: Tìm phạm vi mạng Tìm phạm vi mạng bằng các công cụ như Whois Lookup. Việc tìm phạm vi mạng giúp liệt kê các máy chủ quan trọng trong mạng mục tiêu.
- Bước 2: Tính toán mặt nạ mạng con Tính toán mặt nạ mạng con cần thiết cho dải IP bằng các công cụ như Subnet Mask Calculator. Mặt nạ mạng con được tính toán có thể đóng vai trò là đầu vào cho nhiều công cụ quét ping và quét cổng để liệt kê thêm, bao gồm khám phá máy chủ và các cổng mở.
- Bước 3: Thực hiện khám phá máy chủ Tìm các máy chủ quan trọng được kết nối với Internet bằng các công cụ như Nmap. Sử dụng cú pháp Nmap để tìm các máy chủ được kết nối với Internet như sau: nmap – sP <network-range>. Thay thế network-range bằng giá trị phạm vi mạng thu được trong bước đầu tiên.
- Bước 4: Thực hiện quét cổng Tìm bất kỳ cổng mở nào và đóng chúng nếu không cần thiết. Các cổng mở là lối vào để kẻ tấn công phá vỡ chu vi bảo mật của mục tiêu. Do đó, thực hiện quét cổng để kiểm tra các cổng mở trên các nút. Người kiểm thử thâm nhập và kiểm toán bảo mật sử dụng các công cụ như Nmap để thực hiện quét cổng.
- Bước 5: Thực hiện enum NetBIOS Thực hiện enum NetBIOS để xác định các thiết bị mạng qua TCP/IP và để lấy 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, và các chính sách và mật khẩu. Các công cụ như Hyena, Nsauditor Network Security Auditor và NetScanTools Pro có thể thực hiện enum NetBIOS.
- Bước 6: Thực hiện enum SNMP Thực hiện enum SNMP bằng cách truy vấn máy chủ SNMP trong mạng. Máy chủ SNMP có thể tiết lộ thông tin về tài khoản người dùng và thiết bị. Các công cụ như OpUtils Network Monitoring Toolset và Engineer’s Toolset có thể thực hiện enum SNMP.
- Bước 7: Thực hiện enum LDAP Thực hiện enum LDAP bằng cách truy vấn dịch vụ LDAP. Việc liệt kê dịch vụ LDAP cung cấp tên người dùng hợp lệ, chi tiết phòng ban và chi tiết địa chỉ. Kẻ tấn công có thể sử dụng thông tin này để thực hiện kỹ thuật xã hội và các loại tấn công khác. Các công cụ như Softerra LDAP Administrator có thể thực hiện enum LDAP.
- Bước 8: Thực hiện enum NTP Thực hiện enum NTP để trích xuất thông tin như máy chủ được kết nối với máy chủ NTP, địa chỉ IP của máy khách, hệ điều hành đang chạy trên các hệ thống máy khách, v.v. Các lệnh như ntptrace, ntpdc và ntpq có thể lấy thông tin này.
- Bước 9: Thực hiện enum SMTP Thực hiện enum SMTP để xác định người dùng hợp lệ trên máy chủ SMTP. Các công cụ như NetScanTools Pro có thể truy vấn máy chủ SMTP để lấy thông tin này.
- Bước 10: Thực hiện enum DNS Thực hiện enum DNS để định vị tất cả các máy chủ DNS và bản ghi của chúng. Các máy chủ DNS cung cấp thông tin như tên hệ thống, tên người dùng, địa chỉ IP, v.v. Tiện ích Windows nslookup có thể trích xuất thông tin này.
- Bước 11: Thực hiện enum IPsec, VoIP, RPC và Linux Thực hiện enum IPsec để trích xuất thông tin về thuật toán mã hóa và băm, loại xác thực, thuật toán phân phối khóa, SA LifeDuration, v.v. Các công cụ như ike-scan và Nmap có thể trích xuất thông tin này. Thực hiện enum VoIP để trích xuất thông tin về cổng/máy chủ VoIP, hệ thống IP-PBX, phần mềm khách (softphones) /điện thoại VoIP Địa chỉ IP tác nhân người dùng và tiện ích mở rộng người dùng, v.v. Sử dụng công cụ như Svmap và Metasploit để thu thập thông tin này. Thực hiện enum RPC để xác định bất kỳ dịch vụ dễ bị tấn công nào trên các cổng dịch vụ RPC. Sử dụng các công cụ như Nmap và NetScan Tools Pro để trích xuất thông tin này. Thực hiện enum người dùng Unix/Linux để trích xuất thông tin về người dùng hệ thống. Các lệnh như rusers, rwho và finger có thể lấy thông tin này.
- Bước 12: Ghi lại tất cả các phát hiện Bước cuối cùng là ghi lại tất cả các phát hiện thu được trong quá trình kiểm thử thâm nhập enum. Phân tích kết quả và đề xuất các biện pháp đối phó cho khách hàng để cải thiện bảo mật của họ.
Ví dụ minh họa:
- Tìm phạm vi mạng: Giả sử bạn đang thực hiện kiểm thử thâm nhập cho công ty Example Corp. Bạn bắt đầu bằng cách sử dụng Whois Lookup:
whois examplecorp.comKết quả cho thấy công ty sở hữu dải IP 192.168.1.0/24. - Quét cổng: Sau khi xác định phạm vi mạng, bạn thực hiện quét cổng bằng Nmap:
nmap -sS 192.168.1.0/24Quét này tiết lộ một số máy chủ với các cổng mở đáng ngờ, bao gồm một máy chủ (192.168.1.100) có cổng 139 và 445 mở, có thể chỉ ra dịch vụ SMB đang chạy. - Enum NetBIOS: Dựa trên kết quả quét cổng, bạn quyết định thực hiện enum NetBIOS trên máy chủ đáng ngờ bằng cách sử dụng công cụ như Nbtstat:
nbtstat -A 192.168.1.100Kết quả cho thấy tên máy chủ, tên miền và một số chia sẻ mạng. - Enum SNMP: Bạn nhận thấy cổng 161 mở trên một số máy chủ, cho thấy SNMP đang chạy. Bạn sử dụng snmpwalk để thu thập thông tin:
snmpwalk -v1 -c public 192.168.1.101Điều này tiết lộ thông tin về phần cứng, phần mềm đã cài đặt và cấu hình mạng. - Enum LDAP: Bạn phát hiện một máy chủ (192.168.1.200) đang chạy LDAP trên cổng 389. Bạn sử dụng ldapsearch để truy vấn thông tin:
ldapsearch -h 192.168.1.200 -x -s base namingcontextsĐiều này cung cấp cho bạn cấu trúc thư mục cơ bản của tổ chức. - Enum SMTP: Bạn tìm thấy một máy chủ email (192.168.1.150) và quyết định kiểm tra xem nó có dễ bị enum người dùng không:
telnet 192.168.1.150 25 VRFY adminMáy chủ xác nhận sự tồn tại của người dùng “admin”, cho thấy một lỗ hổng tiềm ẩn. - Enum DNS: Bạn thực hiện chuyển vùng DNS để thu thập thêm thông tin về cơ sở hạ tầng mạng:
dig @192.168.1.10 examplecorp.com axfrĐiều này tiết lộ nhiều bản ghi DNS nội bộ mà đáng ra không nên có sẵn công khai. - Ghi lại và phân tích: Sau khi hoàn thành tất cả các bước enum, bạn tổng hợp kết quả và xác định một số vấn đề bảo mật chính:
- Cấu hình SMB không an toàn cho phép enum thông tin nhạy cảm
- SNMP sử dụng chuỗi cộng đồng mặc định, cho phép truy cập trái phép vào thông tin hệ thống
- Máy chủ SMTP cho phép enum người dùng
- Chuyển vùng DNS không được hạn chế, tiết lộ thông tin nội bộ
- Đề xuất biện pháp khắc phục: Dựa trên phát hiện của bạn, bạn đề xuất các biện pháp khắc phục sau:
Ví dụ này minh họa cách một quy trình kiểm thử thâm nhập enum có thể tiết lộ nhiều lỗ hổng bảo mật tiềm ẩn trong cơ sở hạ tầng mạng của một tổ chức. Bằng cách thực hiện một đánh giá toàn diện và có hệ thống, người kiểm thử thâm nhập có thể cung cấp thông tin chi tiết có giá trị và đề xuất cụ thể để cải thiện tư thế bảo mật tổng thể của tổ chức.
Tóm tắt Module
- Enum được định nghĩa 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
- Enum SNMP là một 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
- 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
- Kẻ tấn công truy vấn dịch vụ LDAP để thu thập thông tin như tên người dùng hợp lệ, địa chỉ, chi tiết phòng ban, v.v. có thể được sử dụng thêm để thực hiện các cuộc tấn công
- Network Time Protocol (NTP) được thiết kế để đồng bộ hóa đồng hồ của các máy tính trong mạng
- Kẻ tấn công sử dụng cổng cụ thể với telnet để liệt kê phiên bản máy chủ đang chạy trên máy chủ từ xa
- Kẻ tấn công thực hiện truy vấn dịch vụ RPC để xác định bất kỳ dịch vụ dễ bị tấn công nào
- Kẻ tấn công thực hiện enum người dùng Unix/Linux để trích xuất thông tin về người dùng hệ thống
Module này kết thúc với một cuộc thảo luận tổng quan về các khái niệm enum cơ bản. Trong module tiếp theo, chúng ta sẽ thấy cách kẻ tấn công cũng như hacker đạo đức và người kiểm thử thâm nhập thực hiện phân tích lỗ hổng để xác định các lỗ hổng bảo mật trong mạng, cơ sở hạ tầng truyền thông và hệ thống đầu cuối của tổ chức mục tiêu.





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