Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

Lab 4.

1
Mục tiêu bài lab: thực hiện một lệnh kích hoạt Netcat listener, cho phép truy cập từ xa và tương
tác với một command shell trên máy mục tiêu.
Câu lệnh sẽ khiến máy tính Windows chạy với quyền hệ thống cục bộ (local SYSTEM
privileges) là:
nc.exe -l -p 2222 -e cmd.exe
Khi câu lệnh này được thực thi, Netcat (nc.exe) sẽ chạy ở chế độ nghe (-l) trên cổng 2222
của máy tính mục tiêu. Khi có ai đó kết nối tới cổng này, Netcat sẽ thực thi lệnh cmd.exe
(được chỉ định bởi -e), mở một cửa sổ command shell. Như vậy, kẻ tấn công có thể kết
nối đến máy tính mục tiêu qua cổng TCP 2222 và nhận được quyền truy cập vào một
command shell tương tác từ xa.
Ý tưởng là nếu các nhà kiểm thử có một tài khoản người dùng quản trị và mật khẩu, cũng như
quyền truy cập mạng SMB vào một mục tiêu, họ có thể sử dụng sc hoặc wmic trên máy tính của
kẻ tấn công để làm cho máy tính mục tiêu chạy bất kỳ lệnh nào theo sự lựa chọn của kẻ tấn công.
Chúng ta sẽ sử dụng sc và wmic để khiến máy mục tiêu thực thi một command shell mà chúng ta
sau đó có thể truy cập qua mạng để chạy các lệnh cụ thể và tương tác.
1. Set-up
Thực hiện run file ncexer.bat với quyền admin.
- Màn hình vàng: máy tấn công
- Màn hình xám: máy mục tiêu
Tiến hành kích hoạt Netcat backdoor trên port 2222 TCP và cung cấp quyền truy cập command
shell:
- Màn hình xám, thực hiện lệnh dưới để khởi tạo backdoor
- Màn hình vàng, thực hiện Netcat client để kết nối tới backdoor

- Việc kết nối này thể hiện việc đạt được quyền truy cập command shell thông qua backdoor trên
máy mục tiêu.
2. Khởi tạo dịch vụ
Trên máy tấn công, xác định tên máy chủ bằng lệnh hostname, sau đó sử dụng lệnh sc để khởi
tạo Netcat với tên ncservice:

Binpath: đường dẫn của chương trình mà dịch vụ sẽ thực thi, ta đang chỉ định Netcat
(nc.exe) nằm trong thư mục c:\tools\. Các tùy chọn "-l -p 2222 -e cmd.exe" được truyền
cho Netcat để chỉ định rằng nó nên mở một lỗ hổng nghe trên cổng TCP 2222 và kích
hoạt một command shell khi có kết nối được thiết lập tới lỗ hổng này.
Thực hiện kiểm tra dịch vụ vừa khởi tạo

Thiết lập giám sát dịch vụ trên máy nạn nhân, thực hiện bằng việc giám sát cổng TCP 2222 để
xác định khi nó bắt đầu nghe (listening). Chạy lệnh netstat như sau:
netstat -nao 1 | find “:2222”
Sau đó trên máy tấn công bắt đầu khởi chạy dịch vụ ncservice:
sc \\Sec560Student start ncservice
Trên máy mục tiêu sẽ hiện ra kết quả cổng 2222 TCP đang lắng nghe.
Bạn có thể thấy có vẻ như cổng của bạn vẫn mở và lắng nghe ngay cả sau khi Windows tắt dịch
vụ. Đó là một trình nghe cổng ảo. ID tiến trình được chỉ ra bởi đầu ra của netstat có thể không
còn chạy trên Windows, vì vậy không ai có thể kết nối với cổng đó, mặc dù đầu ra của netstat
vẫn hiển thị LISTENING . Sau vài giây, Windows nhận ra điều này và giải phóng cổng.
Để xóa ncservice sử dụng lệnh dưới đây:

3. Tạo service tốt hơn


