Ir para conteúdo
  • Montando sua máquina virtual para engenharia reversa em macOS

       (0 análises)

    l0gan

    Complementando os artigos criados sobre máquina virtual para ambiente Windows e Linux, este tutorial tem como finalidade auxiliar na criação de uma máquina virtual para análise de binários, possivelmente maliciosos, em ambiente macOS

    Configurações da Máquina Virtual

    • 2 processadores (cores).
    • 2GB de RAM.
    • Placa de rede em modo NAT (em casos aonde você realmente precisa de comunicação com um C&C).
    • Placa de rede em modo Host-Only.
    • Compartilhamento de Pastas desativado ou Host-Only (com host local).

    Aqui vem um ponto interessante: como tenho receio de malwares que detectam o ambiente de virtualização (ex: VMware Fusion) e tentam escapar do guest pro host, rodo sempre o SO guest num SO host diferente. No caso, rodo a máquina virtual com macOS mas o SO host é Linux.

    Sistema Operacional virtual

    • 10.10.1 (Yosemite) publicado em 2014
    • 10.13.4 (High Sierra) Versão Atual

    Obs.:  As duas versões do macOS mencionados acima são para demonstrar a tela de configuração do Gatekeeper de cada versão. A importância das versões está nos diferentes tipos de malware  que podem se propagar em versões específicas. No entanto, basta escolher uma.

    O Gatekeeper é um componente de proteção para o macOS existente desde a edição Mountain Lion. A responsabilidade deste constituinte é encontrar a identificação do desenvolvedor (Developer ID, também conhecido como “assinatura de autenticidade”), que é fornecido pela própria Apple. Quando em conformidade, o Gatekeeper mantém-se adormecido até o momento do cujo arquivo executável ou instalador ser flagrado com a assinatura de autenticidade ausente ou por ser reconhecido pela semelhança de algum tipo de malware.

    Uma vez que você utiliza softwares baixados através da App Store e ou assinados pela Apple você já possui uma certa segurança. Tendo consciência que boa parte dos últimos malwares para macOS dependiam que este recurso estivesse desativado, consequentemente, permitindo o download e instalação de qualquer software não identificado.

    Desativando o Gatekeeper

    gatekeeper_yosemite.thumb.png.922cb2f9a8cc0d5579c7a51b3732bee2.png

    Imagem 1: versão Yosemite

     No macOS Sierra e posterior a opção Anywhere não aparece mais, agora o sistema operacional perguntará para o usuário se ele deseja permitir que o software realmente seja instalado / executado no sistema. Porém há maneira de desabilitar o Gatekeeper e voltar com a opção como mostra na Imagem 1, usando o spctl (SecAssessment system policy security), via Terminal:

    $ sudo spctl --master-disable

    gatekeeper_high-sierra.thumb.png.066fff24592d56a755b41c4341605468.png

    Imagem 2: versão high-sierra

    Outro sistema de segurança é o SIP (System Integrity Protection). Eu ainda não vi nenhuma necessidade de desativar para rodar malware porem caso precisem:

    SIP (proteção de integridade do sistema)

    1. Clique no menu apple.png.5c7e8390fe4b6f267080d165316a3c39.png
    2. Selecione Reiniciar ...
    3. Mantenha pressionado o comando-R para inicializar no sistema de recuperação.
    4. Clique no menu Utilitários e selecione Terminal.
    5. Digite csrutil disable e pressione Enter.
    6. Feche o aplicativo Terminal.
    7. Clique no menuapple.png.5c7e8390fe4b6f267080d165316a3c39.png  e selecione Reiniciar ....

    Ferramentas

    No macOS além da própria Apple Store (que com certeza neste caso não terá as principais ferramentas que precisamos), também temos algumas boas fontes de ferramentas. O MacPorts, sistema de pacotes muito utilizado, e também o Homebrew suprem muito bem nossas necessidades quanto aos pacotes.

    Abaixo deixei um lista de ferramentas tanto para análise estática quanto dinâmica, claro que em alguns casos a mesma ferramenta pode ser utilizada em ambos os tipos de análise.

     

    Analise Estática

    xxd                 -> Cria um dump a partir de um binário, parecido com o hexdump.
    strip               -> Remove e ou modifica a tabela de símbolos de um binario.
    hexEdit         -> Editor hexadecimal.
    lipo                 -> Cria ou modifica arquivos multi-arquitetura, na imagem 6 tempos um exemplo da sua funcionalidade.
    otool              -> Exibe informações sobre binários Mach-O (tipo um objdump).
    jtool                -> Versão melhoradas do otool.
    nm                   -> Exibe a tabela de símbolos.
    codesign       -> Usado para criar, verificar e exibir assinaturas de código.
    machOView -> Interface visual para edição de binários mach-o. 
    class-dump -> Usado para examinar informações em tempo de execução do Objective-C armazenadas em arquivos Mach-O.
    dtrace             -> Ferramenta usada para analisar comportamento do Sistema Operacional e dos programas em execução.
    fs_usage       -> Exibe informações sobre chamadas de sistemas, executa rastreamento do kernel e processos, tudo em real-time.
    xattr                 -> Usado para exibir, modificar e ou remover atributos(metadados) de arquivos, diretórios e links simbólicos.

    Analise Dinâmica

    xcode                         -> IDE de desenvolvimento de software oficial da apple, possui recursos internos para testes de perfomance de sistema.
    hopper                      -> Ferramenta usada para disassemble e decompile de arquivos mach-o 32/64bits.
    lldb                             -> Debugger utilizado para depurar programas C, C ++, Objective-C, Objective-C ++ e Swift.
    fseventer                 -> Ferramenta gráfica usada para verificar atividades em disco e execução de processos de forma visual.
    open snoop             -> Usado para rastrear acessos de arquivos, aplicativos, processos e também monitoramento do 
                                              filesystem, você pode utilizar ele em conjunto com o Dtrace.
    activity Monitor    -> Exibe processos que estão sendo executados no macOS.
    procexp                    -> Ferramenta exibe informações acessíveis pelo proc_info para exibição de processos, parecido com o top e htop.
    lsock                          -> Baseado no PF_SYSTEM o lsock e usado para visualização em real time das conexões (Sockets) no sistema, similar ao netstat.

    Por se tratar de máquina virtual para pesquisas em macOS, não poderia deixar de mencionar as ferramentas do pessoal da Objective-See. Vale a pena testar e acompanhar os artigos deles.

     Objective-see.thumb.png.91b9fe1c3a2b4615ce1d14c65d9c1b25.png

    Imagem 3: ferramentas objective-see

     Destaco três ferramentas especificas para quem estiver analisando binários do tipo Mach-O:

    otool.thumb.png.bde548a20ee70720c53befa4936af166.png

    Imagem 4: ferramenta otool exibindo o magic number do binário.

    jtool.thumb.png.ceb11cf8c56559cfe3ea6a5b1f1f5b68.png

    Imagem 5: ferramenta jtool exibindo o endereço da função main() do binário Mach-O

     lipo.thumb.png.15744ec57a72edc389da48836cbcfacb.png

    Imagem 6: ferramenta lipo extraindo o suporte a uma arquitetura especifica em binários do tipo fat.

    Considerações finais

    • Criar um snapshot da instalação default;
    • Ficar atento:
      • Anti-Disasssembly
      • Anti-Debugging
      • Sistemas de Ofuscação
      • Anti-VM
      • Ficar atento às falhas publicadas

     


    Revisão: Fernando Mercês
    • Agradecer 1

    Feedback do Usuário

    Participe da conversa

    Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
    Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.

    Visitante

    • Isso não será mostrado para outros usuários.
    • Adicionar um análise...

      ×   Você colou conteúdo com formatação.   Remover formatação

        Apenas 75 emojis são permitidos.

      ×   Seu link foi automaticamente incorporado.   Mostrar como link

      ×   Seu conteúdo anterior foi restaurado.   Limpar o editor

      ×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.


  • Conteúdo Similar

×
×
  • Criar Novo...