Conferência DEFCON 27. Beneficiando-se de produtos de hackers para o macOS. Parte 2

Conferência DEFCON 27. Beneficiando-se de produtos de hackers para o macOS. Parte 1

Depois de receber um arquivo com código malicioso de um servidor C&C de um hacker remoto, a exploração prossegue para executá-lo. Ele usa o mesmo método SDF quando o arquivo de malware é descompactado usando o comando ditto interno e, em seguida, executado através da API do NS. Assim, o Windtall usa um gerenciador de inicialização interno padrão.



Além disso, o backdoor é equipado com lógica de auto-liquidação; portanto, toda vez que o malware é iniciado, ele entra em contato com o servidor do hacker e pergunta se ele deve ser desinstalado. Se o servidor C&C responder com o código "1", o programa se exclui, interrompendo a atividade de spyware.



Esse é um recurso muito útil que permite que um invasor desinfecte remotamente um alvo sem deixar vestígios de sua intervenção. Agora vou mostrar como refizemos esse vírus para nossas próprias necessidades.



Primeiro, vamos falar sobre a reprovação de uma exploração. Criar uma página da web de hacker que baixa automaticamente um arquivo ZIP contendo um aplicativo malicioso é bastante simples. Como mencionei, o Safari descompactará automaticamente os arquivos ZIP por padrão. Portanto, se colocarmos um aplicativo mal-intencionado nesse arquivo que implementa alguns manipuladores de URL, o Mac OS o registrará automaticamente antes que o usuário inicie o aplicativo.

Uma página da Web maliciosa pode solicitar esse URL de usuário já registrado, o que levará ao lançamento do aplicativo. Geralmente, uma janela de aviso aparece, mas o usuário clica no botão sem prestar atenção.

Então, você vê uma demonstração da exploração reprojetada e uma janela de aviso de que “Final_Presentation” é um aplicativo baixado da Internet, perguntando se o usuário tem certeza de que deseja abri-lo no computador?

Clicar no botão "Abrir" é a segunda solicitação que causa uma janela pop-up e, se o usuário clicar no ícone do aplicativo exibido, veremos que o malware foi instalado automaticamente no sistema.



Há uma falha lógica na Apple em que você não precisa corrigir o sistema operacional para infectar o sistema, e isso ainda funciona na versão mais recente do macOS. Agora que refizemos a exploração, vamos falar sobre refazer o malware.



Nossa primeira etapa é substituir o endereço interno do servidor C&C para que a exploração entre em contato com o servidor e faça o download do malware convertido. Infelizmente, o endereço foi criptografado, mas isso não nos incomodou. Decidimos fazer com que o malware sempre carregasse a biblioteca dinâmica. Então, assim que nossa biblioteca fosse lançada no espaço de endereço do processo malicioso, poderíamos, em princípio, modificar o malware para que ele intercepte os endereços descriptografados do servidor C&C durante a operação, mesmo antes de usar este servidor para conexão. Vamos dar uma olhada mais de perto neste processo.

Deixe-me lembrá-lo novamente - nosso objetivo era re-criar um perfil de malware especificando nosso próprio servidor C&C para que o malware se conectasse novamente à nossa infraestrutura.



Portanto, a biblioteca dinâmica foi carregada no espaço de endereço do malware e substituímos o procedimento de descriptografia ou aplicamos o Swizzle. Esse método de substituição de API eficiente e poderoso é chamado Yoop.

O slide mostra que substituímos a função de descriptografia de forma que, sempre que o malware o chama, ele realmente chama nosso método de descriptografia em nossa biblioteca. Não tenho idéia do que é o algoritmo de descriptografia e como ele funciona e, francamente, não me importo, mas após a substituição, vejo o resultado dessa criptografia. Portanto, se o método de criptografia original retornar para mim os endereços descriptografados do servidor C&C, eu posso simplesmente incorporar meu próprio servidor C&C na lógica do malware. Isso nos permite substituir de forma transparente o servidor C&C descriptografado pelo nosso servidor.

Agora estou adicionando algumas mensagens de depuração à biblioteca para que, quando executamos o malware convertido, possamos ver como os endereços do servidor C&C estão sendo substituídos durante sua execução. Na janela do terminal da linha de comando, você pode ver como nossa biblioteca, que segue o método de descriptografia original, detecta que essa resposta vem do servidor C&C, cujo endereço agora é descriptografado.



Como não queremos que nosso programa se refira à lógica do malware original, simplesmente descartamos essa função e retornamos ao nosso próprio programa. Obviamente, devemos sempre ter certeza de que o backdoor está acessando nosso servidor C&C, e não o servidor do grupo APT original.

