解读黑客入侵你Linux服务器的一万种玩法( 五 )


因为当访问 Linux 时 , 无论是通过本地登录还是远程登录 , /bin/login 程序都会运行 , 系统将通过 /bin/login 来收集并核对用户的账号和密码 。
而 Rootkit 就是利用这个程序的特点 , 使用一个带有根权限后门密码的 /bin/login 来替换系统的 /bin/login , 这样攻击者通过输入设定好的密码就能轻松进入系统 。
此时 , 即使系统管理员修改 Root 密码或者清除 Root 密码 , 攻击者还是一样能通过 Root 用户登录系统 。
攻击者通常在进入 Linux 系统后 , 会进行一系列的攻击动作 , 最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据 。
在默认情况下 , Linux 中也有一些系统文件会监控这些工具动作 , 例如 ifconfig 命令 。
所以 , 攻击者为了避免被发现 , 会想方设法替换其他系统文件 , 常见的就是 ls、ps、ifconfig、du、find、netstat 等 。
如果这些文件都被替换 , 那么在系统层面就很难发现 Rootkit 已经在系统中运行了 。
这就是文件级别的 Rootkit , 对系统维护很大 , 目前最有效的防御方法是定期对系统重要文件的完整性进行检查 。
如果发现文件被修改或者被替换 , 那么很可能系统已经遭受了 Rootkit 入侵 。
检查文件完整性的工具很多 , 常见的有 Tripwire、 aide 等 , 可以通过这些工具定期检查文件系统的完整性 , 以检测系统是否被 Rootkit 入侵 。
内核级 Rootkit 是比文件级 Rootkit 更高级的一种入侵方式 , 它可以使攻击者获得对系统底层的完全控制权 。
此时攻击者可以修改系统内核 , 进而截获运行程序向内核提交的命令 , 并将其重定向到入侵者所选择的程序并运行此程序 。
也就是说 , 当用户要运行程序 A 时 , 被入侵者修改过的内核会假装执行 A 程序 , 而实际上却执行了程序 B 。
内核级 Rootkit 主要依附在内核上 , 它并不对系统文件做任何修改 , 因此一般的检测工具很难检测到它的存在 , 这样一旦系统内核被植入 Rootkit , 攻击者就可以对系统为所欲为而不被发现 。
目前对于内核级的 Rootkit 还没有很好的防御工具 , 因此 , 做好系统安全防范就非常重要 , 将系统维持在最小权限内工作 , 只要攻击者不能获取 Root 权限 , 就无法在内核中植入 Rootkit 。
①Rootkit 后门检测工具 Chkrootkit
Chkrootkit 是一个 Linux 系统下查找并检测 Rootkit 后门的工具 , 它的官方地址:
http://www.chkrootkit.org/Chkrootkit 没有包含在官方的 centos 源中 , 因此要采取手动编译的方法来安装 , 不过这种安装方法也更加安全 。
Chkrootkit 的使用比较简单 , 直接执行 Chkrootkit 命令即可自动开始检测系统 。
下面是某个系统的检测结果:
[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit Checking `ifconfig'... INFECTED Checking `ls'... INFECTED Checking `login'... INFECTED Checking `netstat'... INFECTED Checking `ps'... INFECTED Checking `top'... INFECTED Checking `sshd'... not infected Checking `syslogd'... not tested 从输出可以看出 , 此系统的 ifconfig、ls、login、netstat、ps 和 top 命令已经被感染 。
针对被感染 Rootkit 的系统 , 最安全而有效的方法就是备份数据重新安装系统 。
Chkrootkit 在检查 Rootkit 的过程中使用了部分系统命令 , 因此 , 如果服务器被黑客入侵 , 那么依赖的系统命令可能也已经被入侵者替换 , 此时 Chkrootkit 的检测结果将变得完全不可信 。
为了避免 Chkrootkit 的这个问题 , 可以在服务器对外开放前 , 事先将 Chkrootkit 使用的系统命令进行备份 , 在需要的时候使用备份的原始系统命令让 Chkrootkit 对 Rootkit 进行检测 。
②Rootkit 后门检测工具 RKHunter
RKHunter 是一款专业的检测系统是否感染 Rootkit 的工具 , 它通过执行一系列的脚本来确认服务器是否已经感染 Rootkit 。
在官方的资料中 , RKHunter 可以做的事情有:
MD5校验测试 , 检测文件是否有改动 , 比较系统命令的md5 , 从而判断系统命令是否被篡改 检测rootkit使用的二进制和系统工具文件 检测特洛伊木马程序的特征码 检测常用程序的文件属性是否异常 检测系统相关的测试 检测隐藏文件 检测可疑的核心模块LKM 检测系统已启动的监听端口


推荐阅读