Tiếp tục chạy netstat để giám sát việc lắng nghe kết nối trên máy mục tiêu
Trên máy tấn công, thực hiện tạo dịch vụ netcat với tên ncservice2 tương tự như trên nhưng thêm
vào option /k trong binpath, option này sẽ giữ cửa sổ cmd sau khi thực hiện xong lệnh được chỉ
định.
Sau đó khởi chạy dịch vụ với sc.
Trên máy tấn công, thực hiện kết nối tới cổng đang lắng nghe bằng Netcat client, dịch vụ
ncservice2 đã được khởi chạy, nó sẽ tạo ra một quá trình Netcat chạy trong nền với quyền hạn
local SYSTEM. Khi có kết nối tới cổng TCP 2222 (cổng mà Netcat đang lắng nghe) từ máy
attacker, Netcat sẽ kích hoạt một command shell trên máy tính mục tiêu, cho phép attacker có
quyền truy cập và tương tác với máy tính đó thông qua command shell này.
Sau khi nhận được cmd, thực hiện 1 số lệnh như whoami, hostname, dir để tương tác với máy
mục tiêu.

NOTE: Khi ấn CTRL-C trong Netcat client (trên máy vàng), nó sẽ ngắt kết nối đồng thời Netcat
listener cũng dừng theo, vì option -l: tùy chọn tạo 1 trình nghe 1 kết nối, dừng chạy khi kết nối
đó biến mất. Nếu là option -L: tạo ra trình nghe liên tục giữa các kết nối.
-l(listen mode):
Khi sử dụng nc -l, Netcat sẽ hoạt động ở chế độ "listen", tức là nó sẽ lắng nghe và
chấp nhận các kết nối đến từ các máy tính khác trên mạng.
Thường được sử dụng để tạo ra một lỗ hổng nghe trên một cổng cụ thể để kết nối
từ xa đến và tạo một kênh truyền thông hai chiều giữa hai máy tính.
-L (Listen harder):
Tùy chọn này tạo ra một server lắng nghe có khả năng ghi nhận và chấp nhận
nhiều kết nối liên tiếp. Nó tương tự như tùy chọn -l, nhưng nó sẽ tiếp tục lắng
nghe sau khi kết nối hiện tại kết thúc, cho phép kết nối tiếp theo.
Thực hiện xóa ncservice2:

4. WMIC
WMIC khác với sc ở chỗ không cần khởi tạo dịch vụ rồi xóa sau đó, điều này giúp wmic để lại ít
dấu chân hơn.
Quá trình ta tiến hành sẽ không có quyền local System, thay vào đó, ta sẽ chạy với quyền
administrator.
Bắt đầu bằng việc khởi tạo trình giám sát với tiến trình bắt đầu bằng nc.exe như sau:

Wmic sẽ tìm kiếm tiến trình có tên nc.exe, liệt kê ngắn gọn thông tin của tiến trình tìm được.
/every:1 chỉ định tần suất thực thi lệnh, trong trường hợp này là mỗi giây (1 đại diện cho mỗi
giây). Điều này có nghĩa là lệnh được chỉ định sẽ được thực thi một lần sau mỗi giây, liên tục và
lặp lại cho đến khi quy trình được dừng lại hoặc kết thúc.
Tiếp theo, sử dụng wmic để gọi trình nghe Netcat trên máy đích, sau đó thực hiện kết nối tới
trình nghe Netcat.
"c:\tools\nc.exe -l -p 4444 -e cmd.exe": Đây là đường dẫn của chương trình mà chúng ta
muốn thực thi. Trong trường hợp này, sử dụng Netcat (nc.exe) để tạo một lỗ hổng nghe
trên cổng TCP 4444 và kích hoạt một command shell khi có kết nối được thiết lập tới lỗ
hổng này.

Khi thực hiện lệnh khởi tạo trình nghe trên máy đích từ máy tấn công, một cửa sổ trống sẽ hiện
lên, cửa sổ này cung cấp một giao diện để xem và tương tác trực tiếp với Netcat.
Sử dụng option -d nếu không muốn hiển thị console này, -d nghĩa là chạy dưới nền.
Thực hiện hủy toàn bộ tiến trình Nc còn lại với câu lệnh:

