Vitória na PHDays 9. Compartilhamos hacks em três partes. Parte 2

Olá pessoal! Meu nome é Vitaliy Malkin. Sou chefe do departamento de análise de segurança da Informzashchita e capitão em tempo parcial da equipe True0xA3. Há pouco mais de uma semana, vencemos uma das competições de maior prestígio de hackers brancos na CEI. No último artigo (se você perdeu, pode ler aqui ), falamos sobre a importância da preparação preliminar. Nisto - falarei sobre o que aconteceu diretamente nas próprias competições, explicarei por que às vezes é importante fazer ajustes nos planos existentes durante o jogo e por que, na minha opinião, nenhum dos escritórios protegidos foi invadido.

Primeiro dia


9:45 MSK
O dia começou com o fato de termos recebido os resultados do lançamento do MassScan-a. Começamos pelo fato de escrevermos imediatamente todos os hosts com uma porta 445 aberta e, exatamente às 10h00, lançamos o verificador metasplit pronto para MS17-010. Guiada pelo nosso plano, a tarefa número 1 era capturar o domínio do grande grupo, de modo que foi quebrado simultaneamente por duas pessoas de nossa equipe ao mesmo tempo. No diagrama abaixo, você pode ver a distribuição inicial dos membros da nossa equipe por escritório.

Como pode ser visto no diagrama, cobrimos quase todos os escritórios. E aqui o fato de haver 20 pessoas na equipe ajudou muito.

10:15
Nesse momento, um dos membros da equipe 1 encontra um host no bigbrogroup.phd vulnerável ao MS17-010. Exploramos a vulnerabilidade com uma pressa incrível. Alguns anos atrás, já estávamos em uma situação em que colocamos um projetor de metro em um nó importante e, após 10 segundos, fomos expulsos dele, fechando simultaneamente a porta. Este ano isso não aconteceu: pegamos o nó com êxito, fechamos a porta SMB e alteramos a porta RDP para 50002. Tomamos uma atitude muito responsável com a questão de manter o acesso, por isso adicionamos mais alguns administradores locais e configuramos nosso próprio RAT. Depois disso seguimos em frente.

10:25
Continuamos a lidar com o que descobrimos. Além do fato de esse nó ter acesso à rede interna e ao controlador de domínio, também é encontrado um token de administrador de domínio. Este é o jackpot! Verificamos imediatamente se ele está "podre" e não há limite para nossa alegria. O primeiro domínio caiu. Tempo de invasão - 27 minutos e 52 segundos.

Finalmente, depois de meia hora desde o início da competição, ainda vamos ao portal de hackers e tentamos entender o que precisamos fazer para obter o público. Vemos um conjunto padrão: credenciais de um administrador de domínio, administrador de estações de trabalho, intercâmbio e várias partes superiores. Fazemos o download do domínio ntds.dit, descobrindo simultaneamente a estação CUDA. Imagine nossa surpresa quando vimos que o domínio tem um modo de criptografia reversível ativado, o que nos permite obter todas as senhas de usuários em texto não criptografado. Para entender quais usuários nos interessam, envolvemos duas pessoas da equipe 1 para analisar a estrutura do AD e seus grupos. Cinco minutos depois, recebemos todas as respostas. Nós os enviamos para o portal e começamos a esperar. Honestamente - a essa altura, eu realmente queria derramar o primeiro sangue para manter o moral, por assim dizer, mas somente depois de uma hora conseguimos entender como o verificador funciona:

a) o verificador é automatizado;
b) o verificador tem um formato rígido;
c) o verificador não aceitou nossa resposta alguns segundos depois de enviar a resposta, porque Estava no formato errado.

Tendo dominado o formato, por volta das 11h00, recebemos o cobiçado primeiro sangue. Sim!

11:15
A equipe 1 é dividida em duas partes. Os participantes de um subcomando continuam ganhando posição no domínio: receba o krbtgt, fortaleça o domínio, altere as senhas das contas. Mesmo no briefing, os organizadores do PHDays deixaram claro que quem se levantava primeiro usava chinelos. Portanto, alteramos as senhas nas contas para garantir: se alguém nos expulsar, receberá uma pontuação mínima.

