歡迎光臨
我們一直在努力

Vulnhub x Tr0ll: 1

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

該題從匿名帳戶的FTP裡,發現個pcap封包檔,從該pcap檔裡分析出網站目錄後,得到帳號列表,接著使用hydra進行ssh爆破。該主機主要有兩個方式可以提權為root,一種是透過overlayfs,一種是該伺服器存在例行性工作排程,於是可透過該排程進行提權,成為root後得到Flag。

靶機:Tr0ll: 1

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

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

使用Nmap工具掃描,參數 -sP ,透過ICMP方式快速查找標的端。

標的端為192.168.43.55

找到標的端後,同時間,我們另開個視窗,透過Dirb掃描該目錄

使用nmap -A 完整掃描該主機,並搭配 -p 0-65535 掃描該伺服器端口。

共開啟 21 port、22 port、80 port,而21 port 是FTP,根據顯示 FTP似乎可以透過Anonymous登入。

這將會是一個利用點。

嘗試登入該FTP,帳號Anonymous,密碼為空。

登入到該主機後,發現有個檔案lol.pcap,是個封包檔

可透過WireShark工具打開來。

透過WireShark打開後,有幾個訊息令我感興趣,

RETR secret_stuff.txt

點開來查看詳細資料,看看能不能在這封包看到些什麼,發現有一段文字,似乎再透漏些消息。

sup3rs3cr3tdirlol <-- ??

根據以上消息,看起來是個檔案,說不定存在一些能夠利用的訊息,於是嘗試訪問該檔案http://192.168.43.55/secret_stuff.txt

可惜的是,沒有這檔案。

思考了很久,最後嘗試將 sup3rs3cr3tdirlol 訪問,很高興的竟然訪問成功了,

是一個檔案,立刻下載下來查看下。

在Linux環境下直接cat查看,發現噴出一大堆亂碼

當拿到一個檔案後,思路馬上轉換為CTF想法,嘗試各種binwalk、strings、foremost、ida等

先將檔案給他個權限,看看能不能執行,

chmod +x roflmao

執行後,噴出一句話

Find address 0x0856BF to proceed

看來沒辦法直接執行。

用Binwalk簡單分析下,是個ELF 32-bit的檔案,然後就沒然後了。

用foremost分析看看能不能分出個什麼檔案,結果也然後了。

使用strings查看該檔案,也是沒有可利用的資訊。

在這邊卡了很久,休息了一下,實在想不到接下來能幹嘛,於是就卡關了。

後來一直再思考這個檔案有什麼用處? 還有什麼沒看到的?

audit.txt嗎? 還是 ?

看著檔案顯示著 Find address 0x0856BF to proceed

尋找0x0856BF,丟IDA也沒頭緒,於是腦洞丟到網址列看看...

Surprised! 竟然跑出兩個驚喜出來。

good_luck目錄下有個which_one_lol.txt的檔案。

which_one_lol.txt裡邊看起來是一個帳號列表。或許是FTP? 或許是SSH?

不管怎麼樣,都是個好消息!

還有另外一個目錄,底下有個Pass.txt

Pass.txt只有顯示一句話

Good_job_:)

那麼廢話不多說,有了疑似帳號密碼的列表後,馬上就使用hydra來幫我們爆破下

最後顯示帳號為 overflow 密碼為 Pass.txt

於是我們登入SSH

登到該主機後,馬上查詢下該主機用戶 及 系統版本

id & whoami & uname -a

看到這個版本號與年份,讓我聞到了提權的味道。

Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation

不過在提權之前,我們先簡單查看下該主機有什麼其他有趣的東西。

可以搜索下 /home /etc /var /var/www /data /tmp等目錄

最終,因為其他目錄都沒有看到其他東西,於是我們翻遍log,希望能夠看到些有趣的事情。

在cronlog裡,發現到有一個cleaner.py

為甚麼會想查詢cronlog呢?

因為在進行這台主機的操作時,大概固定每幾分鐘就會自動被踢出連線,於是想說可能是有個腳本會定時的例行性工作排程剔除用戶,所以查詢該cron的log。

因為不知道cleaner.py在哪個位置,於是直接上find指令

find / -name cleaner.py

結果顯示在/lib/log目錄下。

這個python腳本是由root執行的,主要是會刪除 tmp目錄下的檔案。

那麼,因為有root的權限,且又是例行性工作排程,那麼我們是否能夠在該py腳本內寫個提權的方法呢?

如何知道該腳本是 例行性工作排程 ? ,只要在tmp目錄下寫個檔案,然後等個幾分鐘就知道了。

在本題中,有兩個方向可以提權為root權限。

1. 使用 overlayfs

2. 更改cleaner.py

那麼下面,我們分別講解下各個提權姿勢。

 

在本地寫入個overlayfs的c檔,然後gcc編下,按照exploit-db的教學就可以完成了

gcc ofs.c -o ofs

執行該提權程式,就成為root了。接著就直接訪問/root 目錄,查看該Flag。

第二個方法是更改 cleaner.py腳本

我們將原本的os.system('rm -r /tmp/*') 改成

os.system('echo "overflow ALL=(ALL:ALL) ALL " >> /etc/sudoers')

接著保存。

保存後,我們只要等待例行性工作排程到來,就會直接該腳本。

過幾分鐘後,我們的連線被斷線了,也代表排程執行了。

於是重新連上去就行了。

接著直接sudo su後,即可成為root。

密碼 Pass.txt

結束。

 

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

波波的寂寞世界

Facebook聯繫我們

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

掃一掃打賞作者狗糧