mysql离线本地解析密码

前言

有些时候我们做渗透并不是一定要进到内网,拿到域控,进而拿下一整个域内的机器,一是不可能每次运气都那么好,能够通过一些exp批量扫得一些机子,二是在打内网的过程中会有许多不同的情况,导致会花费大量的时间

有些时候渗透的目标可能就是某个网站的数据库内的用户信息,所以拿到用户信息就相当于工作完成了一大半,没有必要所有都继续往内网渗透,这时候就相当于只要拿到数据库内的数据,这次渗透就十分成功

而这篇文章就是介绍如何在已经拿到一台有数据库的机器,但是不知道他数据库密码的情况下,通过离线本地解析,获取机器的数据库密码

正文

因为物理机上安装得有phpstudy,所以将物理机作为被攻击机,虚拟机作为攻击机

即:攻击机 win2008r2 (虚拟机)

  被攻击机 win10 (本机)

攻击机安装MySQL Server 5.0,有些5.0.x版本只支持32位系统,找支持x64或者64-bit的zip安装即可

安装程序就随便放几张图吧,跟着默认设置走就行,密码设置的地方记住即可

这里假设我已经拿到了目标机的shell,能够对他文件夹下的所有文件进行下载和上传操作

进入MYSQL\data\mysql目录

找到目录下的 user.frm ,user.MYD ,user.MYI文件下载到本机上

这里假装我已经从目标机上拿到了user.frm ,user.MYD ,user.MYI文件放到了我本机的mysql\data\mysql目录下

然后打开mysql目录下的my.ini文件,在mysqld模块下加上一行

skip-grant-tables

这里解释一下这条命令:登录的时候不启动grant-tables这个表,这个地方是授权表,相当于mysql每次登陆的时候都会跟这个授权表比对之后才能够登陆成功,skip这个表达到绕过的效果

多提一句,如果mysql的密码忘记了也可以用这个命令直接进mysql,但是可能会遇到一些报错

进入cmd,输入如下语句查看:

select user,password,host from mysql.user;

成功拿到密码hash

到本机上看下密码hash,是一样的,证明离线解析成功

相关推荐
Rain的Java大神之路2 分钟前
[特殊字符]8年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·数据库·人工智能·后端·python·spring·ai编程
高级程序源16 分钟前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
码途行者32 分钟前
缓存一致性难题:Redis 和数据库如何做到数据一致?
数据库·redis
对讲机数码科普34 分钟前
从电路原理到协议栈:模拟对讲机与数字对讲机的技术内核拆解
运维·网络·架构·软件工程
SelectDB34 分钟前
Doris VARIANT 速查:类型映射、建表写法、索引配置与常见注意点
大数据·数据库·数据分析
l1t1 小时前
几种数据库软件count(distinct)和count()from group by子查询性能测试
开发语言·数据库
夜雪一千1 小时前
如何在MySQL中实现字段级加密
android·数据库·mysql
夜雪一千1 小时前
MySQL 如何存储经纬度坐标:选型、建表、空间查询实战
android·mysql·adb
CJi0NG1 小时前
【自用】MySQL-存储引擎
数据库·mysql
我送炭你添花1 小时前
ASA原理与电子维修实战:前言 一路修来,一路学习
运维·网络·学习