Bulldog:2靶机渗透

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

前言

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

靶机信息:

靶机名称

Bulldog:2

渗透步骤:

1、获取靶机IP

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

但若是靶机没有显示ip,能够用nmap扫描网段获得ip。git

2、浏览网站

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

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

 

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

 

3、扫描端口信息

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

 

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

4、扫描目录信息

利用dirb工具扫描目录工具

两个连接。。。第一个404,第二个是一个图标,看起来也没有获得什么有价值的东西。

5、爆破用户名

这时候就有点懵了,感受无处下手啊,可是幸亏浏览网页的时候开着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

6、修改token提权

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

token信息解密

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

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

试试改为master_admin_user进行发包

返回的结果:

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

7、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文件了

8、总结

        对于此次的渗透靶机,我的感受重点在于前期的信息收集,虽然端口和目录都没有突破,可是用户名有了大用处,再到后面的getshell是因为靶场源码暴露在了github上,通过审计得知password处的命令执行,因此前期的信息收集很重要。

相关文章
相关标签/搜索