首页 > 运维 > linux运维 > 正文

如何在Linux中检查权限漏洞 Linux find危险权限查找

P粉602998670
发布: 2025-08-30 12:39:01
原创
795人浏览过
最容易被攻击者利用的权限配置是SUID/SGID滥用和世界可写文件目录。SUID/SGID程序若配置不当,可被用来提权至root;世界可写文件或目录允许任意用户修改内容,可能被植入后门或篡改关键配置;此外,无主文件、777权限文件及ACL配置错误也常成为突破口。使用find命令可检测这些风险,结合ls、stat、getfacl及Lynis等工具进行深度审计,并通过最小权限原则修复,定期自动化检查以持续加固系统安全。

如何在linux中检查权限漏洞 linux find危险权限查找

在Linux系统中检查权限漏洞,核心思路是主动发现那些权限配置过于宽松、可能被滥用的文件和目录。这通常涉及到利用

find
登录后复制
命令,辅以对文件所有者、组以及特殊权限(如SUID/SGID)的深入理解。在我看来,这不仅仅是跑几个命令,更是一种安全意识的体现,需要我们像攻击者一样思考,哪些地方最容易被突破。

要解决Linux权限漏洞问题,我们首先需要一套行之有效的检测方法。我个人觉得,从宏观到微观,逐步深入是比较靠谱的路径。

查找世界可写的文件和目录

这绝对是权限漏洞的重灾区。一个所有人都可以写入的文件或目录,就好比你家大门敞开,谁都能进来放东西、改东西。攻击者可以利用这些地方植入恶意脚本、篡改配置,甚至上传后门。

  • 查找世界可写的文件:

    find / -perm -0002 -type f 2>/dev/null
    登录后复制

    这个命令会在整个文件系统(

    /
    登录后复制
    )中查找(
    -find
    登录后复制
    )权限位(
    -perm
    登录后复制
    )包含
    o+w
    登录后复制
    (即其他人可写,用八进制表示是
    0002
    登录后复制
    )的文件(
    -type f
    登录后复制
    )。
    2>/dev/null
    登录后复制
    是为了忽略那些我们没有权限访问的目录报错,让输出更干净。

  • 查找世界可写的目录:

    find / -perm -0002 -type d 2>/dev/null
    登录后复制

    原理和上面一样,只是把查找类型改成了目录(

    -type d
    登录后复制
    )。找到这些目录后,你还需要进一步检查其内容,看看是不是有非预期的文件。

查找SUID/SGID文件

SUID(Set User ID)和SGID(Set Group ID)是Linux中非常强大的特殊权限,它们允许普通用户以文件所有者或文件所属组的权限来执行某个程序。比如,

passwd
登录后复制
命令就是SUID,它让普通用户也能修改自己的密码,因为它需要写入只有root才能修改的
/etc/shadow
登录后复制
文件。然而,如果一个不安全的程序被赋予了SUID/SGID权限,那就可能成为巨大的安全隐患。

  • 查找SUID文件:

    find / -perm -4000 -type f 2>/dev/null
    登录后复制

    4000
    登录后复制
    代表SUID位。

  • 查找SGID文件:

    find / -perm -2000 -type f 2>/dev/null
    登录后复制

    2000
    登录后复制
    代表SGID位。

找到这些文件后,你需要逐一审查。问自己几个问题:这个程序为什么需要SUID/SGID?它是不是系统必需的?有没有更安全的替代方案?通常,非系统自带的、来自第三方应用或自定义脚本的SUID/SGID程序,都应该引起高度警惕。

查找无主文件或目录

有时候,文件或目录可能因为用户被删除,或者从其他系统迁移过来而失去其所有者或所属组,它们就会显示为数字ID而非用户名或组名。这些“无主”的文件,虽然不直接构成权限漏洞,但它们的存在可能意味着系统管理混乱,也可能被攻击者利用来隐藏文件或作为权限提升的跳板。

  • 查找无所有者的文件或目录:

    find / -nouser 2>/dev/null
    登录后复制
  • 查找无所属组的文件或目录:

    find / -nogroup 2>/dev/null
    登录后复制

检查这些文件,确认它们是否应该存在,并重新分配正确的所有者和组。