A equipe 2 continua pesquisando o domínio e encontra a resposta para outra tarefa. Na área de trabalho do diretor financeiro, foi encontrado um relatório financeiro, tão necessário para alguém. Mas o problema é que ele está no arquivo morto, protegido por senha. Bem, não é à toa que descobrimos uma estação CUDA. Com um movimento do pulso, transformamos o arquivo em um hash e o enviamos para o hashcat.

A equipe 2 encontra neste momento alguns serviços interessantes com o RCE e começa a “torcer” eles. Isso é monitorado na mídia CF, construída com base no Nagios. Este é um sistema de gráficos de uma empresa de navios, construído com a tecnologia que vemos pela primeira vez. E também alguns outros serviços potencialmente interessantes, como o conversor de DOC para PDF.

O segundo subcomando da equipe 1, enquanto isso, está envolvido no banco e encontra uma base interessante no MongoDB, que, entre outras coisas, tem o nome da nossa equipe e seu saldo em algum sistema. Torcemos nosso saldo de 50 milhões e seguimos em frente.

14:00
Somos surpreendidos pelos primeiros contratempos. Primeiro, os dois serviços nos quais recebemos o RCE nos segmentos protegidos ficaram indisponíveis. Os defensores simplesmente os desligaram. Claro, vamos reclamar com os organizadores. Isso não leva a nada. Bem, sim, em Standoff, infelizmente, não há negócios que dariam esse limite. Além disso, não conseguimos encontrar uma lista de clientes. Assumimos que ele esteja oculto em algum lugar nas profundezas de 1C, mas não há bases ou configurações de trabalho. Este é um beco sem saída.

Estamos tentando elevar o canal VPN entre nossos servidores remotos e a rede ICS. Por razões desconhecidas, fazemos isso no controlador de domínio de grandes grupos e, quando a ponte entre as interfaces é criada, a conexão é desconectada. O controlador de domínio está indisponível. A parte da equipe que capturou o grande grupo quase teve um ataque cardíaco: as primeiras brigas começam, a tensão geral está aumentando.

De repente, percebemos que o controlador de domínio ainda está disponível em nossos servidores, mas o canal é muito instável. Como na estratégia baseada em turnos - desabilitamos o modo de ponte através do RDP, o controlador de domínio está novamente disponível. Ah !!! Todo mundo se acalma. Eventualmente, aumentamos a VPN de outro servidor, valorizamos e valorizamos o controlador de domínio. Todas as equipes têm pontuação zero, isso é tranquilizador.

16:50
Os organizadores finalmente publicam o mineiro e nós, usando o psexec, instalamos em todos os nós controlados por nós. Nós obtemos uma renda estável adicional.

O Team-2 está estragando a vulnerabilidade do Nagios. Uma versão vulnerável <= 5.5.6 CVE-2018-15710 CVE-2018-15708 está instalada lá. Existe uma exploração pública, mas usa uma conexão reversa para baixar um shell da web. Como estamos apoiando o NAT, precisamos reescrever a exploração e dividi-la em duas partes. O primeiro força o Nagios a se conectar ao nosso servidor remoto via Internet, e o segundo, localizado diretamente no servidor, fornece ao Nagios um shell da web. Após receber o shell da web, o WSO foi baixado e o vulnerável script PHP “magpie_debug.php” foi excluído. Isso nos dá acesso proxy ao domínio da mídia CF. A conexão é instável e é difícil de usar, decidimos enviar a exploração para o Bug-bounty e, neste momento, estamos tentando "atualizar" para o Root.

18:07
E aqui estão as surpresas prometidas pelos organizadores: BigBroGroup compre CF-media! Em geral, assumimos uma curva semelhante. No curso do estudo do controlador de domínio de grandes grupos, notamos a confiança entre esse domínio e o domínio cf-media.

Infelizmente, naquele momento não havia acesso à rede. Mas no momento do anúncio da fusão, ele apareceu. Isso nos libertou da dor de cabeça associada à paginação através dos nagios. As credenciais de grandes grupos são executadas no cf-media, mas os usuários não têm privilégios. Não há vulnerabilidades facilmente exploráveis, mas não nos desesperamos. Algo deve estar.

