Nos Dias Positivos de Hackeamento 8, a boa e velha competição por hackers Deixar ATMs Alone ATMs foi novamente realizada. Havia dois caixas eletrônicos à disposição dos participantes, o hardware foi fornecido pelo nosso parceiro de segurança bancária Alfa-Bank. Especialmente para a competição, montamos caixas eletrônicos e colocamos vulnerabilidades neles. Em 15 minutos, foi necessário ignorar o equipamento de proteção e extrair dinheiro do dispositivo. O fundo do prêmio foi de 40 000 ₽. Cerca de 40 participantes vieram tentar contornar a defesa. Leonid Krolle, organizador do concurso e especialista do departamento de pesquisa de segurança de sistemas bancários da Positive Technologies, contou como estava e analisou as tarefas em detalhes.
Deixar os concorrentes sozinhos no caixa eletrônicoÀ disposição dos participantes havia dois caixas eletrônicos. Em um deles, o software de controle de aplicativos de nossos parceiros está instalado, o que impede o lançamento de aplicativos não confiáveis. Ele não permite que você execute qualquer aplicativo necessário para sacar dinheiro (olá, Cutlet Maker, BubbleMaker e nemagiya!).
O segundo caixa eletrônico é conectado via rede para testar o processamento, o que permite realizar uma operação de retirada de dinheiro (disponível no caixa eletrônico). No entanto, o processamento envia um sinal para emitir da fita na qual não há dinheiro. Portanto, a tarefa dos participantes é substituir a resposta do processamento para emitir dinheiro da fita correta.
Os cabos de conexão do caixa eletrônico e o processamento de teste estão localizados fora, com a capacidade de conectar-se a eles usando um cabo de rede (LAN).
Os jogadores tiraram todo o dinheiro retirado do sistema.
Caixas eletrônicos em dois dias do fórum: estavam tristes e solitáriosControle de aplicação
Existem várias maneiras de verificar se um aplicativo corresponde a uma determinada lista de permissões - desde a verificação do caminho até o arquivo executável ou seu hash até a análise da assinatura e extensão digitais. As ferramentas de controle de aplicativos costumam ser usadas para fornecer proteção adicional aos computadores clientes (eles proíbem o lançamento de software que não está na lista branca) e fornecem segurança para sistemas isolados, como caixas eletrônicos, que não implicam intervenção operacional constante.
Se a lista negra de extensões que devem ser bloqueadas é mais ou menos universal e é fácil de configurar, a lista branca do que é permitido executar é redundante por padrão - geralmente inclui todos os aplicativos do sistema operacional no momento da configuração.
Nos últimos anos, muitos métodos foram descritos para ignorar o controle de aplicativos usando as ferramentas do Microsoft Windows (por exemplo, “rundll32”, “regsvr32”), um bloqueio simples que interrompe a operação normal do sistema operacional. Portanto, o ajuste fino do controle de aplicativos é um trabalho complexo e meticuloso, cujo resultado foi dado aos participantes do concurso de rasgos. Observe que, no mundo real, os invasores não têm muito tempo para ignorar o controle de aplicativos.
Primeiro dia de competição
A verdade da vida :)O início do primeiro dia da competição foi marcado por um denso fluxo de participantes do fórum que tentaram contornar o controle de aplicativos e substituir a resposta do processamento - mais de 40 pessoas no total.
Primeiros participantesNo total, foram alocados 15 minutos para ignorar a proteção em um caixa eletrônico com controle de aplicativo: durante esse período, você precisou executar o seu código. Infelizmente, no primeiro dia, todas as tentativas dos participantes de iniciar sua exploração falharam. No entanto, um participante conseguiu encontrar um dispositivo estranho instalado em um caixa eletrônico. Era um skimmer - um leitor portátil em miniatura que pode ser conectado a um caixa eletrônico. Esses dispositivos ajudam os fraudadores a roubar dados do cartão bancário: detalhes, código PIN - todas as informações registradas na fita magnética.
SkimmerDepois de detectar o skimmer, foi necessário extrair os dados do cartão: durante a preparação da competição, os organizadores escreveram um despejo de um cartão inexistente com um determinado número.
Vamos falar um pouco sobre a preparação de um skimmer para uma competição.O skimmer consiste em uma cabeça magnética para leitura e um dispositivo para gravar uma faixa de áudio (às vezes com Wi-Fi ou Bluetooth). Esta instância pode ser feita com base em um gravador Explay ou em um gravador de voz USB semelhante. Exemplos
aqui . Em termos de tamanho, eles se encaixam na cobertura do anti-skimmer e ainda há espaço para uma bateria, já que o mini de Frankenstein teve que ser preparado e revivido: um teste de desempenho foi realizado em um dispositivo semelhante de outro modelo de caixa eletrônico. Para economizar espaço, o suporte de montagem da porta USB é aparado, então eu mesmo precisei fazer o adaptador.
Fazendo um adaptadorTestamos a inclusão correta do skimmer player de acordo com as instruções do jogador da Internet (não havia sinais nos botões, pois eles permaneciam no estojo) e anotamos o cartão e o número que os participantes tinham que remover do skimmer.

