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處的命令執行,因此前期的信息收集很重要。

相關文章
相關標籤/搜索