云计算与信息安全第十堂课
机房攻防案例
通过文件的权限设置,表示用户的权限。
/etc/passswd /etc/shadow
/etc/passswd 文件用于存放Linux系统用户信息,该文件为所有用户可见。
由于/etc/shadow文件允许所有用户读取,易导致用户密码泄露。
RootKit工具
一种特殊的恶意软件。
Linux进程查看命令:
ps:ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。
top: top命令常用来监控linux的系统状况,比如cpu、内存的使用。
一次Linux系统被攻击的分析过程
1、攻击现象
流量攻击 ,带宽的流量被快速耗尽。
2、需要进行初步分析
对服务器的网络流量进行了检测,发现存在对外80端口的扫描流量,于是登录系统通过“netstat-an”命令对系统开启的端口进行检查。接着用 ps-ef命令。
如何证明系统是否被植入了rootkit?
ps、top命令与同一个版本可信操作系统下的命令做md5sum校验,结果发现网站服务器下的这两个命令确实被修改过,因此判定,次服务器被入侵并且安装了rootkit级别的后门程序。
3、断网分析系统
安全模式杀毒的好处:安全模式因为不会加载一些驱动(如显卡之类的,这样如果在正常模式下电脑装错了显卡驱动造成一直系统就黑屏的故障,一般就能进安全模式将显卡驱动删了重来了),同时有些程序不会运行(如某些病毒,正常模式下删不掉,进安全模式就行了) 由于在安全模式下,很多病毒不会变种,且一般都是不连接网络,所以在安全模式下杀毒会比较彻底。
由于服务器不停向外发包,因此:
首先,断开网服务器网络;
然后,分析系统日志,寻找攻击源;
但是系统命令已经被替换掉了,如果继续在该系统上执行操作将变得不可信,这里可以通过两种方法来避免这种情况,第一种方法是将此服务器的硬盘取下来挂载到另外一台安全的主机上进行分析,另一种方式就是从一个同版本可信操作系统下拷贝所有命令到这个入侵服务器下某个路径,然后在执行命令的时候指定此命令的完整路径即可,这里采用第二种方法。
4、寻找攻击源
到目前为止,我们所知道的情况是,有个mail帐号曾经登录过系统,但是为何会导致此网站服务器持续对外发送数据包呢?必须要找到对应的攻击源,通过替换到此服务器上的ps命令查看系统目前运行的进程,又发现了新的可疑:
这个.t程序是什么呢,继续执行top命令,结果如下:
5、攻击程序分析
(1) .z程序是用来清除系统日志等相关信息的。
(2)在apa目录下有个后门程序t,这个就是之前在系统中看到的,运行此程序后,此程序会自动去读apa目录下的ip这个文件,而ip这个文件记录了各种ip地址信息,猜想这个t程序应该是去扫描ip文件中记录的所有ip信息,进而获取远程主机的权限,可见这个网站服务器已经是入侵者的一个肉鸡了。
(3)haha目录里面放置的就是用来替换系统相关命令的程序,也就是这个目录下的程序使我们无法看到操作系统的异常情况。
(4)login程序就是用来替换系统登录程序的木马程序,此程序还可以记录登录帐号和密码。
6、查找攻击原因
入侵者是如何侵入这台服务器的呢?解决了这个问题,才能从根本上封堵漏洞。
查看apache日志,也许能发现一些可疑的访问痕迹,可查看access.log文件。
1 62.17.163.186 - - [29/Sep/2013:22:17:06 +0800] "GET http://www.xxx.com/cgi-bin/awstats.pl?configdir=|echo;echo;ps+-aux%00 HTTP/1.0" 200 12333 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20121010 Firefox/2.0" 2 3 62.17.163.186 - - [29/Sep/213:22:17:35 +0800] "GET http://www.xxx.com/cgi-bin/awstats.pl?configdir=|echo;echo;cd+/var/tmp/.../haha;ls+-a%00 HTTP/1.0" 200 1626 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20121010 Firefox/2.0"
至此,发现了漏洞的根源,原来是awstats.pl脚本中configdir的一个漏洞,通过了解此服务器的应用,客户确实是通过一个Awstats的开源插件来做网页访问统计,通过这个漏洞,攻击者可以直接在浏览器上操作服务器,例如查看进程、创建目录等。攻击者正常浏览器执行切换到/var/tmp/…/haha目录的操作。
这个脚本漏洞挺可怕的,不过在Awstats官网也早已给出了修补的方法,对于这个漏洞,修复方法很简单,打开awstats.pl文件,找到如下信息:
1 if ($QueryString =~ /configdir=([^&]+)/i) 2 3 { 4 5 $DirConfig=&DecodeEncodedString("$1"); 6 7 } 8 9 修改为如下即可: 10 11 if ($QueryString =~ /configdir=([^&]+)/i) 12 13 { 14 15 $DirConfig=&DecodeEncodedString("$1"); 16 17 $DirConfig=~tr/a-z0-9_\-\/\./a-z0-9_\-\/\./cd; 18 19 }
7、总结
通过上面逐步分析和介绍,此服务遭受入侵的原因和过程已经非常清楚了,大致过程如下:
(1)攻击者通过Awstats脚本awstats.pl文件的漏洞进入了系统,在/var/tmp目录下创建了隐藏目录,然后将rootkit后门文件传到这个路径下。
(2)攻击者通过植入后门程序,获取了系统超级用户权限,进而控制了这台服务器,通过这台服务器向外发包。
(3)攻击者的IP地址62.17.163.186可能是通过代理过来的,也可能是攻击者控制的其他肉鸡服务器。
(4)攻击者为了永久控制这台机器,修改了系统默认帐号mail的信息,将mail帐号变为可登录,并且设置了mail帐号的密码。
(5)攻击者在完成攻击后,通过后门程序自动清理了系统访问日志,毁灭了证据。
通过对这个入侵过程的分析,发现入侵者的手段还是非常简单和普遍的,虽然入侵者删除了系统的一些日志,但是还是留下了很多可查的踪迹,其实还可以查看用户下的.bash_history文件,这个文件是用户操作命令的历史记录。
8、如何恢复网站
由于系统已经文件被更改和替换,此系统已经变得完全不可信,因此建议备份网站数据,重新安装系统,基本步骤如下:
(1)安装稳定版本的操作系统,删除系统默认的并且不需要的用户。
(2)系统登录方式改为公钥认证方式,避开密码认证的缺陷。
(3)安装更高版本的apache和最新稳定版本的Awstats程序。
(4)使用Linux下的Tcp_Wrappers防火墙,限制ssh登录的源地址。
参考链接:https://zhidao.baidu.com/question/64955443.html
https://zhuanlan.zhihu.com/p/352325272
https://www.jb51.net/LINUXjishu/224647.html