Já se passaram mais de 10 anos quando eu escrevi um artigo sobre o Alternate Data Stream (ADS) no TechNet Wiki. Lembrei disso hoje quando eu estava analisando o ransomware BitPaymer
Em resumo o Alternate Data Streams (ADS) é uma funcionalidade pouco conhecida do sistema de arquivos NTFS, utilizada inicialmente para oferecer compatibilidade com o sistema de arquivos HFS do Mac.
Essa funcionalidade permite armazenar dados de forma invisível para usuários comuns e à maioria das ferramentas de segurança.
Por isso o ADS uma técnica amplamente explorada por atacantes para:
- Ocultar malware: Um invasor pode esconder um executável malicioso em um ADS vinculado a um arquivo aparentemente inofensivo.
- Evitar detecção: Softwares antivírus podem não inspecionar adequadamente os ADS, permitindo que os invasores escondam scripts, ferramentas de backdoor ou outros artefatos maliciosos.
A ideia por trás dos ADS é que um único arquivo pode conter múltiplos fluxos de dados.
Um passo a passo para entender ADS usando o cmd.exe para esconde uma mensagem em um TXT
echo "Mensagem Secreta" > escondido.txt
type escondido.txt
type escondido.txt > foto.png:escondido.txt
Del escondido.txt
start foto.png
notepad foto.png:escondido.txt
Visualizar arquivos com ADS com cmd.exe
dir /r
Uso comum de ADS usando Powershell
Adicionando uma URL a uma imagem
echo https://hackershive.io > logo.png:link.txt
Validando o ADS
Get-Content .\logo.png -Stream link.txt
ou
Get-Item .\logo.png | Get-Content -Stream link.txt
Executando o comando em ADS que abre uma URL
$url = Get-Content .\logo.png -Stream link.txt; Start-Process $url
🔍 Listando ADS (Utilizado no processo de hunting )
gci -recurse | % { gi $_.FullName -stream * } | where stream -ne ':$Data'
Esse ultimo comando e outros você encontra em https://book.jorianwoltjer.com/windows/alternate-data-streams-ads
Técnicas de execução de ADS
O blog do Oddvar Moe traz algumas maneiras muito inteligentes e diferentes de extrair e executar binários com ADS
echo "empty file" > c:\ADS\file.txt
findstr /V /L W3AllLov3DonaldTrump c:\ADS\procexp.exe > c:\ADS\file.txt:procexp.exe
wmic process call create '"c:\ADS\file.txt:procexp.exe"'
Técnicas Avançadas de Ocultação de Dados no Windows
No Windows, alguns nomes como CON, PRN, AUX, NUL, COM1 a COM9, e LPT1 a LPT9 são reservados para uso pelo sistema e dispositivos de hardware, o que impede a criação de arquivos com esses nomes de forma tradicional. No entanto, cibercriminosos podem explorar uma técnica de bypass para contornar essa restrição. Utilizando os prefixos \?* ou **\.*, é possível desativar a verificação de nomes reservados pelas APIs do Windows, permitindo que arquivos sejam criados com esses nomes no sistema de arquivos.
Sem o uso de prefixos especiais como \\?\
, o Windows bloqueia a criação de arquivos com nomes reservados como COM1.
MITRE T1564.004 Hide Artifacts: NTFS File Attributes
Identificação: T1564.004
Sub-técnica de: T1564
Tática: Evasão de Defesa
Plataformas: Windows
Requisitos do sistema: Disco rígido particionado NTFS
Ransomwares que usam ADS
Os adversários podem armazenar dados maliciosos ou binários em metadados de atributos de arquivo em vez de diretamente em arquivos. Isso pode ser feito para escapar de algumas defesas, como ferramentas de varredura de indicadores estáticos e antivírus
- O APT32 usou fluxos de dados alternativos NTFS para ocultar payloads [link]
- Astaroth pode abusar de fluxos de dados alternativos (ADS) para armazenar conteúdo para cargas maliciosas [link]
Vamos analisar alguns rapidamente:
WastedLocker
O WastedLocker tem uma afinidade por rodar com privilégios administrativos. Se o payload for executado com permissões não administrativas, ele tentará elevar os privilégios através de um bypass do UAC (Mocking Trusted Directories).
Uma vez elevado, o ransomware copia um arquivo aleatório do System32 para o diretório %APPDATA%. O arquivo copiado terá um nome aleatório e oculto. Esse processo permite que o ransomware se copie para dentro do arquivo usando um Alternate Data Stream (ADS).
Em seguida, o ransomware cria uma nova pasta em %TEMP%, que contém cópias dos arquivos WINMM.DLL e WINSAT.EXE. A cópia de WINMM.DLL no diretório %TEMP% é usada para executar o ransomware a partir do fluxo de dados alternativo criado anteriormente.
- Referencia: https://www.sentinelone.com/labs/wastedlocker-ransomware-abusing-ads-and-ntfs-file-attributes
BitPaymer
BitPaymer é conhecido por usar ADS como uma técnica de evasão. Ele copia a si mesmo para dentro de fluxos alternativos em arquivos legítimos, como executáveis do sistema. O malware usa esses streams ocultos para evitar que ferramentas de segurança detectem a presença do ransomware, tornando-o particularmente difícil de localizar
O ransomware BitPaymer, copia a si mesmo em dois ADS diferentes:
- O primeiro ADS é usado para executar o comando
net view
para obter uma lista de compartilhamentos de rede. - O segundo ADS é criado para criptografar os dados no disco e nos compartilhamentos de rede.
Após se copiar para esses ADS, o arquivo executável original, que trouxe o malware, é excluído. Como as cópias do malware estão armazenadas em streams alternativos, são menos detectáveis por ferramentas de segurança comuns.
Referencia:https://malwarepenguin.com/alternate-data-streams/
DoppelPaymer
DoppelPaymer, uma variação do BitPaymer, também se esconde em ADS. Ele armazena cópias de si mesmo em streams ocultos de arquivos no sistema, tornando a detecção mais complicada para administradores que não monitoram ativamente os ADS
Em dois incidentes de resposta a incidentes (IR), o Threat Actor 1 implantou um executável de reverse-ssh em vários sistemas Windows no diretório C:\System e, em seguida, ocultou-o na raiz do volume C usando um ADS no diretório “.” (entrada MFT 5), nomeado como Host Process for Windows Service. O Threat Actor 1 então criou um serviço malicioso para garantir a persistência da ferramenta de reverse-ssh antes de excluir o executável do local inicial.
Referencia: https://www.crowdstrike.com/en-us/blog/anatomy-of-alpha-spider-ransomware/
Ferramentas para Detecção de Alternate Data Streams (ADS)
🔍 O hunting de ADS é essencial para detectar ameaças avançadas e malwares que usam técnicas sofisticadas de ocultação. O uso de ferramentas como Streams, AlternateStreamView e comandos no PowerShell facilita a detecção desses fluxos ocultos no sistema. Além disso, as ferramentas forenses ajudam a realizar uma análise detalhada em caso de incidentes.
- ADS Detector for Explorer – https://www.codeproject.com/Articles/5153/Visual-browsing-of-alternative-data-streams-in-Win
- ADS Locator – http://www.safer-networking.org/en/tools/tools_ads.html
- Crucial ADS GUI Scanner – http://www.crucialsecurity.net//index.php?option=com_content&task=view&id=95&Itemid=137
- LADS – http://www.heysoft.de/nt/ep-lads.htm
- Streams – http://www.microsoft.com/technet/sysinternals/utilities/streams.mspx
- The Forensic Toolkit v2.0 – http://www.accessdata.com/forensictoolkit.html
Conclusão
Fazer hunting de Alternate Data Streams (ADS) envolve o uso de ferramentas e técnicas especializadas para identificar fluxos de dados alternativos ocultos que podem estar sendo usados por atacantes para armazenar ou ocultar arquivos maliciosos.
Happy Hunting
Seja o primeiro a comentar