linux Rootkit检查
Rootkit是linux系统下常见一种木马后门程序,通过替换系统文件来达到隐藏和入侵的目的,攻击能力极强
Rootkit分类和原理:
- 隐藏进程
- 隐藏文件
- 隐藏网络端口
- 后门功能
- 键盘记录
Rootkit主要分一下两种
1 用户态:一般通过覆盖系统二进制和库文件来实现
2 内核态: 通常通过可加载内核模块将恶意代码直接加载进内核中
利用Chkrootkit检测Rootkit
Chkrootkit安装
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit-0.53.tar.gz
tar xf chkrootkit-0.53.tar.gz
cd chkrootkit-0.53
make sense
mv ../chkrootkit-0.53 /usr/local/chkrootkit
编译报错
make sense cc -static -o strings-static strings.c /usr/bin/ld: cannot find -lc collect2: error: ld returned 1 exit status make: *** [strings-static] Error 1
解决
yum -y install glibc-static
Chkrootkit包含以下部分
chkproc 检查可加载内核模块木马的痕迹
chklastlog 检查lastlog是否被删除
chkwtmp 检查wtmp是否被删除
chkrootkit 用于检查系统二进制文件是否被Rootkit修改
strings-static 快捷的字符串被替换
chkutmp 检查utmp是否被删除
ifpromisc 检查网络端口是否处于混杂模式
chkdirs 检查可加载内核模块木马的痕迹
check_wtmpx 检查wtmpx是否被删除(仅适用于Solaris)
检查系统二进制文件是否被修改
/usr/local/chkrootkit/chkrootkit
输出结果中可能包含的状态字段
INFECTED 检测出了一个可能被已知Rootkit修改过的命令
not infected 未检出出任何已知Rootkit指纹
not tested 未执行测试,在以下情形中发生这种情况
- 这种测试是特定于某种操作系统的
- 这种测试依赖于外部程序,但这个程序不存在
- 给定了一些特定的命令行选项
not found 要检查命令对象不存在
Vulnerable but disabled 命令虽然被感染,但没有在使用中
利用Rkhunter检测Rootkit
安装Rkhunter
wget https://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz
tar xf rkhunter-1.4.6.tar.gz
cd rkhunter-1.4.6/
./installer.sh --install
进行系统扫描
/usr/local/bin/rkhunter -c
Suspect files: 3 可疑文件数量
Possible rootkits: 0 可能Rootkit数量
执行完毕后,扫描日志会写入/var/log/rkhunter.log中
如果Suspect files和Possible rootkits不为0 则表示发现可疑文件,从日志中查找Warning的相关进行详细分析