锁定Hosts文件写入权限可切断恶意软件修改通道,需禁用继承权限、仅保留TrustedInstaller和管理员账户的读取权,再添加只读/隐藏属性及命令行固化保护。

第三方软件擅自修改系统 Hosts 文件会导致域名劫持、广告注入、开发环境失效,甚至让浏览器访问正常网站时被强制跳转到钓鱼页。你手动加的 127.0.0.1 example.test 刚保存就消失,或 hosts 文件里突然多出几行指向 192.168.123.45 的记录——说明某个进程正以高权限持续覆盖该文件。
锁定 Hosts 文件写入权限(核心防护)
这一步直接切断绝大多数恶意软件的修改通道,不依赖杀毒软件扫描,从系统层拒绝非法写入。
打开文件资源管理器,在地址栏粘贴:C:\Windows\System32\drivers\etc → 回车 → 找到无扩展名的 hosts 文件 → 右键 → “属性” → 切换到“安全”选项卡 → 点击“高级”。
点击右上角“禁用继承” → 在弹出窗口中选择“将继承的权限转换为此对象的显式权限” → 点击“确定”。此时所有 inherited 权限条目将变为灰色不可编辑状态。
在权限列表中,逐个选中非必要的用户或组(如 Users、ALL APPLICATION PACKAGES、Everyone),点击“删除”按钮 → 对每个被删项确认操作。
仅保留【TrustedInstaller】和你当前登录的管理员账户(如 DESKTOP-XXX\YourName),并确保该账户只勾选“读取”和“读取和执行”,【绝对不要勾选“写入”或“修改”】。
点击“确定”保存设置 → 若弹出 UAC 提示,输入密码确认 → 关闭属性窗口。
添加只读与隐藏属性(双重保险)
这是对权限锁定的加固,防止部分低权限工具通过属性开关绕过 ACL 限制。
回到 C:\Windows\System32\drivers\etc 目录 → 右键 hosts 文件 → “属性” → 在“常规”选项卡中,勾选“只读”和“隐藏”两个复选框 → 点击“应用” → 点击“确定”。
注意:若提示“您没有权限更改此文件夹的属性”,说明上一步权限未生效,请先返回前一节完成 ACL 清理再试。
用命令行永久固化保护(管理员 PowerShell)
图形界面可能被某些伪装成合法软件的进程干扰,命令行方式更底层、更难绕过。
右键“开始”按钮 → 选择“终端(管理员)” → 输入以下命令并回车:
icacls "$env:windir\System32\drivers\etc\hosts" /inheritance:r /grant:r "NT AUTHORITY\SYSTEM:(R)" /grant:r "BUILTIN\Administrators:(R)" /grant:r "NT SERVICE\TrustedInstaller:(F)"
该命令强制清除所有继承权限,并仅授予 SYSTEM 和 Administrators 读取权、TrustedInstaller 完全控制权。执行后无需重启,立即生效。
再执行:attrib +r +s +h "$env:windir\System32\drivers\etc\hosts" → 回车。这条命令同时设置只读(+r)、系统文件(+s)、隐藏(+h)三重属性,能阻止大多数 GUI 工具在未启用“显示隐藏文件”时识别该文件。

















