zoukankan      html  css  js  c++  java
  • UOS博客被攻击后——追根溯源-Wordpress-反弹shell-本地提权-Ubuntu

    今天登录后台无意中发现Wordpress安全插件(Wordfence)报警!发现某恶意文件。

    由以上可见,它位于Wordpress媒体上传目录,是一个压缩包并且内部含有c语言代码。

    详细信息如图

    经详细信息发现,这个文件的创建日期为2020年11月26日星期四上午01:38:40,大小约70kb。

    这就纳闷了,一个压缩包,位于媒体文件上传目录,内部含有c语言代码,仅70kb;十分可疑!

    故而登录服务器把它下载到本地仔细研究;解压一看,茫然了。。。

    文件名我没有截出来,它的文件名为“ebpf_mapfd_doubleput_exploit”,那么这无疑是一个用于本地提权的恶意程序(百度搜索文件名一大堆提权资料)

    那么就要搞明白这文件怎么来的

    发现是由www-data创建的,这表明攻击者是通过apache程序上传的该文件。

    Wordpress安全插件(Wordfence)显示这个文件创建于“2020年11月26日上午01:38:40”。

    linux显示这个文件,最后一次访问时间为“ 2020-12-29 23:39:46.605865354 +0800”

    最后一次内容修改时间为“2020-11-26 09:38:40.000000000 +0800”

    最后一次属性修改时间为“2020-12-25 00:00:48.593857119 +0800”

    而今天是2020/12/30,linux并不显示创建时间,最后一次查看是昨天。

    整理出一个时间线,创建于2020/11/26/01:38:40

    最后一次解压或者移动于2020-11-26 09:38:40

    最后一次修改权限于2020-12-25 00:00:48

    最后一次访问于2020-12-29 23:39:46

    但忽略了一个问题,除了攻击者,Wordfence访问是不是也记录其中?所以,最后一次访问时间无效。

    于是查看apache日志,发现该文件被创建时,apache并没有生成日志

    难道不是通过Wordpress上传的吗?明明上传在“wp-content/uploads/”这是wordpress媒体上传目录啊。。。

    遗憾的是,wordpress并没有日志记录是谁上传的以及上传者ip。

    ps:说起这个恶意提权压缩包就很有趣,它被放在/wp-content/uploads/;包内有个compile.sh,解压后内容如下:

    #!/bin/sh
    gcc -o hello hello.c -Wall -std=gnu99 `pkg-config fuse --cflags --libs`
    gcc -o doubleput doubleput.c -Wall
    gcc -o suidhelper suidhelper.c -Wall

    哦~~它需要编译,但是压缩包里已经包含编译好的可执行文件了;是两手准备?还是把编译后的可执行文件又添加进了压缩包为掩人耳目?幸好wordfence识别出来了。

    还有,这个目录是没有可执行权限的(不过好像是仅针对php)

     由于apache日志内找不到上传该文件的日志记录,wordpress也没有总之线索断了!

    但是,可执行文件已经上传了,没有shell攻击者怎么用??

    万能的阿里云~!(看日志是够辛苦的)

      

     从阿里云的报告来看,最后一次反弹shell时间:2020/12/24/22:47:46秒

    貌似与最后一次属性修改时间:“2020-12-25 00:00:48”对上了

    还发现攻击者通过python虚拟了一个交互式shell;然后没有更多信息了。

    依据经验,通过apache反弹shell一般使用恶意php程序;可wordfence并没有扫描出恶意php程序。

    不甘心使用webshell扫描工具“河马”扫描一波,

    仍未发现恶意php!

    粗略检查了一下linux的登录日志,并没有发现www-data登录(也许反弹shell登录并不会被日志记录?这方面不太懂)

    由于已经发现了用于提权的恶意程序,需要分析(究竟能否提权成功),检查服务器其他位置是否存在其他本地提权程序

    使用“find / -user www-data -perm -u=r -ls > demo.txt”列出所有、所有者或所有组为www-data的文件并将输出重定向到demo.txt;使用“cat demo.txt | grep *.tar*”等,查找可疑文件后缀

    并查找了linux中任何人都可写的目录,如tmp

    root@iZbp18bu6m70t9of9avduiZ:~# find / -name tmp
    /tmp
    /var/tmp
    /var/www/html/wp-content/plugins/wordfence/tmp
    /var/www/html/phpMyAdmin/tmp

    未发现其他本地提权程序。。。

    理清思路:服务器被上传本地提权程序,被反弹shell但未找到恶意php程序(webshell河马的检测能力还是可以的),所以怀疑是apache或者wordpress的漏洞导致被反弹shell

    为保证安全,升级wordpress版本、更新所有软件、更新系统及内核版本并变更用户密码

    详见我的另外几篇文章:更新系统及内核版本https://www.cnblogs.com/Deng-Xian-Sheng/p/14030356.html

    Ubuntu更新软件参考https://www.jianshu.com/p/a79ee7f59036

    Wordpress自动升级稳定性不佳,建议手动升级;参考http://www.wuwenhui.cn/3090.html

    总结经验:

    1、Wordpress需要安装日志插件来记录日志!!

    2、研究透各大发行版的日志格式,Ubuntu日志与centos有很大不同;由于不经常看,打开/var/log/吓坏了,以为日志被删除了……提权成功了;打开虚拟机试验后发现是其日志格式与centos不同。。。

    道高一尺,魔高一杖;找不到php反弹shell的文件可真难受。愿大佬提建议~~

  • 相关阅读:
    C++之STL总结精华笔记
    [转]asp.net使用uploadify上传出现的IO Error问题
    $.post()参数及返回值
    用CSS3.0画圆
    C# 用代码返回上一页
    用js获取cookie
    html页面的局部刷新
    在Asp.Net中使用amChart统计图
    内存中DataTable去除重复行
    .net中对HTTP请求的两种请求:Get和Post的操作
  • 原文地址:https://www.cnblogs.com/Deng-Xian-Sheng/p/14212047.html
Copyright © 2011-2022 走看看