11-Windows安全基础:CMD-PowerShell、注册表、系统日志、权限机制
本篇属于《网络安全筑基入门系列》第 11 篇。所有命令请在自己的 Windows 虚拟机或本机测试环境中执行。Windows 是企业内网的主力系统,理解它的命令行、注册表、日志和权限体系,是蓝队分析与红队测试的共同地基。
一、Windows 安全:别以为只会 Linux 就够了
很多人学安全一头扎进 Linux,觉得"服务器都是 Linux,Windows 不用管"。这是大误区:
- 企业内网终端几乎全是 Windows,域环境(Active Directory)更是 Windows 的天下。
- 勒索病毒、APT 攻击的第一落点大多是 Windows 终端。
- 钓鱼攻击拿到的是 Windows 主机的权限,横向移动在 Windows 域里进行。
所以 Windows 的安全基础,是每个白帽的必修课。这一篇我们把最核心的四块讲透:命令行、注册表、事件日志、权限机制。
二、CMD 与 PowerShell:一对"新老搭档"
2.1 两者的区别
| 对比项 | CMD(命令提示符) | PowerShell |
|---|---|---|
| 诞生时间 | Windows 初代就有 | 2006 年发布 |
| 本质 | 命令行解释器 | 基于 .NET 的脚本化 shell |
| 输出 | 纯文本 | 对象(可继续处理) |
| 语法 | 命令 + 参数 | 命令(cmdlet)+ 管道传对象 |
| 场景 | 简单查询、兼容旧脚本 | 自动化、运维、安全分析 |
| 安全地位 | 攻击者也用 | 攻击者的首选武器,也是防御者的分析工具 |
一句话理解区别 :CMD 像"发号施令的传令兵",PowerShell 像"能自己思考的调度中心"。PowerShell 最大的特点是一切输出都是对象 ,可以 Get-Process | Where-Object {...} | Stop-Process 这样用管道继续处理,而不是像 CMD 那样只能靠 findstr 筛文本。
安全视角 :现在攻击者几乎不写 CMD 脚本,全是 PowerShell。因为 PowerShell 能直接加载内存执行、绕过杀软、用 Invoke-Mimikatz 这类现成框架。所以 PowerShell 你不仅要会,还要会"审"------防御端监控的就是 PowerShell 的可疑行为。
2.2 CMD 安全常用命令(五件套)
bat
whoami @ 我是谁、什么权限(哪个域用户)
ipconfig /all @ 网卡、IP、DNS 配置
net user @ 列出本机所有用户
net user testuser /add @ 添加用户(攻击者加后门常用)
net localgroup administrators @ 列出管理员组成员
tasklist @ 列出所有进程
netstat -ano @ 网络连接与监听端口
systeminfo @ 系统信息(补丁号、系统版本)
逐条解释:
whoami输出格式如desktop\admin或corp\zhangsan------看它就能判断你处于本地机器还是域环境 。whoami /priv还能列出当前令牌的所有权限,审计时看有没有异常特权。net user不带参数列出所有账户;net user 用户名查看详情(包括密码最后修改时间)。攻击者拿到权限后常加一个隐蔽账户,所以审计"账户列表是否有多出来的"是应急响应第一步。tasklist列出进程,netstat -ano列出端口和对应 PID。端口 → PID → 进程 的追查链路,和 Linux 里ss -tlnp+ps的思路完全一致。systeminfo里能看打了哪些补丁(KB 号),红队判断"这台机器有什么已知漏洞可打",蓝队反过来核对"补丁是否齐全"。
2.3 PowerShell 常用安全命令
powershell
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 # 查看 CPU 占用最高的 10 个进程
Get-Service | Where-Object {$_.Status -eq 'Running'} # 列出运行中的服务
Get-NetTCPConnection -State Listen | Select-Object LocalPort, OwningProcess # 查看监听端口
Get-ChildItem -Force -Path C:\Users\admin\AppData\Roaming # 查看用户目录(含隐藏文件)
逐条解释:
Get-Process拿到进程对象列表,Sort-Object CPU -Descending按 CPU 倒序,Select-Object -First 10取前 10------这就是"对象流水线",一条命令完成"找最耗资源的进程"。挖矿木马特征就是 CPU 占用 Top1,这条命令直接命中。Get-NetTCPConnection -State Listen看监听端口,OwningProcess就是 PID,比 CMD 的 netstat 输出更结构化。- PowerShell 的
-Force相当于 CMD 的显示隐藏文件,检查用户目录里有没有异常的隐藏文件、可疑的 exe。
注意:PowerShell 默认可能有执行策略限制(不允许运行脚本),管理时执行:
powershell
Get-ExecutionPolicy # 查看当前策略
Set-ExecutionPolicy RemoteSigned # 允许运行本地脚本
Get-ExecutionPolicy 返回 Restricted(禁止脚本)、RemoteSigned(本地脚本可运行,下载的需签名)等。企业里应保持 Restricted 或 RemoteSigned,并配合日志审计,防止攻击者直接跑恶意 ps1 脚本。
2.4 WinRM:PowerShell 的远程管理通道
WinRM(Windows Remote Management) 是 PowerShell 的远程管理通道,默认端口 5985(HTTP)/5986(HTTPS)。它让管理员能远程执行 PowerShell------但攻击者也爱它,因为拿到管理员权限后可以批量控制内网所有开启 WinRM 的主机。
powershell
# 测试一台主机是否允许 WinRM 连接
Test-WSMan 192.168.1.20
# 建立远程会话并执行命令
Enter-PSSession -ComputerName 192.168.1.20 -Credential domain\admin
逐行解释:
Test-WSMan探测目标是否开放 WinRM 服务,返回版本信息说明可用。Enter-PSSession进入交互式远程会话,后续命令都在远程机器上执行。- 防御视角 :WinRM 只应在管理网段内开放,
winrm quickconfig默认对本地子网开放;审计 5985/5986 端口,限制来源 IP。
2.5 监控 PowerShell:蓝队必须看的"剧本"
PowerShell 本身会记录"脚本块日志",事件 ID 4104 记录了每次执行的脚本内容------这是抓攻击者行为的黄金证据:
powershell
# 查看最近的 PowerShell 脚本块执行日志
Get-WinEvent -LogName "Microsoft-Windows-PowerShell/Operational" -MaxEvents 50 |
Where-Object {$_.Id -eq 4104} | Select-Object TimeCreated, Message
逐行解释 :该命令读取 PowerShell 操作日志里最近的 4104 事件,Message 字段就是被执行的脚本原文。如果里面有 DownloadString、IEX、Invoke-Mimikatz、-EncodedCommand(编码命令)这类关键字,基本可以判定是恶意脚本。
防御提醒 :有些攻击者会先用 Set-ItemProperty 关掉脚本块日志再动手,所以 4104 日志的"缺失"本身也是异常信号------配合日志远程留存,攻击者清本机日志也没用。
三、注册表:Windows 的"灵魂配置库"
3.1 注册表是什么
注册表(Registry)是 Windows 存储配置信息的层级数据库 ,小到桌面壁纸、大到驱动与系统服务,全在这里。安全视角下,它是持久化后门和篡改的集中地------很多恶意软件靠注册表实现"开机自启动"和"关不掉"。
3.2 五个根键(Root Key)
用 regedit 打开注册表编辑器,能看到五个根键:
| 根键 | 缩写 | 含义 |
|---|---|---|
| HKEY_LOCAL_MACHINE | HKLM | 本机配置,对所有用户生效(系统级) |
| HKEY_CURRENT_USER | HKCU | 当前登录用户的配置 |
| HKEY_CLASSES_ROOT | HKCR | 文件关联、COM 对象 |
| HKEY_USERS | HKU | 所有用户的配置(含未登录的) |
| HKEY_CURRENT_CONFIG | HKCC | 当前硬件配置 |
记忆要点 :HKLM 是"机器级",改它影响所有用户;HKCU 是"用户级",只影响当前用户。普通用户只能改 HKCU 自己的键,改 HKLM 需要管理员权限------攻击者提权后最爱往 HKLM 写自启动。
3.3 与安全高度相关的键位
自启动入口(后门常驻之地):
text
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
检查这两个键下有没有可疑程序路径------这是恶意软件"开机自启"最常见的落点。
排查自启动的两种方式:
bat
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
powershell
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
逐条解释 :reg query 查询指定键下的所有值;Get-ItemProperty 是 PowerShell 对象化版本。看到 C:\Windows\Temp\xxx.exe 这类非系统目录的启动项,基本可以判定是后门。
其他安全相关键位:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce:下次登录启动一次,攻击者常利用"执行后自动删除"隐藏痕迹。HKLM\SYSTEM\CurrentControlSet\Services:服务注册表。恶意服务在这里注册,可通过服务实现持久化。HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options:映像劫持(Debugger 键),可以让某程序一启动就执行恶意程序。HKCU\Control Panel\Desktop:桌面相关,恶意软件可能篡改屏保程序为自启动。
防御视角 :排查"开机自启动",除了上面两个 Run 键,还要看 RunOnce、Services、启动文件夹(shell:startup)、计划任务(schtasks)。用微软官方工具 Autoruns 能一键列出全部自启动项,是应急响应的标配工具。
3.4 攻击者常篡改的注册表键(防御排查点)
Userinit 键(登录时自动启动程序):
text
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
值:Userinit
正常情况下值是 C:\Windows\system32\userinit.exe,。如果后面被追加了 C:\temp\malware.exe,每次用户登录恶意程序就跟着启动------这是很经典的持久化手法。
AppInit_DLLs 键(所有进程加载恶意 DLL):
text
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
值:AppInit_DLLs
如果这个值指向某个非系统目录的 DLL,那么几乎所有带界面的进程启动时都会加载它------攻击者用它在进程里注入恶意代码,隐蔽性极强。
映像劫持键(Image File Execution Options):
text
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
值:Debugger
正常情况下不存在。如果某程序名下出现 Debugger 值,说明"程序一启动就被劫持执行别的程序"------攻击者可以这样让系统程序"变身"成后门。
被禁用的系统工具键 :如 HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System 下的 DisableTaskMgr、DisableRegistryTools 被设为 1,代表任务管理器/注册表被锁------这通常不是攻击者干的,而是"加固过头"或"用户被限制"的信号,排查时留意即可。
防御视角总结 :注册表排查要形成"关键词清单"------Run、RunOnce、Winlogon\Userinit、AppInit_DLLs、Debugger、Services。每遇到一台可疑主机,把这几个位置扫一遍,80% 的持久化后门都能现形。
四、Windows 事件日志:攻击者的"监控录像"
4.1 日志存在哪、怎么读
Windows 把事件日志存储在:
- 查看工具:事件查看器 (
eventvwr.msc) - 命令行读取:
wevtutil、PowerShell 的Get-WinEvent - 默认路径:
C:\Windows\System32\winevt\Logs\(.evtx文件)
关键日志分类:
| 日志 | 含义 | 安全价值 |
|---|---|---|
| Security | 安全审计(登录、权限使用) | 最高,登录事件全在这 |
| System | 系统组件事件(服务、驱动) | 排查服务异常 |
| Application | 应用程序事件 | 应用崩溃、错误 |
| PowerShell 操作日志 | 脚本执行记录 | 抓攻击者的 PS 操作 |
4.2 登录事件:4624 与 4625
登录成功 4624、登录失败 4625,这两个事件 ID 是安全分析的地基:
- 4624(登录成功) :Event 4624,记录登录类型、用户名、来源 IP。半夜出现 4624 + 陌生 IP = 已经被入侵的强信号。
- 4625(登录失败) :Event 4625,记录失败次数和来源。短时间内大量 4625 = 暴力破解正在发生。
登录类型(Logon Type)也要看,常见:
| 类型 | 含义 |
|---|---|
| 2 | 交互式登录(本机键盘) |
| 3 | 网络登录(访问共享/远程) |
| 10 | 远程交互式登录(RDP) |
实用命令:用 PowerShell 快速统计登录失败次数:
powershell
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} | Measure-Object
# 按来源 IP 统计登录失败
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 5000 |
ForEach-Object { $_.Properties[18].Value } | Group-Object | Sort-Object Count -Descending
逐条解释:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625}:按"日志=Security 且事件ID=4625"过滤。Measure-Object:统计总数,一眼看出"有多少次失败登录"。- 第二条命令的
Properties[18]是 4625 事件里的来源 IP 字段,Group-Object按 IP 分组统计------输出排第一的 IP 就是爆破源 。这个思路和 Linux 的awk | sort | uniq -c完全同构。
4.3 其他重要事件 ID 速查
| 事件 ID | 含义 | 场景 |
|---|---|---|
| 4624 / 4625 | 登录成功 / 失败 | 爆破、入侵分析 |
| 4634 / 4647 | 注销 | 会话分析 |
| 4672 | 为登录分配管理员特权 | 出现即代表管理员登录 |
| 4688 | 进程创建 | 查命令执行、横向移动 |
| 4698 | 计划任务创建 | 查持久化后门 |
| 4104 | PowerShell 脚本块日志 | 抓 PS 恶意脚本执行 |
| 7045 | 新服务安装 | 查服务型后门 |
| 1102 | 审计日志被清除 | 攻击者清日志的痕迹 |
特别提醒 :看到 1102(日志被清除),本身就是攻击信号------攻击者清理痕迹时往往会先清审计日志,越干净越可疑。
4.4 防御视角:日志审计配置
- 开启登录审计:默认可能没审计,设置里打开"本地策略 → 审核策略 → 登录事件 → 成功和失败"。
- 日志远程集中保存:攻击者清本机日志,远程日志中心还有备份。
- 监控关键事件:4625 失败过多、4688 出现可疑进程(
powershell -enc这类)、4698 新增计划任务、1102 日志清除,都要告警。
4.5 开启审计策略:日志不是天生就全的
很多人打开事件查看器发现 Security 日志里"什么都没有"------因为默认审计没开全。开启方法是:
bat
@ 命令行方式:审核登录事件(成功和失败都记录)
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Process Creation" /success:enable /failure:enable
逐条解释:
auditpol /set /subcategory:"Logon":打开"登录"子类别的审计,/success:enable记成功、/failure:enable记失败------两个都开,因为 4624 和 4625 都要看。Process Creation:进程创建审计,对应事件 4688。开启后每个新进程都有记录,横向移动、执行恶意 exe 都会留下进程链。- 图形界面路径:
secpol.msc → 安全设置 → 本地策略 → 审核策略,或用组策略批量下发到全公司终端。
防御视角:审计策略是"先有数据才能分析"的前提。很多企业被入侵后才发现根本没开审计,连攻击者什么时候进来的都查不到------这是最典型的"日志盲区"教训。
4.6 服务与计划任务:Windows 的"持久化两大件"
Windows 服务和计划任务是攻击者做持久化的主战场,排查命令:
bat
@ 列出所有服务(重点看非 Microsoft 来源的)
sc query type= service state= all
@ 列出计划任务
schtasks /query /fo LIST /v
@ 查询可疑服务的启动文件路径
sc qc 服务名
逐条解释:
sc query列出所有服务,sc qc查看某个服务的详细配置(含BINARY_PATH_NAME,即服务指向的可执行文件)。如果某个"Microsoft 风命名"的服务指向C:\Users\Public\xxx.exe,基本是后门。schtasks /query /v列出任务及其细节(运行命令、触发时间、运行用户)。攻击者的后门任务常用\Microsoft\Windows\Update\这类伪装路径。- 对应的事件:服务安装是 7045 ,计划任务创建是 4698------应急响应时按这两个 ID 筛日志,能还原"后门是什么时候装的"。
五、UAC:用户账户控制
5.1 UAC 是什么
UAC(User Account Control,用户账户控制) 是 Windows Vista 之后引入的机制:即使你是管理员账户,默认也是"标准权限"运行,只有触发特定操作时才弹窗提升到管理员权限。
它把管理员的权限分成两层:
- 标准令牌(Standard Token):日常运行,权限受限。
- 提升令牌(Elevated Token):确认后才能使用,可以改系统级配置。
5.2 为什么要 UAC
防止"默认全权限"带来的风险:没有 UAC 时,只要登录管理员,任何进程(包括木马)天然拥有管理员权限。有了 UAC,木马第一次弹出"你要允许此程序更改设备吗",用户还能拦一下。
5.3 UAC 的局限与绕过
UAC 不是安全边界,它只是一层"用户体验式确认":
- 有大量 UAC 绕过(UAC Bypass) 技术:攻击者利用白名单程序(如
fodhelper.exe、ms-settings)借提升令牌启动恶意代码,根本不弹窗。 - UAC 等级可调:滑块调到最低(从不通知)等于 UAC 失效。
防御视角:
- 保持 UAC 默认或更严格,不要调到"从不通知"。
- 管理员账户仅用于管理操作,日常用普通账户------UAC 防不住"你本来就在用管理员账户"的会话。
- 审计管理员组成员(
net localgroup administrators),多余的别留。
六、Windows 权限体系:用户、组、ACL
6.1 用户与组
Windows 本地用户存在 SAM 数据库里,常用内置账户:
- Administrator :最高权限本地管理员,默认禁用或需开启(Win10 家庭版隐藏)。攻击者爱改它的密码,或新建一个同名"Administrator "(带空格)当后门。
- Guest:来宾账户,一般禁用。
- 普通用户:
net user 用户名 密码 /add创建。
常用组:
| 组 | 权限 |
|---|---|
| Administrators | 管理员组,可做一切 |
| Users | 普通用户组 |
| Remote Desktop Users | 允许远程桌面登录 |
| Guests | 来宾 |
6.2 ACL:访问控制列表
Windows 文件/目录的安全模型是 ACL(Access Control List):每个对象(文件、注册表键、服务)都挂一张"权限表",列出哪些用户/组有什么权限(读、写、执行、完全控制......)。
查看和修改用 icacls:
bat
icacls C:\important\file.txt @ 查看文件的 ACL
icacls C:\important\file.txt /grant 用户名:(F) @ 给某用户完全控制
icacls C:\important\file.txt /remove 用户名 @ 移除权限
逐条解释:
/grant后面括号里的字母:F完全控制、M修改、RX读取和执行、R读取、W写入。- 审计重点 :排查"哪些关键目录/文件被改成任何人可写"。如果
C:\Windows\Temp或启动目录被普通用户写入权限,攻击者就能放恶意文件等着它被执行。
6.3 权限滥用与最小权限
安全的核心原则是最小权限:
- 服务账户只给必要权限,别动不动丢进 Administrators。
- 检查有没有把普通用户加进
Remote Desktop Users、Administrators。 - 关键文件定期
icacls审计,防止被偷偷放权。
防御视角总结:Windows 权限体系就像办公楼门禁------用户是"工牌",组是"楼层权限",ACL 是"每间办公室的门锁"。审计要做的,就是一遍遍确认:谁拿着不该有的钥匙?
6.4 再看一层:特权令牌
除了用户/组的静态权限,Windows 还给进程发放特权(Privilege)令牌 。用 whoami /priv 查看当前令牌的所有特权,重点关注:
- SeDebugPrivilege :调试其他进程的特权。开启它意味着可以注入/读写任何进程内存------这是 Mimikatz 等工具抓取进程内密码的前提。拥有它的进程如果被攻击者控制,就离提权不远了。
- SeImpersonatePrivilege:模拟其他用户的特权。服务账户通常带它,配合 potato 系列提权漏洞,能模拟管理员执行代码------这是 Windows 提权的高频路径。
- SeBackupPrivilege:备份特权,可以无视 ACL 读取所有文件(包括 SAM 数据库)。
防御视角 :服务账户和普通用户不应拥有这些特权。审计时对每个账户 whoami /priv 过一遍,发现 SeDebug、SeImpersonate 异常授予,立即排查------这也是"最小权限"在令牌层的体现。
七、案例复盘:还原一次"钓鱼 → PowerShell → 注册表后门"入侵
把本篇知识串成一条完整链,理解 Windows 主机是怎么被拿下的,以及日志上留下了哪些痕迹。以下推演仅用于学习防御,真实环境复刻任一环节都是违法行为。
背景:某员工点击了钓鱼邮件里的附件,触发了一段恶意脚本。
第 1 步:恶意脚本启动,执行 PowerShell 下载器
攻击链上第一痕迹:事件 4688(进程创建)里出现 powershell.exe -w hidden -EncodedCommand ...-------EncodedCommand 是高度可疑信号,正常运维很少用编码命令。蓝队拿到日志第一眼就该盯这种命令行。
第 2 步:内存执行加载,落地持久化后门
脚本通过 DownloadString 从 C2 拉取第二阶段载荷,然后写注册表:
text
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
值:SystemUpdater = C:\ProgramData\updater.exe
取证点 :reg query 该键发现陌生启动项;事件 4104(PowerShell 脚本块日志)里有 C2 地址和写注册表的命令;C:\ProgramData\updater.exe 的创建时间与 4104 时间吻合。
第 3 步:横向移动尝试(可能没成功)
攻击者尝试用当前权限访问其他主机的共享(事件 4625 登录失败集中爆发),但因其他主机未开共享或口令不同,失败居多。这让蓝队从 4625 高失败率里找到入侵源 IP。
第 4 步:防御复盘------断在哪几处
- 源头:钓鱼邮件网关没拦住附件;员工安全培训不到位。
- 执行层 :PowerShell 执行策略、AppLocker/WDAC 应用白名单若能拦截
-EncodedCommand,攻击在第一跳就断了。 - 持久化层:Run 键等自启动位置若被 EDR 监控,新增启动项就会告警。
- 事后:日志开全(4688、4104、4624/4625、7045、4698)并远程留存,才能完整还原时间线。
方法论 :一次 Windows 入侵的痕迹集中在"进程创建、脚本执行、注册表持久化、登录事件"四个点。你不需要记住每个事件 ID,但要记住"看日志要从进程、脚本、登录、持久化四个维度交叉验证"------这就是 Windows 日志分析的内功。
八、综合防御视角:Windows 主机自查清单
把本篇内容串成一份 Windows 加固与自查清单:
- 账户审计 :
net user+net localgroup administrators,检查多余账户、隐藏账户、密码永不过期账户。 - 自启动审计:Run / RunOnce / Services / 启动文件夹 / 计划任务,逐项排查。
- 端口审计 :
netstat -ano对每个监听端口追查进程,可疑端口(4444、5555 等)重点排查。 - 补丁审计 :
systeminfo核对补丁,重点安装已被利用的漏洞补丁。 - 日志开启:审核登录成功/失败,日志远程集中。
- UAC 保持开启,管理账户与日常账户分离。
- ACL 最小化 :关键目录权限收敛,定期
icacls复核。
九、给新手的练习清单
在 Windows 虚拟机中完成:
- 用
whoami、net user、net localgroup administrators认识你的系统。 - 用
netstat -ano列出监听端口,用tasklist找到每个端口的进程。 - 打开事件查看器,找到最近的 4624/4625 事件,看懂登录类型和来源 IP。
- 用
reg query查看 Run 键,认识自启动项长什么样。 - 用
icacls查看一个目录的 ACL,再用/grant给一个测试账户授权,最后撤销。 - 在 PowerShell 里执行
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5,感受"对象管道"与 CMD 的差别。
把这些做完,你对 Windows 的安全机制就有了骨架级的认识。再进阶一步:把第 2.5 节的 4104 日志、第 4.6 节的 7045/4698 事件也实操一遍,在虚拟机里手动创建一次服务和计划任务,再去日志里"找到自己刚才的动作"------亲手制造痕迹再亲手还原它,是理解"日志取证"最快的路径。
Windows 世界里还有大量域渗透、横向移动等高阶话题,但骨架扎实了,那些只是往上加肌肉。
(本文命令请在自有 Windows 虚拟机中练习;未授权查看他人系统的账户、日志与配置属于违法行为。)