1.下載靶機
本篇文章是DC靶機系列的第二個篇,針對DC-2,建議感興趣的讀者從DC-1開始練習((26條訊息) 滲透測驗學習之靶機DC-1_xdbzdgx的博客-CSDN博客),
DC-2的下載地址為DC: 2 ~ VulnHub,三個地址建議使用磁力下載,比較快,下載后解壓為.ova檔案,該格式可直接在VMware上打開,如果顯示打開失敗,點擊重試即可成功,如果仍無法成功可百度、谷歌解決,
在VMware加載成功之后顯示如下界面:

默認狀態我們是打不開該系統的,也不知道賬號密碼的,畢竟我們的目的就是在不知道賬號密碼的情況下拿到root權限,找到flag,注意,這里建議把DC-2靶機的網路鏈接模式改為NAT模式,本文使用的攻擊機為kali(安裝在VMware上,IP為:192.168.179.128),
2.收集靶機資訊
由于本文的攻擊機和靶機在同一個網路下,因此在kali上輸入命令: arp-scan -l,顯示如下
可判斷出靶機的ip為192.168.179.130.接著使用nmap對該ip進行掃描,輸入命令:nmap -sV -p- 192.168.179.130

這里有個點要注意,我掃描的習慣操作是nmap IP,但是從本題可以看出,該靶機故意更改了ssh的默認埠,這樣使用nmap ip就掃描不出來了,所以建議以后做nmap掃描一定要對全埠進行掃描,盡可能地仔細,
同時我們看到靶機開放了80埠,那么我們使用瀏覽器去登陸http://192.168.179.130:80看看有沒有什么有效資訊,登陸發現了瀏覽器將其決議成http://dc-2并且訪問失敗,這說明是本題決議dc-2失敗,因此需要在本題host檔案上添加192.168.179.130 dc-2
vim /etc/hosts

此時登陸,頁面為

觀察一下頁面,發現flag,點擊可得到第一個flag檔案,并且發現網站左下角Proudly powered by WordPress ,說明該網站的CMS是wordpress,

這里有三個提示,一個是需要登陸(又用戶名肯定需要登陸呀),一個是使用cewl,另一個是暗示我們可能獲得不止一個用戶,但是不是所有的用戶都有用(如果訪問失敗不妨試試另一個,又暗示了兩個用戶權限可能不同),
此外我們可以看到此時的url為http://dc-2/index.php/flag/,這個時候就考驗大家的好奇心了,可以在url后面試試加admin,passwd,includes之類的,看看有沒有其他頁面,然后就發現了竟然還有意外驚喜,發現在url后面加任何名詞都會顯示如下界面

然后我們在好奇心地隨便搜搜(這里好奇心是開玩笑啦,一般來說,面對網站一定要盡可能地熟悉和點擊,盡可能地挖掘有效資訊,雖然99.99%的試探都是徒勞無功,但是萬一呢),然后就發現了第二個flag,提示

再一次暗示WordPress,接下來我們利用這些線索進行漏洞挖掘,
3.漏洞挖掘
1.找到登陸頁面
本人翻看了網站,發現沒有看到登陸頁面,所以這里需要我們自己思考一下,又兩種方式可以找到:
第一,我們已知該網站是使用wordpress,則在網上搜搜發現默認登陸頁面為wp-admin,測驗一下,果然發現了登陸頁面,
第二,使用網站目錄暴力猜解工具,如gobuster 、dirb、metasploit等,我們這里使用dirb.
輸入命令列:dirb http://dc-2,可以通過猜解得到wp-admin可以訪問成功,
2.生成該網站的密碼破解字典
輸入命令列:cewl http://dc-2 -w dc-2-password.txt ,利用cewl針對該網站生成密碼字典,并將密碼存盤在txt檔案中,

