3.工具与数据的隐藏
3.1工具与数据的临时存放
当我们需要在服务器上留下某些程序的时候,比如sniff软件,或者作为跳板攻击其他服务器的时候,我们不得不面对着一个痛苦的抉择:既要能够留下足够的工具来完成必要的任务,又要经可能少的对文件系统乃至对磁盘的数据的改写。在这种情况下,如果所要保存的数据只是临时的,我们就需要在内存中建立起文件系统。这样,当系统再重启后我们曾经在磁盘上保留的信息就会被擦除,因为它没有被真正的写到磁盘上面去。(注意:通常我们只用这种方法来保存暂时用的程序、代码等工具,如果要长久保存的不推荐此种方法)
为此,我们需要建立ramfs,它是一个在内存中存在的文件系统。具体的介绍请各位道友自行查找相关文档查看。建立ramfs很简单,不过需要有root权限。代码如下:
但是否想过/tmp或许只是一个普通的ext3或者reinfs文件系统,最多充其量是个tmpfs,这些文件系统有个特点就是会与磁盘交互。那我们应该选择什么目录来保存我们的代码呢?在现代的linux操作系统中,默认挂载了/dev/shm目录其类型就是ramfs,作为系统共享用。我们就可以利用它来完成保存shell的目的。
3.2工具与数据的长期存放
目录的隐藏是个很高深的学问,在最开始的阶段,我们通常是在一个很深的目录里面建立名为”…” 或者” ”等的目录,然后把工具一股脑的放进去,这招在对付不负责任的管理员的时候很管用,但是遇到负责人的管理员一个find语句就能把你找出来:
|
# find / -uid 0 –perm -4000 –print # find / -size +10000k –print # find / -name “...“ –print # find / -name “.. “ –print # find / -name “. “ –print # find / -name “ “ –print |
留setuid的程序也是个大的忌讳,这样很容易引起管理员的怀疑。特别是这个setuid程序存在莫名其妙的目录下的时候。
在大多数情况下,我们可以借助 rootkit来帮助你完成这个功能。
我简单的介绍下,像linux下的rootkit,总体来说可以分为两大类:应用层和内核态的rootkit。
应用层的rootkit通常通过修改某些文件来实现信息隐藏,比如修改ls 让其不显示某个特殊名称文件夹,修改ifconfig让其不显示PROMISC位还有的是通过修改so。
文件来留后门等等。如果管理员安装了tripwire之类的完整性校验工具各位道友就要小心了,不过一般的管理员也没那么负责。这些低级的rootkit很容易给chkrootkit之类的工具给揪出来,要真正用的话最好自己能下载源代码重新编译下,修改掉配置文件的默认位置,这样好点。
内核级别的rootkit:顾名思义,进入ring0级别来HOOK掉某些系统调用或者其他什么乱起八糟的方法来改掉系统调用的执行输出(当然也ring3 patch ring0也有,像suckit)。这种东西很诡异,能够真正成功装上的几率不大,关键看人品,呵呵。进入了2.6时代,很多美好的rootkit都失去了光彩。加之2.6的模块编译要内核树的支持,更使得LKM方式的 rootkit举步维艰。据wzt讲,suckit也有2.6版本的,不过是private的要money。偶等穷人也只有干看到份了。
2.6的rootkit安装可以看看包总的adore-ng教程 wnps也不错,不过wzt这BB也停止开发了。还有什么内核静态patch等方法,也只是在phrack里面看到过,各位道友用过的给我介绍下啊,呵呵。
扯远了,关于如何隐藏文件,当然你也可以采用伪造坏扇区的方法,将你的东西放在那里,一般的文件系统算是看不出来了。你可以用特殊的工具对其进行存储。这个再以后的advance anti-forensic文章中会讲,不再多说。
4.如何安装和编译工具
可能linux与windows对于用户来说,最大的不同就是linux从网上下载的大多数都是src 源代码包,要使用的话需要在机器上现场编译,好不容易有编译好的发行包如rpm
deb还是和系统相关的 依赖性啊,等等,烦都烦死人了。像要装个ettercap,什么libnet libpcap都得装上,但有时候我们的目标机器上没有所需要的依赖文件,这怎么办呢?不推荐使用rpm
dpkg 等方式来安装需要的文件,也不推荐apt yum源等方式安装,从源代码编译把,这样比较好点。
我们把下载的源代码放到自己的隐藏目录里,在configure的时候需要指定prefix安装路径,总不能把这些包真正的装到系统里面把,指定成我们的隐藏目录就好,这样一来,管理员也不会发现怎么系统安装了许多原本没有支持的库文件或者头文件了。
最后一步,当编译我们的工具时,需要指定所依赖的头文件目录和库文件目录,不要执行make install命令,这样一来,我们的工具就可以完全在我们的隐藏目录里面了。
关于perl的模块安装,可以参看这边文章:
http://servers.digitaldaze.com/extensions/perl/modules.html
先写这么多吧,呵呵,有想到的再加上。后头还会写篇Advance anti-forensic的文章。可能有的道友会说我太小心。小心好啊,小心使得万年船,不是么?呵呵
上一页 [1] [2] [3]