É assim que um cartão com pó magnético aplicado a ele se parece
As informações na faixa magnética do cartão são gravadas usando a codificação de frequência F / 2F (com o que é consumido e como pode ser decodificado - leia
aqui ) e representa caracteres alfanuméricos na codificação de 7 bits ou caracteres digitais na codificação de 5 bits. Para determinar erros de leitura, é usada a verificação de paridade e redundância longitudinal (ou controle longitudinal de espera - LRC).
Os dados em qualquer faixa devem começar com o símbolo de serviço iniciar e terminar com o símbolo de serviço final. Esses símbolos são escolhidos de forma a permitir determinar o início de um bloco de informações úteis, determinar a direção da leitura do cartão e até o formato de codificação da informação (5 ou 7 bits).
Os caracteres de controle são projetados para controlar o hardware e não podem ser usados para transmitir informações (conteúdo dos dados). Separadores são usados para separar os campos de dados no mapa.
Em uma codificação de 7 bits, os caracteres [\] são reservados para caracteres nacionais adicionais e não devem ser usados como parte da troca internacional de informações, o caractere # é reservado para caracteres gráficos adicionais arbitrários.
Aqui está um exemplo de como pode parecer:
- via ISO 2 normal:
; XXXXXXXXXXXXXXXX = AAAAAAAAAAAAAAAA? Z - 37 caracteres
X ... X - número do cartão, Z - LRC (os dados começam com o caractere inicial e terminam com o caractere final, o número do cartão tem 16 dígitos e o LRC está presente)
O momento de testar e despejarDe fato, você pode copiar dados do player na forma de um arquivo MP3, descobrir onde a faixa está gravada, aumentá-la no editor de áudio e analisar pouco a pouco, mas existem métodos mais simples.
Por exemplo:
- O SWipe é um aplicativo para leitura de cartões de tarja magnética em uma porta de áudio.
- Decodificador de tarja magnética. Um programa para decodificar um cartão de tarja magnética, recebendo os dados brutos da tarja magnética por meio da placa de som.
Eles permitem converter com mais ou menos precisão os dados da faixa de áudio em ASCII (dados decriptografados).
Após cerca de uma hora, foram fornecidos os dados do cartão gravado no skimmer. O Honrado Prêmio da Simpatia do Espectador encontrou seu dono. Parabéns a Maxim Vikhlyantsev!
O restante dos participantes continuou a lutar pelos principais prêmios enviados aos caixas eletrônicos :) Alguém tentou invadir a defesa, mas havia também aqueles que estavam cansados e perderam a esperança de um rápido enriquecimento. No entanto, o primeiro dia foi tempestuoso, embora o jackpot principal tenha permanecido com os organizadores ...

Segundo dia
Permaneceu o mais persistenteNo segundo dia da competição em campo por hackers em ATM, era possível observar todos os mesmos participantes. Perseverança e perseverança na tentativa de encontrar um vetor para contornar a proteção não permaneceu em vão, e aqui - Stanislav Povolotsky contornou com segurança a defesa e, executando um código não assinado, ganhou o prêmio em dinheiro no primeiro caixa eletrônico.
Demonstração de um trabalho bem sucedidoA essência do ataque à rede no segundo caixa eletrônico foi a seguinte: no caixa eletrônico havia um laptop com software instalado que emulava o processamento.
Emulador de processamentoO emulador foi configurado para emitir dinheiro com qualquer cartão inserido, sem um código PIN, mas a fita cujo comando o emulador enviou em resposta à solicitação estava vazia. Para resolver este problema, era necessário:
- interceptar o pacote de resposta do emulador de processamento;
- desmonte a embalagem e forme a sua - apenas com o número de cartucho correto;
- insira um cartão e, ao enviar uma solicitação de processamento, responda ao caixa eletrônico com os dados alterados;
- usando as ferramentas tcpdump, wireshark, scapy ou ettercap, execute um ataque de repetição ou um ataque de falsificação com dados modificados para responder ao ATM.
O tcpdump é um utilitário UNIX que possui um clone para Windows e permite interceptar e analisar o tráfego de rede que passa pelo computador no qual este programa está sendo executado.
O wireshark é um utilitário semelhante, apenas mais "carregado", com uma GUI.
scapy é uma biblioteca interativa de shell e software para manipular pacotes de rede na linguagem de programação Python.
O ettercap é um utilitário para analisar o tráfego de rede que passa por uma interface de computador, mas com funcionalidade adicional. O programa permite realizar ataques como "man in the middle" para forçar outro computador a transmitir pacotes não ao roteador, mas ao invasor.
Na verdade, nada mudaCom uma abordagem tão difícil, os participantes tiveram dificuldades, mas os venceram. O prêmio por falsificar a resposta do processamento no segundo caixa eletrônico foi recebido pela equipe - Informações e público, Centro de segurança e Uzbequistão. Com o que os parabenizamos! A lista completa dos vencedores está na
página do concurso .