信息安全 學習筆記(3)—— 后門(Backdoor+rootkit)


Rootkit的作用是:隱藏信息 

rootkit一般和后門backdoor配合着使用,一前一后

通常,攻擊者通過遠程攻擊獲得root訪問權限(譬如密碼猜測、破解、緩沖區溢出、0-day漏洞),然后安裝后門,便於之后回訪,安裝rootkit,隱藏蹤跡,收集信息,便於長期回訪以及獲得對其他系統的訪問權限。

短暫的root權限+backdoor+rootkit==>長期的root權限

 

后門 Backdoor

后門程序一般指繞過安全性控制而獲取對程序或系統訪問權的方法。在軟件的開發階段,程序員常常會在軟件內創建后門程序以便可以修改程序設計中的缺陷。后門的例子很多,譬如在權限檢查中,如果把uid==0,寫成了uid=0,而該程序恰巧又有root權限,那么就相當於把用戶提權了。

程序實質是socket編程,在被攻擊者的主機運行這段代碼,就可以打開一個預設端口,在這個端口上,如果攻擊者輸入正確的密碼,那么后門進程用exec函數打開一個shell來代替本子進程,並將本進程的標准輸入、輸出、出錯文件描述符重定向到該套接字上,這樣就實現了攻擊方遠程得到了受害方的一個shell。同時,在代碼中,使用了賦值操作:setuid=0,這樣,這個進程的所有者的權限就是root。

 

setuid==>Linux權限管理:

在Linux系統中,所有的操作實質都是在進行進程訪問文件的操作。(Linux一切皆文件)

訪問文件需要進行權限判斷,如果進程有相應的訪問權限,則訪問成功。否則,訪問失敗【出現消息Permission Denied】。訪問權限的判斷是通過Linux系統中的安全模型來實現的。

文件訪問權限:

  1. 對文件的讀寫權限決定我們是否能夠打開和讀寫該文件;
  2. 為了在目錄中創建新文件,需要對該目錄有寫和執行權限;
  3. 為了刪除目錄中的文件,需要對目錄有寫和執行權限,但是對文件本身不需要具有讀寫權限;

進程每次打開、創建或者刪除文件時,內核進行文件訪問權限測試,這種測試涉及文件的所有者,進程的有效ID(effective-ID)。(rid:real-ID真實ID)

文件訪問權限測試,基本規則是:

  1. 如進程的有效ID是0, 則允許訪問;
  2. 如果進程的有效ID等於文件的所有者ID,那么如果設置了文件的所有者權限位,則允許訪問。
  3. 如果進程的有效組ID是文件的組ID,則根據組權限判斷。
  4. 如果設置了其它用戶的訪問權限,則根據其它用戶訪問權限進行判斷。

drwxrwxr-x  d表示directory,文件夾默認權限775

-rw-rw-r--  -表示是文件,文件默認權限664

 

 /usr/bin/passwd:4755==》紅字,無法訪問(此時eid不等於rid) 

           chmod改成 755 ==》綠字,可以訪問

47==>rws    7==>rwx

 

 引入了真實UID(real UID)、有效UID(effective UID)以及 保存的UID(saved set-user-ID)的概念。

  1. rid實際用戶ID和實際組ID標示我們實際上是誰;這兩個字段是在登錄時讀取口令文件中的登錄項。一般情況下,在一個會話期間,實際用戶和實際組用戶不會改變;但超級用戶的進程可能改變它們。
  2. eid有效用戶ID,有效組ID以及附加組ID決定了文件訪問權限
  3. 保存的設置用戶ID在執行程序時包含了有效用戶ID的副本。

通過查看/etc/passwd可以知道,在內核中,是通過一個整數ID來代表用戶名的。Root作為特權用戶,UID=0;新注冊用戶一般是1000開始。使用getuid()和geteuid()可以獲得當前進程的真實ID和有效ID。

 

 


setuid和seteuid

 


  

2020.6.15課:

 

 

 su: 重新啟動一個shell,並將該shell進程的uid設置為相應用戶的uid

不是誰都能setuid(0)的。為了設置setuid(0),自己首先得有sudo權限。

 

 

 

效果如下:

這里應該不是root,而是others。因為每次rid都改不了:

第二次seteuid 1001的時候,失敗,要重置到0(saved user ID,第二個條件滿足:),才能再次修改。

 

chmod 7755,或者1755。

如果一個文件夾是公共文件夾,那么它的權限可能是777,也即所有人可讀寫執行。所有人都可以在這個目錄下創建自己的文件,但同時,任何人也可以刪除其他人創建的文件,雖然不能寫。

為了防止在公共文件夾下刪除他人的文件,可以對文件夾設置sticky位。Chmod 1777來設置。

1777用戶只能刪除自己的文件。


 

rootkit(2)

實驗3:netstat篡改一下代碼

查看惡意攻擊:

  • ls   查看目錄下惡意程序
  • ps   查看惡意進程
  • netstat   網絡連接/端口

 

rootkit本身的發展過程:應用級->內核級->硬件級。早期的rootkit主要為應用級rootkit,應用級rootkit主要通過替換login、ps、ls、netstat等系統工具,或修改.rhosts等系統配置文件等實現隱藏及后門;硬件級rootkit主要指bios rootkit,可以在系統加載前獲得控制權,通過向磁盤中寫入文件,再由引導程序加載該文件重新獲得控制權,也可以采用虛擬機技術,使整個操作系統運行在rootkit掌握之中;目前最常見的rootkit是內核級rootkit也是我們討論的重點。

 

 

 


 rootkit(3) 

VFS(虛擬文件系統)

Linux中,一切皆文件。現在一般使用 Ext4 文件系統。

FAT(File Allocation Table文件分配表):FAT占用內存過多,難以管理較大的硬盤存儲。

  

 

 

 


免責聲明!

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



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