3)rootkit工具:LRK

Rootkit出现于二十世纪90年代初,它是攻击者用来隐藏自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击或者密码猜测获得系统的访问权限。接着,攻击者会在侵入的主机中安装rootkit,然后他会通过rootkit的后门检查系统,看是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。

如果攻击者能够正确地安装rootkit并合理地清理了日志文件,系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联系或者嗅探器的日志把磁盘全部填满,他才会察觉已经大祸临头了。不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了。许多rootkit中有一个叫做FIX的程序,在安装rootkit之前,攻击者可以首先使用这个程序做一个系统二进制代码的快照,然后再安装替代程序。FIX能够根据原来的程序伪造替代程序的三个时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组。如果攻击者能够准确地使用这些优秀的应用程序,并且在安装rootkit时行为谨慎,就会让系统管理员很难发现。

下面我们介绍一个非常典型的针对Linux系统的LRK版本6。Linux Rootkit 6是一个开放源码的rootkit,经过多年的发展,Linux Rootkit的功能越来越完善,具有的特征也越来越多。下面我们简单地介绍一下Linux Rootkit包含的各种工具。

首先是隐藏入侵者行踪的程序。为了隐藏入侵者的行踪,Linux Rootkit IV的作者可谓煞费心机,编写了许多系统命令的替代程序,使用这些程序代替原由的系统命令,来隐藏入侵者的行踪。这些程序包括:

ls、find、du 这些程序会阻止显示入侵者的文件以及计算入侵者文件占用的空间。在编译之前,入侵者可以通过ROOTKIT_FILES_FILE设置自己的文件所处的位置,默认是/dev/ptyr。注意如果在编译时使用了SHOWFLAG选项,就可以使用ls -/命令列出所有的文件。这几个程序还能够自动隐藏所有名字为:ptyr、hack.dir和W4r3z的文件。
ps、top、pidof 这几个程序用来隐藏所有和入侵者相关的进程。

netstat 隐藏出/入指定IP地址或者端口的网络数据流量程。

killall 不会杀死被入侵者隐藏的进程。

ifconfig 如果入侵者启动了嗅探器,这个程序就阻止PROMISC标记的显示,使系统管理员难以发现网络接口已经处于混杂模式下。

crontab 隐藏有关攻击者的crontab条目。

tcpd 阻止向日志中记录某些连接。

syslogd 过滤掉日志中的某些连接信息。

其次是后门程序。木马程序可以为本地用户提供后门;木马网络监控程序则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异。随着版本的升级,Linux Rootkit IV的功能也越来越强大,特征也越来越丰富。一般包括如下网络服务程序:

chfn 提升本地普通用户权限的程序。运行chfn,在它提示输入新的用户名时,如果用户输入rookit密码,他的权限就被提升为root。

chsh 提升本地用户权限的程序。运行chsh,在它提示输入新的shell时,如果用户输入rootkit密码,他的权限就被提升为root。

passwd 和上面两个程序的作用相同。在提示你输入新密码时,如果输入rookit密码,权限就可以变成root。
login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程序还能够禁止记录命令的历史记录。

inetd 特洛伊inetd程序,为攻击者提供远程访问服务。

rshd 为攻击者提供远程shell服务。攻击者使用rsh -l rootkitpassword host command命令就可以启动一个远程root shell。
sshd 为攻击者提供ssh服务的后门程序。

再就是工具程序。所有不属于以上类型的程序都可以归如这个类型,它们实现一些诸如:日志清理、报文嗅探以及远程shell的端口绑定等功能,包括:

fix 文件属性伪造程序。

linsniffer 报文嗅探器程序。

sniffchk 一个简单的bash shell脚本,检查系统中是否正有一个嗅探器在运行。

login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程序还能够禁止记录命令的历史记录。

z2 utmp/wtmp/lastlog日志清理工具。可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目。不过,如果用于Linux系统需要手工修改其源代码,设置日志文件的位置。

bindshell 在某个端口上绑定shell服务,默认端口是12497。为远程攻击者提供shell服务。

4)netcat

这是一个简单而有用的工具,能够通过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能。


相关内容