1.环境搭建
靶机下载:ICA: 1 ~ VulnHub
解压后导入到Oracle VM VirtualBox中
网络改成仅主机模式,网卡使用和kali相同的网卡
开启靶机
2.渗透过程
查看kali的ip地址,使用ip a
使用nmap -sn 扫描靶机ip地址
靶机IP地址是192.168.56.104,使用nmap -sS 扫描靶机的端口
发现开着22,80,3360,使用浏览器访问80端口
发现是一个登陆页面,使用dirb工具扫描网站的目录
扫描出来的东西很多,使用浏览器访问一下目录,没有什么有用的信息,查看一下首页的源代码,也没有什么有用的信息,一时间没有什么思路,在页面上看到是"qdPM9.2"框架,查看一下kali上有没有这个框架的漏洞
将这两个文件下载到家目录
发现有两个,看一下这两个漏洞的介绍
50854.txt是一个CSRF(跨站请求伪造)漏洞,50176.txt是一个数据库的漏洞,想到扫描端口发现了3306端口(mysql数据库的默认端口号),猜测使用50176.txt这个文件介绍的漏洞,尝试使用wget去下载靶机上的databases.yml文件
下载成功,查看文件内容
发现mysql的用户名和密码,使用用户名(qdpmadmin)和密码(UcVQCMQk2STVeS6J)登陆靶机上的mysql数据库
登陆成功使用show databases;查看数据库
分别查看qdpm staff sys三个数据库里面的数据,发现staff里面放着登陆的用户名和密码,先使用"use staff;"命令使用staff数据库,然后使用"show tables;"命令查看数据库中的表
使用"select * from login;"和"select * from user;"查看login表和user表里的的字段值
猜测user表里面是用户名,login表里面是密码,但是密码被base64编码了,需要解码一下,我这里使用echo "c3VSSkFkR3dMcDhkeTNyRg==" | base64 -d
命令进行base64解码
使用vim命令,将解码后的字符串放到passwd.txt里面,将user表里的用户名放到users.txt里面
利用hydra工具爆破用户名和密码(在这里爆破的是ssh协议,因为使用nmap扫描到了22号端口)
发现没有找的用户名和密码,很是无奈,卡住了,,后来仔细检查了密码和用户名并试了好多次都失败,后来发现用户名的首字母是大写,将用户名的首字母改成小写试了一下结果成功了
找的了两个用户,先用travis用户连接靶机(这里使用ssh连接)
连接成功,使用ls和cat命令查看文件
然后退出,使用dexter用户名连接靶机
使用ls和cat命令查看文件
这里需要提取,文件内容给了提示,需要使用suid提权,使用find命令找一下suid文件
发现有一个文件名是get_access文件名的文件比较可疑,使用strings命令查看一下
发现了"system"和"cat /root/system.info"两个字符串,猜测是使用root权限执行了cat命令,可以使用python3 -m http.server 8081命令,将这个文件下载到本地,使用ida查看一下,来确定是不是执行了cat /root/system.info命令,首先进入到/opt目录下,开启临时http服务
使用wget命令下载
放到ida里面进行查看
发现猜想是正确的,以root权限执行了cat命令,现在可以创建一个cat可执行文件,里面写/bin/bash,赋给cat执行的权限,并配置环境变量,当get_access程序执行到cat命令的时候就会执行伪造的cat程序,从而得到root权限
进入root目录,查看root.txt文件,这里我使用的是tac命令查看的root.txt文件,因为使用cat命令,会直接执行我们伪造的cat程序,所有我使用的是tac命令,也可以将我们伪造的cat程序删除,就可以使用cat命令执行了
实验结束