
Amanhã às 12:00, horário de Moscou, será lançado um novo laboratório de testes de penetração, o Test Lab 12, que é uma cópia de uma rede corporativa real com suas vulnerabilidades e erros de configuração inerentes. O site do laboratório já registrou 25.000 participantes, incluindo os principais especialistas no campo da segurança da informação das maiores empresas russas e internacionais.
Abaixo estão informações sobre a composição do novo laboratório, exemplos de pesquisa e exploração de vulnerabilidades e material de treinamento.
A principal ênfase dos laboratórios está no realismo: a estrutura de TI é projetada por analogia com as redes corporativas das empresas, aproximando as ações dos invasores dos hackers reais. Os participantes que atuam como invasores tentam explorar as vulnerabilidades e, se bem-sucedidos, obtêm acesso a nós individuais do laboratório, cada um dos quais contém um token. O vencedor é o participante que primeiro coletou todos os tokens , ou seja, recebeu controle total sobre a rede corporativa virtual.
Todos, independentemente do nível de habilidade, podem testar as habilidades de teste de penetração em condições o mais próximas possível das reais, sem violar a lei.
O novo laboratório consistirá em uma rede de computadores distribuída, apresentada na forma de vários perímetros com diferentes níveis de complexidade de penetração. O primeiro perímetro (externo) é o mais fácil de "romper", então o progresso se tornará mais complicado. No setor mais complexo, colocamos vulnerabilidades, cuja exploração é difícil com um grande número de participantes. Essa abordagem nos permite resolver dois problemas ao mesmo tempo:
- permitir que todos avaliem suas habilidades em laboratório, mantendo seu realismo;
- eliminar uma situação em que, ao explorar certos tipos de vulnerabilidades ou ao realizar um ataque, os participantes interferem entre si.

Estrelou o filme no laboratório utilizado:
- Vários serviços de rede (Mail, DNS, AD e VPN, etc.), SIEM e DBMS;
- WebApp e API (PHP, Python, Django, Java);
- Aplicativos de desktop auto-escritos;
- Serviços de suporte adicionais para realismo.
Para passar no laboratório, você precisará de:
- habilidades de trabalho com vários protocolos de rede;
- a capacidade de analisar dados do sistema SIEM, configurar filtros de correlação e muito mais;
- experiência em engenharia reversa;
- Experiência na localização de vulnerabilidades em serviços de rede e aplicativos da web.
Teste de penetração em laboratório particular
Decidimos definir o cumprimento de várias tarefas do laboratório privado do passado, que foi desenvolvido neste verão para ajudar especialistas iniciantes a adquirir rapidamente competências básicas.
Todas as informações sobre a composição do laboratório (sistemas, usuários, etc.) são fictícias e servem apenas para criar sua imagem realista.
As técnicas de teste de penetração descritas no artigo são de natureza educacional. Não quebre a lei.
Toda a estrutura da organização fictícia "UNIONSEC", composta por 15 servidores, estava localizada atrás do gateway 192.168.102.10, acessível após o estabelecimento da conexão VPN. Os participantes tiveram a tarefa de comprometer a rede corporativa do laboratório. O resultado da operação de cada uma das vulnerabilidades foi um token, que teve que ser transmitido através do formulário na página
lab.pentestit.ru .

O laboratório foi atacado por 7 equipes de dois participantes, mas ninguém foi capaz de comprometer toda a rede. No entanto, algumas equipes mostraram um resultado decente.

O trabalho no laboratório exigia experiência com várias ferramentas e habilidades na realização de testes de penetração.Além disso, algumas tarefas não poderiam ser concluídas sem o conhecimento no campo do desenvolvimento e engenharia reversa. Dado o tempo limitado que foi concedido aos participantes para concluir tarefas, concluir quase metade das tarefas, em nossa opinião, é um resultado digno.
Inteligência
Usando o utilitário nmap, obtemos uma lista de portas abertas:
nmap 192.168.102.10 -sV

Site da empresa
No endereço
192.168.102.10 na seção "Entre em contato", vemos uma lista de endereços de e-mail:

