今天登录后台无意中发现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的文件可真难受。愿大佬提建议~~