3.爆破該網站登錄名
WPScan是一款針對wordpress的安全掃描軟體;WPScan可以掃描出wordpress的版本,主題,插件,后臺用戶以及爆破后臺用戶密碼等,當然也可以使用其他掃描網站目錄的工具,
輸入命令列:wpscan --url http://dc-2 -e u,其中-e表示列舉,u表示要掃描的目標:用戶名

發現掃描出三個用戶名,admin,jerry,tom.
并將其保存為dc-2-user.txt 檔案

4.爆破登錄名及對應密碼
仍利用wpscan工具,輸入命令列:wpscan --url http://dc-2 -P dc-2-password.txt -U dc-2-user.txt

結果發現只破解出兩個賬號密碼
Username: jerry, Password: adipiscing Username: tom, Password: parturient
5.登陸
利用賬號密碼登陸,翻遍網頁發現了flag(哈哈,好奇心已經讓我們提前拿到了)

4.滲透利用
根據flag2的提示,這條路可能無法再挖掘出更多資訊了,并建議我們試試其他的注入點,從開頭nmap我們知道,除了80還有ssh的7744埠,接下來我們嘗試來連接shh,
1.登陸ssh
此時我們有兩個賬號,可以分別測驗一下,發現jerry登陸失敗,tom訪問成功
輸入命令列 ssh tom@192.168.179.130 -p 7744

然后我們隨機查看一下
發現有flag3.txt,但是我們打不開,此時發現了-rbash,rbash(restricted bash),即受限制的 bash,常常僅使用 ssh 來訪問網頁,這就說明了我們要提權或者繞過,這里先講繞過,本題的解決方式有兩種,
第一,使用vi,less,more,git等可提權的命令測驗,該靶機可使用vi flag3.txt,發現可以訪問,

第二,繞過,關于繞過有幾種方式,詳細參考RBash - 受限的Bash繞過 - 云+社區 - 騰訊云 (tencent.com)
(1)本人使用的是輸入命令列
vi 4.txt #隨便打開一個txt檔案(檔案名隨意填) 然后再末端輸入(就是按一下esc):set shell=/bin/bash 再按一下esc,接著輸入 :shell 注意,上面兩行的冒號也要輸入,
(2)很多博主使用的如下方法
輸入如下命令列
BASH_CMDS[a]=/bin/sh ; a #呼叫/bin/sh命令解釋器 /bin/bash #使用bash命令解釋器
無論使用哪一種方式,緊接著都要創建一個環境變數
export PATH=$PATH:/bin/
看到這里,大家不妨思考為什么要創建環境變數?大佬請繞行,其實再進行上面操作之前,查看當前的變數
輸入命令列 echo $PATH
![]()
原來是因為我們的當前環境變數 /home/tom/usr/bin 下面!所以我們的 shell 被限制了,這導致我們不能執行一些命令,
而(1)方法則是通過轉義環境變數的方式,(2)方法是定義一個環境變數,然后再添加我們新的環境變數,這樣才能得到一個不受限的shell,
然后cat flag3.txt 查看flag資訊,

該資訊提示使用su ,并切換用戶
我們輸入命令: su jerry,然后輸入密碼,進入jerry的目錄,

這個時候jerry對/home/tom肯定是沒有權限的,因此 cd /home/jerry


此時找到了第四個flag,提示我們可以使用git
5.提權
接著我們查看查看可以使用root權限無密碼的命令,輸入 sudo -l

發現git命令可以使用root權限,并且提示利用git提權,可以在網路上搜索如何利用git提權
發現有兩種方式
1、sudo git help config #在末行命令模式輸入 !/bin/bash 或 !'sh' #完成提權 2、sudo git -p help !/bin/bash #輸入!/bin/bash,即可打開一個用戶為root的shell
這兩種方式的前提是把shell視窗變小,使得不能在一頁全部顯示,才可以輸入,


獲得root權限,輸入命令列,查找
find / -name "*flag*"

最后一行為final-flag.txt,

最后一個flag成功到手!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353262.html
標籤:其他
