图 Solaris服务器防范rootkit攻击攻略( 二 )



(4)login;-;能够纪录任何使用者名称,包含;root;登入的密码 。

(5)bd2;-;安全程序;rpcbind;允许攻击者在受害主机上执行任意程序代码 。

安全程序程序

(1)inetd;-;安全程序;inetd;可以替攻击者打开远程登入的通讯端口,只要输入密码就可以取得;root;的权限 。

(2)rshd;-;替攻击者提供远程的;shell 。

(3)rsh;-;透过;rsh;可以取得;root;的密码 。

(4)sshd;-攻击者以特定账号密码登入就能拥有;root;shell;的权限 。

监听程序

(1)linsniffer;-;linux;小型的监听程序 。

(2)sniffchk;-;这个程序可以检验与确认网络监听程序是否正在执行 。

(3)le;-;Solaris;Ethernet;封包的监听程序 。

(4)snif;-;linux;其它封包的监听程序 。

(5)sniff-10mb;-;这是一个设计来监听;10mbps;Ethernet;的监听程序 。

(6)sniff-100mb;-;这是一个设计来监听;100mbps;Ethernet;的监听程序 。

其它种类-

(1)fix;-;安装安全程序时;(例如:ls);更改的时间戳记与检验封包值的讯息 。

(2)wted;-;wtmp;的编辑程序 。可让攻击者修改;wtmp 。

(3)z2;-;移除;wtmp/utmp/lastlog 。

(4)bindshell;-;把;rootshell;与某个通讯端口结合在一起 。(预设埠号为;31337)

(5)zap3;-;攻击者会从;wtmp,;utmp,;lastlog,;wtmpx;和;utmpx;移除他们的踪迹

。zap3;通常根据下列目录来找寻纪录文件的位置,例如;/var/log,;/var/adm,

/usr/adm,;与;/var/run 。

2.内核级别rootkit

内核级别rootkit;是比应用层级别;rootkit;功能更强大的;rootkit 。内核级别rootkit

透过操作与利用;kernel,已成为最难被发现;rootkit,因为它能够在应用层检查中,建立一条绕过检验的通道 。虽然这种软件主要是针对;linux;所制作,但它可能被修改来针对某个通讯端口或者是其它的操作系统来做攻击,一旦被安装在目标主机上,系统就可说是完全被安全所控制,系统管理员甚至根本找不到安全隐藏的踪迹 。内核级别rootkit;是如何运作的呢?;它基本上是利用;LKM『Loadable;Kernel;Module』的功能让攻击者做出非法的动作 。LKM;在;linux;或其它系统中都是非常有用的工具,支持;LKM;的系统包含;FreeBSD;与;Solaris 。操作系统里面有一些函数被系统用来建构;kernel,当这些函数遭到假冒与窜改,主机就不能再被信任了 。下面针对内核级别rootkit;的一些运作方式来做介绍:

(1)隐藏程序;-;在;unix;执行过程中,程序的纪录讯息会存放于文件系统中的;"/proc",隐藏程序可以操作;sys_getdents();系统呼叫函数,在程序的架构里就看不见这些附加且正在执行的程序 。

(2)隐藏网络连结;-;类似于隐藏程序,网络连结会纪录在;"/proc/net/tcp";与;"/proc/net/udp";这两个文件之中,执行;Kernel;rootkit,无论何时读取这两个文件,都会隐藏攻击者的踪迹,不让用户知道 。

(3)隐藏;LKM;的信号;-;通常;LKM;的默认值是可被看见的,这样是为了方便其它使用者也可以使用 。攻击者必须使用;"EXPORT_NO_SYMBOLS";命令隐藏这些信号,以防止任何信号被泄漏出去 。

(4)利用;LKM;传递讯息;-;LKM;Kernel;rootkit;安装完成之后,攻击者若要通知kernel;隐藏另一文件,可透过;Kernel;rootkit;来替换;sys_settimeofday() 。之后只要透过一些特别的参数,就可以请求系统来完成攻击者想要完成的事情 。

(5)改变文件的执行;-;有时攻击者可能想要替换掉某些文件,例如;"login",但并不想要更改文件,此时;Kernel;rootkit;可以替换;sys_execve() 。这样系统会持续执行;"login";并泄漏;"login";程序的版本给攻击者 。

目前最流行的内核级别rootkit,包含;linux;上的;knark;与;Solaris;上的Loadable;Kernel;Module,其中;knark;还包含了以下的程序:

推荐阅读