一、Shift後門的概念
Shift後門是一種可以替換原有的sudo命令的後門,在裸機或虛擬機環境下完美工作。它可以通過惡意代碼篡改系統的輸入輸出,從而達到竊取密碼或者執行其他危險的操作。
Shift後門的工作原理是在用戶執行sudo命令時,自動按順序調用系統中的sudo、/usr/bin/whoami、/usr/bin/time和/bin/sh這幾個程序。而Shift後門則依靠惡意代碼將這幾個程序後門化,以達到實現任意命令的目的。
然而,這種後門的特點是完全不會影響sudo命令的正常功能,因此不容易被察覺和發現,具有很高的欺騙性。
二、Shift後門的實現方式
Shift後門通常需要在系統執行sudo命令時自動調用。這也是它被稱為”Shift”的原因,因為這個單詞在鍵盤上按下時,可以得到”sudo”的字母順序。
實現Shift後門的方式通常有兩種:
1. 編譯好的程序
針對特定的操作系統和版本,惡意攻擊者編譯出後門程序,並且將其拷貝到合適的位置。這種方式常常需要root權限才能實現,因此很難被正常的用戶察覺到。
在實際操作中,攻擊者可以先通過其他漏洞獲取root權限,然後再執行這個惡意程序。
2. 內核模塊
內核模塊是類似插件的一種機制。攻擊者可以針對特定的內核版本編寫一個後門內核模塊,然後配合其他工具將其插入到被攻擊目標的系統中。這種方式可以避免文件被殺毒軟件查殺,從而提高攻擊者的成功率。
三、Shift後門的攻擊效果
Shift後門的攻擊效果非常顯著,它可以竊取用戶輸入的密碼,實現遠程控制等危險操作。
1. 竊取密碼
Shift後門利用惡意代碼篡改用戶輸入的密碼,從而達到竊取密碼的目的。通常情況下,用戶輸入的密碼會在後門中被記錄下來,然後傳回到攻擊者的服務器上。攻擊者可以通過解密得到明文密碼,並且利用這些密碼完成其他的攻擊。
2. 實現遠程控制
Shift後門在竊取密碼的同時,還能夠執行其他惡意代碼。攻擊者可以通過這個後門直接遠程操控被攻擊目標的系統,進行各種危險操作。
四、Shift後門的防禦方式
針對Shift後門的攻擊,有以下幾種防禦方式:
1. 更新系統和軟件
攻擊者通常會利用系統或軟件中的漏洞來實現Shift後門的攻擊。因此,及時更新系統和軟件版本是最有效的防禦方式之一。
2. 安裝殺毒軟件
殺毒軟件有很強的偵測能力,可以防禦很多常見的惡意程序和後門。安裝殺毒軟件並定期對系統進行全盤掃描,可以及時發現系統中的異常情況。
3. 配置sudo
在sudo的配置文件中,可以設置只允許授權用戶以某種方式執行sudo命令。這樣可以避免未知來源的後門利用sudo命令執行任意命令。
4. 監控系統日誌
及時監控系統日誌,可以發現系統中的異常情況。如果發現sudo命令經常被執行,但是日誌中沒有對應的用戶信息,那麼很可能是被插入了Shift後門。
五、Shift後門示例代碼
#!/bin/bash sudo(){ /usr/bin/sudo "$@" if [ $? -ne 0 ]; then echo "[sudo] password for $USER: " read -s password echo "$password" | python shift.py /usr/bin/sudo "$@" fi }
上述代碼是一個簡單的Shift後門實現例子,它在用戶執行sudo命令時,自動調用Python腳本,並將用戶輸入的密碼作為參數傳遞下去。對應的Python腳本如下:
import sys import os SHELL_PATH = "/bin/bash" def main(): if len(sys.argv) <= 1: sys.exit(1) password = sys.argv[1] os.system("%s -c 'echo \"%s\" | /usr/bin/sudo -S /usr/bin/whoami'" % (SHELL_PATH, password)) os.system("%s -c 'echo \"%s\" | /usr/bin/sudo -S /usr/bin/time'" % (SHELL_PATH, password)) os.system("%s -c 'echo \"%s\" | /usr/bin/sudo -S /bin/sh'" % (SHELL_PATH, password)) if __name__ == '__main__': main()
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/282642.html