Precisávamos escrever nosso servidor C&C, porque agora o malware se conectará a ele e precisamos fornecer uma "conversa" com o protocolo para perplexar corretamente o malware.



A principal função do backdoor do Windtall é coletar e extrair arquivos do usuário. Primeiro, precisamos adicionar essa função ao nosso servidor C&C. Os arquivos são recuperados por meio de uma solicitação POST; portanto, acabamos de escrever algumas linhas de código Python para permitir salvar os arquivos recuperados e enviados a partir do host infectado.

Você vê na tela como nosso servidor C&C recebe arquivos extraídos do computador atacado.



À esquerda, você pode ver como as solicitações de rede são recebidas e à direita - como nosso servidor as grava no sistema de arquivos. Isso significa que agora oferecemos suporte à capacidade do malware de extrair arquivos de todos os tipos de um host infectado.

Também adaptamos nosso servidor C&C para suportar os recursos de download e execução do Windtall. Percebemos que, para esse malware, realiza 2 solicitações.



A primeira solicitação refere-se à obtenção do nome do arquivo para download e a segunda solicitação, devemos responder com bytes específicos do arquivo que queremos baixar. O malware salva tudo isso no arquivo especificado, descompacta e executa. Repito mais uma vez - levamos apenas algumas linhas no Python, é simples, pois usa muitas bibliotecas internas.

Assim que fizemos isso, tivemos a oportunidade de "confundir" o implante. Vamos ver isso em ação. Vemos como o malware se conecta ao nosso servidor C&C, porque alteramos com êxito o endereço do servidor original e executamos a tarefa que lhe é dada - ele baixa o aplicativo Calculadora.



A capacidade de baixar e executar aplicativos remotamente significa que podemos instalar outras ferramentas ou outras amostras de malware no computador do usuário. Isso expande infinitamente o potencial de uso de software hacker redirecionado.

Finalmente, vamos dar ao nosso servidor a capacidade de remover remotamente malware. A função de autodestruição é muito útil se os caras do FBI invadirem sua porta. Um clique na chave - e o próprio vírus se removerá de todos os sistemas infectados.



O spyware entra em contato periodicamente conosco com uma solicitação, se é necessário excluir-se e, se necessário, simplesmente respondemos com o código "1", após o qual é completamente desinstalado do sistema.

Outra demonstração mostrará isso em ação. Você pode ver que nosso malware tem seu próprio logotipo laranja imitando um documento do Power Point, mas, na realidade, é um diretório oculto do sistema.



Depois que mais uma vez enviou uma solicitação de destruição ao servidor C&C e respondemos em uma, o ícone laranja desapareceu do diretório do programa e o próprio aplicativo parou de "falar” conosco porque executava a autodestruição.



Então, mostramos como algumas amostras de malware para o macOS são refiladas e agora vamos discutir como permanecer sem ser detectado. Como estamos refazendo programas maliciosos conhecidos que a proteção integrada do macOS e o software antivírus de terceiros detectam e bloqueiam, precisamos resolver de alguma forma esse problema.

Como não ser detectado


Primeiro, vamos falar sobre os programas de detecção e controle de vírus incorporados ao macOS, como XProtect, ferramenta de remoção de vírus MRT e verificação de revogação de certificado.



À primeira vista, isso parece problemático, pois esses programas podem bloquear nosso spyware convertido em qualquer Mac. Portanto, você precisa pensar em como ignorar a proteção, porque se formos pegos pelo nosso malware cuidadosamente redesenhado e a Apple o bloquear, será uma falha completa.

Vamos dar uma olhada no XProtect primeiro. Este é um scanner antivírus simples, baseado em bancos de dados de assinatura de vírus e incorporado nas versões mais recentes do macOS.



Ele verifica os arquivos baixados pelo usuário no computador antes de seu primeiro lançamento, guiados pelas regras de detecção de vírus. Na tela, vemos uma verificação da assinatura do vírus OSX.KeRanger.A, cuja redefinição do perfil foi examinada.

Escrevemos um utilitário simples chamado UXProtect, que permite examinar essas assinaturas por meio da interface do usuário da interface do usuário, bem como verificar arquivos a qualquer momento em busca de assinaturas de vírus. Como o XProtect usa apenas o mecanismo de detecção de assinaturas, é extremamente fácil se locomover. Vamos dar uma olhada na assinatura do vírus KeRanger.



