所谓 rootkit ,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够常时入侵系统,或者说对系统进行实时控制的 途径。所以,我们用自由软件 chkrootkit 来建立入侵监测系统,来保证对系统是否被安装了 rootkit 进行监测。
chkrootkit 在监测 rootkit 是否被安装的过程中,需要使用到一些操作系统本身的命令。但不排除一种情况,那就是入侵者有针对性的已经将 chkrootkit 使用的系统命令也做修改,使得 chkrootkit 无法监测 rootkit ,从而达到即使系统安装了 chkrootkit 也无法检测出 rootkit 的存在,从而依然对系统有着控制的途径,而达到入侵的目的。那样的话,用 chkrootkit 构建入侵监测系统将失去任何意义。对此,我 们在操作系统刚被安装之后,或者说服务器开放之前,让 chkrootkit 就开始工作。而且,在服务器开放之前,备份 chkrootkit 使用的系统命 令,在一些必要的时候(怀疑系统命令已被修改的情况等等),让 chkrootkit 使用初始备份的系统命令进行工作。
官网地址:http://chkrootkit.org/download/
[root@1 ~]# wget -c ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
[root@1 ~]# yum install -y gcc gcc-c++ make glibc-static
[root@1 ~]# tar zxvf chkrootkit.tar.gz
[root@1 ~]# cd chkrootkit-0.50/
[root@1 chkrootkit-0.50]# make sense
[root@1 chkrootkit-0.50]# cd
[root@1 ~]# cp -r chkrootkit-0.50/ /usr/local/chkrootkit
参数帮助:
[root@1 ~]# /usr/local/chkrootkit/chkrootkit -h
1
2
3
4
5
6
7
8
9
10
11
|
Usage: /usr/local/chkrootkit/chkrootkit [options] [test ...]
Options:
-h show this help and exit
-V show version information and exit
-l show available tests and exit
-d debug
-q quiet mode
-x expert mode
-r dir use dir as the root directory
-p dir1:dir2:dirN path for the external commands used by chkrootkit
-n skip NFS mounted dirs
|
由于chkrootkit的检查过程使用了部分系统命令。因此,如果服务器被入侵,则依赖的系统命令可能也已经被入侵者做了手脚,chkrootkit的结果将变得完全不可信。
所以需要在服务器上线之前备份chkrootkit用到的命令,检查的时候使用备份的命令来检查。
1
2
3
4
|
[root@1 ~]# mkdir /usr/share/.commands #创建一个隐藏文件夹
[root@1 ~]# cp $(which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname ssh) /usr/share/.commands/
然后通过下面命令来检查:
[root@1 ~]# /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/
|
PS:
[root@1 chkrootkit-0.50]# make sense
cc -DHAVE_LASTLOG_H -o chklastlog chklastlog.c
cc -DHAVE_LASTLOG_H -o chkwtmp chkwtmp.c
cc -DHAVE_LASTLOG_H -D_FILE_OFFSET_BITS=64 -o ifpromisc ifpromisc.c
cc -o chkproc chkproc.c
cc -o chkdirs chkdirs.c
cc -o check_wtmpx check_wtmpx.c
cc -static -o strings-static strings.c
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [strings-static] Error 1
之前遇到一个报错,是因为没有安装glibc-static这个包
(责任编辑:IT) |