查找权限过于宽松的文件(例如777)

虽然

find / -perm -0002
登录后复制
已经能找到世界可写的文件,但直接查找
777
登录后复制
(所有者、组、其他人都有读写执行权限)的文件和目录也是有必要的,尤其是在某些不规范的开发环境中,这种权限设置并不少见。

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online
  • 查找权限为777的文件或目录:
    find / -perm 777 2>/dev/null
    登录后复制

    注意这里是

    777
    登录后复制
    ,而不是
    -777
    登录后复制
    -777
    登录后复制
    表示权限至少包含
    777
    登录后复制
    ,而
    777
    登录后复制
    则表示权限恰好是
    777
    登录后复制
    。在实际审计中,我们更关心的是那些正好被设置为
    777
    登录后复制
    的文件,因为这往往是粗心大意的结果。

Linux系统中,哪些权限配置最容易被攻击者利用?

在我多年的经验里,最容易被攻击者盯上的权限配置,往往不是那些一眼就能看出的显眼包,而是那些看似平常却蕴含巨大风险的“隐形炸弹”。

首先,SUID/SGID权限滥用绝对是榜首。一个配置不当的SUID程序,就相当于给普通用户提供了一把“root权限的钥匙”。如果这个程序本身存在缓冲区溢出、格式化字符串漏洞,或者只是一个简单的脚本,攻击者就可以通过执行它来获取root权限。比如,一个自定义的、没有经过严格安全审计的备份脚本,如果被赋予了SUID权限,攻击者可能就能通过注入命令来执行任意操作。

其次,世界可写(World-Writable)的文件和目录是另一个重灾区。想想看,如果

/etc/passwd
登录后复制
或者
/etc/shadow
登录后复制
是世界可写的,那任何人都可以修改用户密码,甚至添加新的root用户。即使是Web服务器的上传目录,如果配置成世界可写,也可能被上传恶意WebShell,进而控制整个服务器。这种漏洞的危害性在于,它为攻击者提供了直接的写入能力,绕过了许多其他安全防护。

再者,弱所有权或组权限也常常被忽视。比如,某些关键配置文件被设置为

www-data
登录后复制
用户拥有,但
www-data
登录后复制
组的其他成员却拥有写入权限。如果攻击者能够控制
www-data
登录后复制
组下的任何一个其他进程,就可能通过这个权限链条来篡改配置文件,从而影响整个Web服务。这种漏洞的危险性在于,它往往需要攻击者已经获得了一定的立足点,但一旦利用成功,就能进一步扩大战果。

最后,我不得不提一下ACL(Access Control Lists)的复杂性。虽然ACL提供了比传统ugo/rwx更细粒度的权限控制,但其复杂性也导致了配置错误的可能性大大增加。一个配置不当的ACL规则,可能在无意中赋予了某个用户或组过多的权限,或者创建了一个“后门”,让攻击者有机会绕过常规权限检查。这种问题往往需要更专业的工具和知识才能发现和解决。

除了find命令,还有哪些工具可以辅助权限审计?

说实话,

find
登录后复制
命令虽然强大,但它只是权限审计的冰山一角。在实际工作中,我发现结合其他工具,能够更全面、更深入地揭示潜在的权限问题。

最基础的,莫过于

ls -l
登录后复制
stat
登录后复制
命令
了。当你通过
find
登录后复制
命令定位到可疑文件后,你需要立即用
ls -l
登录后复制
查看其详细权限、所有者、组、修改时间等信息。
stat
登录后复制
命令则能提供更丰富的元数据,包括文件创建时间、最后访问时间等,这些对于判断文件的异常性非常有帮助。比如,一个很久没有修改过的系统文件,突然在非工作时间被修改,那就非常可疑。

对于那些使用了ACL的文件,

getfacl
登录后复制
setfacl
登录后复制
命令
是不可或缺的。传统的
ls -l
登录后复制
只能显示ugo/rwx权限,但如果文件启用了ACL,你就会在权限字符串后面看到一个
+
登录后复制
号。这时,
getfacl 文件名
登录后复制
就能显示出详细的ACL规则,帮助你理解到底哪些用户或组拥有哪些特殊的权限。这对于排查那些传统权限看起来正常,但实际上存在漏洞的情况特别有效。

