AD線下主辦方防攪屎之Linux權限記錄


Linux權限設置三部曲:
1、chmod
2、chattr
3、setfacl

簡單介紹

前面僅是鋪墊,可省略

1、chmod 750 test
-rwxr-x--- 1 root l3m0n 4 Sep 1 01:15 test*
其中文件所屬者為root,權限為7(rwx)
用戶組為l3m0n,權限為5(r-x)
其他用戶的權限為0(---)

這是我在初學的時候經常弄混的兩個問題,本質還是沒有徹底理解文件和目錄的rwx權限存在哪些差異。
a、文件是否能被刪除看的是什么權限?
曾天真以為文件具有w就是能夠刪除這個文件,但事實上文件的w只是能夠編輯、新增、或者修改文件內容,是不包含刪除文件的
真正的應該是目錄的w權限,因為它表示你具有更改目錄結構列表的權限,所以你能夠進行增刪改查
其中刪除,是不管你的在這個目錄下的文件權限是什么,只要目錄有w權限,都可以刪掉。

b、滲透過程中,經常遇到我不能cd進某個目錄,但是我能夠獲取目錄下面的文件列表。
目錄的x權限是表示用戶能否進入該目錄成為工作目錄的,也就是是否能夠切換(cd)到目錄下,沒有x權限,目錄下的二級目錄也是無法訪問的.
目錄的r權限是表示讀取目錄結構列表的權限,可以通過ls列取目錄文件,但是具體權限信息獲取不到,只能獲取到文件名

2、chattr
經常使用它來保護文件不被修改,chattr +i aaaa,即使root用戶也不行。

3、setfacl
在多用戶多組對情況下,文件acl是對文件權限可以做更加精准的控制
a、查看系統是否支持acl

dumpe2fs -h /dev/sda1

可以看到是支持acl的

b、getfacl、setfacl
-m 設置acl
-b 刪除所有acl參數設置

acltest開始是一個640的文件,l3m0n這個用戶是不能讀取這個文件內容的,現在通過
setfacl -m u:l3m0n:rx acltest
將文件獨特的設置l3m0n用戶是有rx權限的,也可以仔細觀察到權限后面多出了一個+
然后使用getfacl acltest
可以看到user::rw-,這個表示的是文件所屬者(root)的權限
第二個user:l3m0n:r-x,則是針對l3m0n這個用戶設置的權限

這時候可以看到即其他是無權限的,但是l3m0n用戶還是可以讀取文件的。

類似的還可以設置某個組的權限,比如set -m g:l3m0n:rx acltest
還有一個mask的設置,用戶或組設置權限在mask范圍時候會生效,最終取的是mask和當前用戶權限的交集

還有一個問題就是acl是沒有子目錄繼承的,
如果需要,則需要這樣設置,前面加上d
setfacl -m d:[ug]:用戶|用戶組:[rwx]


找一個實際的場景來搭建一下,自己比較熟悉的就是線下AD攻防賽的環境搭建。
因為一般分為web和pwn,在資源短缺的情況下,需要將兩個環境搭建在一台服務器上面。
一般的web權限為apache、pwn權限為pwn
另外需要一個賬號登錄SSH,權限為gamebox

這里面牽涉的幾個重要的需求。
1、web、pwn權限是不能串的,不然就是pwn打進來直接弄web
2、gamebox需要對pwn和web都可以進行管理
3、gamebox對web目錄進行文件覆蓋的時候,會導致權限錯亂

前面兩個問題好解決,使用chmod、chown配置好組或者使用acl控制單獨用戶權限就Ok

wwwroot設置(防止pwn、www可寫)
chown root:root wwwroot
chmod 775 wwwroot
web目錄:
chown root:web -R web
chmod 770 -R web

麻煩的是第三個問題。也是為了增強趣味性,給選手發揮空間,一些權限不想控制的太死。apache用戶進來能夠對文件操控,gamebox當然也需要
但是防御方(gamebox)把web文件刪除,重新上傳再覆蓋一次,這時候web目錄下的文件權限全成為gamebox啦。導致服務很容易掛掉

可以利用有效用戶組來解決這個問題,
groups,查看當前用戶有哪些用戶組,比如gamebox,是屬於gamebox和web組
newgrp web,這樣gamebox新建文件、目錄時候的用戶組都是為web了。這時候的權限就是gamebox:web


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM