Linux服务器攻击面梳理(2024)上集

admin 2024年11月15日10:17:54评论4 views字数 4614阅读15分22秒阅读模式

在 Linux 系统渗透测试领域,全面了解目标服务器的潜在攻击面至关重要,这就好比绘制一幅详细的“攻击地图”,标注出所有可能的入侵点,才能制定精准的攻击策略。我尝试梳理了 Linux 服务器的七大主要攻击面,涵盖从弱凭证到容器逃逸等各个方面,希望能为各位读者提供一些参考,抛砖引玉。

另,从安全研究的角度来看,Linux 服务器的攻击面可以被视为服务器安全状态空间的一个子集,它包含了所有可能被攻击者利用的漏洞、配置错误和弱点。对攻击面的研究,有助于我们系统地理解 Linux 系统的安全风险,并开发更有效的防御机制。例如,通过分析不同攻击面的特征和利用方式,我们可以设计更有针对性的入侵检测规则、开发更精准的漏洞扫描工具、并制定更全面的安全策略。此外,攻击面的研究也为安全评估和风险管理提供了重要的依据,可以帮助我们更准确地评估系统的安全风险,并优先处理高风险的攻击面。

编号 名称
1 弱密码重复使用凭据
2 Sudo 设置错误
3 计划任务
4 应用/服务配置错误
5 内核漏洞利用
6 容器逃逸
7 第三方软件

1. 弱密码重复使用凭据 

  • 攻击点: 用户账户,尤其是特权账户(例如 root、sudo 用户)。这些账户的凭据是攻击者的首要目标,获取这些凭据就相当于拿到了“万能钥匙”。
  • 攻击手段和技术原理:
    • 暴力破解: 利用工具尝试所有可能的密码组合,例如Hydra、Medusa、等。该方法的成功率取决于密码的复杂度和字典的完备性。
    • 字典攻击 : 使用包含常用密码、根据目标用户习惯和信息定制的字典进行尝试登录,效率比暴力破解更高。
    • 凭据填充: 使用从其他网站泄露的用户名和密码组合进行尝试登录,利用用户在不同平台重复使用密码的习惯。
    • 密码喷洒: 针对多个用户账户,尝试少量常用密码,例如 "123456"、 "password"  等,试图找到使用弱密码的用户。这种方法可以绕过一些账户锁定机制。
  • 难点: 密码复杂度要求高、账户锁定机制、多因素认证 (MFA)。
  • 技巧: 结合社工库信息,获取目标用户的个人信息、常用密码等,提高攻击成功率;利用撞库攻击,尝试从其他系统中获取用户的凭据;利用网络钓鱼等社会工程学手段,窃取用户凭据。
  • 最佳攻击场景实践:  目标系统没有启用多因素认证,并且没有限制登录尝试次数,或者密码策略比较弱,例如允许使用短密码或简单密码。
  • 服务器监控预警绕过策略:
    • 针对账户锁定:降低攻击频率,或者使用多个  IP 地址进行攻击。
    • 针对 MFA:尝试绕过  MFA,例如利用MFA的漏洞,或者使用社会工程学手段欺骗用户。
  • 防御措施:
    • 实施强密码策略:要求密码长度至少为 12 位,包含大小写字母、数字和特殊字符,并禁止使用常用密码。
    • 限制登录尝试次数:例如,连续 5 次登录失败后锁定账户。
    • 启用多因素身份验证 (MFA):例如,使用 Google Authenticator、短信验证码、硬件令牌等。
    • 定期更改密码:例如,每 90 天更换一次密码。
    • 禁用或删除不必要的账户:例如,禁用guest账户,删除不再使用的账户。