此外,一些专业的安全审计工具也能提供很大的帮助。比如,Lynis就是一个非常棒的开源审计工具,它会自动检查数百项系统配置,其中就包括了对文件权限的扫描。它会根据一套预定义的规则,标记出潜在的风险项,并给出修复建议。虽然它可能不会像

find
登录后复制
那样给出所有世界可写的文件列表,但它能从更宏观的角度评估系统的整体安全态势,并指出一些你可能忽略的权限问题。

有时候,我也会自己编写一些简单的Bash或Python脚本。比如,我想找出所有

root
登录后复制
用户拥有但组是
www-data
登录后复制
,且权限为
664
登录后复制
的文件,这种复杂的组合查询,用脚本处理起来会更灵活高效。脚本还能集成到自动化流程中,定期进行权限检查,这在大型环境中尤其有用。

最后,别忘了日志分析。虽然不是直接的权限审计工具,但通过分析

auth.log
登录后复制
syslog
登录后复制
等日志文件,你可以发现异常的登录尝试、权限提升操作,或者对敏感文件的访问记录。这些信息能间接帮助你定位到可能存在权限漏洞的区域,或者确认某个权限漏洞是否已经被利用。

如何修复或加固Linux系统中的权限漏洞?

修复和加固权限漏洞,在我看来,不仅仅是执行几个

chmod
登录后复制
chown
登录后复制
命令那么简单,它更像是一场持续的战役,需要我们秉持“最小权限原则”,并将其融入到日常运维的每一个环节。

首先,针对世界可写的文件和目录,最直接的修复方法就是收紧权限。对于文件,通常我会将其权限修改为

644
登录后复制
(所有者可读写,组和其他人只读);对于目录,通常是
755
登录后复制
(所有者可读写执行,组和其他人只读执行)。

# 修复世界可写文件示例
chmod 644 /path/to/vulnerable_file
# 修复世界可写目录示例
chmod 755 /path/to/vulnerable_directory
登录后复制

当然,这需要根据实际应用的需求来定。如果某个目录确实需要被特定用户组写入,那就应该把权限设置为

775
登录后复制
,并确保只有授权用户在那个组里。

其次,处理SUID/SGID权限滥用。这是个需要特别谨慎的环节。对于那些被错误赋予SUID/SGID权限的非系统关键程序,最安全的做法就是直接移除这些特殊权限:

chmod u-s /path/to/suid_file # 移除SUID
chmod g-s /path/to/sgid_file # 移除SGID
登录后复制

对于那些确实需要SUID/SGID权限的程序(比如

passwd
登录后复制
),我们要做的是确保它们是系统自带的、经过安全审计的版本,并且其所在目录的权限是安全的(通常是
root
登录后复制
拥有,且只有
root
登录后复制
可写)。如果发现自定义程序有SUID/SGID,我会强烈建议重新评估其设计,看看是否有其他更安全的实现方式,例如使用
sudo
登录后复制
规则来代替。

再者,纠正无主文件和目录。对于这些文件,你需要找到它们应该属于哪个用户和组,然后使用

chown
登录后复制
命令进行修复:

chown newuser:newgroup /path/to/orphan_file
登录后复制

如果这些文件是遗留的,且不再需要,最安全的做法是直接删除它们。但删除前务必确认,以免误删重要数据。

在我看来,加固权限的另一个关键点是定期审计和自动化。手动检查权限既耗时又容易出错,尤其是在大型、复杂的系统环境中。我通常会编写一些脚本,结合

find
登录后复制
ls
登录后复制
getfacl
登录后复制
等命令,定期扫描系统中的权限配置,并将异常情况通过邮件或监控系统告警。这能帮助我们及时发现新的权限漏洞,并迅速响应。

最后,也是最重要的,是建立严格的权限管理策略和变更流程。任何对文件或目录权限的修改,都应该经过审批,并有详细的记录。避免开发人员或运维人员在没有充分评估风险的情况下,随意设置宽松的权限。通过强制执行最小权限原则,并对所有权限变更进行审查,我们才能真正构建一个健壮、安全的Linux系统环境。

以上就是如何在Linux中检查权限漏洞 Linux find危险权限查找的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号