Tổng kết: sử dụng sc để tạo và chạy một dịch vụ (từ đó mô phỏng psexec nhưng chỉ sử dụng các
công cụ tích hợp sẵn) và chạy wmic để khiến mục tiêu bắt đầu một quy trình, đặc biệt hữu ích
cho những người kiểm tra thâm nhập vì ứng dụng của họ được tích hợp sẵn trong các tính năng
của Windows.
Lab 4.2
Impacket cung cấp một loạt các công cụ đã được phát triển sẵn để thực hiện các tấn công và
kiểm tra bảo mật trên hệ thống Windows.
1. wmiexec.py
Công cụ cho phép thực thi các lệnh trên các máy chủ Windows từ xa thông qua giao thức WMI
Công cụ này cho phép chúng ta chạy các lệnh trên một dịch vụ từ xa. Điều quan trọng là cần có
quyền truy cập cấp quản trị trên máy chủ đích. Nhược điểm lớn nhất là nó sử dụng giao thức
DCOM (Distributed Component Object Model) và chúng ta cần có khả năng truy cập vào các
cổng DCOM trên hệ thống đích.
DCOM là một giao thức mạng được Microsoft phát triển để cho phép các ứng dụng chạy
trên các máy tính khác nhau truy cập và tương tác với nhau qua mạng. Tuy nhiên, việc sử
dụng DCOM đòi hỏi các cổng DCOM trên hệ thống phải được mở và có sẵn để kết nối từ
xa.
Cú pháp: wmiexec.py [[domain/]username[:password]@]<targetName or address> command
Khởi chạy lệnh mà không có các command đi cùng, nó sẽ tạo ra một phiên để tương tác

2. smbexec.py
Hoạt động tương tự như wmicexec, hoạt động trên 2 mode:
Chế độ chia sẻ (share mode):
Trong chế độ này, người dùng cần chỉ định một thư mục chia sẻ trên máy chủ đích
mà họ muốn tương tác.
Các lệnh và hoạt động được thực hiện thông qua thư mục chia sẻ này trên máy
chủ đích.
Việc ghi dữ liệu và thực thi các lệnh sẽ diễn ra trên hệ thống của máy chủ đích.
Chế độ máy chủ (server mode):
Trong trường hợp không có thư mục chia sẻ sẵn có hoặc nếu không muốn ghi dữ
liệu trực tiếp vào hệ thống của máy chủ đích, công cụ sẽ khởi chạy một máy chủ SMB
cục bộ trên máy tính tấn công.
Máy chủ SMB này sẽ lắng nghe trên cổng 445, giao thức mặc định của SMB.
Khi có lệnh được gửi từ máy tính đích, kết quả của lệnh sẽ được trả về và ghi vào
một thư mục chia sẻ trên máy tính tấn công.
Điều này giúp tránh việc ghi trực tiếp vào hệ thống của máy chủ đích, giảm nguy
cơ để lại các dấu vết trên hệ thống mục tiêu
3. smbclient.py
smbclient.py là một công cụ giống như smbclient trong Linux, cho phép người dùng tương tác
với dịch vụ SMB (Server Message Block) trên các máy chủ Windows từ xa.
Chức năng chính của smbclient.py là cho phép người dùng duyệt các thư mục chia sẻ (shares)
trên máy chủ, thực hiện các hoạt động như đọc, ghi, xóa và di chuyển các tệp tin giữa các hệ
thống.
Nó cung cấp một giao diện dòng lệnh tương tự như smbclient trên Linux, giúp người dùng dễ
dàng thao tác với các tài nguyên SMB trên mạng
4. lookupsip.py
Là một công cụ trong bộ công cụ Impacket, được thiết kế để thực hiện các thao tác liên quan đến
quản lý người dùng và nhóm trên hệ thống Windows.
công cụ này sẽ tìm kiếm và liệt kê tất cả các người dùng có trong miền (domain) được xác định.
Điều này bao gồm cả các tài khoản người dùng chính thức và tài khoản ẩn.

You might also like