网络安全之木马技术(2)
2025-04-30
5.安全工具。对木马化和踪迹隐藏而言,本地安装的安全工具尤为重要,例如制定的进程检查脚本、用户监视软件、文件完整性工具或数据库。如果攻击者能够修改文件完整性软件或suid/sgid检查程序,以使之忽略其所建立的特定目录,就能在该目录下安全地安装任何东西而不被发现,包括suid为root的程序,而通常这类程序很容易被发现。 三、隐藏木马文件
1.文件名诡计。Linux文件名可以包含除/和\\000之外的任何字符。在文件名中使用不可打印字符即可在诸如ls或ps的工具下伪装其真实名字。这里创建了一个名为“..”的目录。此时因为多数人不会以-a标志来使用ls,因此根本就看不到这个目录。而那些确实使用了-a标志的人也有可能不会注意到这个情况,将之误以为..目录。然后,以同样的方式,黑客把一个攻击程序重命名为“sh”。该程序运行时,在ps命令下的显示与普通的sh只有细微的差别。
2.更改argv[0]。程序运行时会得到一个命令行参数列表。这些参数保存在名为argv的数组中,其中argv[1]为第一个参数,argv[2]为第二个参数。而argv[0]则是这个程序自己的名字。如果需要的话,程序可以用这个参数来确定自己的运行方式。例如gzip,gunzip和zxat通常都是到相同i节点的硬连接:因此,在这个例子中,如果运行/bin/gzip,则程序根据argv[0]来确定应当执行压缩功能。在程序中也可更改这个变量,且在ps的输出中所显示的将是该更改值。
3.已删除文件。除非链接数为0,否则系统不会物理删除磁盘上的文件。在上面的/gzip/gunzip/zcat例子中,因为这些文件名都指向磁盘上的同一个i节点,所以其链接数是3。用户在删除/bin/gzip之后,仍然可以使用/bin/gunzip和/bin/zcat。每当某个进程打开文件时,内核会将文件的引用计数加1。也就是说,即便某个进程打开并删除了一个文件,所有打开该文件的其它进程仍然可以访问它。我们可以利用这个机制来隐藏程序所使用的数据文件,或者隐藏程序自身。因为当进程被kill掉,它所打开文件的链接数就会归于0,相应文件也会永久丢失。所以,这也就成为一种简单的方法,即只要kill进程或重启动机器,管理员就要费些周折才能找到相关证据。
4.覆盖性加载。攻击者可以利用加载的办法来隐藏整个目录,使别人难以轻易访问。例如可以创建/opt/tmp目录并将自己的所有工具都放置在该目录下。然后切换到这个目录,运行所需要的任何程序。在做完这些工作之后。它在/opt/tmp上加载一个新的tmpfs文件系统:
参考文献:
[1]卢开澄.计算机密码学——计算机网络中的数据保密与安全.清华大学出版社,2004.
[2]陈明.网络设计教程.清华大学出版社,2004.
[3]潘志翔,岑进锋.黑客攻防编程解析.机械工业出版社,2003.
网络安全之木马技术(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!