这样就找到了进程对应的完整程序执行路径,这个路径很隐蔽,由于/var/tmp目录默认情况下任何用户可读性,而入侵者就是利用这个漏洞在/var/tmp目录下创建了一个“…”的目录,而在这个目录下隐藏着攻击的程序源,进入/var/tmp/…/目录,发现了一些列入侵者放置的rootkit文件,列表如下:
[root@webserver ...]#/mnt/bin/ls -aldrwxr-xr-x 2 nobody nobody 4096 Sep 29 22:09 apa-rw-r--r-- 1 nobody nobody 0 Sep 29 22:09 apa.tgzdrwxr-xr-x 2 nobody nobody 4096 Sep 29 22:09 cacadrwxr-xr-x 2 nobody nobody 4096 Sep 29 22:09 haha-rw-r--r-- 1 nobody nobody 0Sep 29 22:10 kk.tar.gz-rwxr-xr-x 1 nobody nobody 0 Sep 29 22:10 login-rw-r--r-- 1 nobody nobody 0 Sep 29 22:10 login.tgz-rwxr-xr-x 1 nobody nobody 0 Sep 29 22:10 z通过对这些文件的分析,基本判断这就是我们要找的程序攻击源,其中:
1)、z程序是用来清除系统日志等相关信息的,例如执行:
./z 62.17.163.186【客户服务器惨遭黑客入侵,看老司机如何调查取证】这条命令执行后,系统中所有与62.17.163.186有关的日志将全部被清除掉 。
2)、在apa目录下有个后门程序t,这个就是之前在系统中看到的,运行此程序后,此程序会自动去读apa目录下的ip这个文件,而ip这个文件记录了各种ip地址信息,猜想这个t程序应该是去扫描ip文件中记录的所有ip信息,进而获取远程主机的权限,可见这个网站服务器已经是入侵者的一个肉鸡了 。
3)、haha目录里面放置的就是用来替换系统相关命令的程序,也就是这个目录下的程序使我们无法看到操作系统的异常情况 。
4)、login程序就是用来替换系统登录程序的木马程序,此程序还可以记录登录帐号和密码 。
5、查找攻击原因
到这里为止,服务器上遭受的攻击已经基本清晰了,但是入侵者是如何侵入这台服务器的呢?这个问题很重要,一定要找到入侵的根源,才能从根本上封堵漏洞 。
为了弄清楚入侵者是如何进入服务器的,需要了解下此服务器的软件环境,这台服务器是一个基于JAVA的web服务器,安装的软件有Apache2.4.29、Tomcat8.5,apache和tomcat之间通过mod_jk模块进行集成,apache对外开放80端口,由于tomcat没有对外开放端口,所以将问题集中到apache上面 。
通过查看apache的配置发现,apache仅仅处理些静态资源请求,而网页也以静态页面居多,所以通过网页方式入侵系统可能性不大,既然漏洞可能来自于apache,那么尝试查看apache日志,也许能发现一些可疑的访问痕迹,通过查看access.log文件,发现了如下信息:
62.17.163.186 - - [29/Sep/2018: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"62.17.163.186 - - [29/Sep/2018: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文件,找到如下信息:
if ($QueryString =~ /configdir=([^&]+)/i){$DirConfig=&DecodeEncodedString("$1");}修改为如下即可:if ($QueryString =~ /configdir=([^&]+)/i){$DirConfig=&DecodeEncodedString("$1");$DirConfig=~tr/a-z0-9_-/./a-z0-9_-/./cd;}6、揭开谜团
通过上面逐步分析和介绍,此服务遭受入侵的原因和过程已经非常清楚了,大致过程如下:
(1)攻击者通过Awstats脚本awstats.pl文件的漏洞进入了系统,在/var/tmp目录下创建了隐藏目录,然后将rootkit后门文件传到这个路径下 。
(2)攻击者通过植入后门程序,获取了系统超级用户权限,进而控制了这台服务器,通过这台服务器向外发包 。
(3)攻击者的IP地址62.17.163.186可能是通过代理过来的,也可能是攻击者控制的其他肉鸡服务器 。
(4)攻击者为了永久控制这台机器,修改了系统默认帐号mail的信息,将mail帐号变为可登录,并且设置了mail帐号的密码 。
推荐阅读
- python 中日志异步发送到远程服务器
- 可3秒入侵Windows服务器:微软敦促客户尽快修复Zerologon漏洞
- Windows Server 2012 R2 CA服务器部署
- CA证书服务器的搭建
- 在30分钟内创建你的深度学习服务器
- 基于Pyqt5的C/S模式客户端在线升级方案
- 无服务器技术如何实现最佳的DevOps实践
- 中国访问美国服务器要如何加速?
- 服务器提权
- 我用过的几款SSH客户端工具