首页/安全/取证与溯源速查/hosts 与 DNS 配置篡改检查
Linux 取证135 条

hosts 与 DNS 配置篡改检查

/etc/hosts 与 /etc/resolv.conf 被修改可导致域名解析指向攻击者主机,用于劫持更新与情报查询,是容易忽略的持久化点之一。

取证与溯源速查安全更新于 2026-10-13

本地名称解析篡改

/etc/hosts 提供本地静态解析,优先级通常高于 DNS,改写它就能把域名指向攻击者主机,是域名劫持最简单的落地方式。取证关注新增条目、被注释掉的原条目、文件时间戳,以及是否被 chattr 加上不可变属性——加锁往往说明有人想让它难以被还原。

基本信息

文件/etc/hosts、/etc/resolv.conf、/etc/hostname
解析顺序/etc/nsswitch.conf 的 hosts 行决定 hosts 与 DNS 的先后
相关服务NetworkManager、systemd-resolved(会动态生成 resolv.conf)
属性检查lsattr / chattr,i 为不可变、a 为仅追加
观察点新增条目、注释掉的原条目、mtime 与 ctime
适用平台Linux 与 Unix 系(macOS、BSD 同理)

典型使用场景

  • 排查域名被本地劫持导致的外联异常
  • 分析恶意样本把回连地址硬编码指向内网的情况
  • 确认 resolv.conf 是否被网络管理器正常托管
  • 与更新失败、证书报错类故障交叉验证
  • 采集主机解析配置基线用于后续比对

最小示例

最小示例
cat /etc/hosts                                        # 全量阅读,条目通常不多
grep -vE '^\s*#|^\s*$' /etc/hosts                      # 只看生效行
stat -c '%n mtime=%y ctime=%z' /etc/hosts /etc/resolv.conf
lsattr /etc/hosts /etc/resolv.conf 2>/dev/null         # 是否带 i 等特殊属性
grep -E '^hosts:' /etc/nsswitch.conf                   # 确认解析顺序
cat /etc/resolv.conf                                   # 确认 DNS 服务器与搜索域

输出字段读法

字段含义异常信号
IP 地址解析目标地址指向内网或陌生公网地址
主机名被解析的域名与业务无关的更新或遥测域名
行内注释说明文字注释掉的原条目暴露改动痕迹
属性位chattr 设置的属性系统配置上出现 i 或 a
mtime/ctime修改与元数据变更时间与包管理或运维窗口对不上
resolv.conf 常由 NetworkManager 或 systemd-resolved 动态生成,判断改动性质前先确认生成机制,避免把正常刷新当成篡改。
不可变属性也可能由加固基线统一施加在其它系统文件上,发现 i 属性要先核对是否属于既有基线。
直接 chattr -i 再改写解析配置会破坏既有加固基线,也可能让态势发生变化;先固化文件内容与哈希,再按流程处置。

易错点

  • 改完不看属性:漏掉 i 属性会导致文件被还原或反复出现,误判为清除不干净
  • 把托管生成的 resolv.conf 当作篡改:动态文件会随网络事件变化,需结合守护进程日志判断
  • 只看 /etc/hosts 不看 nsswitch.conf:解析顺序被调整后,hosts 内容的实际影响完全不同
  • 忽略指向内网地址的条目:把域名解析到内网通常意味着重定向到攻击者控制的主机,比指向公网更隐蔽

数据来源与参考

  • man 5 hosts(hosts 文件)
  • man 5 resolv.conf
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