您好,登錄后才能下訂單哦!
這篇文章主要介紹“Windows權限維持技巧之怎么使用隱藏服務”,在日常操作中,相信很多人在Windows權限維持技巧之怎么使用隱藏服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Windows權限維持技巧之怎么使用隱藏服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
將后門注冊為windows自啟動服務是常見的后門維持手法,使用命令sc或者powershell命令都可以將自己的后門程序注冊為自啟動服務。
使用sc命令將后門程序注冊為自啟動服務,并以LocalSystem的身份運行:
手動啟動服務或重啟計算機,后門執行。雖然手動執行時提示啟動失敗,但實際上后門已經成功執行:
msf成功建立新會話,查看權限為system
雖然成功實現了服務自啟動,但是這個權限維持的方法很容易被檢測。因為創建新的服務后可以檢索到這個服務,如果防御者看到名字不熟悉的服務就會懷疑這是惡意的服務。通過sc命令或者get-service命令可以查看該服務的信息。
使用sc查看指定名字的服務信息狀態:
或使用sc命令查看服務的配置信息,后門文件直接保留:
使用powershell中的get-service 也可以查看服務信息
為了不被防御者發現用于權限維持的服務,可以考慮將服務隱藏。Joshua Wright提供了一種方法,通過SDDL(安全描述符語言)修改服務的安全描述符,文章附在文末的參考文獻中。Windows系統中服務和文件一樣,都使用了安全描述符(SD)配置該安全對象對于哪些訪問對象都允許哪些權限。
Joshua Wright提供的方法使用sc 命令的sdset模塊可以修改服務的安全描述符,命令如下:
sc.exe sdset test "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
再次使用get-service命令查看服務信息,服務不存在
使用sc.exe查看服務信息拒絕訪問
使用sc.exe查詢所有服務信息并過濾名為“test”的服務,結果為空
Windows服務支持使用安全描述符定義語言(Security Descriptor Definition Language | SDDL)控制服務權限的功能。通過修改SDDL可以修改對象(文件或者服務)的DACL(自主訪問控制列表),從而修改用戶對對象的訪問控制。通過對服務的SDDL進行編輯,拒絕所有用戶對該服務的讀取權限,即實現服務隱藏的效果。
SDDL語法:
符號描述 O: - Owner G: - Primary Group D: - Discretionary ACL (DACL) S: - System ACL (SACL) ACE 類型描述 A: - Access Allowed D: - Access Denied OA: - Object Access Allowed OD: - Object Access Denied AU: - System Auidt AL: - System Alarm OU: - System Object Audit OL: - System Object Alarm ML: - System MAndatory Label 服務相關符號權限 CC:- 服務配置查詢 LC: - 服務狀態查詢 SW: - SERVICE_ENUMERATE_DEPENDENTS RP: - 服務啟動 WP: - 服務停止 DT: - 服務暫停 DC: - 服務配置更改 SD: - 刪除 繼承標志位 OI:- 表示該ACE可以被子對象繼承 CI:- 表示該ACE可以被子容器繼承 IO:- 僅作用于子對象 NP:- 僅被直接子容器繼承,不繼續向下繼承 對象 "IU":- 交互登陸用戶 "AU":- 認證用戶 "SU":- 服務登陸用戶 格式(允許/拒絕;繼承;權限列表;;對象)
使用powershell 命令查看文件夾的SSDL:
get-acl [c:\windows] | fl
那么分析之前隱藏服務的命令,隱藏服務主要用到的SDDL為:
D:(D;;DCLCWPDTSD;;;IU) //拒絕交互登陸用戶的服務配置、查詢、狀態查詢、暫停和刪除權限 (D;;DCLCWPDTSD;;;SU) //拒絕登陸用戶的服務配置、查詢、狀態查詢、暫停和刪除權限 (D;;DCLCWPDTSD;;;BA) //拒絕認證用戶的服務配置、查詢、狀態查詢、暫停和刪除權限
在了解了原理之后,發現實際隱藏服務的操作實際是修改服務權限,使服務對所有用戶的查詢等權限拒絕。
在【組策略管理編輯器->計算機配置->策略->Windows配置->安全設置->系統服務】中同樣可以修改服務的權限
通過組策略編輯器取消所有用戶對服務DHCP Client 服務的讀取權限
使用get-service 查看DHCP Client 查看該服務,發現服務不存在
在通過本文的方法隱藏后,下列方法都無法查詢到服務的信息
PS C:\WINDOWS\system32> Get-Service | Select-Object Name | Select-String -Pattern 'test' PS C:\WINDOWS\system32> Get-WmiObject Win32_Service | Select-String -Pattern 'test' PS C:\WINDOWS\system32>sc.exe query | Select-String -Pattern 'test'
如果事先知道服務的名稱并擁有服務停止權限,使用Get-Service停止服務會提示無法打開
如果服務不存在,則停止服務時會提示服務不存在
或使用sc查詢服務信息,會提示沒有權限
但是使用sc查詢服務配置信息可以查到,因為沒有拒絕用戶的服務配置查詢權限
上述方法還拒絕了停止權限,因此無法停止,但依然會提示與服務相關的信息
所以為了更好的隱藏服務信息,可以對上述方法的SDDL進行更改,增加查詢服務配置信息拒絕項(CC):
sc.exe sdset test "D:(D;;DCLCWPDTSDCC;;;IU)(D;;DCLCWPDTSDCC;;;SU)(D;;DCLCWPDTSDCC;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
通過刪除拒絕相關的SDDL語句,即可讓服務正常被查詢
& $env:SystemRoot\System32\sc.exe sdset auto_calc "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
到此,關于“Windows權限維持技巧之怎么使用隱藏服務”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。