欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

PostgreSQL渗透测试指南

来源:本站整理 作者:佚名 时间:2017-07-21 TAG: 我要投稿

一、前言
PostgreSQL是一个开源数据库,主要部署于Linux操作系统中。然而,PostgreSQL的兼容性非常好,可以兼容多个操作系统,也能在Windows及MacOS操作系统上运行。如果PostgreSQL数据库没有被正确配置,并且攻击者已经事先获取了凭证信息,那么他们就可以实施各类攻击行为,比如读写系统文件以及执行任意代码等。
我之所以写这篇文章,目的在于为渗透测试人员提供测试PostgreSQL数据库的具体方法。文章中用来演示的目标系统是Metasploitable 2,因为该系统包含许多漏洞,也存在配置不当问题。
二、服务探测及版本识别
PostgreSQL数据库的默认监听端口为5432。在端口扫描过程中,如果发现该端口开放,那么目标主机很有可能安装了PostgreSQL。

nmap -sV 192.168.100.11 -p 5432

图1. PostgreSQL:通过Nmap判断数据库版本
此外,Metasploit平台中也有一个模块可以用来识别PostgreSQL数据库以及具体的版本:
auxiliary/scanner/postgres/postgres_version

图2. PostgreSQL:通过Metasploit识别数据库版本
三、探测数据库凭证
在共享文件夹中发现包含数据库用户名及密码的配置文件并不稀奇,然而,如果目标没有犯下如此低级的失误,那么我们可以使用一个Metasploit模块暴力破解数据库凭证,如下图所示:

auxiliary/scanner/postgres/postgres_login

图3. PostgreSQL:暴力破解数据库凭证
探测数据库凭证是非常关键的一个步骤,如果没有掌握正确的凭证,我们很难突破目标主机,因为大多数攻击操作都需要访问数据库。
四、访问数据库
Kali Linux系统中默认包含了psql工具,在已知数据库用户名及密码的前提下,我们可以使用这个工具通过PostgreSQL数据的认证过程。命令如下:

psql -h 192.168.100.11 -U postgres

图4. PostgreSQL:访问数据库
一旦连接上数据库,我们应该执行如下操作:
1、枚举已有的数据库。
2、枚举数据库用户。
3、枚举数据库表。
4、读取表内容。
5、读取数据库密码。
6、导出数据库内容。
我们可以使用如下命令完成上述任务:
postgres-# \l
postgres-# \du
template1=# \dt
template1=# SELECT * FROM users;
postgres-# SELECT usename, passwd FROM pg_shadow;
pg_dump --host=192.168.100.11 --username=postgres --password --dbname=template1 --table='users' -f output_pgdump

图5. PostgreSQL:枚举已有的数据库

图6. PostgreSQL:枚举数据库用户

图7. PostgreSQL:枚举已有表

图8. PostgreSQL:读取表内容

图9. PostgreSQL:读取数据库密码

图10. PostgreSQL:导出数据库内容
我们也可以使用Metasploit完成上述部分任务。命令如下:
auxiliary/admin/postgres/postgres_sql
auxiliary/scanner/postgres/postgres_hashdump

图11. PostgreSQL:使用Metasploit枚举数据库

图12. 使用Metasploit读取Postgres服务器哈希

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载