靶场下载地址:https://download.vulnhub.com/doubletrouble/doubletrouble.ova
下载下来是zip压缩文件,解压后是.ova虚拟机压缩文件直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)
打开后靶机没有自动获取ip,解决办法看我这篇文章:靶机无法自己获取ip地址解决办法_奋斗吧!小胖子的博客-CSDN博客
重启虚拟机
靶场搭建完毕
由于不知道靶机ip,所以需要扫描NAT的网段
128为kali攻击机的ip,所以144为靶机ip
扫描靶机端口服务开放情况
开放了22端口,存在ssh服务
开放了80端口,存在http服务,且中间件为Apache2.4.38
先访问一下WEB
发现是一个登录页面,先测试一下是否存在sql注入
经过测试发现不存在sql注入
搜索一下敏感目录
发现可以访问/core这个目录
在/core/config目录下发现databases.yml配置文件,在其中发现了数据库账号和密码,还有数据库名
发现/install页面
这里似乎可以配置数据库
在这里输入我们之前在配置文件中读到的账号密码,发现报错不能使用
还发现一个readme.txt文档
文档中介绍qdPM一个开源的网站管理软件,证明这个网站使用了qdPM这个开源框架软件
并且能从install页面和首页中看出版本为9.1
搜索相应版本是否存在漏洞,发现确实存在漏洞
将利用代码复制到当前目录下
查看一下代码
这个漏洞利用需要登录才能利用,所以我们尝试去破解登录账号密码
搜索默认的账号密码
尝试登录发现都不正确
在尝试用前面获得的数据库密码登录,发现也不正确
在搜索敏感目录时还搜索到一个/secret目录
在目录下发现一个图片文件
在/secret目录下看起来,是个图片文件,这让我们怀疑这个图片文件可能隐写了东西
将文件保存下来
使用steghide工具查看是否存在隐写内容,发现需要密码,看来确实存在隐写了内容
kali中又专门的破解隐写密码的工具stagecracker
输入命令下载并且查看使用方式
发现上面提示stegcracker已经被stegseek这个工具替代,且stegseek的效率更高
kali中没有stegseek,所以我们需要去下载
根据他给的地址去下载
下载一个deb的软件包
安装软件
查看使用方式
成功破解出密码
使用密码提取出文件
查看文件,发现一组账号和密码
尝试登录,登录成功
登录成功后执行之前找到的漏洞的exp
发现代码报错
使用另外一个python3的exp
发现也报错
查看一下代码
发现代码中很多地方缩进存在问题
修改一下
再次执行发现成功执行
执行成功
上传了一个后面,访问一下
用后门反弹shell
先看有没有nc和python
利用python升级shell
升级完shell之后浏览了一下每个目录没有发现什么线索
只能进行提权
sudo提权
sudo -l 查看特权命令
发现存在awk特权命令,输入命令提权
sudo awk 'BEGIN {system("/bin/bash")}'
提权成功
进入到/root页面下发现又出现一个ova虚拟机压缩文件,存在第二台机器
将文件保存到本地电脑上
直接在靶机上通过python搭建临时网站,因为80端口已经在占用所以要用其他端口
在本地Windows点脑上安装wget
下载地址:GNU Wget 1.21.3 for Windows
将下载好的wget.exe放在C:/Windows/System32目录下,即安装完成
打开命令窗输入wget,安装成功
将靶机文件下载下来
用VM打开
开启虚拟机
由于不知道靶机ip,所以需要扫描NAT的网段
144为第一台靶机,128为kali攻击机,所以145为新的靶机
扫描端口服务开放情况
开放了22端口,存在ssh服务
开放了80端口,存在http服务,且中间件为2.22
先访问一下WEB
又发现一个登录页面
先尝试看是否存在admin/admin/admin123这样的经典弱口令
发现不存在
搜索一下敏感目录
发现不存在其它铭感目录
但是发现存在/cgi-bin目录,看是否存在破壳漏洞
发现也不存在
看是否存在sql注入,经过抓包简单的sql注入测试发现不存在
用sqlmap测试,发现uname参数存在时间注入
sqlmap -u "http://192.168.52.145/index.php" --batch --forms
利用sqlmap爆出数据库名--current-db
爆出当前数据库的表名-D doubletrouble --tables
爆出users表的列名-D doubletrouble -T users --columns
爆出users表里的数据-D doubletrouble -T users --dump
得到两组账号密码,尝试登陆
发现两组账号密码都不能用于登录网站
前面端口探测发现存在ssh
尝试登录ssh
成功用其中一组账号密码登录成功
进行提权
sudo提权
不具有sudo命令
SUID提权
SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限
通过命令
find / -perm -4000 2>/dev/null查看是否具有root权限的命令
常见可用于提权root权限文件
nmap
vim
find
bash
more
less
nano
cp
awk
也不能利用
内核提权
搜索相应提权漏洞
发现可以用dirtycow漏洞提权
将提权代码复制到/root
再利用python上传文件
编译运行,运行成功后,就会新建一个firefart账号密码为执行时自己输入的密码,权限为root权限
使用firefart账号登录
如果是真实环境下,后续应该还要把原来的备份/tmp/passwd.bak文件复制回/etc/passwd,还原操作系统原来的用户账号
然后重新设置root账号密码
使用root账号登录