文章首发圈子社区:https://www.secquan.org/Notes/1068825 php
前两天作了一个靶机渗透题目,在此记录一下html
Bulldog:2
成功搭建靶机后,界面显示了ip地址:python
但若是靶机没有显示ip,能够用nmap扫描网段获得ip。git
网站的功能很简单,注册、登陆以及浏览一些用户信息。简单点了点网站的功能,发现有登陆和注册,可是当我点击注册的时候,界面显示不让注册。github
网站有一个user界面,里面列出了9名用户,有用户名。web
这时候想到利用登录界面结合这些用户名去爆破弱口令,先放着,继续信息收集......shell
扫描靶机端口,准备从开放的服务下手json
但是发现就开了一个80端口,啧啧啧,好吧,继续目录探测一波...bash
利用dirb工具扫描目录工具
两个连接。。。第一个404,第二个是一个图标,看起来也没有获得什么有价值的东西。
这时候就有点懵了,感受无处下手啊,可是幸亏浏览网页的时候开着F12,看到一个链接http://192.168.1.102/users/getUsers?limit=9
点进去
9个用户信息,limit的值也正好是9,这就难免想改一改limit的值了,直接改为1000000,再改1000001的时候没有增长的用户信息,这里应该是全部用户的信息了。
接下来写个脚本把username全都提取出来
# -*- coding:utf-8 -*- import re f = open('..\\Onames.txt','r') s = f.readline() f.close() name1 = re.findall('username(.+?),',s) name1 = "".join(name1) name2 = re.findall(':\"(.+?)\"',name1) f1 = open('..\\names.txt','w') for name in name2: f1.write(name+'\n') f1.close()
接下来就用bp进行爆破了,爆破出几个用户名密码来
用其中一个进行登陆,可是登陆以后仍是感受没什么用
这时候看了其余大佬的wp,才知道登陆的时候还发生了一次JWT,关于JWT放一个连接:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
利用bp得到token,下面靶机的ip都变成了192.168.1.101,由于文章是分两次记录的,靶机的ip发生了变化。
token信息解密
解密以后发现重点是auth_level这个字段值,可是应该把它改为什么呢,以前的信息收集没有收集到任何有用的线索,只能看访问到的源码了,
幸运的是在其中一个js文件中找到了这个关键字
试试改为master_admin_user进行发包
返回的结果:
发现咱们已是admin了,下一步就该考虑怎么getshell了
在getshell这想了好久都没什么思路,再次拜读了大佬的wp后,才知道password这有命令执行
抓包
利用nc反弹shell
nc -vlp 8000
产生tty shell
python -c 'import pty;pty.spawn("/bin/bash")'
接下来就是建立root用户,方法有不少,能够用openssl也能够用脚本perl、php等等...
再su提权以后而后就能够看到root目录下的flag文件了
对于此次的渗透靶机,我的感受重点在于前期的信息收集,虽然端口和目录都没有突破,可是用户名有了大用处,再到后面的getshell是因为靶场源码暴露在了github上,通过审计得知password处的命令执行,因此前期的信息收集很重要。