2. Sudo 设置错误 (也可以参见再说 Sudo 提权

  • 攻击点:sudoers 文件 (/etc/sudoers 或 /etc/sudoers.d/ 目录下的文件)。该文件控制着哪些用户可以使用 sudo 命令,以及可以使用  sudo  执行哪些命令。
  • 攻击手段和技术原理:
    • 配置错误利用:如果 sudoers 文件配置不当,例如授予用户过高的权限,或者允许用户执行危险的命令,攻击者就可以利用这些错误配置,提升权限或执行未授权的命令。
    • 通配符滥用:  sudo 命令支持使用通配符,如果 sudoers 文件中存在通配符滥用,攻击者可能会利用通配符的特性执行非预期的命令。例如,如果 sudoers 文件允许用户以 root 权限执行 sudo cp /tmp/* /etc/,攻击者就可以在 /tmp 目录下创建一个名为 shadow- 的文件,然后利用该命令将 /etc/shadow 文件覆盖掉,从而导致系统无法正常登录。
    • 命令参数注入:如果sudo命令的参数没有进行正确的过滤和转义,  攻击者就可能注入恶意命令。例如,如果  sudoers 文件允许用户以  root 权限执行  /usr/bin/find / -name $USER,攻击者可以将 $USER 环境变量设置为  ; rm -rf /,从而删除根目录下的所有文件。
    • SUID  SGID  二进制文件:  SUID  (Set User ID)  和  SGID (Set Group ID) 是 Linux 系统中的一种特殊权限,允许用户以文件所有者或文件所属组的权限执行该文件。攻击者可能会利用SUID 或  SGID  二进制文件中的漏洞, 以root权限执行恶意代码。
  • 难点: 需要找到 sudoers 文件中的配置错误,或者找到具有 SUID 或 SGID 权限的二进制文件中的漏洞。
  • 技巧:
    • 仔细阅读  sudoers  文件的配置规则,寻找可以被利用的漏洞。
    • 使用 find 命令查找具有 SUID 或 SGID 权限的二进制文件,例如  find / -perm -4000 -o -perm -2000。
  • 最佳攻击场景实践:
    • 目标系统的 sudoers 文件配置不当,例如,允许普通用户以  root 权限执行某些危险的命令。
    • 目标系统中存在具有 SUID 或 SGID 权限的二进制文件,并且这些二进制文件存在漏洞。
  • 服务器监控预警绕过策略:
    • 修改 sudo 日志: 如果攻击者获取了 root  权限,他们可能会修改  sudo 日志,清除攻击痕迹。
    • 禁用日志记录:攻击者可能会禁用系统的日志记录功能,或者修改日志文件的权限,防止安全人员查看日志。
  • 防御措施:
    • 遵循最小权限原则,只授予用户必要的  sudo  权限,避免过度授权。
    • 避免使用通配符,或者对通配符的使用进行严格限制。
    • 使用  visudo  命令编辑  sudoers  文件,避免语法错误。
    • 定期审查  sudoers  文件的配置,确保其安全性。
    • 对具有 SUID 或  SGID 权限的二进制文件进行严格的安全审查,确保其安全性。

3. 计划任务 

  • 攻击点:Cron 作业配置文件(/etc/crontab、  /etc/cron.d/*、  /var/spool/cron/crontabs/*) 。Cron 作业是 Linux 系统中用于定时执行任务的机制,攻击者可以利用Cron 作业来执行恶意代码,例如定时下载并执行恶意软件、定时删除数据等。
  • 攻击手段和技术原理:
    • 修改 Cron 作业:攻击者可以修改现有的  Cron  作业,例如修改执行时间、执行的命令等。例如,一个Cron 作业每天凌晨  2  点执行数据库备份,攻击者可以修改  Cron 作业的执行时间,使其立即执行,从而窃取数据库备份文件。
    • 添加恶意 Cron 作业:攻击者可以添加新的 Cron 作业,定时执行恶意代码,例如,下载并执行恶意软件、定时发送垃圾邮件等。 攻击者可能会利用各种漏洞或配置错误, 例如 sudo 提权漏洞、不安全的crontab文件权限等,来获取修改Cron作业的权限。
    • Cron 作业劫持:攻击者可以通过入侵具有  Cron  作业配置权限的账户,  或者利用系统漏洞,例如  sudo 提权漏洞,来修改  crontab 文件,添加恶意命令。
    • 不安全的脚本执行:如果 Cron 作业执行的脚本没有进行严格的输入验证和过滤,攻击者就可能利用脚本中的漏洞,例如命令注入漏洞,来执行恶意命令。
  • 难点:需要获取修改  Cron 作业文件的权限。
  • 技巧:攻击者可能会利用系统漏洞或配置错误,例如 sudo 提权漏洞、不安全的  crontab  文件权限等,来获取修改  Cron  作业的权限。
  • 最佳攻击场景实践:目标系统存在弱密码或配置错误,导致攻击者可以轻易地获取 root  权限,从而修改  Cron  作业。
  • 服务器监控预警绕过策略:
    • 修改cron日志: 攻击者可能会修改  cron 的日志文件,清除攻击痕迹。
    • 禁用日志记录:攻击者可能会禁用系统的日志记录功能, 或者修改日志文件的权限,防止安全人员查看日志。
    • 隐藏恶意Cron作业:攻击者可能会将恶 Cron作业隐藏在系统目录中,或者使用特殊字符来混淆  Cron 作业的配置。
  • 防御措施:
    • 限制对 Cron 作业配置文件的访问权限: 例如,只允许 root 用户和授权用户访问和修改 Cron 作业配置文件。可以使用  ACL (访问控制列表)  来限制对  crontab 文件的访问权限,或者将  crontab 文件存储在加密的文件系统中。
    • 使用强密码策略,并启用多因素身份验证, 防止攻击者获取系统权限。
    • 定期审查 Cron 作业,删除不必要的作业,并确保所有  Cron 作业都是安全的。可以使用自动化工具,例如  Lynis,来检查  Cron 作业的配置是否安全。
    • 对 Cron 作业执行的脚本进行严格的输入验证和过滤,防止命令注入等漏洞被利用。

4. 应用/服务配置错误 

  • 攻击点:Web 服务器配置文件、应用程序配置文件、数据库配置文件、 服务启动脚本等。这些配置文件通常包含敏感信息,例如数据库密码、API 密钥等,或者控制着应用程序和服务的行为,例如访问权限、网络配置等。
  • 攻击手段和技术原理: 攻击者利用应用程序或服务的配置错误,例如弱口令、未授权访问、不安全的默认配置等,入侵系统或窃取数据。
    • 默认凭据:许多应用程序和服务都有默认的用户名和密码,攻击者可以尝试使用这些默认凭据进行登录。
    • 弱口令:如果应用程序或服务使用了弱口令,攻击者可以使用暴力破解或字典攻击等方式破解密码。
    • 未授权访问:如果应用程序或服务的访问控制机制配置不当,例如没有进行身份验证或授权,攻击者就可以未经授权访问敏感数据或功能。
    • 不安全的默认配置:许多应用程序和服务都有一些不安全的默认配置, 例如,启用了不必要的服务、没有启用日志记录、使用了不安全的加密算法等。攻击者可以利用这些默认配置来攻击系统。
    • 信息泄露:应用程序或服务的配置文件中可能包含敏感信息,例如数据库密码、API 密钥等,攻击者可以通过各种方式,例如目录遍历漏洞、文件包含漏洞等,来获取这些敏感信息。
  • 难点:需要找到应用程序或服务的配置文件,并识别其中的配置错误。有些配置文件可能存储在隐蔽的位置,或者使用加密或混淆技术进行保护。
  • 技巧:
    • 关注常见的配置错误: 例如,默认用户名和密码、不安全的权限设置、未加密的敏感信息等。
    • 使用工具扫描:使用漏洞扫描工具,例如  Nessus、OpenVAS  等,可以帮助我们快速识别一些常见的配置错误。
    • 手动检查配置文件:  仔细阅读配置文件,并根据安全最佳实践,检查是否存在配置错误。
  • 最佳攻击场景实践:
    • 目标系统使用了默认的用户名和密码, 或者使用了弱口令。
    • 目标系统的访问控制机制配置不当,例如没有进行身份验证或授权。
    • 目标系统使用了不安全的默认配置, 例如启用了不必要的服务。
    • 目标系统的配置文件中包含敏感信息,并且攻击者可以访问这些文件。
  • 服务器监控预警绕过策略:
    • 修改日志文件:如果攻击者成功利用了配置错误入侵了系统,他们可能会修改日志文件,清除攻击痕迹。
    • 禁用监控和告警:攻击者可能会禁用系统的监控和告警功能,或者修改监控和告警系统的配置,防止安全人员发现攻击行为。
  • 防御措施:
    • 遵循安全配置最佳实践:例如,修改默认密码、限制访问权限、加密敏感信息等。
    • 使用安全配置检查工具,例如  Lynis、rkhunter 等, 定期扫描系统,识别和修复配置错误。
    • 及时更新软件版本,修复已知的漏洞。
    • 对配置文件进行访问控制,只允许授权用户访问和修改配置文件。
    • 使用强密码保护配置文件,并定期更改密码。
    • 对配置文件中的敏感信息进行加密存储。
 

原文始发于微信公众号(再说安全):Linux服务器攻击面梳理(2024)上集

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月15日10:17:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux服务器攻击面梳理(2024)上集http://cn-sec.com/archives/3396331.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息