Ir para conteúdo

b4ct3r14

Membros
  • Postagens

    1
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Conquistas de b4ct3r14

2

Reputação

  1. Prefácio Este artigo abordará um recurso do sistema de arquivos NTFS, muito pouco conhecido e mal documentado, que leva o nome de Alternate Data Stream ou simplesmente ADS. O artigo apresenta conceitos, usos, formas de identificação e maneiras de lapidar a técnica. Embora essa técnica de ocultação de cargas maliciosas em sistemas de arquivos seja considerada antiga, seu uso ainda é muito relevante nos dias atuais. O que é Alternate Data Stream (ADS)? O Alternate Data Stream (ADS) é um recurso do sistema de arquivos NTFS, implementado pela primeira vez no Windows NT 3.1, com o intuito de permitir a compatibilidade com os sistemas de arquivos MAC HFS (Macintosh Hierarchical File System). De maneira sucinta, esse recurso permite que os arquivos contenham mais de um fluxo de dados. Os arquivos em NTFS têm ao menos um fluxo de dados visível. Em ambientes Windows, esse fluxo de dados padrão é chamado de atributo MFT :$DATA ou fluxo de dados sem nome. Experimentação Para entendermos melhor como funciona esse fluxo de dados, vamos abrir o Prompt de Comando para fazer alguns testes. Primeiramente, vamos começar criando um arquivo de texto com a string Mente Binária: Observe o tamanho do arquivo gerado. Como segundo passo, vamos inserir um segundo fluxo de dados dentro desse arquivo: Note que ao realizar o processo de listagem, o arquivo mentbin.txt permanece com 18 bytes, não sendo possível notar qualquer diferença aparente. Para verificar a existência de um ADS precisamos utilizar da flag /r para exibir o fluxo de dados alternados, como help do programa sugere: Agora sim parece que acendemos a luz e conseguimos ver o hf.txt dentro do arquivo mentbin.txt: Ao abrir o arquivo com o Bloco de Notas, com o comando type ou Windows Explorer apenas o fluxo de dados principal é exibido em tela. Para ler o conteúdo de um fluxo, podemos utilizar os comandos more ou sort: Caso de uso Mas agora surge a pergunta, porque bulhufas isso é utilizado? Bom, acredito que conseguimos responder essa pergunta com uma demonstração prática. Quando baixamos arquivos da internet usando um browser por exemplo é criado um $DATA para identificar de onde esse arquivo foi baixado. Demonstração Vamos baixar a imagem do gatinho do post de Detectando overlays em executáveis ELF do @Fernando Mercês: Salvamos a imagem: Só pra garantir, verificamos o tipo de arquivo com o comando file: Ao listar os arquivos com dir /r, é possível ver a existência de um ADS chamado Zone.Identifier: Verificando seu conteúdo conseguimos extrair a informação de onde essa imagem foi baixada. Legal né? Ocultando binários no fluxo de dados Com esse recurso podemos esconder qualquer tipo de dado usando o ADS, então que tal começarmos escondendo o binário da calculadora? Analise: Utilizando do wmic vamos executar o binário oculto. A ferramenta Windows Management Instrumentation Command-line (WMIC) é uma interface de script e linha de comando que simplifica o uso do Windows Management Instrumentation (WMI) e dos sistemas gerenciados através do WMI. Embora no site da Microsoft exista um aviso informando que esse recurso foi preterido a partir do Windows 10 versão 21H1, sendo substituído pelo utilitário Windows PowerShell para WMI, ele continua presente em versões mais atuais do sistema. Vamos usá-lo: calc.mp4 Mágicaaaaaa! 🪄 Relevância Forense Do ponto de vista forense, os fluxos de dados alternativos do NTFS têm implicações graves para a anti-forense, uma vez que invasores podem ocultar arquivos incriminadores ou cargas maliciosas por meio de fluxos de dados ocultos em outros arquivos além da possibilidade de utilizar dessa técnica para exfiltração de dados. Demonstrarei agora como é feito o processo de identificação. Identificação Como mencionado no prefácio, essa técnica de esconder dados usando ADS já é bem manjada, de modo que o Windows Defender e vários antivírus já conseguem fazer esse mapeamento. Além disso, um administrador de sistemas ou um analista forense poderiam facilmente achar esses arquivos usando simples linhas de comando. Por exemplo: Explicação da sintaxe % implementa um foreach ? coloca uma condição where gi forma curta de Get-Item gci forma curta Get-Childitem ne Not Equal (Não é Igual) Lapidando a técnica E se eu te falar que existe uma forma de lapidar essa técnica dificultando sua identificação, com o uso de nomes reservados no Windows? 🙂 Alguns nomes de uso reservado no Windows são: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LP6, LPT7, LPT8 e LPT9. Vamos olhar o que acontece quando tentamos criar qualquer tipo de arquivo, usando algum desses nomes reservados: O arquivo não é criado. 😟 Pulo do 🐈 Existe uma forma de realizar o bypass da verificação de nomes reservados. Utilizando os prefixos "\\?\" ou "\\.\" é possível informar às APIs do Windows para desabilitar toda a análise de cadeia de caracteres enviado a cadeia que a segue diretamente para o sistema de arquivo possibilitando dessa forma criar arquivos com esses nomes. Demonstração Opa, opa, olha só, conseguimos criar o arquivo. Agora vamos analisar o que acontece quando colocamos um fluxo de dados dentro de um arquivo com nome reservado. Espera ai, cadê o ADS do arquivo COM.TXT? Esse é o pulo do gato, o Windows não consegue mais detectar o ADS do arquivo, apenas quem criou o arquivo e sabe o nome pode ver/executar seu conteúdo. Olha o que acontece quando tentamos buscar por esse arquivo usando os comandos demonstrados anteriormente: Observação Existe uma única solução chamada LADS que consegue identificar o fluxo de arquivo em nomes reservados, no entanto essa ferramenta não recebe mais atualização desde 2015. Referências https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file https://www.sans.org/blog/alternate-data-streams-overview/ https://owasp.org/www-community/attacks/Windows_alternate_data_stream https://www.deepinstinct.com/blog/the-abuse-of-alternate-data-stream-hasnt-disappeared https://github.com/codejanus/ToolSuite/blob/master/lads.exe
×
×
  • Criar Novo...