假设一个黑客在我的 Linux 主机上获得了一个 shell,并想要隐藏一个文件。对他来说最好的方法是什么?您可以假设非特权或 root 访问。
我的想法是
- 使用 .file 文件名(当然很容易找到这些)
- 将文件写入某个不起眼的目录(可能会被tripwire等找到?)
- 附加到日志文件(这样文件正在增长的可疑性就降低了)
- 使用某种隐秘(我不知道该怎么做)
- 写入磁盘的原始部分(我也不知道该怎么做)
我敢肯定您的安全专业人员知道常见的技巧?!
假设一个黑客在我的 Linux 主机上获得了一个 shell,并想要隐藏一个文件。对他来说最好的方法是什么?您可以假设非特权或 root 访问。
我的想法是
我敢肯定您的安全专业人员知道常见的技巧?!
如果我在系统上有 root 并且真的想隐藏文件,那么显而易见的答案是 rootkit,它可以通过挂钩文件系统读取等方式隐藏我想要的任何文件以防止几乎所有检测。在正常工作中很难找到 Rootkit环境,因为您不能信任操作系统报告的任何内容。如果您在系统上安装了 Tripwire,正常工作并监控整个文件系统,则应该检测到 rootkit 的安装 - 但是,如果攻击者可以获取 root 并访问 Tripwire 系统,那么所有的赌注都没有了。
然而,在实践中更有可能的是文件隐藏在文件系统的深处,可能在 . 目录,因此它们不会显示给普通的 ls,或者可能显示为无害的命名文件。好消息是更多的 linux 管理员似乎比 windows 管理员知道应该存在哪些文件,这可能更多地归结于 windows 通常通过 gui 管理的事实,但是随着 Powershell 的更多使用,这种情况正在改变。
将文件写入磁盘的未使用部分是可行的,但是在企业环境中,您往往会发现磁盘已被充分利用,因此攻击者首先需要更改分区或找到某种方法来隐藏现有文件系统部分的使用. 它会发生,但并不像您想象的那么频繁。
隐写术的使用并不多。恶意可执行文件存在于看似无害的文件中,但通常作为向量,而不是存储在存储中。
总之,从防御者的角度来看,保护根目录、定期修补并使用 Tripwire 或类似工具。
不确定如何处理“文件”?您的一些示例似乎只是您想在一些暂存空间中写入和读取。如果您已经将盒子植根,这些文件操作并不难处理。例如,您可以写入 ext 文件系统中的根保留空间。
如果你想以某种模糊的方式留下一个俗气的 setuid 二进制文件,你可以把它扔到文件系统挂载下,这样普通的“gnufind”实用程序就无法访问它。