1. 从“会用”到“懂它”Windows再认知说实话我见过不少刚入行网安的朋友一上来就急着学各种攻击工具结果遇到最基础的问题反而卡壳某次应急响应让排查一台主机的本地账户有人连“用户组”和“账户”的区别都说不上来还有一次模拟项目X需要检查系统登录日志居然有人跑去第三方软件里翻半天其实事件查看器里就有完整记录。这类情况太常见了。原因很简单——大家都觉得Windows“会用”但网安视角下的Windows很多知识点是藏在图形界面背后的。上一篇聊了文件系统、进程和服务的初步认知这一篇我把账户权限、日志审计、防火墙规则、远程管理这几个最常打交道、也最容易被忽视的部分串起来讲点实在的。写这套内容有两个考虑一是读者不一定有真实的攻防项目经验很多是刚接触虚拟机和模拟环境太深的讲不了二是太浅的又没必要写毕竟“下一步下一步装系统”谁都会。所以我挑的都是“安全工作中绕不开、但常规使用中不会深入”的知识点结合我在实际项目中踩过的坑展开。这篇文章适合两类人一类是刚转网安、对Windows认识停留在日常操作层面的人另一类是做了一段时间但一直没有系统梳理过系统机制的同行。看完不敢说让你变成专家但至少以后再遇到账户异常、登录暴破、日志被清理、防火墙放行误操作这类事脑子里能有一个清晰排查方向而不是凭感觉乱试。2. 账户体系与权限攻防第一道门2.1 别只认AdministratorWindows账户的庐山真面目Windows的账户远不止“管理员”和“访客”这么简单。打开lusrmgr.msc看一眼就知道系统内部还藏着不少内置账户其中两个日常不显示但关键时刻要命的Administrator和Guest。内置Administrator账户在装了系统的默认情况下是禁用的除非你手动启用或者用某些优化工具把它唤醒。攻击者拿到一台机器后第一件事就是看这个账户是不是能用很多弱口令爆破也专盯着它。Guest账户更尴尬——默认就是关闭的但有些办公环境为了“方便打印共享”之类的原因会把它开开开开之后没设强密码等于给门口放了把钥匙。另外大家经常听到的“管理员权限”这个概念实际对应的是“Administrators组成员”和“SYSTEM”两个不同层面。简单说SYSTEM是比你管理员还高的系统级账户只管系统内核Administrators是用户层最高权限组。很多服务运行在SYSTEM下所以杀毒软件、驱动、系统服务出了问题普通管理员账户可能改不动这是正常的。在域环境里还有一层域账户的概念。本地账户只在这台机器有效域账户是跟着人走的。如果你在做项目时看到某台主机上出现了非本地创建的账户又不在域账户列表里那基本可以判定被留后门了——这是应急响应里最常见的“坏人标记”之一。2.2 UAC在拦什么权限分裂与提权理解很多用户烦UAC弹窗觉得“多此一举”。但对安全人员来说UAC是Windows分层权限模型中很聪明的一环。默认情况下即使你是Administrators组的老大平时跑程序也是以“标准用户”令牌在跑只有需要管理员操作时才会弹UAC你确认后它才给你管理员令牌。这意味着恶意程序想拿到高权限要么先骗你点一下UAC要么找漏洞强行提权。理解这个逻辑后你就会明白为什么渗透测试时经常看到“UAC绕过”这类工具——它们的目的就是骗系统相信你已经有管理员令牌从而跳过弹窗执行高权限操作。遇到UAC弹窗平时习惯直接点“是”的人很多。但网安视角下每条UAC提示都值得瞄一眼弹的进程名是不是你正在操作的程序好端端打开个文档编辑器突然弹“允许此应用更改设备”这就该拉响警报了。2.3 权限与访问控制不止“只读/写入”这么简单Windows文件系统里每个文件都有一张“权限表”专业叫法叫ACL访问控制列表。你右键文件 → 属性 → 安全能看到一行行记录谁对这个文件有什么权限。这上面有“完全控制”“修改”“读取和执行”“列出文件夹目录”“读取”“写入”六项主要权限组合起来千变万化。工作里最常见的误区是给某个用户“写入”权限以为他只能写不能删实际上“写入”里包含创建文件和写入数据但不一定包含删除反过来给了“修改”就包括了删除子文件和文件夹。实际排查问题时的经典情况是某目录用户说“我能往里面存文件但删不掉别人的文件”。这在正常业务下是符合预期的——删除文件需要“删除”权限而旧版Windows里删除子文件需要的是上一级目录的“删除子文件夹和文件”权限很多人根本没分这么细。对做安全的人来说这个颗粒度不只是文件管理细节更是权限控制是否做到最小化的重要验证点。还有所有权Ownership这个概念同样容易被忽略。就算你没权限访问某个文件只要你是管理员就可以“获取所有权”然后改权限再进去。这是微软故意留的后门目的是避免管理员被权限锁死。但坏人也利用这个逻辑——拿到管理员权限后所有ACL保护实际上都能被绕过。所以看权限问题时要同时把“谁机器权限高”和“谁文件权限高”放一起判断不能只盯着一层。2.4 补一句用户管理实操建议很多书籍一上来就讲怎么创建用户、加入组这些图形界面操作我就不累述了。只说几个我实际中认为非常重要的“习惯”第一给不同的服务创建专用的低权限账户不要用管理员账户挂服务。数据库服务、Web服务都建议用独立账户运行这样即使服务被攻破攻击者拿到的也就是那个低权限账户不能动系统。第二禁用或重命名内置Administrator账户这是合规基线里必查的一项。禁用是让它不能登录重命名是让暴破的人猜不到用户名配合强密码双保险。第三每隔一段时间用工具导出一次账户列表和组成员关系留存基线。平时不觉得真出事时这份清单能帮你快速发现“多出来的账户”到底是不是后门。注意不要在仅了解Windows基础的情况下直接在生产环境操作账户策略特别是修改内置账户状态或组成员关系前务必测试并确认不会影响业务。虚拟机或测试环境里随便试生产环境谨慎这是安全工作的基本操守。3. 事件日志系统里的黑匣子3.1 日志到底记了什么怎么找Windows的事件日志是所有安全排查绕不开的第一站。打开事件查看器eventvwr.msc左侧是“Windows日志”分类核心要看三块应用程序、安全、系统。应用程序日志记录软件层面的事比如某个程序崩溃、某个服务出错系统日志记录系统组件、驱动、服务相关事件安全日志则记录登录、权限使用、策略变更这类“审计类”事件。这三者中安全日志最敏感攻击者拿到权限后第一件事经常是清安全日志因为这里记录了他们“留下的脚印”。日志文件本身存在C:\Windows\System32\winevt\Logs目录下后缀名是.evtx。日常查看用事件查看器但取证排查时建议直接用PowerShell导出速度更快不容易卡界面。几个常用命令顺手写一下# 导出最近7天的安全日志 wevtutil epl Security C:\temp\security_7d.evtx /q:*[System[(EventRecordID0) and TimeCreated[timediff(SystemTime) 604800000]]] # 用PowerShell查询登录事件并筛选关键信息 Get-WinEvent -LogName Security -FilterXPath *[System[EventID4624]] | Select-Object TimeCreated,Message | Out-GridView3.2 关键事件ID速查多少行代码代表一种攻击手法事件ID是Windows日志的“身份证”记住几个关键ID排查效率翻倍。登录成功是4624登录失败是4625。这两个配合起来看如果某台机器短时间内出现了大量4625且来自同一来源IP基本就是有人在做口令暴破。如果4624里频繁出现登录类型为3网络登录的记录且时间异常可能是远程连接被人薅了。服务创建是7045记录系统里新装的服务。恶意软件常伪装成服务持久化运行所以看到不认识的7045要警惕。计划任务注册是4698相当于对方在系统里给自己排了“闹钟”定时执行恶意程序。这些事件在常规运维中可能只是噪音但在安全核查时联网一查往往是案件的起点。还有账户操作类事件4720创建用户、4722启用用户、4726删除用户、4738修改用户属性、4740账户被锁定。最后一个4740特别实用——你在排查“为什么这个员工登录不了系统”时很可能就是暴破策略触发自动锁定一翻安全日志便知。提示默认情况下Windows安全日志只记录登录成功和失败更细的进程创建、命令行参数这些默认不开。需要跑合规工作或做深度溯源时得先开启“审核进程创建”策略命令方式是auditpol /set /subcategory:进程创建 /success:enable /failure:enable。3.3 日志被清了怎么办残留与覆盖攻击者懂得清日志但也常清不干净。事件查看器清了可能留在内存里的还没落盘用命令删了evtx文件文件句柄被占用时删不掉覆盖了当前日志备份的如果有配置可能还在。实际排查时不要只依赖事件查看器一个渠道。PowerShell历史记录ConsoleHost_history.txt、预读取文件Prefetch、快捷方式LNK文件、临时目录残留、Windows搜索索引都可能藏着攻击痕迹。日志是重要的证据但绝不能是唯一的证据。另外Windows日志有大小上限默认日志满了之后策略是“按时间覆盖旧事件”这意味着你去看日志可能重要事件已经被新事件顶掉。合理的配置是把日志上限调高并设置为“日志已满时停止”或“归档但不覆盖”。作为基线加固的一个动作这个经常被忽略但真出事了才后悔当初没配置。4. 防火墙与网络安全Windows自己的防线4.1 配置文件区分域、专用、公用不是摆设Windows防火墙最让人困惑的就是三个“配置文件”域配置文件、专用配置文件、公用配置文件。很多人在弹窗里随手选了个“公用”结果回家发现连不上家里设备反过来也是。打个比方域配置文件是“在公司体制内的网络规则”专用是“家里或办公室可信局域网”公用是“咖啡馆、酒店这种谁都能进的网”。不同配置下防火墙规则独立生效同一台电脑在不同网络环境会自动套用对应的策略。这设计本意是为安全但也被攻击者钻过空子——有些恶意软件特意针对“公用配置文件”关闭防火墙因为它知道公用网络通常限制最少。排查时需要看大本营命令是netsh advfirewall show allprofiles能一眼看到三个配置文件的当前状态。有些环境为了部署方便三个全设成“关闭”这在工作站上极其危险相当于裸奔。4.2 出站规则与入站规则别只盯着一半提到防火墙很多人第一反应是“挡别人进来”。但安全的另一半是“防自己出去”。入站规则控制谁能连上你出站规则控制你能连谁。恶意软件被植入后常常需要“回连”——主动向外连接到控制服务器这时出站规则就起作用了。默认情况下Windows出站是“允许全部”的只有少数明确禁止的项目是阻止状态。这意味着大部分木马只要入站不被拦出站基本畅行无阻。自己搭建测试或做安全基线加固时可以针对关键业务配置出站白名单只允许系统到特定端口。但要注意这会造成维护成本明显上升新装软件可能需要反复调规则。我的建议是常规用户环境只配入站白名单出站规则在你明确知道自己在做什么的情况下再动。实操上常用命令# 查看所有入站规则 netsh advfirewall firewall show rule nameall dirin # 新增入站放行端口3389仅限专用配置文件 netsh advfirewall firewall add rule nameAllow RDP Private dirin actionallow protocolTCP localport3389 profileprivate # 立即阻止某个程序的出站连接 netsh advfirewall firewall add rule nameBlock Tool dirout actionblock programC:\evil\tool.exe4.3 防火墙日志被忽视的取证来源Windows防火墙有独立的日志文件默认是关闭的。想开启的话在wf.msc里选择属性或者直接命令行netsh advfirewall set currentprofile logging filename C:\Windows\System32\LogFiles\Firewall\pfirewall.log netsh advfirewall set currentprofile logging droppedconnections enable开启后所有被丢弃的连接都会记录到pfirewall.log里。排查时这个日志能告诉你谁在扫描你、哪些端口被频繁试探、哪些IP被策略拒绝后还在反复尝试。它跟事件日志是互补的事件日志记系统行为防火墙日志记网络行为把两者时间轴一拼很多攻击链路就能推演出来。注意防火墙日志如果长时间开着文件会涨得很快尤其在被扫描攻击的环境里。建议做好日志轮转或对防火墙日志目录做大小监控防止日志文件把磁盘塞满导致系统异常。5. 远程管理方便与风险的一体两面5.1 远程桌面RDP的正确姿势远程桌面是Windows自带的管理利器默认3389端口但很多人不知道远程桌面服务其实默认是关闭的需要在系统属性里勾选“允许远程连接到此计算机”。我从安全角度给几条实操建议。第一暴露3389到公网是最危险的操作之一。默认端口默认协议等于告诉全世界“来试密码吧”。很多暴破攻击就是盯公网IP扫描3389然后跑密码字典。如果业务真的需要远程访问建议只对特定IP放通网络层面限制来源IP白名单比防火墙配置更可靠。第二启用账户锁定策略比如5次失败就锁定账户15分钟。代价是攻击者可以恶意触发锁定让你的管理员账户直接被锁住无法登录——极端情况下这算一种DoS但那也比被暴破进去要好。第三远程桌面有连接日志但默认不记录谁连接过。如果你想审计这件事得配合安全日志里的4624登录类型10为远程登录或者开启“远程桌面服务”会话日志。应急响应时查看当前在线会话用query user命令可以看谁正连着。5.2 WinRM被忽略的另一种远程管理WinRMWindows远程管理是基于HTTP(S)的远程管理服务默认端口5985HTTP和5986HTTPS是微软大批量管理机器的利器。它默认关闭但在很多虚拟化环境或批量部署场景下会被管理员打开。WinRM的问题是一旦开启且配置不当等于给攻击者开了一条Powershell直接远程控制的通道。它比3389更隐蔽因为很多人不太熟悉这个协议。安全排查时用winrm enumerate winrm/config/listener可以查看WinRM是否在监听再用winrm get winrm/config/service看认证和加密配置。如果确定业务不需要WinRM直接将其禁用最干净Disable-PSRemoting -Force5.3 经常被忽视的远程工具残留现实排查中要查的不止系统自带的远程管理还要看是否有第三方远程控制软件被当作后门安装。向日葵、ToDesk、TeamViewer这类工具在正常办公中经常使用但攻击者也会用它们来保持控制通道——受害者以为是IT在远程协助实际上是对面在操作他电脑。怎么区分正常使用和滥用关键看使用频率和安装时间。如果某台长期没人用的服务器突然装了远程控制软件并自动开机启动这个基本可以锁定了。注册表启动项、计划任务、服务列表是排查的三大入口也可以用wmic startup get caption,command快速查看所有开机启动项。提示如果你责任感比较强帮同事处理电脑时顺手给远程控制软件设置访问密码而不是默认的便捷访问模式就不至于把自己也搭进一条“疑似后门”的线索里。日常排查时看到未加密的远程控制配置也建议主动提示用户加固。6. 系统排查实操一台可疑机器的处置思路6.1 先稳住再动手应急镜像与信息收集拿到一台疑似被入侵的机器第一步不是乱七八糟的命令跑一遍而是先确保“证据不污染”。实践中我常做的步骤是先对内存和磁盘做镜像备份然后确认系统时间和时区方便对齐日志时间轴再查看当前在线账户和会话判断攻击者是否还在线。很多初学者一上来就打开事件查看器翻日志这不叫干净操作。如果攻击者恰好还在线你打开日志的行为本身就可能触发他某些反侦查机制他会加速清理痕迹。更稳妥的方式是先做内存镜像有条件的话然后做磁盘镜像最后在镜像或断网后的机器上进行分析。6.2 用自带命令拼出线索链一个非暴力排查流程实际操作时我习惯组合几个自带命令快速摸底。主要是几个方向用net localgroup administrators看清管理员组成员如果发现不认识的人记录。用query user和query session查看当前登录会话重点看有没有异常的远程会话挂着。用net start或service看服务列表不认识的启动类型“自动”服务要重点排查。用schtasks /query /fo LIST /v查看计划任务里面有“下次运行时间”和“任务要执行的程序路径”。用wmic process list brief看进程列表挑出那些路径可疑比如在Temp目录下、在用户Profile下的进程。用netstat -ano查网络连接重点关注连接到外部IP的ESTABLISHED连接以及监听在高位端口的进程。这些命令单看都不起眼但把结果串起来往往能组成一条线索链某个不明进程对应不明服务同时开启了外联端口且登录会话来自异常IP还跟着一个可疑计划任务——这条链基本够写一份告警了。6.3 蓝队视角的“金丝雀检查单”最终无论是自己做巡检还是帮客户做安全评估我都建议准备一份检查清单把最关键的检查项固定下来。我常用的大概是这些检查项命令/位置关注点管理员组成员net localgroup administrators是否有陌生账户登录日志成功安全日志 EventID 4624登录类型3/10的异常来源登录日志失败安全日志 EventID 4625是否大量失败尝试新装服务安全日志 EventID 7045 / services.msc不认识的自动启动服务新装计划任务schtasks /query路径在Temp或用户目录的任务网络连接netstat -ano外联IP、高位监听端口启动项wmic startup list full可疑程序随系统启动远程管理软件已安装程序列表 / 服务列表非必要的控制软件或突然出现的新软件防火墙状态netsh advfirewall show allprofiles三个配置文件是否有人为关闭账户策略net accounts密码策略、锁定阈值是否合规这份清单不复杂但胜在固定和可重复。每次检查都用同一批命令、同一份关注点积累一段时间就有基线了。没有基线的情况下很多“异常”你判断不了有了基线偏离基线的变化一眼就能看出来。7. 从基础到防线少走弯路的几点体会最后分享几个个人感受。Windows基础这块初级看的是“记住知识点”进阶看的是“串起知识链”。账户、日志、防火墙、远程管理这四个部分单独理解不难但攻击者往往是把它们串在一起来利用的——找个弱口令账户、远程连进去、杀了日志、留个服务后门、再开个防火墙放行端口整个过程一气呵成。所以安全人员排查时也要有这种“链路思维”不是看到一个异常点就停而是顺着异常点往前推、往后查。比如发现管理员组多了一个账户就要接着查这个账户什么时候创建的安全日志4720/4738有没有记录它有没有登录过登录到哪台机器后续执行过什么命令一连串问下来答案才有说服力。还有一条实用建议自己在虚拟机里多练。装两台Win10一台开远程桌面一台当客户端把自己当攻击者反复尝试暴破登录、创建隐藏账户、开启远程控制、清日志、留后门服务然后再用上面那套排查清单去抓自己的痕迹。这个循环做几遍你对Windows的理解会远超看文档一百遍。我最初就是这么练的效果很好很多排查手感就是这么建立起来的。
阅读完成 · 觉得有帮助?