Bulldog:2靶机渗透

文章首发圈子社区:https://www.secquan.org/Notes/1068825 

前言

前两天做了一个靶机渗透题目,在此记录一下

靶机信息:

靶机名称

Bulldog:2

渗透步骤:

一、获取靶机IP

成功搭建靶机后,界面显示了ip地址:

但如果靶机没有显示ip,可以用nmap扫描网段得到ip。

二、浏览网站

网站的功能很简单,注册、登录以及浏览一些用户信息。简单点了点网站的功能,发现有登录和注册,但是当我点击注册的时候,界面显示不让注册。

网站有一个user界面,里面列出了9名用户,有用户名。

 

这时候想到利用登陆界面结合这些用户名去爆破弱口令,先放着,继续信息收集......

三、扫描端口信息

扫描靶机端口,准备从开放的服务下手

 

可是发现就开了一个80端口,啧啧啧,好吧,继续目录探测一波...

四、扫描目录信息

利用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

六、修改token提权

利用bp获得token,下面靶机的ip都变成了192.168.1.101,因为文章是分两次记录的,靶机的ip发生了变化。

token信息解密

解密之后发现重点是auth_level这个字段值,但是应该把它改成什么呢,之前的信息收集没有收集到任何有用的线索,只能看访问到的源码了,

幸运的是在其中一个js文件中找到了这个关键字

试试改成master_admin_user进行发包

返回的结果:

发现我们已经是admin了,下一步就该考虑怎么getshell了

七、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处的命令执行,所以前期的信息收集很重要。

猜你喜欢

转载自www.cnblogs.com/gzs-monkey/p/10351883.html