CTF-Covfefe-WriteUp:Vulnhub

知識點(diǎn):

1、利用 Join the Rippe 的 ssh2john 破解SSH私鑰
2、通過簡單的代碼審計C語言程序來溢出提權(quán)

環(huán)境:

靶場
系統(tǒng):Linux
任務(wù):拿到2個flag
靶場IP地址:192.168.199.138
攻擊機(jī)
系統(tǒng):kali
地址:192.168.199.249

信息收集

拿到靶場之后使用nmap掃描一下開放端口服務(wù)

image.png

通過上面掃描結(jié)果,我們可以看到開發(fā)了22(ssh)、80(thhp)、31337(http)三個端口,其中80、31337都是web服務(wù)。
首先80端口的web頁面
http://192.168.199.138
image.png

頁面上沒有其他的內(nèi)容,只是一個nginx容器搭建的web頁面,先掃掃它的目錄:
image.png

沒有什么特別的目錄和文件,無法從80端口進(jìn)行突破,換另一個端口31337
image.png

訪問web后發(fā)現(xiàn)是由apache搭建的網(wǎng)站,我們繼續(xù)使用工具對網(wǎng)站目錄進(jìn)行掃描
image.png

發(fā)現(xiàn)幾個文件
http://192.168.199.138:31337/.bash_history (CODE:200|SIZE:219) http://192.168.199.138:31337/.bashrc (CODE:200|SIZE:3526) http://192.168.199.138:31337/.profile (CODE:200|SIZE:675) http://192.168.199.138:31337/.ssh (CODE:200|SIZE:43) http://192.168.199.138:31337/robots.txt (CODE:200|SIZE:70)
訪問/robots.txt 后發(fā)現(xiàn),也是上面掃描出來的文件內(nèi)容
image.png

打開/taxes/
image.png

獲得第一個falg

在掃描的結(jié)果中,有一個.ssh的文件引起我的注意,訪問后頁面上回顯了ssh連接的私鑰和公鑰:


image.png

id_rsa(私鑰)、authorized_keys(公鑰,認(rèn)證密鑰)id_rsa.pub(公鑰),訪問以下文件可以把它們下載到本地:


image.png

下載到本地后查看公鑰發(fā)現(xiàn)用戶為simon
image.png

嘗試使用私鑰(id_rsa)登陸ssh
ssh -i id_rsa simon@192.168.199.138


image.png

這個時候發(fā)現(xiàn)登陸不上,原因是因?yàn)槊艽a不對,接下來使用ssh2john破解id_rsa(私鑰)
首先查看ssh2john文件路徑
locate ssh2john
image.png
/usr/share/john/ssh2john.py

然后把ssh2john.py復(fù)制到當(dāng)前路進(jìn)行,接下來就利用ssh2john把id_rsa(私鑰)轉(zhuǎn)換成john可識別hash文件

python ssh2john.py id_rsa > key

image.png

最后使用john the Ripper來破解key文件

john key
image.png

密碼為:starwars


image.png

拿到密碼之后進(jìn)行ssh連接

chmod 700 id_rsa
ssh -i id_rsa simon@192.168.199.138
user:simon
pass:starwars
image.png

登陸成功之后,我們切換到root目錄下發(fā)現(xiàn)flag.txt但是沒有權(quán)限查看


image.png

接一下就是重要的時刻了。

提權(quán)

(這部分我是不會的。。。。)
我們先來查找一下哪些文件是root權(quán)限的

find / -perm -4000 2>/dev/null
注釋:
    find / 從根目錄查找
    -perm -4000 具有執(zhí)行權(quán)限的文件
    2>/dev/null 避免輸出錯誤
image.png

通過搜索 root 權(quán)限的文件我們可以查看到 read_message ,是不是好像在哪里見過,對,就是在/root目錄下的read_message.c文件!通過查看文件發(fā)現(xiàn)是一段由c語言編寫的程序
cat read_message.c


image.png

image.png

通過代碼審計得到了flag2為:flag2{use_the_source_luke},其中代碼的意思就是:使用 strncmp函數(shù)來比較輸入的內(nèi)容數(shù)組,authorized(Simon)而且字符為5,第三個參數(shù)buf是數(shù)組,也就是說最大字符不能超過20,如果等于authorized(Simon)并且字符不超過authorized(Simon)那么printf打印出以下內(nèi)容


image.png

不過輸不等于authorized,則printf輸出的內(nèi)容是:
image.png

通過代碼審計,buf不能超過20個字符。超過了就可以利用execve函數(shù)來讓我們進(jìn)行溢出得到root權(quán)限了,具體輸入正確的Simon然后后面隨便輸入字符超過20個字符我們就可以進(jìn)入到program 目錄,我們可以替換為 /bin/sh
Simon000000000000000/bin/sh
image.png

image.png

參考大佬的文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容