Tiếp nối Phần 1: Enumeration là gì?, phần này sẽ nói về NetBIOS Enumeration, NetBIOS là viết tắt của Network Basic Input Output System. Windows sử dụng NetBIOS để chia sẻ tài nguyên và máy in. NetBIOS name là tên máy tính duy nhất được gán cho hệ thống Windows. Bài viết này mình sẽ mô tả NetBIOS enumeration, những thông tin có thể thu thập được và các công cụ liệt kê NetBIOS khác nhau. NetBIOS có thể trích xuất một lượng lớn thông tin nhạy cảm về mục tiêu.
Tổng quan về NetBIOS Enumeration
Bước đầu tiên khi liệt kê hệ thống Windows là tận dụng NetBIOS API. NetBIOS ban đầu được phát triển như một API cho client truy cập tài nguyên mạng LAN. Windows sử dụng NetBIOS để chia sẻ file và máy in. Tên NetBIOS là một chuỗi ASCII gồm 16 ký tự duy nhất được gán cho các hệ thống Windows để 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 riêng cho loại dịch vụ hoặc bản ghi.
NetBIOS sử dụng port UDP 137 (name services), port UDP 138 (datagram services) và port TCP 139 (session services). Attacker thường nhắm vào dịch vụ NetBIOS vì dễ khai thác và nó chạy trên Windows ngay cả khi không sử dụng. Attacker có thể xác định được:
- Danh sách các máy tính trong một domain
- Danh sách chia sẻ
- Policies và mật khẩu
Tuy nhiên, để liệt kê NetBIOS, hệ thống đích phải bật tính năng chia sẻ file và máy in và Microsoft không hỗ trợ NetBIOS name resolution cho IPv6.
Công cụ Nbtstat
Nbtstat là một tiện ích Windows giúp khắc phục sự cố về phân giải NETBIOS name. Lệnh nbtstat
xóa và sửa các mục đã tải trước bằng cách sử dụng một số khóa chuyển phân biệt chữ hoa chữ thường. Những kẻ tấn công sử dụng Nbtstat để liệt kê thông tin chẳng hạn như 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à máy tính từ xa và bộ nhớ đệm tên NetBIOS.
Cú pháp của lệnh nbtstat
như sau:
nbtstat [-a RemoteName] [-A IP Address] [-c] [-n] [-r] [-R] [-RR] [-s] [—S] [Interval]
Bảng bên dưới liệt kê các tham số Nbtstat và các chức năng tương ứng của chúng.
Sau đây là một số ví dụ về nbtstat
.
Lệnh nbtstat -a <IP address>
để lấy NetBIOS name table của máy đích.
Lệnh nbtstat -c
thực thi để lấy nội dung của NetBIOS name cache, NetBIOS name table và resolved IP.
NetBIOS Enumerator
NetBIOS Enumerator là một công cụ enumeration dùng để xử lý một số giao thức như SMB. Attacker sử dụng NetBIOS Enumerator để liệt kê chi tiết như tên NetBIOS name, usernames, domain names, địa chỉ MAC trong một dải IP cho trước.
Enumerating User Accounts
Sử dụng PsTools
Liệt kê tài khoản người dùng bằng bộ công cụ PsTools giúp kiểm soát và quản lý hệ thống từ xa từ cửa sổ dòng lệnh. Sau đây là một số lệnh để liệt kê tài khoản người dùng.
PsExec
PsExec là một giải pháp thay thế cho Telnet có thể thực thi các tiến trình trên các hệ thống khác, cung cấp khả năng tương tác đầy đủ cho các ứng dụng console mà không cần cài đặt client theo phương pháp truyền thống. Cú pháp của lệnh PsExec
như sau:
psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][- n s][-r servicename][—h][-1][-s|-e][-x][-i [session]][-c executable [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
PsFile
PsFile là một tiện ích hiển thị danh sách các file trên hệ thống từ xa và có khả năng đóng các file đã mở theo tên hoặc theo file ID. Hành vi mặc định của PsFile là liệt kê các file cục bộ được mở bởi các hệ thống từ xa. Cú pháp của PsFile
:
psfile [\\RemoteComputer [-u Username [-p Password]]] [[Id | path] [-c]]
PsGetSid
PsGetSid chuyển SIDs thành tên hiển thị của chúng và ngược lại. Nó hoạt động trên cả built-in accounts, domain accounts, và local accounts. Nó cũng hiển thị SID của user accounts và chuyển SID thành tên đại diện cho nó. Cú pháp của lệnh PsGetSid
như sau:
psgetsid [\\computer[,computer[,...] | @file] [-u username [~p
password]]] [account|SID]
PsKill
PsKill là một tiện ích có thể triệt tiêu các tiến trình trên hệ thống từ xa và kể cả chấm dứt các tiến trình trên máy cục bộ. Chạy PsKill
với process ID thì tiến trình tương ứng sẽ bị chấm dứt. Còn nếu ta cung cấp tên tiến trình, PsKill
sẽ hủy tất cả các tiến trình có tên trùng với tên đó. Cú pháp của lệnh PsKill
như sau:
pskill [- ] [-t] [Wcomputer [-u username] [-p password]] <process name | process id>
Pslnfo
Pslnfo là một công cụ thu thập thông tin về Windows, bao gồm installation type, kernel build, tổ chức và chủ sở hữu đã đăng ký, số lượng bộ xử lý, dung lượng bộ nhớ vật lý, ngày cài đặt và ngày hết hạn (trong trường hợp phiên bản dùng thử). Cú pháp của lệnh Pslnfo
như sau:
psinfo [ [Wcomputer [, computer [,.. ] | @file [-u user
[-p psswd]]] [-h] [-s] [-d] [-c [-t delimiter]] [filter]
Sử dụng Net View
Net View là một công cụ dòng lệnh hiển thị danh sách các máy tính trong một workgroups hoặc các shared resource trên máy tính. Nó có thể được sử dụng theo những cách sau.
net view \\<computername>
Trong lệnh trên, <computername>
là tên hoặc IP của một máy tính cụ thể, các tài nguyên của máy tính đó sẽ được hiển thị.
net view \\<computername> /ALL
Lệnh trên hiển thị tất cả các chia sẻ trên máy tính từ xa.
net view /domain
Lệnh trên hiển thị tất cả các chia sẻ trong domain.
net view /domain:<domain name>
Lệnh trên hiển thị tất cả các chia sẻ trên miền được chỉ định.
Ví dụ xem tài nguyên của một máy tính cụ thể như hình bên dưới:
Comments 1