Người ta thường bỏ qua Network Time Protocol (NTP) khi phân tích bảo mật. Tuy nhiên, nếu được phân tích đúng cách, nó có thể cung cấp thông tin có giá trị cho attacker. Do đó, cần phải biết thông tin nào mà attacker có thể lấy được thông qua liệt kê NTP. Còn Network File System (NFS) được sử dụng để quản lý truy cập file từ xa. Việc liệt kê NFS giúp attacker thu thập thông tin như danh sách các client được kết nối với server NFS cùng với IP của chúng cũng như các thư mục chia sẻ chung.
Bài hôm trước chúng ta đã tìm hiểu về SNMP Enumeration và LDAP Enumeration. Nội dung bài hôm nay gồm:
NTP Enumeration
NTP được thiết kế để đồng bộ hóa thời gian. Nó sử dụng port UDP 123 làm port giao tiếp chính. NTP có thể duy trì thời gian trong phạm vi lỗi 10 ms qua Internet. Hơn nữa, nó có thể đạt được độ chính xác lên đến 200 micro seconds hoặc tốt hơn ở điều kiện lý tưởng. Sau đây là một số thông tin mà hacker có thể lấy được bằng cách liệt kê NTP:
- Danh sách các server được kết nối với NTP server
- Địa chỉ IP của client trong mạng, system name và OS
- IP mạng nội bộ nếu NTP server nằm trong vùng DMZ
Các bạn có thể xem các NTP server ở Việt Nam tại đây.
Các lệnh thực hiện NTP enumeration
Một số lệnh liệt kê NTP như ntpdate
, ntptrace
, ntpdc
và ntpq
là những lệnh thường được sử dụng.
ntpupdate
Lệnh này thu thập số lượng mẫu thời gian từ một số time source. Cú pháp của nó như sau:
ntpdate [ version] -46bBdqsuv] [-a key] [-e authdelay] [-k keyfile] [- [-p samples] [-t timeout] [ -U user_name] server [...]
Trong đó:
Ví dụ như hình sau:
ntptrace
Công cụ này nhằm xác định NTP server lấy thời gian ở đâu và theo dõi chuỗi NTP server trở lại time source của nó. Attacker sử dụng lệnh này để theo dõi danh sách các NTP server được kết nối với mạng. Cú pháp như sau:
ntptrace [-n] [-m maxhosts] [servername/IP_address]
Trong đó:
-n
: không hiển thị hostname và IP-m maxhosts
: đặt giá trị tối đa số lượng cấp độ trong chuỗi sẽ theo dõi
Ví dụ:
# ntptrace
localhost: stratum 4, offset 0.0019529, synch distance 0.143235
10.10.0.1: stratum 2, offset 0.01142
73, 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 ntpd daemon nhằm lấy thông tin trạng thái hiện tại và yêu cầu thay đổi trạng thái đó. Attacker sử dụng lệnh này để truy xuất trạng thái và số liệu thống kê của từng NTP server được kết nối với mạng mục tiêu. Cú pháp như sau:
ntpdc [ -46dilnps ] [ -c command] [hostname/IP_address]
Trong đó:
Ví dụ về lệnh ntpdc
:
ntpq
Lệnh này giám sát các hoạt động của NTP daemon ntpd và xác định hiệu suất của nó:
ntpq [-46dinp] [-c command] [host/lP_address]
Trong đó:
Ví dụ:
ntpq> version
ntpq 4.2.8pl5@l.3728-0
ntpq> host
current host is localhost
Trong nhiều bản phân phối Linux, NTP daemon ntpd đã được kết hợp với Chrony, chronyd. Cả hai tiện ích đều đồng bộ hóa thời gian của hệ thống với NTP server từ xa.
NTP Enumeration Tools – PRTG Network Monitor
Các công cụ liệt kê NTP được sử dụng nhằm mục đích giám sát hoạt động của các NTP server và SNTP server trong mạng và xác minh kết nối từ NTP client đến NTP server.
PRTG giám sát tất cả các hệ thống, thiết bị, lưu lượng mạng và ứng dụng của hạ tầng CNTT bằng cách sử dụng các công nghệ như SNMP, WMI và SSH. Attacker sử dụng PRTG Network Monitor để truy xuất thời gian phản hồi từ server, các cảm biến đang hoạt động với server và thời gian đồng bộ hóa.
NFS Enumeration
NFS là gì?
NFS là một loại hệ thống file cho phép người dùng truy cập, xem, lưu trữ và cập nhật file qua máy từ xa. Những dữ liệu này có thể được truy cập bởi client giống như đang truy cập cục bộ. Tùy thuộc vào các đặc quyền được gán cho client mà client có những quyền khác nhau trên file như chỉ đọc hoặc vừa đọc vừa ghi dữ liệu.
Hệ thống NFS thường được triển khai trên mạng để tập trung dữ liệu cho các tài nguyên quan trọng. Remote procedure call (RPC) được sử dụng để định tuyến và xử lý yêu cầu giữa client và server.
NFS enumeration giúp attacker xác định các thư mục đã xuất, danh sách các máy client kết nối với NFS server cũng như IP của chúng. Sau khi thu thập thông tin này, attacker có thể giả mạo IP để có toàn quyền truy cập vào các file được chia sẻ trên server.
Attacker chạy lệnh rpcinfo
để quét IP đích nhằm tìm port NFS đang mở (port 2049) và các dịch vụ NFS đang chạy trên đó:
rpcinfo -p <Target IP Address>
Ví dụ:
Attacker có thể chạy lệnh sau để xem danh sách các file và thư mục được chia sẻ:
showmount -e <Target IP Address>
Ngoài ra, attacker có thể sử dụng nhiều lệnh và công cụ khác.
Công cụ NFS Enumeration – RPCScan
Các công cụ liệt kê NFS có thể thực hiện quét lớp mạng hoặc dải IP nhất định nhằm xác định các dịch vụ NFS đang chạy trên IP đó. Các công cụ này cũng hỗ trợ lấy danh sách các dịch vụ RPC bằng cách sử dụng port map, danh sách các chia sẻ NFS cũng như những thư mục có thể truy cập thông qua NFS.
RPCScan giao tiếp với các dịch vụ RPC và kiểm tra các cấu hình sai trên các NFS sharing. Attacker chạy lệnh sau để liệt kê IP mục tiêu nhằm xác định các dịch vụ NFS đang hoạt động:
python3 rpc-scan.py <Target IP Address> --rpc
Comments 1