Vemos uma indicação de um grupo de assinaturas de malware que você só precisa reordenar ou modificar qualquer uma dessas instruções para ignorar. Alterar alguns bytes de uma instrução faz com que a assinatura não corresponda mais aos parâmetros de detecção. Por exemplo, alteramos o número de bytes a serem lidos do buffer de 0x400 para 0x300. Isso não afetou a funcionalidade do vírus, mas assim que alteramos o número de bytes que o scanner verifica quanto à correspondência com a assinatura, excluímos completamente a possibilidade de o XProtect reagir a essa ameaça.

É hora de outra demonstração, onde você verá dois exemplos do KeRanger. Estamos novamente usando o cliente BitTorrent infectado. À esquerda na tela está a cópia original do vírus, e à direita está sua versão redirecionada, que, para obter a chave de criptografia, se comunica com o servidor C&C. Além disso, é modificado para burlar a proteção do XProtect.



Você vê que uma instância do vírus original está bloqueada pelo sistema sem a possibilidade de iniciar, e a única operação permitida é a exclusão.



Se lançarmos uma versão redesenhada do KeRanger, o sistema simplesmente informa que ele foi baixado da Internet e pergunta se realmente queremos lançá-lo.



Se clicarmos em "Abrir", o ransomware será instalado silenciosamente no sistema e imediatamente começará a criptografar todos os arquivos do usuário.



A próxima maneira de proteger o seu Mac é verificar as assinaturas de certificado. A maioria dos binários assinados do macOS não é bloqueada pelo recurso de segurança GateKeeper, e é por isso que os hackers fornecem assinaturas para os malwares mais modernos do Mac. Por outro lado, uma vez que um vírus assinado é detectado, a Apple simplesmente revoga seu certificado de assinatura. Isso significa que esse malware não pode ser executado em nenhum Mac.

Por exemplo, temos um binário do vírus Windtall cujo certificado de assinatura foi revogado pela Apple. Isso significa que, mesmo se o reprofilarmos e aplicá-lo ao novo sistema, ainda não conseguiremos iniciar. Portanto, apenas tentamos ignorar o procedimento de revogação de certificado excluindo o próprio certificado de assinatura.



Em seguida, usamos uma cópia não assinada do malware convertido ou fornecemos um certificado de assinatura legal diferente, o que é bastante fácil de obter.

Para remover o certificado, a própria Apple fornece um utilitário chamado Code Sign que contém o sinalizador de remoção de assinatura não documentado ou "remover assinatura". Se você executar esta operação com seu malware, a Apple simplesmente não prestará atenção ao certificado de assinatura revogado.

Também podemos assinar novamente nosso aplicativo usando o mesmo utilitário usando o comando codesign -s “Developer ID Applikation:”. Isso fará com que o Windtall assinado novamente não seja mais bloqueado pelo macOS.

Por fim, passamos ao MRT, a ferramenta de remoção de vírus integrada disponível nas versões mais recentes do sistema operacional Mac. É semelhante ao XProtect, mas verifica o malware que já está instalado no sistema e o detecta automaticamente após a detecção. Diferentemente do XProtect, suas assinaturas são incorporadas em seu próprio arquivo binário. A Apple costuma usar essa ferramenta para remover aplicativos legítimos que considera inseguros para o seu computador. Geralmente, esses aplicativos contêm vulnerabilidades conhecidas.



Como o MRT, como o XProtect, trabalha com assinaturas, também pode ser contornado. Usamos o despejo MRT, novamente, porque as assinaturas são construídas no próprio binário e pudemos visualizá-las todas, incluindo a assinatura do vírus Fruitfly. Nós nos perguntamos se o MRT poderia detectar nossa cópia convertida desse malware?



Começamos a pesquisar a assinatura interna do Fruitfly e descobrimos que sua detecção é baseada em duas coisas: o caminho para instalar o vírus e o arquivo .plist baixado. Isso significa que, se alterarmos o caminho ou o nome do malware, o MRT não poderá detectá-lo. Como eu disse, como resultado, contornar essa proteção acabou sendo bastante simples.

Descobrimos que não é difícil contornar o software antivírus de terceiros, pois você pode executar um vírus convertido mesmo em um sistema em que o usuário já instalou o antivírus.



Falou-se muito sobre esse assunto. Não quero entrar em detalhes, mas, em geral, os produtos antivírus tradicionais são baseados na verificação de assinaturas, como o software antivírus da Apple, o que significa que eles podem ser contornados pelos mesmos métodos.

