总的来说,要判断主机是否正在或者已经遭受了攻击,需要以下几个步骤。
1、终结非授权用户。
2、找出并关闭非授权进程。
3、分析日志文件,寻找入侵者曾经试图入侵系统的蛛丝马迹。
4、检查系统文件是否有潜在受损情况。
接下来说说具体操作。
1、首先以root登录到tty下,用
root@mysun:~# w
14:14:10 up 43 days, 4:43, 1 user, load average: 0.13, 0.08, 0.04
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lyychee pts/2 54.107.130.61.di 14:14 0.00s 0.01s 0.00s sshd: lyychee [priv]
|
把所有当前登录到系统的用户列出来,可以根据各用户的用户名以及用户登录的源地址和他们正在运行的进程来判断他们是否为非法用户,
2、如果一旦发现有可疑用户,我们可以马上把它锁住
root@mysun:~# passwd -l username
|
3、last命令是另外一个可以用来查找非授权用户登录事件的工具
lyychee pts/2 54.107.130.61.di Mon May 22 14:14 still logged in
lyychee pts/2 51.107.130.61.di Thu May 18 18:36 - 18:42 (00:05)
lyychee pts/2 61.130.107.51 Tue May 16 14:21 - 14:39 (00:18)
root pts/2 61.130.107.58 Sat May 13 15:40 - 15:43 (00:02)
lyychee pts/2 210.32.178.253 Fri May 12 00:53 - 01:16 (00:23)
root pts/2 58.107.130.61.di Wed May 10 15:33 - 15:35 (00:01)
root pts/2 61.130.107.58 Tue May 9 14:58 - 15:07 (00:08)
root pts/2 59.78.34.62 Sun May 7 07:40 - 07:45 (00:05)
lyychee pts/2 59.78.34.62 Sat May 6 23:50 - 00:27 (00:37)
lyychee pts/2 222.64.24.144 Sat May 6 10:56 - 10:56 (00:00)
root pts/2 192.168.0.111 Sat May 6 00:01 - 00:02 (00:01)
lyychee pts/2 222.64.22.144 Thu May 4 12:41 - 12:43 (00:0
root pts/2 59.78.34.62 Tue May 2 06:59 - 07:00 (00:00)
|
last命令输入的信息来自/var/log/wtmp。这个文件详细地记录着每个系统用户的访问活动。但是有经验的入侵者往往会删掉/var/log/wtmp以清除自己非法行为的证据,但是这种清除行为还是会露出蛛丝马迹:在日志文件里留下一个没有退出操作与之对应的登录操作(因为在你删除wtmp的时候,你的登录记录就没有了,但是你待会儿登出,系统还是会把你记下来),不过再高明一点就用at或者cron等自己登出之后再删文件。(但是这种方法也还是可以查,总之linux没有一种操作是最强的,强到没有纰漏。就像古龙的小说一样,没有一个人是天下第一。这样看起来才有劲)
4、善于使用ps -aux跟netstat,这里有一个故事,曾经在一台被黑过的主机上,有人在/usr/lib里发现了一个貌似无害的文件,但在随后的调查中发现系统上有个后门,系统管理员发现主机重新启动后不久,就会有一个明为sndme的进程莫名其妙地开始运行,在执行了
root@mysun:~# netstat -ap
|
之后发现了这么一条记录
udp 0 0 *:32145 *:* LISTEN 1118/sndme
|
这说明一个进程正在UDP端口32145上监听什么。但是这个进程究竟是怎么起来的呢?
后来发现就是在/usr/lib里的一个文本文件搞的鬼,在系统init的时候,有一个脚本,做了一件很天才的事情,