18:30
Somos eliminados do controlador de domínio BigBroGroup. Quem Onde Parece uma equipe da CARK. Eles alteram a senha do administrador do domínio, mas temos quatro backups. Volte, redefina todas as senhas. Não ajuda, eles nos derrotaram novamente. Ao mesmo tempo, encontramos vetores na mídia CF. Um dos servidores usa a mesma senha de administrador local que no domínio do grande grupo. Bem, reutilização de senha, resta pegar o hash! Usando o hashkiller, encontramos a senha - "P @ ssw0rd". Nós quebramos ainda mais.

19:00
A batalha pelo grande grupo não para. O TSARKA altera a senha duas vezes para krbtgt, perdemos todos os administradores. Esse é o fim?

19:30
Temos o domínio de administração da mídia CF e começamos a passar sinalizadores. Apesar do fato de o domínio parecer estar configurado da maneira mais segura possível, a criptografia reversa é novamente ativada. Recebemos aparências, logins, senhas. Repetimos tudo como no domínio anterior: corrigimos, reforçamos, alteramos senhas, passamos a VPN. Encontramos o segundo relatório financeiro. A propósito, o que há com o primeiro? O primeiro já foi distorcido, mas não aceito pelas organizações. Acontece que você precisa entregar o 7z criptografado !!! Não havia necessidade de nada bruto, três horas em vão !!!

Como resultado, entregamos os dois. Temos cerca de 1 milhão de pontos, o CARK 125.000, o restante em zeros. CARKA começa a entregar bandeiras com o Bigbrogroup. Entendemos que isso precisa ser interrompido com urgência, mas COMO ?!

19:45
Houve uma solução !!! Ainda temos as credenciais dos administradores locais. Nós nos conectamos, pegamos o tíquete e decidimos simplesmente abandonar o domínio. O domínio é enviado para desligar, fechar todas as portas nos servidores, exceto o RDP, alterar as senhas dos administradores locais. Agora estamos sozinhos e eles sozinhos. Ainda assim, obter operação VPN estável e tudo em geral seria excelente. Exalado ...

Espalhamos o mineiro por todos os nós no domínio da mídia CF. O TsARKA nos ultrapassa no total, mas estamos claramente alcançando-os, porque temos mais poder.

A noite


Na foto você pode ver a distribuição da equipe à noite.

Os caras gradualmente começam a ir para casa. À meia-noite, nove pessoas permanecem. A eficiência é bastante reduzida. A cada hora saímos para lavar e respirar - para não adormecer.

Chegando ao ACS TP.

02:00
A noite é muito difícil. Encontramos vetores várias vezes, mas eles já estão fechados. Não está totalmente claro se eles foram originalmente fechados ou se a CARKA já nos visitou aqui e os fechou. Gradualmente, nos acostumando aos sistemas de controle de processo automatizado, encontramos um controlador vulnerável a ataques através do NetBus. Usando o módulo metasplit, fazemos algo, sem entender completamente o que. A luz da cidade se apaga. Os organizadores estão prontos para iniciar a tarefa, se pudermos acender a luz traseira. Neste ponto, a conexão VPN cai novamente. O servidor no qual a VPN está implantada está sob o controle do CARK. Mais uma vez, parece que esse é o fim: discutimos o ICS muito barulhento e eles conseguiram nos desconectar de alguma forma.

3:30 da manhã
Os mais persistentes "cortam" um sonho. Apenas sete permanecem acordados. De repente (sem motivo aparente), a VPN começa a funcionar novamente. Repetimos rapidamente o foco com luz. Existem +200.000 publicações !!!

Parte da equipe continua a procurar outros vetores, parte continua a trabalhar ativamente com o ICS. Encontramos mais duas vulnerabilidades em potencial. Conseguimos explorar um deles. O resultado pode estar substituindo o firmware do controlador. Concordamos com os organizadores que esperaremos até a manhã seguinte e juntos decidiremos o que fazer.

