linux中无find-links-2命令,应使用find -type f -links +1排查硬链接异常文件,结合-inum、mtime、perm等条件定位攻击者隐藏的隐秘入口。

Linux 中没有名为 Find-Links-2 的标准命令或工具。你提到的名称可能是混淆或误记——系统原生支持的是 find 命令配合 -type f 与 -links +1 来识别硬链接数量异常的文件,这是排查隐秘入口(如攻击者利用硬链接绕过日志监控、权限限制或文件删除痕迹)的核心方法。
查出具有多个硬链接的普通文件
硬链接共享同一 inode,因此一个文件被创建多个硬链接后,其 link count(链接数)会大于 1。正常系统中,多数普通文件 link count 为 1;若发现大量非目录、非特殊设备文件 link count ≥ 2,需重点核查。
- 在指定路径(如
/var/www、/tmp、/opt)下查找 link count ≥ 2 的普通文件:find /path/to/scan -type f -links +1 -ls - 排除常见合法高链接数场景(如
/usr/bin下共享库、/bin中硬链接到busybox的工具),可加过滤:find /usr -type f -links +1 ! -path "/usr/bin/*" ! -path "/bin/*" -ls - 结合 inode 号快速定位所有指向同一数据块的路径:
find / -type f -inum <inode_number> -ls 2>/dev/null</inode_number>
结合时间与权限特征缩小可疑范围
攻击者常通过硬链接维持对已删除原始文件的访问(如删掉 webshell 原文件但保留其硬链接),或隐藏于非标准位置。需叠加修改时间、权限、属主等维度交叉判断:
- 查找最近 7 天内被修改、且 link count > 1 的文件:
find /tmp -type f -links +1 -mtime -7 -ls - 查找属主为 root 但权限宽松(如 world-writable)、且 link count > 1 的文件:
find / -type f -links +1 -perm -o+w -user root -ls 2>/dev/null - 排除已知可信路径(如
/usr,/lib,/etc),聚焦用户目录、临时目录、Web 根目录:find /home /tmp /var/www -type f -links +1 -ls 2>/dev/null
验证硬链接是否指向敏感或已删除文件
硬链接无法跨文件系统,且不随源文件删除而失效。若原始文件被 rm,只要还有一个硬链接存在,数据仍可读写。可通过以下方式确认风险:
- 用
stat查看文件详细信息,重点关注 Links 和 Inode 字段:stat /path/to/suspicious_file - 检查该 inode 是否在其他路径下仍有引用(尤其注意
/proc/*/fd/中是否有打开句柄):find /proc/[0-9]*/fd -inum <inode> -ls 2>/dev/null | head -10</inode> - 对比文件内容哈希(如
sha256sum),确认多个路径是否确实指向完全相同的数据块
注意硬链接与软链接的本质区别
排查隐秘入口时,硬链接因不可见性更强(无独立元数据、不显示“->”标记、不依赖路径存在)更易被滥用;而软链接容易被 find -type l 直接枚举。两者应分开处理:
- 查软链接(符号链接)本身:
find / -type l -ls 2>/dev/null - 查软链接是否指向异常路径(如
/tmp、/dev/shm、隐藏目录):find /etc -type l -exec ls -la {} \; 2>/dev/null | grep -E "(tmp|shm|\.{2})" - 硬链接无法用
-lname或路径匹配,必须依赖-links或-inum











