Files
.pouch/skills/host-sec-check/references/checklist.md
T
2026-09-04 11:54:07 +08:00

2.4 KiB
Raw Blame History

检查项

每项:做了 / 跳过(原因) / 可疑。

A. 快照

  • 主机名、OS、内核、uptime
  • CPU/负载、内存(含 hugepage、swap)、磁盘
  • 网卡:公网 v4/v6、内网、Tailscale/VPN
  • 监听端口 + 进程(root ss -lntup)
  • 本机防火墙:nft/iptables/ufw;INPUT 策略
  • 云安全组(做不到就写未查)

B. 身份与入口

  • sshd 配置:端口、root、密码、Pubkey
  • 所有 authorized_keys(含 /root、/home/*、git 用户)
  • last / lastb / ssh journal
  • /etc/passwd 里 UID 0、系统外用户、登录 shell
  • sudoers、NOPASSWD、docker/lxd/libvirt 组
  • 对公网的面板:Portainer/Cockpit/宝塔/1Panel/k8s/Docker TCP
  • 单元或 compose 里的明文 bootstrap token

C. 持久化

  • 用户与系统 crontab、/etc/cron.*
  • systemd 服务与 timer(非发行版默认)
  • ld.so.preload + 对应 .so(容器视角 hexdump)
  • lsattr 发现的 immutable 异常文件
  • rc.local、profile.d、bashrc 后门
  • 第二套 container runtime

D. 进程

  • 容器视角 vs 宿主机 ps 差集
  • maps 里的陌生 so
  • 矿机/挖矿/proxy 客户端特征名与同体积副本
  • hugepage 预留但无对应进程
  • 高 CPU 且不在业务名单里的进程

E. 容器 / k8s

  • docker ps -a 与 inspect(privileged、sock、/:/host、0.0.0.0)
  • 挂机赚钱镜像名单
  • k8s/k3s:节点 Ready、该节点 Pod 列表
  • API 不通时:kubelet pods/*/etc-hosts、crictl
  • 工作负载是否能在 Git/编排仓库里对上

F. 暴露

  • 0.0.0.0 与 [::] 监听清单
  • 从外部扫公网 IPv4(和 IPv6)
  • rpcbind :111、DB、Redis、应用明文端口
  • 管理 SSH 是否可收到 VPN
  • 证书/域名入口是否可被 IP:端口绕过

G. 补漏(容易漏)

  • IPv6 公网地址同样在听
  • 世界可写目录、异常 SUID
  • 未装补丁 / apt 过期很久
  • 出站长连接(C2)
  • 内核模块 lsmod 异常
  • 时间偏移(影响日志)
  • 备份是否还能用(清理前不要删数据盘)
  • 日志被清空或 journal vacuum
  • Web 根目录 webshell(若有 nginx/caddy/apache)
  • .git 或备份文件可下载
  • 云 metadata 是否对容器开放

H. 报告与处置确认

  • 结论表
  • 用户确认后再改
  • 改完公网+域名双侧验证