iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0

出於書本 Chapter 11. Linux

NFS

NFS 攻擊

網路檔案系統 (Network File System) 是用來從本地端掛載遠端檔案系統。由於遠端存取的這項天生特性,的確也有可能就這樣分享給駭客。架設 NFS 的時,若將主要的設定欓 /etc/exports 裡的內容設定成 整個世界 都能讀取 整座檔案系統 ,例如在 /etc/exports 裡設定

# 汗
/    rw

對駭客來說,很容易就獲得遠端存取的權限,並且對系統做操作。

當然啦!除了設定欓之外,下面的條件都符合才會遭成威脅:

  • NFS 的服務 (nfsd) 必須啟動,且透過 portmap 服務綁定 NFS 給 RPC
  • 防火牆必須要允許 NFS 流量通過
  • 被允許進入伺服器中執行 NFS 服務的遠端系統,必須被列在 /etc/hosts.allow 檔案裡

遠端掛載的東西很容易因為誤解而被設置錯誤,進而讓有心人士獲得遠端存取的能力。

因應 NFS 攻擊的方式

  • 不需要 NFS 的話,關掉它
  • 如果需要 NFS 的話
    • 在防火牆做 NFS 相關 port (例如:111, 2049,等等) 的設定
    • 確定 /etc/exports/etc/hosts.allow 都有妥善被設定

檔案權限 (File Permissions)

在 Linux 中,透過設定檔案特殊的類型,來允許程式以檔案擁有者的權限執行:

SetUID ( 用於使用者 ID)
SetGID ( 用於 group ID)

查看檔案是否有 setuid 及 setgid 權限可以使用 ls [1] ,像是

https://ithelp.ithome.com.tw/upload/images/20211007/201411845N48bTMKmB.png

其中 -rws 的小寫 s 就代表有 setuid 權限,如果看到大寫 S 則代表有 setgid 權限。這樣描述起來很危險,但像是上圖舉例的 passwd 就確實需要 setuid 來解決。

檔案權限攻擊

一旦有惡意檔案是使用 root 權限來執行,是很容易被隱藏的。駭客或惡意使用者能夠編寫帶有 setuidsetgid 程式破壞系統。

因應檔案權限攻擊的方式

  • 手動測試
# 找出有設定成 setuid 類型的檔案
find / -perm -4000 -print 
# 找出有設定成 setgid 類型的檔案
find / -perm -2000 -print
# 找出能被任何人讀取的檔案
find / -perm -2 type f -print
# 找出隱藏檔案
find / -name ".*"
  • 自動測試
    • 使用類似 change-detection 的稽核用程式,當這些被設定有 setuid 或 setgid 的檔案被修改時要能發出告警。

飛快告別這本書的第四個部分,明天將進入第五個部分 Hacking Application ,從網站與應用程式的攻擊研讀起~

[1] Linux 設定 setuid 及 setgid 權限


上一篇
Day 21 - Linux 與服務相關的攻擊
下一篇
Day 23 - 網站與網路應用程式攻擊
系列文
讓 Hacking for Dummies 一書陪我 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言