数据库服务攻击方法论技能,面向渗透测试中数据库服务的识别与利用。数据库通常是内网渗透的核心跳板,因为几乎每个应用都有数据库后端,而数据库往往具备操作系统级能力。
用途 当目标环境中发现 Redis(6379)、MSSQL(1433)、PostgreSQL(5432)、MySQL(3306)、MongoDB(27017)、Oracle(1521) 等数据库端口时,可使用本技能指导后续的识别、检测与利用流程。任何涉及数据库攻击、数据库提权、数据库利用的场景都适用。
主要能力 技能按阶段组织攻击流程:
Phase 1 数据库识别:按端口与服务列出攻击优先级。6379 Redis 未授权概率高(三星);1433 MSSQL 可通过 xp_cmdshell 直接 RCE(三星);5432 PostgreSQL 命令执行能力强(二星);3306 MySQL 可 UDF 提权(二星);27017 MongoDB 未授权概率高(二星);1521 Oracle 利用复杂(一星)。
Phase 2 通用攻击流程:发现数据库端口后,依次尝试未授权访问(空密码/匿名)、弱口令爆破(默认账号加 top100)、已知漏洞利用;进入数据库后搜索敏感数据(用户表/配置表/flag)、尝试命令执行、尝试文件读写;最后进行操作系统提权。
Phase 3 快速未授权检测:提供各数据库的检测命令,包括 Redis 的 redis-cli -h TARGET ping(返回 PONG 即未授权)、MSSQL 使用 netexec mssql TARGET -u sa -p '' --local-auth 与 -p 'sa'、PostgreSQL 使用 psql -h TARGET -U postgres -w 测试空密码、MySQL 使用 mysql -h TARGET -u root --skip-password、MongoDB 使用 mongosh --host TARGET --eval "db.adminCommand('listDatabases')"。
Phase 4 弱口令爆破:使用 netexec 支持多种协议,如 netexec mssql TARGET -u userlist.txt -p passlist.txt --local-auth、netexec ssh TARGET -u userlist.txt -p passlist.txt。并列出常见默认账号:Redis 无认证或 requirepass 常为弱密码;MSSQL 为 sa/sa、sa/空、sa/123456;PostgreSQL 为 postgres/postgres、postgres/空;MySQL 为 root/root、root/空、root/123456;MongoDB 为 admin/admin 或无认证。
各数据库速查 Redis:未授权连接 redis-cli -h TARGET;信息收集使用 INFO server、CONFIG GET dir、CONFIG GET dbfilename。关键利用路径包括写 Webshell/SSH 密钥/Crontab、主从复制 RCE、Lua 沙箱逃逸。密码爆破、Cluster、Sentinel 详情见 references/redis-attack.md。
MSSQL:连接使用 impacket-mssqlclient DOMAIN/sa:PASSWORD@TARGET -windows-auth。关键利用路径包括 xp_cmdshell/OLE/Agent Job RCE、CLR Assembly 攻击、文件读写、NTLM Hash 窃取。信息收集与提权方法论见 references/mssql-attack.md。
MySQL:关键利用路径包括 UDF 提权与文件读写。
深入参考(必读) Redis 攻击(未授权/写文件/主从复制 RCE)见 references/redis-attack.md;MSSQL 攻击(xp_cmdshell/CLR/提权)见 references/mssql-attack.md;PostgreSQL 攻击(命令执行/文件读写/提权)见 references/postgresql-attack.md。
适用场景 适用于授权渗透测试与安全评估中,针对数据库服务的攻击面梳理、未授权检测、口令测试、漏洞利用与提权路径规划。
限制 本技能为攻击方法论,仅应在合法授权范围内使用。资料未提供具体工具的安装步骤、版本要求、各数据库漏洞的完整利用细节(部分指向 references 文档),也未提供收费、价格或平台信息。