检测系统是否被入侵者安装了rootkit
时间:2007-02-17 来源:PHP爱好者
Copyright 2001 OLS3, 本讲义仅供教育人员参考, 任何引用, 请先取得作者的同意.
(以上声明, 主要是防止商人拿本文沽取利益, 除此, 请自行取用, 勿受限制, 或对此感到有任何的不愉快)
一. 何谓 rootkit ?
在说明什么是 rootkit 之前, 要先说明, 什么是 trojaned system commands ?
trojaned system commands 中文或可译为 "特洛伊木马程序" (或, 特洛伊系统指令).
相信大家都应该知道 "特洛伊木马屠城记" 这个典故吧?!
凡是, 在表面上, 伪装成正常的程序, 而实际上, 却偷偷地, 把正常的程序换掉, 并留下一些特殊的系统后门, 以方便往后, 可以在暗地里控制主机运作, 或进行破坏行为的程序, 我们就说, 这是一种特洛伊木马程序, 俗称: 后门程序(backdoor) 或木马程序(trojan).
当系统中, 隐藏着这种程序时, 我们称之为: 中了木马.
木马程序的来源, 大概可分为以下几种:
系统被入侵(root-compromise), 遭 cracker 植入
中了主机系统中, 某位一般权限使用者精心设计的陷井
执行了来路不明的程序
安装了被窜改过的程序套件
被 network worm (网络蠕虫) 感染.
而其中, 又以: 系统被入侵, 感染蠕虫, 执行来路不明的程序, 这三者, 最为常见.
以系统入侵而言, 大部份的 cracker, 在攻入某一部主机之后, 并不会做出, 立即而明显的破坏, 只有下下品的骇客, 或急于炫耀自己, 假装自己, 或满足自己就是骇客一族的 script kids, 才会如此.
(实际上, 这些家伙, 并不是真正的骇客, 仅是捡人现成的工具, 对有漏洞的主机, 进行攻击行为)
通常, 他们会安装数支木马程序, 把正常的程序给换掉, 让系统运作时, 尽量不出现任何异状, 然后, 留下方便的后门, 供往后自由进出, 接着, 他们会在清除留下的痕迹(如记录文件, 指令历史文件) 之后, 悄然地离去. 等到哪天, 需要这部主机的资源时, 它会再进来.....
(上上品的骇客, 不会对系统做任何改变, 并且会通知站主, 该站那些有漏洞? 甚至会帮忙站主, 把漏洞补起来, 而且, 通常的名义是: 教育实验性质, 他们比较在意: 是否能获取骇客社群的敬重和地位)
所谓 rootkit, 就是有心人士, 整理这些常用的木马程序, 做成一组程序套件, 以方便 cracker 攻入主机时, 在受害的主机上, 顺利地编译和安装木马程序.
有些 rootkit 纯粹实验性质, 也有 rootkit 本身, 就是一种 rootkit 木马, 让试玩 rootkit 者, 中了木马. ( rootkit 中的 rootkit 乎?! ;-) )
rootkit 的种类很多. 通常 rootkit 中, 所包含的木马程序, 大都以原始程序代码的形式散布, 这些程序, 很多是由早期的 BSD UNIX 系统, 逐步移植(port)过来的, 因此, 几乎在各种机器平台上, 都有 rootkit 的踪影, 而且, 变种及花样, 可以说是, 形形色色, 五花八门.
(我目前手上的 rootkit, 就不下数十只, Linux, FreeBSD, Solaris, NT, W2K, Novell, DOS.... 都有)
一般, rootkit 中, 常见的木马程序及工具有:
bindshell
chfn
chsh
crontab
du
find
fix
ifconfig
inetd
killall
linsniffer
login
ls
netstat
passwd
pidof
ps
rshd
sniffchk
syslogd
tcpd
top
wted
z2
二. 中了 rootkit 的症状:
主机中了木马程序之后, 通常不会有太大的异样. (不过, 品质低劣的木马程序, 则会有明显的病状.)
网管人员就算用 ps, netstat, lsof, top 等程序, 来观察主机的运作, 也不会发现内存中, 有什么奇怪的行程(process), 这是因为, 这几支常用的指令, 已经被 cracker 换掉了, 换言之, 用这些木马程序来观看时, 您看到的画面, 很可能, 都是假造的!
不过, 木马程序, 毕竟不是真正的程序, 它和原有的程序之间, 总是存在着些许的差异, 或许在短期内, 感觉不出有什么异样, 不过, 长期下来, 总是无法完全发挥该程序原有的真正功能. 因此, 这些差异, 终将在有一天, 造成主机异常的运作.
因此, 一旦您发现系统有任何奇怪的现象, 第一个要做的事是:
试着去怀疑: 我的主机是否中了木马啦?!
三. 简易检查法:
不过, 光是怀疑, 也无路用, 而且, 常常疑神疑鬼, 网管人员迟早会得到 --- "神经衰弱" ;-Q
善用工具吧!
在此, 介绍 http://www.chkrootkit.org 推出的 chkrootkit.
顾名思义, chkrootkit 就是, 检查 rootkit 是否存在的一种便利工具.
chkrootkit 可以在以下平台使用:
Linux 2.0.x, 2.2.x
FreeBSD 2.2.x, 3.x and 4.0
OpenBSD 2.6, 2.7 and 2.8 (如果您对安全性非常在意的话, 强烈推荐您 OpenBSD 2.8, 我都是玩这个. ^_^)
Solaris 2.5.1, 2.6 and 8.0.
截至目前(05/08/2001)为止, 最新版本是: chkrootkit v0.32
它可以侦测以下 rootkit 及 worm:
lrk3
lrk4
lrk5
lrk6 (and some variants)
Solaris rootkit
FreeBSD rootkit
t0rn (including some variants and t0rn v8)
Ambient's Rootkit for Linux (ARK)
Ramen Worm; rh[67]-shaper
RSHA
Romanian rootkit
RK17
Lion Worm
Adore Worm
LPD Worm
kenny-rk
Adore LKM
它主要检查系统中以下的程序:
basename
biff
chfn
chsh
cron
date
dirname
du
echo
env
find
fingerd
gpm
grep
identd
ifconfig
inetd
killall
login
ls
mail
mingetty
netstat
passwd
pidof
pop2
pop3
ps
pstree
rlogind
rpcinfo
rshd
sendmail
sshd
su
syslogd
tar
tcpd
telnetd
timed
top
traceroute
write
安装法:
chkrootkit 安装及使用, 十分简单! (也请您务必参考 http://www.chkrootkit.org/ 的 FAQ)
下载
可至 http://www.chkrootkit.org下载 chkrootkit.tar.gz
或至 ftp.tnc.edu.tw/Security/ 下载: chkrootkit-0.32.tar.gz (小心! 这是否也是木马? ^_^ ....... 和您开开玩笑, 别当真!)
解压
tar xvzf chkrootkit-0.32.tar.gz
编译
cd chkrootkit-0.32
make sense
执行
./chkrootkit > chk.lst
检查 chk.lst 这个文字文件, 看看是否有侦测到任何木马或 worm ?
以下是 chk.lst 的部份内容, 这表示, 系统应该是干净的. (绝非百分之百! 但至少令人安心一点!)
ROOTDIR is `/'
Checking `basename'... Not vulnerable
Checking `biff'... NOT TESTED
Checking `chfn'... Not vulnerable
Checking `chsh'... Not vulnerable
Checking `cron'... Not vulnerable
Checking `date'... Not vulnerable
Checking `du'... Not vulnerable
Checking `dirname'... Not vulnerable
Checking `echo'... Not vulnerable
Checking `env'... Not vulnerable
Checking `find'... Not vulnerable
Checking `fingerd'... Not vulnerable
Checking `gpm'... Not vulnerable
Checking `grep'... Not vulnerable
Checking `su'... Not vulnerable
Checking `ifconfig'... Not vulnerable
Checking `inetd'... Not vulnerable
Checking `identd'... Not vulnerable
Checking `killall'... Not vulnerable
Checking `login'... Not vulnerable
Checking `ls'... Not vulnerable
Checking `mail'... Not vulnerable
Checking `mingetty'... Not vulnerable
Checking `netstat'... Not vulnerable
Checking `passwd'... Not vulnerable
Checking `pidof'... Not vulnerable
Checking `pop2'... NOT TESTED
Checking `pop3'... NOT TESTED
Checking `ps'... Not vulnerable
Checking `pstree'... Not vulnerable
Checking `rpcinfo'... Not vulnerable
Checking `rlogind'... Not vulnerable
Checking `rshd'... Not vulnerable
Checking `sendmail'... Not vulnerable
Checking `sshd'... Not vulnerable
Checking `syslogd'... Not vulnerable
Checking `tar'... Not vulnerable
Checking `tcpd'... Not vulnerable
Checking `top'... Not vulnerable
Checking `telnetd'... Not vulnerable
Checking `timed'... Not vulnerable
Checking `traceroute'... Not vulnerable
Checking `write'... Not vulnerable
Checking `asp'... Not vulnerable
Checking `bindshell'... Not vulnerable
Checking `z2'... Nothing deleted
Checking `wted'... Nothing deleted
Checking `rexedcs'... Not vulnerable
Checking `sniffer'...
eth0 is not promisc
Checking `aliens'... No suspect files
Searching for sniffer's logs, it may take a while... Nothing found
Searching for t0rn's default files and dirs... Nothing found
Searching for t0rn's v8 defaults... Nothing found
Searching for Lion Worm default files and dirs... Nothing found
Searching for RSHA's default files and dir... Nothing found
Searching for RH-Sharpe's default files... Nothing found
Searching for Ambient's rootkit (ark) default files and dirs... Nothing found
Searching for suspicious files and dirs, it may take a while...
Searching for LPD Worm files and dirs... Nothing found
Searching for Ramen Worm files and dirs... Nothing found
Searching for RK17 files and dirs... Nothing found
Searching for Adore Worm... Nothing found
Searching for anomalies in shell history files...
Checking `lkm'... Nothing detected
四. 万一中了木马, 怎么办?
我们可以说: 如果主机中, 存在着木马程序的话, 那么, 这台主机的主控权, 早已不在网管手上了!
换言之: 这台主机已经沦陷 (compromised)! 还好, 唯一庆幸的是: 它没有被宵小搬走..... ;-)
若, 果真不幸如此, 建议您: 应该赶快
清查后门
追查入侵原因
追踪入侵来源
做好重灌系统的心理准备
备份重要档案
重灌系统
事后更要, 加强安全防骇知识
善用工具 (如: 安装: 检查档案系统完整性的工具: Tripware; 安装任何程序套件之前, 使用 MD5 checksum 比对)
注意相关安全讯息
勤补系统
养成良好的网管习惯 (如: 避免用 telnet / ftp, 改用 ssh2, sftp2, scp)
持续的关心监控
努力维护主机安全
God bless u and Me ..... ^_^
注:
有人说: "挑一个比较少人用的系统, 会比较安全?!", 因为它比较不会引起骇客的兴趣和注意?!
我想这见人见智.
我的建议是: 最好不要挑比较少人用的系统. (万一有漏洞, 没有人推出修补套件, 或该公司倒了, 或不愿再推出, 准哭死你哟! 除非你自己有能力修补.....)
而要挑选: 至少有一个专门的团体或公司在维护, 不断地推出坚实的套件, 持续在进步的系统.
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.