服务器漏洞如何自查

wen 开源项目 32

本文目录导读:

服务器漏洞如何自查

  1. 第一阶段:资产与信息收集
  2. 第二阶段:自动化漏洞扫描(最有效手段)
  3. 第三阶段:核心安全配置检查(人工排查)
  4. 第四阶段:日志与行为审计(应对后门)
  5. 如何量化风险并优先处理?
  6. 完整自查清单速查表(建议逐一勾选)

服务器漏洞自查是一项系统性工作,通常结合自动化工具扫描人工安全配置检查,以下是分步骤的自查指南,适用于Linux/Windows服务器:

第一阶段:资产与信息收集

在进行扫描前,需要明确你管理的是“什么”。

  1. 明确服务器角色:是Web服务器、数据库服务器、邮件服务器还是API网关?不同角色风险点不同。
  2. 盘点开放端口与服务
    • Linux: ss -tulnnetstat -tulpn
    • Windows: netstat -ano | findstr LISTENING
    • 重点:检查是否有意料之外的端口开放(如 Redis 6379、MongoDB 27017 暴露在外)。
  3. 确认操作系统与软件版本
    • cat /etc/os-release (Linux)
    • systeminfo | findstr /B "OS" (Windows)
    • 关键:记录所有关键软件版本(如 Nginx, OpenSSL, Tomcat, MySQL)。

第二阶段:自动化漏洞扫描(最有效手段)

建议使用开源免费工具或商业版试用进行快速自查。

使用 OpenVAS / Greenbone (全面深度扫描)

  • 特点:开源漏洞评估系统,类似Nessus,包含数万条漏洞插件。
  • 操作:安装后配置目标IP(如你的线上服务器),运行“Full and Fast”扫描。
  • 查看结果:重点关注 Critical(严重)High(高危) 漏洞,特别是“远程代码执行”、“未授权访问”、“SQL注入”。

使用 Nikto (Web服务器专项)

  • 适用:仅用于HTTP/HTTPS服务。
  • 命令nikto -h https://你的IP或域名 -ssl -Format html -o report.html
  • 查什么:敏感文件(/phpinfo.php, /backup.sql)、过期组件、不安全的HTTP方法(PUT, DELETE开启)。

使用 Nuclei (基于PoC的快速验证)

  • 特点:社区维护的PoC模板库,速度快,误报率低。
  • 命令nuclei -u https://你的域名 -severity critical,high -o results.txt
  • 优势:能直接验证特定CVE(如Log4j, Shiro反序列化)。

使用 WPScan / JoomScan (CMS专用)

  • 场景:网站使用WordPress, Joomla, Drupal。
  • 命令wpscan --url https://你的域名 --api-token YOUR_TOKEN --plugins-detection aggressive

第三阶段:核心安全配置检查(人工排查)

自动化工具可能无法发现配置逻辑漏洞。

弱口令与默认凭据(高危!)

  • 检查项
    • 所有SSH/RDP密码是否是root/123456admin/admin
    • 数据库(MySQL, Redis, MongoDB)是否设有强密码?或者是否开启了“无密码访问”?
    • Tomcat Manager页面是否使用了默认密码(tomcat/tomcat)?
  • 自查:尝试手动用上述默认密码登录。

Web中间件配置错误

  • 目录遍历:访问 https://你的域名/../../etc/passwd 是否返回内容?
  • 备份文件泄露:访问 https://你的域名/xxx.bakxxx.sql 是否存在?
  • 不安全HTTP方法:使用 curl -X OPTIONS https://你的域名 检查是否允许 PUTDELETETRACE

操作系统与内核漏洞

  • 脏牛(Dirty Pipe)等本地提权漏洞
    • Linux: 检查内核版本(uname -a),对比已知CVE(如CVE-2022-0847)。
    • Windows: wmic qfe list 查看补丁KB编号,搜索对应漏洞(如 PrintNightmare)。

权限与文件系统安全

  • 敏感文件权限find / -perm -4000 -type f (查找SUID文件,过多或异常文件可能被用于提权)。
  • 目录权限ls -la /home/ 检查是否存在其他用户目录泄露。

第四阶段:日志与行为审计(应对后门)

如果怀疑服务器已被攻破,需要检查异常行为。

  • 系统日志
    • Linux: journalctl -xegrep "Failed password" /var/log/auth.log
    • Windows: 检查“安全”日志ID 4625(登录失败)和ID 4624(登录成功),关注非工作时间登录。
  • 计划任务/自启动
    • Linux: crontab -lls -la /etc/cron*
    • Windows: schtasksreg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  • Webshell扫描:使用河马Webshell查杀(sudo ./hm scan /website/)。

如何量化风险并优先处理?

严重等级 典型漏洞 处理时限
P0-紧急 远程代码执行(RCE)、弱口令被爆破、数据库未授权访问、存在已知公开PoC的0day。 立即下线或隔离,1小时内修复。
P1-高危 SQL注入、XSS、敏感信息泄露、服务端请求伪造(SSRF)、目录遍历。 24小时内完成修复或WAF规则封禁。
P2-中危 SSL/TLS弱加密(CVE-2016-2183)、HTTP响应头缺失、Cookie未设置Secure/HttpOnly。 本周内修复。
P3-低危 信息泄露(如Server版本号)、默认信息、不必要的开放端口。 下个维护窗口处理。

完整自查清单速查表(建议逐一勾选)

  1. [ ] 所有默认密码是否已修改?(重点:数据库、SSH、ROOT、CMS后台)
  2. [ ] 系统是否打了最新安全补丁?( apt update && apt upgradeyum update )
  3. [ ] 是否只开放了必要的端口?( iptables -Lfirewall-cmd --list-all )
  4. [ ] 是否启用了自动安全更新?(如unattended-upgradesautomatic updates)
  5. [ ] Web目录是否有写入权限给非必要用户?(如chmod -R 755 /var/www/html)
  6. [ ] 是否配置了WAF(如ModSecurity)或云防火墙?
  7. [ ] 是否启用了Fail2ban (防止暴力破解)?
  8. [ ] SSH配置是否禁用Root直接登录?( PermitRootLogin no )
  9. [ ] 日志是否上传到远程服务器进行集中监控?

最后的警告:若在生产服务器上执行高强度扫描验证性攻击,请务必确保:

  1. 已获取领导或安全负责人的书面授权。
  2. 使用的扫描工具(如OpenVAS)已配置“安全”模式,避免发送可能导致服务崩溃的畸形数据包。
  3. 最好先在预发布环境快照副本上进行测试。

如果自查后发现无法解决的高危漏洞,建议立即联系专业安全团队或使用云平台自带的“主机安全”服务(如阿里云安骑士、腾讯云主机安全、AWS Inspector)。

抱歉,评论功能暂时关闭!