Por exemplo, peguei o mesmo Fruitfly, lembrei-me de que também era um script Perl e passei-o através do utilitário on-line gratuito Perl Obfuscator, que foi projetado para dificultar a leitura do script Perl e reduzir a probabilidade de sua detecção a zero. Naturalmente, funcionou. Mas você pode seguir de uma maneira mais engenhosa, especialmente se você usa malware binário. Você pode compactá-lo em um arquivo morto, usar um criptografador ou até a execução na memória, ou seja, download sem arquivos e execução de vírus na RAM.

Alguns anos atrás, essas tecnologias foram discutidas na conferência BlackHat e concluiu-se que, mesmo que um usuário de Mac instalasse software antivírus de terceiros no sistema, ele ainda não seria capaz de detectar malware reprogramado. Isso é uma má notícia para os usuários do macOS, pois sabemos que hackers experientes usam malware convertido. Freqüentemente, toda a alteração se resume a alterar alguns bytes de código ou argumentos da linha de comando, e isso possibilita o controle de um computador para usá-lo para seus próprios fins. Além disso, a maioria das ferramentas antivírus incorporadas ao macOS e o software antivírus de terceiros não conseguem detectar ameaças convertidas.

Como esse software redirecionado é apenas um spyware bem conhecido, original e ligeiramente refeito, vou usar um "chapéu branco" e dizer como você ainda pode encontrá-los.

Detecção de software de reconfiguração


É sabido que o software antivírus baseado em assinatura não lida com malware convertido. Portanto, devemos prestar atenção ao comportamento incomum, anormal e malicioso de tal malware.

Devemos tentar detectá-lo, não graças à conhecida assinatura de vírus, mas observando suas ações no sistema. Garantimos que, quando você refaz um spyware conhecido, suas funções e propósitos básicos permanecem inalterados.

Se refizermos o Trojan de ransomware ransomware, ele ainda criptografará seus arquivos, e o backdoor redesenhado continuará a coletar arquivos e enviá-los ao servidor espião.
No slide acima, eu exibi as funções ou recursos do sistema, que devem ser monitorados e monitorados por suas atividades. Isso inclui a “persistência” de aplicativos, atividade incomum de microfone ou câmera, download ou transferência de arquivos, captura de tela não autorizada, sintomas de interceptação de teclado, cliques sintéticos e criptografia de arquivos. Isso detectará até malware reutilizado.

Vamos falar sobre perseverança. Quando digo "perseverança", quero dizer que, assim que o spyware for instalado no computador, ele será iniciado automaticamente todas as vezes após a reinicialização do sistema. Esse é um recurso de qualquer malware para macOS ou Windows - esforçar-se muito para atingir uma meta maliciosa.

Podemos simplesmente controlar o sistema de arquivos observando o comportamento do aplicativo "persistente" e, se algo mudar, notifique o usuário ou o administrador do sistema.

Agora, quero demonstrar como você pode detectar a atividade do vírus Windtall original ou remodelado, que se manifesta no acesso não autorizado a um microfone ou webcam Mac.



Muitos malwares para Mac acessam uma webcam ou microfone para espionar um usuário de um sistema infectado. Para detectar essa atividade de vírus, podemos registrar todas as vezes a câmera e o microfone no sistema macOS para que o usuário receba automaticamente uma notificação sobre esse evento. , FruitFly, , Zoom, .

. , .



macOS – Event Taps. , . .

FruitFly, , , – «» .



, macOS, . . , macOS , . , .

Objective-See, - macOS. , . , , .



, – , , « ».



, Digita Security, . : . Apple, , .

, . , , , , macOS.

, . , Windtall, , Safari , .



, URL , - URL. Windtall, , .

FruitFly , , - . , , , Apple, - .

, FruitFly , . , . template . , .

Assim, se vários eventos suspeitos conectados entre si ocorrerem no sistema, devemos examiná-los de perto. Nos exemplos acima, demonstrei como a heurística comportamental pode detectar ameaças de segurança macOS complexas e reajustadas.

Antes de concluir, desejo anunciar a Mac Security Conference anual em fevereiro de 2020 no Havaí e convidá-lo a participar.




Um pouco de publicidade :)


Obrigado por ficar conosco. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando aos seus amigos o VPS na nuvem para desenvolvedores a partir de US $ 4,99 , um desconto de 30% para os usuários do Habr em um analógico exclusivo de servidores de nível básico que inventamos para você: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6) Núcleos) 10GB DDR4 240GB SSD 1Gbps de US $ 20 ou como compartilhar um servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

Dell R730xd 2 vezes mais barato? Somente temos 2 TVs Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV a partir de US $ 199 na Holanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - a partir de US $ 99! Leia sobre Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?

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


All Articles