05:30
A VPN trabalha 10 minutos por hora, o resto do tempo morre. Estamos tentando encontrar pelo menos alguma coisa. Nosso desempenho é quase zero. Decidimos dormir pelo menos uma hora. SPOILER: uma má ideia.

Cinco caras continuam quebrando o TP da ACS.

Manhã


Pela manhã, percebemos que, em quase todos os pontos, diminuímos substancialmente os pontos, o CARKA conseguiu passar duas tarefas do ACS TP e várias tarefas do telecomunicações e do grande grupo. Eles já minaram muito, mas de acordo com nossas estimativas, eles têm um estoque que ainda não venderam. No ritmo atual, alcançou 200-300 toneladas de público. Isso nos assusta: há um sentimento de que eles podem ter várias outras bandeiras no zashashnik que podem guardar para o surto final. Em nosso regimento chega. A verificação do som da manhã no site é um pouco irritante, mas revigorante.

Ainda estamos tentando quebrar o ACS TP, mas sem muita esperança. A diferença entre as equipes que se candidatam ao primeiro e ao segundo lugar, e o resto é muito grande. Não acreditamos que os organizadores deixem tudo como está.

Após uma apresentação conjunta com a CARK no palco, alteramos o paradigma de “você precisa marcar mais pontos” para “você precisa impedir que a CARK ganhe mais pontos”.

Em um de nossos servidores, inicie o Cain & Abel e transfira todo o tráfego para o nosso servidor. Nós encontramos várias VPNs cazaques, nós as “cortamos”. Como resultado, decidimos invadir todo o tráfego, configurar um firewall local no gateway para banir todo o tráfego na rede ICS (é assim que proteger o ICS). Os organizadores vêm correndo e dizem que não têm acesso ao ACS TP. Nós os vimos acessando seus endereços IP (veja como você não precisa proteger o ICS).

12:47
Não é à toa que eles estavam nervosos. Os organizadores jogam outra surpresa. Do nada, aparecem quatro contas de domínio para cada domínio. Mobilizamos a equipe.

A tarefa do Time 1 é entrar nos segmentos protegidos o mais profunda e rapidamente possível. A tarefa da equipe 2 é usar o Outlook Web Access para alterar senhas para contas. Alguns defensores, vendo alguma coisa, simplesmente desligam a VPN. Alguns fazem isso de forma mais complicada - eles traduzem seus sistemas para chinês. A funcionalidade funciona, mas é impossível usar (orgia, sim!). Via VPN, nos conectamos a três redes. Joga-nos fora do primeiro em um minuto.

12:52
Encontramos um servidor não saudável na rede vulnerável ao MS17-010 (segmento protegido!). Operamos sem encontrar resistência, obtemos o hash do administrador do domínio e, por meio de Pth, vamos para o controlador de domínio. Adivinha o que encontramos lá? Criptografia reversível!

Parece que aqueles que defenderam esse segmento não fizeram bem o dever de casa. Nós obtemos todas as informações para tarefas, exceto a parte relacionada a 1C. Há uma opção para buscá-lo por mais 40 a 50 minutos, mas decidimos simplesmente abandonar o domínio. Nós não precisamos de concorrentes.

13:20
Nós entregamos tarefas: temos 2.900.000 pontos e várias recompensas de bugs não aceitas. As CARKs têm pouco mais de um milhão, renunciam à sua criptomoeda e aumentam 200 toneladas.Não temos mais muito medo, é quase impossível nos alcançar.

13:55
As pessoas vêm, parabéns. Ainda temos medo de algum tipo de configuração, mas parece que não, somos realmente campeões!

Aqui está uma crônica de 28 horas de True0xA3. Muito do que resta nos bastidores. Por exemplo, subindo ao palco, atormentando o Wi-Fi e o GSM, conversando com os repórteres, mas não me parece o mais interessante.

Foi uma experiência muito legal para todos nós e espero conseguir transmitir pelo menos um pouco a atmosfera que nos rodeia todo esse tempo e mostrar como é interessante participar por conta própria. Há ainda outro, o último artigo, no qual avaliaremos nossos erros e tentaremos elaborar um plano para sua correção. Afinal, não há nada melhor do que aprender com os erros dos outros.

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


All Articles