SuperAPI AI 工具集

postgresql-attack

安全与审计

查看项目

更新于 10-16 04:42

技能介绍

PostgreSQL 渗透测试与利用技能,用于在发现目标开放 5432 端口、PostgreSQL 允许远程连接、需要从数据库提取数据或实现命令执行时开展安全测试。PostgreSQL 默认监听 5432 端口,功能强大的 SQL 引擎配合丰富的系统函数和扩展机制,一旦获得连接权限,从文件读写到操作系统命令执行仅需几条 SQL。

一、用途 该技能围绕 PostgreSQL 的渗透测试与利用展开,覆盖从服务发现、认证检测、权限判断到命令执行、文件操作、数据提取和权限提升的完整流程,并包含针对 PostgreSQL 的 SQL 注入变体速查。

二、主要能力

  1. 服务发现:使用 Nmap 进行版本探测(nmap -sV -p 5432 TARGET)与 pgsql-brute 脚本扫描,并通过 psql 手动测试连通性,根据返回信息判断连接状态(已连接、no pg_hba.conf entry、password authentication failed、连接超时)。
  2. 认证检测:识别 pg_hba.conf 常见认证方式(trust、md5、scram、peer),尝试默认凭据组合,并使用 Hydra、Nmap、Medusa、Metasploit 进行暴力破解。
  3. 攻击决策树:根据当前权限(SUPERUSER 或普通用户)与 SQL 注入场景,选择对应的利用路径。
  4. RCE 与文件操作:COPY TO PROGRAM 命令执行(含反弹 Shell、写入 webshell)、pg_read_file / pg_read_binary_file 文件读取、COPY FROM/TO 文件读写、Large Object 二进制文件读写、plpython3u / plperlu 创建函数执行命令、dblink 内网横向移动。
  5. 数据提取:数据库枚举(列出数据库、表、Schema、角色,搜索敏感表名与列名)、凭据提取(pg_authid、pg_shadow 中的密码哈希)、数据导出(pg_dump、pg_dumpall、COPY 导出 CSV)。
  6. 权限提升:检查当前权限与特权组成员,通过 CREATEROLE 授予 pg_execute_server_program / pg_read_server_files / pg_write_server_files,修改 pg_hba.conf 为 trust 认证,或使用 ALTER ROLE、CREATE ROLE 创建后门账户。
  7. SQL 注入速查:版本探测、当前用户、数据库列表、表列表、时间盲注(pg_sleep)、堆叠注入 + RCE、报错注入(CAST 类型转换)、布尔盲注。

三、使用方式 技能以 psql 命令行为主要操作入口,配合 Nmap、Hydra、Medusa、Metasploit、sqlmap 等工具。文档中给出各阶段的具体命令示例,包括连接测试、权限查询、扩展与语言查询、版本与数据目录查询、文件读写、命令执行、数据导出等。完整利用命令和 payload 需参考 references/attack-techniques.md。

四、适用场景 适用于已获得或尝试获得 PostgreSQL 连接权限的安全测试场景,包括未授权访问检测、数据库枚举与导出、用户凭据提取、SQL 注入利用、文件读取与写入、操作系统命令执行、内网横向移动与权限提升。

五、限制与注意事项 COPY TO PROGRAM 是 PostgreSQL 9.3+ 引入的,低版本不可用;pg_read_file 默认只能读取 data_directory 下的文件,SUPERUSER 可读任意路径;plpython3u / plperlu 中的 u 表示 untrusted(不受信任),仅 SUPERUSER 可创建;Large Object 操作需要在事务中执行,psql 默认自动提交需注意;PostgreSQL 日志会记录所有执行的 SQL,注意 log_statement 配置级别;pg_hba.conf 修改后需 SELECT pg_reload_conf(); 或重启生效;云托管 PostgreSQL(RDS/Cloud SQL)通常禁用 COPY TO PROGRAM 和文件系统访问。