文章首發圈子社區: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處的命令執行,因此前期的信息收集很重要。