久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 全面深入探究Shift后門

全面深入探究Shift后門

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-22 21:06:47 1700658407

一、Shift后門的概念

Shift后門是一種可以替換原有的sudo命令的后門,在裸機或虛擬機環(huán)境下完美工作。它可以通過惡意代碼篡改系統(tǒng)的輸入輸出,從而達到竊取密碼或者執(zhí)行其他危險的操作。

Shift后門的工作原理是在用戶執(zhí)行sudo命令時,自動按順序調用系統(tǒng)中的sudo、/usr/bin/whoami、/usr/bin/time和/bin/sh這幾個程序。而Shift后門則依靠惡意代碼將這幾個程序后門化,以達到實現任意命令的目的。

然而,這種后門的特點是完全不會影響sudo命令的正常功能,因此不容易被察覺和發(fā)現,具有很高的欺騙性。

二、Shift后門的實現方式

Shift后門通常需要在系統(tǒng)執(zhí)行sudo命令時自動調用。這也是它被稱為"Shift"的原因,因為這個單詞在鍵盤上按下時,可以得到"sudo"的字母順序。

實現Shift后門的方式通常有兩種:

1. 編譯好的程序

針對特定的操作系統(tǒng)和版本,惡意攻擊者編譯出后門程序,并且將其拷貝到合適的位置。這種方式常常需要root權限才能實現,因此很難被正常的用戶察覺到。

在實際操作中,攻擊者可以先通過其他漏洞獲取root權限,然后再執(zhí)行這個惡意程序。

2. 內核模塊

內核模塊是類似插件的一種機制。攻擊者可以針對特定的內核版本編寫一個后門內核模塊,然后配合其他工具將其插入到被攻擊目標的系統(tǒng)中。這種方式可以避免文件被殺毒軟件查殺,從而提高攻擊者的成功率。

三、Shift后門的攻擊效果

Shift后門的攻擊效果非常顯著,它可以竊取用戶輸入的密碼,實現遠程控制等危險操作。

1. 竊取密碼

Shift后門利用惡意代碼篡改用戶輸入的密碼,從而達到竊取密碼的目的。通常情況下,用戶輸入的密碼會在后門中被記錄下來,然后傳回到攻擊者的服務器上。攻擊者可以通過解密得到明文密碼,并且利用這些密碼完成其他的攻擊。

2. 實現遠程控制

Shift后門在竊取密碼的同時,還能夠執(zhí)行其他惡意代碼。攻擊者可以通過這個后門直接遠程操控被攻擊目標的系統(tǒng),進行各種危險操作。

四、Shift后門的防御方式

針對Shift后門的攻擊,有以下幾種防御方式:

1. 更新系統(tǒng)和軟件

攻擊者通常會利用系統(tǒng)或軟件中的漏洞來實現Shift后門的攻擊。因此,及時更新系統(tǒng)和軟件版本是最有效的防御方式之一。

2. 安裝殺毒軟件

殺毒軟件有很強的偵測能力,可以防御很多常見的惡意程序和后門。安裝殺毒軟件并定期對系統(tǒng)進行全盤掃描,可以及時發(fā)現系統(tǒng)中的異常情況。

3. 配置sudo

在sudo的配置文件中,可以設置只允許授權用戶以某種方式執(zhí)行sudo命令。這樣可以避免未知來源的后門利用sudo命令執(zhí)行任意命令。

4. 監(jiān)控系統(tǒng)日志

及時監(jiān)控系統(tǒng)日志,可以發(fā)現系統(tǒng)中的異常情況。如果發(fā)現sudo命令經常被執(zhí)行,但是日志中沒有對應的用戶信息,那么很可能是被插入了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后門實現例子,它在用戶執(zhí)行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()

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取

上一篇

RxJsSubject詳解

下一篇

解析dict_values
相關推薦HOT