靶機滲透_hackthebox__luke -5

目標IP  10.10.10.137 

因爲是靶機所以二話不說nmap 掃一下

nmap 獲得信息如下:

# Nmap 7.70 scan initiated Fri Aug  2 10:51:40 2019 as: nmap -sT -sV -O -T4 -o nmap.scan 10.10.10.137
Warning: 10.10.10.137 giving up on port because retransmission cap hit (6).
Nmap scan report for 10.10.10.137
Host is up (0.29s latency).
Not shown: 994 closed ports
PORT     STATE    SERVICE     VERSION
21/tcp   open     ftp         vsftpd 3.0.3+ (ext.1)
22/tcp   open     ssh?
80/tcp   open     http        Apache httpd 2.4.38 ((FreeBSD) PHP/7.3.3)
3000/tcp open     http        Node.js Express framework
3580/tcp filtered nati-svrloc
8000/tcp open     http        Ajenti http control panel
Aggressive OS guesses: Linux 3.2 (95%), Linux 4.4 (94%), Actiontec MI424WR-GEN3I WAP (93%), DD-WRT v24-sp2 (Linux 2.4.37) (92%), Microsoft Windows XP SP3 (90%), Microsoft Windows XP SP3 or Windows 7 or Windows Server 2012 (90%), TiVo series 1 (Linux 2.1.24-TiVo-2.5) (88%), Allied Telesyn AT-9448Ts/XP switch (87%), BlueArc Titan 2100 NAS device (86%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 3 hops

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Aug  2 10:54:29 2019 -- 1 IP address (1 host up) scanned in 169.49 seconds

發現有五個端口開放

21 先嚐試一下匿名登陸,目錄裏面只有一個txt文件,for_Chihiro.txt:

Dear Chihiro !!

As you told me that you wanted to learn Web Development and Frontend, I can give you a little push by showing the sources of 
the actual website I've created .
Normally you should know where to look but hurry up because I will delete them soon because of our security policies ! 

Derry 

內容英語不好大致意思是有一位老兄想學習web類的知識,而申請了一個賬號

這裏有兩個名稱Chihiro,Derry信息泄漏的一個文件 暴露了服務器內的權限賬號人員

其他端口依次打開除80外都需要身份驗證

3000端口是一個 express node js 框架接口

80 端口只有幾個頁面所以嘗試dirbuster爆破

發現幾個頁面,login.php,config.php,member managent

其中managent需要憑證可以進入

config.php中有一個憑證:

數據庫的賬號和密碼:root:********

3000端口使用JWT 驗證 在相關網站學習了關於JWT的知識

JWT身份驗證方式是客戶端提交用戶名和密碼之後會返回一個base64編碼的token,之後的每次提交都可以使用該token

這個token服務器端有時間有效設置具體字段含義這裏不做介紹了

3000端口同樣 使用了dirbuster 爆破一下發現有/login,/login/users ,/users/admin幾個可以需要合法身份才能訪問的地方

明顯身份驗證位置在 /login

最初這個地方困住了我幾天 :複製一下當時的筆記


JWT 令牌的問題 客戶端發送 密碼用戶名 之後服務器端驗證正確就返回TOKEN
令牌由三部分組成base63編碼沒有敏感信息之後請求資源只要攜帶這個TOken即可
但是在這個靶機獲取令牌時一直不是解析錯誤就是bad request 400 錯誤
或者是不能POST 等錯誤 
不能POST 是路徑錯誤 或者該路徑不接受對應的POST 或者PUT或者GET等請求在這裏是路徑錯誤
之後的解析錯誤400是content-type 或者 請求字段格式的問題
所以感覺應該是我的content-Type 或者 用戶名或者密碼的字段名稱有錯
之前都是開頭大寫(login.php) 頁面中的name 名所以修改一下 OK出來
Forbidden 禁止當密碼或者賬號錯誤時纔會出現 剩下的是猜測了
 

curl --header "Content-Type:application/json" --request POST --data '{"password":"Zk6heYCyv6ZE9Xcg","username":"admin"}' http://10.10.10.137:3000/login

用戶名這裏需要猜測一下 root對應web權限是admin,返回一個base64編碼的token 

之後的每次請求就可以在請求頭中加入該token即可

curl -H 'Accept:application/json' -H'Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNTY0OTMxNzE0LCJleHAiOjE1NjUwMTgxMTR9.AC5WhfQrb_MtP17oTn6jroIvuK-QqDLc-vZJNauTwjQ' http://10.10.10.137:3000/users/admin

上面-H 'Authorization: Bearer ${TOKEN}'替換即可

獲得有權限的用戶信息以及ID

一共有四個賬號

依次請求URL ip:port/users/id查看該賬號的信息

獲得四個用戶的憑證拿到憑證之後從21文件中得到的信息 關聯一下就拿到了管理目錄

當然也可以挨個嘗試

80目錄中有些文件,其中感興趣的是config.json

很容易就可以發現一個明文的憑證

進入到8000端口嘗試密碼成功進入

該端口運行的是一個服務器管理系統,可以說具有root權限 所以拿到兩個flag

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章