De acordo com o código HTML do aplicativo, podemos assumir que ele usa o WordPress CMS e contém o plug-in wp-symposium-15.1.
Através do site
www.exploit-db.com, determinamos que o plug-in é vulnerável à injeção de SQL. Por meio do URI
192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=
", estamos tentando explorar a vulnerabilidade usando o script BASH:
Temos a lista de bancos de dados:
information_schema
wp_db
e depois de explorar a vulnerabilidade - o token:
wget -q -O- 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=* from token; --"

Mail
Enumeramos senhas usando hydra:
hydra smtp://192.168.101.10 -s 25 -L /tmp/emails -P /tmp/pass

Usando os dados recebidos, autorizamos a WUI do servidor de email e obtemos o token:

Openvpn
LigaçãoNo norte da web
http://192.168.102.10:88
carregamos o arquivo “openvpn.conf”. Depois de verificar o servidor (por exemplo, com o utilitário DirBuster), encontramos
.bash_history
:
-bash: generating new OpenVPN password for user admin: command not found
-bash: generating: command not found
-bash: date +%F: command not found
-bash: echo "admin:`date +%F | md5sum | sed -s 's/ -//'`" > /etc/openvpn/user.pass: command not found
cat /etc/openvpn/user.pass
service openvpn restart
exit
onde você pode encontrar o nome de usuário e o algoritmo de geração de senha. Para reproduzir a senha criada anteriormente, use a data exata em que o arquivo foi criado:

e realizar a conversão de acordo com o histórico das equipes. A senha resultante é usada para autenticação VPN.
Verificação do servidorApós conectar-se à VPN, verificaremos as portas do servidor:

Obtemos o token em
http://10.255.0.1:8080
:

TERMINAL
O servidor VPN nos envia vários roteamentos para redes internas, após a varredura, onde encontramos vários hosts com uma porta 22 aberta. Tentamos fazer login na conta de desenvolvedor. Após conectar-se a um dos servidores, encontramos a presença do diretório / home / support e tentamos selecionar uma senha para a conta com o mesmo nome:
patator ssh_login host=192.168.11.5 user=support password=FILE0 0=usr/share/wordlists/rockyou.txt -x ignore:fgrep='Authentication failed'

Depois de coletar a senha, obtemos o token localizado no diretório inicial:

Engenharia reversa
No servidor TERMINAL, conseguimos encontrar o
admin.bin
, cuja ação termina quando a senha é solicitada. Usando o inverso, obtemos a senha
fv34cm3cm
, que é um token. Quando você o digita, recebemos a
SSH PRIVATE KEY
.
A partir da chave privada, autenticamos no servidor
192.168.11.2
, no qual encontramos o arquivo
dump.pcap
no
dump.pcap
/opt/
. Analisamos o despejo de tráfego de rede do arquivo e extraímos o token, bem como a senha para autenticação BASIC no servidor da Web
192.168.11.3
:
tcpdump -r /tmp/dump.pcap -A | grep token

API
Em
192.168.11.3
, a API está localizada, acessível no PC do administrador. Usando a tradução de portas (por exemplo, através do SSH), iniciamos seu estudo.
Depois de explorar a vulnerabilidade descoberta na API, obtemos um token que faz parte da senha do usuário
admin
:

Um aplicativo da web está disponível em
http://172.16.0.4
, que está em desenvolvimento. No arquivo
readme.html
, obtemos uma lista de páginas desenvolvidas:

Ao abrir
http://172.16.0.4/availability.php
, obtemos um erro. Tentamos repetir a ação usando o parâmetro
REFERRER http://172.16.0.4/index.html
, após o qual o formulário com o botão
ping
fica disponível:

Depois de garantir que o campo de entrada não tenha filtragem, obtemos o token:

Estamos conectados via
SSH
ao servidor
172.16.0.1
. Após a autorização, somos recebidos por um script que solicita um código PIN (5 dígitos):

Usando um script auto-escrito de adivinhação de senha, obtemos acesso total ao console e localizamos o arquivo com o token na pasta do usuário:

De volta ao futuro
Para nos acostumarmos rapidamente ao 12º laboratório, preparamos uma pequena lista de materiais e ferramentas:
Vejo você no
"Laboratório de testes 12" e deixe a vitória mais forte!