实战打靶集锦-001-Funbox2
**寫在前面:**這應該是本人第一次自主成功完成的打靶,紀念一下下。
目錄
- 1. 主機發現
- 2. 端口掃描
- 3. 服務枚舉
- 4. 服務探查
- 4.1 Apache探查
- 4.1.1 瀏覽器訪問
- 4.1.2 站點地圖查看
- 4.1.3 目錄枚舉
- 4.1.4 公共EXP搜索
- 4.2 FTP探查
- 4.2.1 手工登錄FTP
- 4.2.2 公共EXP搜索
- 4.2.3 密碼爆破
- 5. 突破邊界
- 6. 提權
- 6.1 探查用戶的home
- 6.2 探查/etc/passwd
- 6.3 搜索可執行文件。
- 6.4 枚舉操作系統信息
- 6.5 搜索公共EXP
- 6.6 利用公共EXP
- 6.6.1 解除shell限制
- 7. 獲取flag
- 8. 補充信息
1. 主機發現
當前只知道靶機所在的網段是192.168.56.0/24,其它一概不知,因此先進行一下這個網段的主機發現。
$ nmap -sP 192.168.56.0/242. 端口掃描
56.103應該就是我們的目標靶機,既然找到了IP地址,那就做一下全端口掃描吧。
$ sudo nmap -p- 192.168.56.103
額,貌似掃掛了,先掃一下常見的22和80端口試試看。
額,兩個端口都命中了,那就分段掃描一下前20000個端口試試看。
這次掃描沒有掛掉,前20000個端口只有21/22/80是開放的,暫時就這些吧。
3. 服務枚舉
通過下面的命令,查看一下這三個端口上分別運行的什么服務。
$ sudo nmap -p21,22,80 -sV 192.168.56.103
這樣,我們就獲得了ftp服務和http服務的版本信息,并且目標靶機的系統大概率是Ubuntu。接下來我們會逐個探查一下apache和ftp服務,實在無法突破的時候再探查ssh,因為ssh相對難利用。
4. 服務探查
4.1 Apache探查
4.1.1 瀏覽器訪問
直接通過瀏覽器訪問一下80端口,看看有沒有我們感興趣的信息。
感覺是Ubuntu上默認的Apache2的主頁,除了Apache2 Ubuntu之外,沒有更多感興趣的信息。
4.1.2 站點地圖查看
分別通過瀏覽器訪問一下http://192.168.56.103/robots.txt和http://192.168.56.103/sitemap.xml看看能不能獲得站點地圖信息。
嗯,有個log目錄,再試試sitemap.xml,不過robots有了,這個基本就沒戲了,但是還是訪問一下看看。
得到了一點點信息,Apache的版本是2.4.29。
4.1.3 目錄枚舉
站點地圖里面沒有發現太多有價值的內容,通過dirsearch和nikto進行一下目錄枚舉試試看。
$ dirsearch -u http://192.168.56.103 $ nikto -h http://192.168.56.103
盡管發現了一些站點信息,但是貌似價值不大,尤其是還403了。既然知道了版本信息是Apache 2.4.29,那我們還是簡單搜索一下公共EXP吧,看看有沒有該版本在Ubuntu上的漏洞。
4.1.4 公共EXP搜索
并沒有找到靠譜的匹配EXP,暫時把Apache放在一邊,下面開始探查FTP服務。
4.2 FTP探查
4.2.1 手工登錄FTP
這沒啥好說的,命令行手動登錄看看吧。
竟然可以匿名登錄,并且還有不少文件在里面,那就先都下載下來仔細看看吧。
welcome.msg貌似是個模板郵件,沒有實際內容。
對于其它的zip文件,全都加密了,需要私鑰才能解密,如下圖。
4.2.2 公共EXP搜索
黔驢技窮了,搜索一下這個FTP服務版本的公共EXP試試看。
我們的版本是1.3.5e,搜索出來的版本中最接近的是1.3.5,既然無計可施,那就死馬當活馬醫吧,先用第二個試試看。先拷貝代碼到當前目錄。
檢查代碼無問題,運行一下看看。
發現這個exp問題較多,運行不起來,可能是因為針對1.3.5的,而我的目標版本是1.3.5e,為了驗證猜想,上網搜索了一下,果真如此。
既然1.3.5a就已經把這個漏洞修復了,1.3.5e就不用多想了。
4.2.3 密碼爆破
既然沒有線索,那就用kali上的rockyou密碼字典爆破一下,看看能不能找到zip文件的解包密碼吧。
先寫一個破解zip的小腳本吧,這里重點參照了Crossin先生的一篇文章(https://cloud.tencent.com/developer/article/1806690)。基本原理就是利用rockyou字典對zip文件進行逐個爆破,可運行的代碼如下。
先準備一個測試用的zip文件和密碼字典驗證一下可行性,比較完美。
接下來加載真正的rockyou文件爆破anna.zip,完犢子了,使用rockyou沒有找到正確的密碼;不管了,加大一下kali虛擬機的內存和CPU,就用rockyou,逐個zip包爆破一把,說不定某個zip就能解密呢。
果然,在爆破tom.zip的時候,詭異的事情出現了,爆出了一系列密碼。
說它詭異是因為爆出來的密碼不唯一,不應該啊,一個zip還能有這么多密碼可以解密?先試試前兩個密碼再說吧。
我勒個去,解密出來的竟然是個密鑰,這很有可能是用戶tom通過ssh登錄靶機的密鑰,加密后備份在FTP上了。由于太詭異,先用第二個密碼解密tom.zip試試看。
這個密碼是錯的,不用多想了,估計后面幾個都是錯誤的密碼,可能我的密碼爆破腳本還有點小問題,不過我們已經得到密鑰了,這里暫且放一邊,以后有時間再研究。
5. 突破邊界
直接在kali上嘗試用前面解密出來的密鑰攜帶tom用戶ssh到靶機。
$ ssh -i id_rsa tom@192.168.56.103
完美突破邊界,下面開始提權。
6. 提權
6.1 探查用戶的home
先看看當前用戶的home目錄下有些啥。
有幾個比較有意思的文件,如.bash_history、.bash_logout、.mysql_history,這幾個文件中有可能隱藏著一些我們感興趣的敏感信息,待會兒沒有思路的時候記得來查看一番。
6.2 探查/etc/passwd
查看一下/etc/passwd文件中有哪些用戶。
除了我們之前發現的ftp之外,還有個mysql用戶,這說明這個主機上可能有mysql服務。
先嘗試看看能不能直接在/etc/passwd下面添加一個新用戶吧。
先給要創建的用戶生成一個密碼。
然后新創建一個testusr用戶,密碼用前面openssl生成的,其它信息跟root完全一致。
嗯,權限受限制,不可以這么搞。
說明:到這里,我們可以得知當前tom用戶的shell是受限制的,有些操作沒法執行,也可以在這里嘗試解除當前用戶tom的shell限制;其實有很多linux下解除shell限制的方式,這里暫時不討論(因為在這里我也沒解除限制),有興趣的讀者可以自行搜索。
6.3 搜索可執行文件。
用下面的命令,搜索一下root用戶所有的,其它用戶可讀可寫的可執行文件。
tom@funbox2:~$ find / -type f -user root -perm -o=w 2>/dev/null
仍然權限不足,只能想其它招了。
6.4 枚舉操作系統信息
通過下面的命令枚舉一下操作系統信息,看看能不能從特定版本的漏洞進行提權吧。
tom@funbox2:~$ cat /etc/*-release6.5 搜索公共EXP
根據上述信息,看看有沒有對應的提權漏洞代碼可以利用。
精簡一下搜索關鍵字,再試一把。
貌似還真有個18.04版本的提權漏洞(倒數第三個)。
6.6 利用公共EXP
把代碼拷貝到本地,查看一下,貌似還挺簡單的,基于代碼中的提示步驟(如下圖)試試看吧。
在kali主機上直接運行下面的命令,把build-alpine拷貝到本地。
根據上面漏洞利用代碼的指示,在kali上使用root用戶進行build。
雖然執行的磕磕絆絆,最終還是build出來了,build結束后,當前目錄下會多一個如下圖所示的tar包,看看能不能用再說。
退出root用戶(要養成好習慣,及時退出root用戶),在當前目錄建立http服務。
從靶機上下載我們build好的文件。
額,攻擊機和靶機不再一個網段,一個在virtual box,一個在VMware,重新配置kali跟靶機在一個網段,然后再試,OK。
用同樣的方法,把kali上的exp腳本46978.sh上傳到目標靶機。
給我們的EXP和alpine充足的權限。
tom@funbox2:~$ chmod 777 46978.sh tom@funbox2:~$ chmod 777 alpine-v3.17-x86_64-20230119_0234.tar.gz
通過下面的命令進行提權。
還是因為shell的限制,沒法執行“/”指令。竟然報錯了,調整一下。
額,還是有錯誤,打開檢查一下看看。這個腳本在kali上沒有問題,可能還是目標靶機的shell限制問題。
6.6.1 解除shell限制
既然靶機允許cp命令,那就復制一個bash到當前目錄試試。
tom@funbox2:~$ cp /bin/bash ./然后用新拷貝的bash執行腳本。
tom@funbox2:~$ bash 46978.sh -f alpine-v3.17-x86_64-20230119_0234.tar.gzOMG,執行成功了。
7. 獲取flag
看看當前用戶的id,并獲取一下flag。
竟然沒有flag,不應該啊。嘗試用下面的命令搜索一下全盤。
~# find / -name root.txt 2>/dev/null
~# find / -name flag>/dev/null
~# find / -name proof 2>/dev/null
竟然搜索結果都是空的,可是命名提權成功了啊,顯示的當前用戶也是root。
那就繼續研究一下剛才的EXP代碼吧,果然有新的發現,怪我之前沒看仔細。
主機的文件在/mnt/root下,進到這個目錄,順利找到了flag,搞定。
8. 補充信息
其實我在爆破zip文件的時候,有些笨拙了,學藝不精。kali下有個好用的工具叫fcrackzip,可以直接進行爆破。
$ fcrackzip -u -D -p ../rockyou.txt tom.zip
比我自己寫的腳本簡單多啦。
總結
以上是生活随笔為你收集整理的实战打靶集锦-001-Funbox2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023管理员申请书怎么写最新范文
- 下一篇: texstudio的坑