Browser Forensics com Web Historian

Opa, e aí galera

Tudo bem?
No post passado nós falamos um pouquinho sobre imagens lógicas no formato .AD1. Hoje, nós vamos mostrar um exemplo de análise dessa imagem lógica; nós vamos mostrar como analisar informações geradas pelo browser (browser forensics) utilizando o Web Historian, ferramenta criada pela empresa Mandiant.
Alguns vídeos sobre a ferramenta podem ser vistos aqui, aqui e aqui.

O nosso cenário de análise foi a imagem criada no post anterior. A imagem se chama: perfil.ad1. Navegando nessa imagem lógica, eu vou ter várias pastas lá dentro, uma delas é uma pasta chamada "anderson", que estará montada no diretório E:\Users\anderson.

A primeira coisa a se fazer é montar a imagem "perfil.ad1" usando a ferramenta FTK Imager. Para montar a imagem basta seguir estes passos:
Clique em "file" e depois em "Image Mount"

Na próxima tela informe o caminho onde a imagem está armazenada e clique no botão "mount". Depois clique no botão "close"

Pronto, agora vamos abrir a ferramenta Web Historian. Vai aparecer a seguinte tela:

O passo seguinte é clicar no botão "file" e depois em "scan". Vai aparecer a seguinte tela, onde escolhemos a opção "Profile Folder". Clicamos na opção "Browse" e informamos o caminho completo da pasta de perfil do usuário, chamada "anderson", que está contida na imagem forense lógica "perfil.ad1". Neste caso, eu montei a imagem "perfil.ad1" no volume E:. Dentro do E: vai ter várias pastas; eu vou procurar a pasta de perfil do usuário anderson (é lá que as informações de histórico do browser estão armazenadas). Depois eu clico no botão "Start".

Quando o processo de parsing começar, vai aparecer a seguinte tela:

A imagem a seguir mostra as informações prontas para serem analisadas pelo perito



Pronto, é isso.
Mostramos aqui como utilizar a ferramenta Web Historian para fazer uma análise forense em uma imagem lógica .AD1
OBS: Lembrando que ao final precisamos desmontar a imagem (no FTK Imager, clicamos em         File --> Image Mounting --> escolho o drive a ser desmontado e clico no botão "Unmount").


Um abração!

Imagens Lógicas no Formato .AD1

Opa, e aí galera.

Tudo bem?
Hoje o nosso assunto é sobre imagens lógicas de arquivos/diretórios.
Mas primeiro, vamos fazer uma distinção entre imagens forense físicas e lógicas.
Imagens forense física são recomendadas quando se quer realizar uma imagem de todo o conteúdo do drive (HD). Nessa imagem estará inclusive a memória virtual usada pelo sistema.
Imagens forense lógica são recomendas quando se quer realizar uma imagem somente de uma partição, ou a imagem de várias partições do disco. Neste caso, se precisarmos da imagem forense da memória virtual, precisaremos obtê-la separadamente. Também usamos as imagens forense lógica quando se quer obter uma imagem forense de um RAID (imagem de cada drive lógico será armazenada em mídias distintas).

1) Introdução
Depois de ter feito essa distinção, vamos falar especificamente sobre o formato .AD1.
Este é um formato proprietário da Access Data, a mesma empresa que fabrica o FTK.
Mas pra que serve o formato .ad1? O formato .AD1 serve para se criar uma imagem forense de certos arquivos/diretórios sem precisar fazer a imagem forense do disco inteiro. Ou seja, estaremos realizando a imagem forense somente de um arquivo ou diretório.

Segundo a access data, sobre o formato .ad1: "Description: As part of the best practices when dealing with loose files in a directory. It is recommended to first put those into a forensic container to maintain the integrity of the dataset. By doing this you will prevent intentional or un-intentional tampering with the original data."

Se eu quero, por exemplo, fazer uma imagem forense somente do diretório onde estão os arquivos do prefetch, eu posso fazer uso deste artifício e colocar o diretório c:/windows/prefetch dentro do container forense ad1. E como disse anteriormente a própria empresa criadora desse container, dessa forma eu vou acabar evitando problemas e/ou perdas com os dados originais.
Como já dissemos, o formato .AD1 é uma imagem lógica de um conteúdo de um diretório. Assim, este formato não inclui slack space, espaço livre do disco, informações dos setores, etc. Portanto, é impossível transformar uma imagem .AD1 em imagens de setores (imagens DD ou EWF).

2) Visão Geral do Cenário
O cenário que vou mostrar aqui neste post é o seguinte: eu tenho uma imagem forense física (imagem forense de um disco) e de lá de dentro eu vou extrair algum diretório e criar uma imagem forense lógica deste diretório (por exemplo, vou extrair o perfil de usuário da imagem física e vou criar uma imagem lógica somente desta pasta).
Resumindo, o que nós vamos fazer é o seguinte:
  1. montar a imagem física no FTK Imager
  2. adicionar a imagem como evidência
  3. extrair um diretório qualquer e criar uma imagem forense lógica desta pasta no formato .AD1

3) Mão na massa
3.1) Montar a Imagem Física 
A primeira coisa a se fazer é montar a imagem física no FTK Imager para extrair o diretório que nós queremos



3.2) Adicionar a imagem
O próximo passo é adicionar a imagem como evidência no FTK Imager




Pronto, eu já adicionei a imagem forense física. Agora eu posso navegar dentro da minha imagem forense física (usando o software FTK Imager) e posso escolher qual pasta/diretório será o meu alvo para se criar a imagem forense lógica. No meu exemplo aqui eu quis criar uma imagem forense lógica do perfil de usuário, diretório este que é o "E:\Users\anderson".
A imagem a seguir mostra o investigador navegando na ferramenta FTK Imager até o diretório "E:\Users\anderson"


3.3) Criando a imagem forense lógica .AD1
A imagem a seguir mostra o que eu tenho que fazer para se criar uma imagem forense lógica de um diretório. O que eu tenho que fazer é o seguinte: escolher um diretório/pasta e clicar com o botão esquerdo do mouse e escolher a opção "Add to Custom Content Image (AD1)"


Depois deste processo de escolher qual será a pasta/diretório alvo, vamos passar para o momento de se extrair a pasta "E:\Users\anderson" e criar uma imagem forense lógica de seu conteúdo. A pasta estará marcada na região "Custom Content Sources". Basta clicar em cima do nome da pasta e depois clicar no botão "create image"


Após esse processo, vai aparecer a seguinte imagem


Nesse momento nós vamos escolher qual será o diretório onde vamos armazenar a imagem forense lógica .AD1. Clicando no botão ADD vamos para uma outra tela onde devemos colocar algumas informações sobre a evidência (e.g. nº do caso, nº da evidência, descrição do caso, nome do investigador, algumas anotações sobre o caso). Depois disso, clique no botão "Avançar".


Na próxima tela vamos indicar qual será a pasta onde vamos armazenar a imagem lógica, vamos indicar o nome da imagem (como ela será renomeada). Depois disso, clicamos no botão finish.


Depois disso voltamos para a tela anterior e clicamos no botão start.


Após todo esse processo, será mostrado uma barra de progresso do processo de criação da imagem forense lógica do conteúdo do arquivo/diretório. Depois disso, será mostrada uma tela com os hashes MD5 e SHA1 da imagem gerada. Depois disso, basta clicar no botão "close".




Bom, é isso galera.
Espero que vocês tenham entendido o que é uma imagem forense lógica de conteúdo de arquivo/diretório (imagem customizada). É claro que esse post é uma pequena parte do que a ferramenta faz; ela é muito mais completa e faz muito mais do que isso. Esse post foi só uma pequena amostra. :)
O próximo post é uma continuação onde vamos mostrar como analisar essa imagem lógica para extrair informações de histórico do browser.

Um abração!






Referências Bibliográficas:








Instalando o Volatility no Windows

Opa, e aí galera.

Tudo bem?
A ferramenta volatility é muito conhecida na forense de memória, aliás é uma das ferramentas mais populares de forense de memória no mundo open source.
Segundo o site desta ferramenta: The Volatility Foundation is an independent 501(c) (3) non-profit organization that maintains and promotes open source memory forensics with The Volatility Framework.

A questão é que muitas vezes nós encontramos o framework volatility em distribuições linux voltadas para forense computacional (e.g. CAINE, DEFT, SIFT, KALI, etc). E se eu quiser instalar em ambientes Windows? Como eu faço? É esse o propósito desse post: mostrar como instalar o volatility em ambientes Windows.

1) Instalando o Python
Muito bem, vamos lá. A primeira coisa a se fazer é baixar e instalar o python. O faq do volatility diz que pode ser o python 2.6 ou versões acima; mas não pode ser o python 3.x.
OBS: o wiki de instalação da ferramenta diz que podemos instalar pacotes adicionais (se formos usar certos plugins). Mas se instalarmos o básico, a ferramenta ainda irá funcionar. Nesse post, nós vamos instalar o básico da ferramenta.

Eu vou baixar e instalar a versão 2.7.0 do python.
Depois de instalar o python, eu preciso setar nas variáveis de ambiente do sistema.

Abro o painel de controle, clico na opção "Sistema e Segurança" e escolho a opção "Sistema". Depois disso clico na opção "Configurações avançadas do sistema"

Na janela que aparecer, eu escolho a aba "Avançado" e clico no botão "Variáveis de Ambiente"

Depois, no campo Variáveis do sistema, eu vou procurar pela variável "path" e clicar em "editar". Vai abrir uma nova janela para editar a variável do sistema; eu vou adicionar no fim da linha o sinal de ponto e vírgula (;) e o caminho completo de onde o python foi instalado (no meu caso, o python está no C:\Python27). Depois clico em OK



2) Instalando o Volatility
Eu vou baixar a última versão do volatility, que nesse momento é a 2.5. A versão do volatility é a 2.5 Windows Standalone Executable.zip
Eu vou criar uma pasta dentro do C:\ e vou renomeá-la para vol (C:\vol). E aí vou descompactar todo o conteúdo do arquivo volatility_2.5.win.standalone.zip lá dentro.

Depois, eu vou abrir o CMD do Windows e vou navegar até o diretório C:\vol (que é onde eu tenho o executável do volatility). E aí é só digitar no CMD: volatility.2.5-standalone.exe -h


3) Executando o Volatility
Eu vou mostrar a execução do volatility em um dump de memória de um CTF, o grrcon 2015. A linha de comando do volatility no windows é: volatility.exe -f [dump de memória a ser analisado] --profile=[profile que obtivemos usando o plugin imageinfo] [plugin que queremos usar]. Como exemplo, eu vou usar um dump de memória que tem o nome "Target1-1dd8701f.vmss". Portanto, a linha de comando para usar o volatility no windows fica assim: volatility.exe -f "c:\grrcon 2015\target1\Target1-1dd8701f.vmss" --profile=Win7SP0x86 pslist



Bom, é isso.
O volatility rodou numa boa, sem nenhum problema.
Espero que esse post seja importante
Um abração!

Algumas Dicas de Procedimentos Para Apresentar e Analisar Uma Evidência Digital Durante Um Processo Legal

Opa, e aí?

Tudo Bem?
Eu recebi um email com algumas dicas de como apresentar e analisar uma evidência digital diante de uma corte jurídica e de um processo legal.

Imaginem que estamos analisando uma evidência digital (e.g. uma imagem forense de um HD) e que o caso será apresentado para um juizado qualquer. A outra parte (consultoria jurídica da outra parte) pode duvidar do seu processo de aquisição da imagem forense.
Então essas dicas a seguir serve para mostrar como fazer a aquisição de uma imagem forense, minimizando os riscos de questionamento da outra parte.

Essas dicas são do Nick Klein:
Some tips from my experience:

- I’m not aware of any cases of a court mandating a forensic tool (interested to hear if anyone can quote a case). In fact, I’ve worked on cases where ‘experts’  have misinterpreted evidence they acquired using “court validated” forensic tools. As the old saying goes - just because you’re holding a scalpel, doesn’t make you a surgeon. Don’t be fooled by people who tell you evidence is by default inadmissible if you don’t use a particular tool or process.

- However you DO want your evidence to be strong in terms of integrity and authenticity. Document every step you take while acquiring. Take photographs. Use well established industry processes.

- Some excellent (free) tools include:

  -- Linux boot distros like Paladin / DEFT which don’t mount internal drives by default (therefore no changes to them) and have easy to use imaging tools.

  -- You could also make Windows read-only for USB devices by making a Registry change, then use a tool like FTK Imager. Note these only stop writes through the Windows API, but that should be sufficient unless you have programs that access the device raw. 

- To ensure you have the most amount of data for analysis, use a tool and process that captures the entire data area of the drive, not just live files. Tools like Ghost refer to “images” but they’re NOT the same as a full forensic image that include every sector of the original physical medium (which I assume you want).

- In my experience (in Australia) if the court accepts your evidence is what you represent (because you’ve followed these steps) the onus of proof falls to the other side to disprove its authenticity. I’ve never had a case where the other side has successfully won such an argument.

- If the other side are attacking your credibility or your process, then your evidence is probably strong.



Essas outras dicas são de uma pessoa chamada VSuen:
Your Question:
  • Are there free or open source tools that you can use in place of a hardware write blocker that is admissible in court?
Answer:
  • Yes. But your reference to the term "admissible in court" is a bit vague. See Nick's comment.
    • Don't let EnCase tell you they are the only court-verified tool. That's marketing FUD.
      • I like and use their product, but I don't like sales people that much. They make a good product, but there are a lot of good products out there.
    • You should be more concerned about your processes, documentation, and validation activities than the specific court-approved tool since there is no such thing.
      • Consider the possibility that what you write can be discoverable.

Examples:
For the following examples, I encourage you to test the process out with some other media BEFORE you attach your real evidence. Practice makes perfect-ish.
  • MS Windows:
    • There is a simple registry tweak that you can make to prevent writing to USB devices. Search for "Software USB Write Block" and you should have at least two results. One is Irongeek's Thumbscrew and another is DSI's USB Write Blocker
      • Both software and manual registry change work the same way.  It changes one registry value. I believe this functional from Windows XP and up. You will want to double check that.
      • Manual Registry Change: http://www.ghacks.net/2011/03/18/how-to-enable-write-protection-of-usb-devices-under-windows/
        • I don't recommend this method for those new to forensics. It is very easy to forget what write/read state you're in. If you go the software route, I encourage you to use an application that reflects the write state you are in.
    • I have used an IDE/SATA to USB adapter that you can purchase from Amazon for about $25
    • Once you have this properly working, you can use FTK Imager or EnCase Imager (or any imager) to create a forensic image.
      • I personally prefer a commonly used forensic file format like EWF, RAW, or AD1 over disk duplication because the impact of "accidentally" plugging in the drive to a read/write situation is significantly lower. A disk duplication scenario can result in you "altering" files.
    • If you already have EnCase Forensic Edition, I believe they have a Softblock feature that allows you to prevent writes to devices AFTER the feature has been enabled. It has been a while since I've used it. Consult with Guidance Software for confirmation.
  • Linux - Forensic Distributions Only:
    • You want to ask: Is the distribution specifically built for forensics or information security?
      • Some consumer distributions of Linux (such as consumer Ubuntu) will automatically mount file systems read/write (r/w) to be consumer friendly. You don't want that because there is a chance that something will write to the drive.
      • Forensics-oriented distributions such as CAINE, Kali, Paladin, SANS SIFT, etc. will recognize your drive is attached but typically will not automatically mount the device or its file systems.  This is good.
        • Distrowatch is a good place to start if you want to go this route. The link I embed drops you straight to the search feature with the "Forensics" category highlighted.
        • This method, effectively, is your "free open source write blocker"
        • Here are some commands to get comfortable with:
          • man [command] - manual for the binary you are executing
          • sudo - run the next command with elevated credentials (admin-level)
          • fdisk - this will show you what devices the OS has detected as attached to your computer
          • mount - this is the command you will run to mount the drive
            • Warning. This is the one you really want to be careful with.
              • Consider looking at these options via the man page:
                • -o ro (or -r): mount device as read only
          • umount - unmount device
          • without knowing what you are doing, you'll probably run these commands in this order:
            • sudo fdisk -l
              • Show me all the devices I've attached
              • This will give you the "/dev/sda#" I mention below.
              • Don't see anything? You probably didn't "sudo"
            • sudo mount -l
              • Show me what devices are mounted, if they are ro/rw, where are they mounted, etc.
            • sudo mount -o rw /dev/sda1 /media/sda1
              • Human: Mount in read only mode partition 1 on device "sda" to logical location/mount point /media/sda1
              • Complaints: You might get some errors regarding file system type. You will have to research that.
            • sudo mount -l
              • Show me the devices again AND confirm that the device you mounted is "ro"
        • "Easy" way?
          • Mount your target media as rw via command line or similar
          • Use Guymager, AIR, or whatever the forensic acquisition tool of choice is
          • Attach your original evidence; do not mount
          • Point Guymager (or similar) to the row that reflects that new device, right click, acquire to target media
            • Add notes appropriate for the image file format you use
              • I like evidence ID, custodian name, source metadata like make|model|SN, date of acquisition, forensics collection person responsible for the image, etc.
  • Mac OS X:
    • I don't really play in this area. Someone else might have a better suggestion. I won't validate these suggestions. I won't testify to the effectiveness either.
    • Not free, but have you looked at BlackBag Technologies' Softblock?
    • Command line use of diskutil?
      • Do not do this one:
        • One method you will see if Google for it is the use of diskutil to identify your UUID then alter your fstab file to always force the device to "rw". However, that's ridiculous because you will have already attached your device at that point and OS X would have had already attempted to mount the partition. At that point you have already placed your evidence at risk.
      • This *might* work:
      • Probably the better solution if you know what you are doing:

Basic Logic of Software-based Write Blockers:
  • Write blocking is only enabled for all devices attached _AFTER_ you have enabled the write blocking feature.
    • This suggests that all devices attached _BEFORE_ you enabled the write blocking feature will continue to be writable.
    • In theory, this also suggests that all devices attached _AFTER_ write blocking is disabled, all devices attached BUT NOT REMOVED prior to disabling software write blocking will continue to be not writable.
      • I wouldn't trust it. Just play it safe and attach all your "write to" media _BEFORE_ you perform a software write block and attach your "original evidence" media.


To expand a bit on Chris' comments...

Somethings you might want to do right away:
  • Evidence Control:
    • Did you create a chain of custody document and associate it with this piece of physical evidence?
      • If not, I highly suggest you properly document the life cycle of the media you received from the time you received it. You can easily search on the SANS reading room for a simple Chain of Custody form. Not having basic evidence history makes it challenging to defend that you have had positive control over the media at all times.
    • Where do you store this evidence when you are not using it?
      • Ideally you have a secure storage location that only you have access to.  A locked desk drawer is a starting point, but we can venture into multiple layers of significantly better storage controls. Start with what you can afford because it sounds like you are running on a budget. There's no shame in that.  Ideally, like any evidence management solution, you should clearly label the device and associate it with your evidence. You don't want to accidentally misplace it in your secure storage location and accidentally associate it with another case.
    • When you use the Evidence (for imaging or for investigation), what is your procedure?
      • Ideally you are checking out the evidence from your really great Evidence Management System.  If you are not so blessed, consider using the Chain of Custody form to indicate when you have moved it from storage to your work space for doing a task. It can be overkill, but you want to do this right. I've seen people do this on Excel too.
      • When you are manipulating the evidence, do you do this from a clean workstation and in a secure area that only you have access to?
        • Opposing counsel's view can include: "How do I know you this evidence wasn't tampered with if you aren't the only one who has physical access to this media?"
  • Forensic Preservation Procedures:
    • Do you have at least a Primary and Secondary Forensic copy of the evidence?
      • I'm jumping the gun on your question here obviously. However, if you decide to duplicate the media, I encourage you to make at least two copies.  One you keep as your "working" copy and another as your "backup" copy in the event something frustratingly happens to the working copy.  It happens all the time. Trust me. You want at least two copies.
        • If you are creating a copy for opposing counsel, make a copy but don't give away your two copies. Asking opposing counsel for a copy _after_ you damaged your only copy looks bad and can impact the timeliness of your response to discovery.
    • When you create your forensic copies, did you document other appropriate metadata?
      • You can probably google for a basic Computer Evidence Acquisition form.  You want to capture several things that you probably don't need immediately but can assist with the individual who will be performing your forensic investigation.  This isn't exhaustive, but I want to give you ideas of what would help:
        • Original Asset Information:
          • State of Asset
            • On, Logged in, Logged in & locked, Off, Other (BSOD, Frozen, etc.)
          • Make, model, and serial number of original asset; Make, model, serial number, and sectors of media.
            • Where did this hard drive come from? How do we know you didn't just grab the hard drive out of someone else's computer?
            • It helps to have a digital photo with a date/time stamp too. I typically do this with the evidence ID I assign it written on a post-it note along with the primary custodian name. This way if I'm hitting multiple computers with multiple people I can easily flip through pictures to find relevant items.
          • Who is/was the custodian associated with the original asset?
            • Location of the asset, the username(s), the given name of the user(s), etc.
          • BIOS/EFI Date/Time vs. Real Date/Time
            • If you're not working in the same time zone as you collected the evidence then this will really mess with your timelining process.
          • Notes?
            • What else does your form not include but should be documented?
            • Items that I commonly see: Company Asset Tag #, asset damage information, location of asset at time of preservation, symptoms reflecting physical media failure.
    • Did you mess up? Maybe you did. Don't freak out.
      • This is where your meticulous documentation skills kick into high gear. What did you do? What was the expected result? What actually happened? What time did this occur? What files were potentially altered?
      • Know when you are in over your head. If this is important, hire someone who knows a little bit more than you and won't put your case in jeopardy.
    • SUPER IMPORTANT: Do you know what you are doing? Can you explain why you chose to do X instead of Y to a jury?
      • Can you testify to the actions that you performed were best practice and did not impact the evidence?
        • If so, great.
        • If not, consider getting a professional forensics expert or have a forensics firm on retainer or MSA.
          • For forensic imaging services, you can typically see:
            • Billing method 1: time and materials
            • Billing method 2: fixed fee
            • Billing method 3: fixed fee and materials.
          • Rates and quality of work product vary by region. I'm sure those on this list can give you recommendations.
  • Forensic Analysis:
    • If you don't know what you are seeing, consider the possibility that you might be over your head in this phase.  Highly consider the need to employ a professional that can and has testified in court for digital forensics. Ideally, someone who has testified in a case similar to yours.
    • Consider the possibility that what you are seeing can be interpreted in more than one way.
      • Remove unfounded opinion from any statements you choose to document.
      • State only the facts that you can observe.
    • Note: Forensic Expert bill rates can be different from a Forensic Preservation bill rate.

There's a lot more. I see that Nick has responded too.  He knows his stuff.

Good luck and thanks for letting me stand on this soapbox.
V.

Eu recebi todas essas informações por email e resolvi colocá-las aqui.
São dicas muito boas.

Bom, é isso, galera
Um Abração!

Parsing da MFT

Opa, e aí galera.

Tudo bem?
Neste post falamos sobre como extrair a MFT de uma imagem forense. Hoje, nós vamos mostrar algumas ferramentas para fazer o parsing da mft extraída, e assim, poder analisá-la.

Vamos falar de 2 ferramentas para fazer o parsing da MFT: log2timeline e analyzemft.py. Existem outras ferramentas, mas vamos falar sobre essas 2. Se vocês quiserem ver outras ferramentas, podem acessar este link aqui.

1) Log2timeline
Esta ferramenta foi criada por Kristinn Gudjónsson como paper final para a certificação GCFA Gold. Ele criou esta ferramenta com o intuito de se criar uma super timeline do sistema a ser investigado. Isto traria uma melhor compreensão e uma visão holística dos eventos de um sistema a ser investigado. Super timeline significa ter um timeline de várias fontes de informação e artefatos do sistema operacional (e.g. histórico do I.E., timeline de informações do squid, apache, IIS, prefetch, evt, setupapi.log, userassist, etc); ou seja, podemos juntar todos os timelines de todos esses artefatos em um grande arquivo, e, assim, teremos um melhor contexto necessário para ter uma melhor visão do que realmente aconteceu no sistema comprometido.
O log2timeline funciona usando módulos. Cada módulo trabalha em cima de um tipo de artefato. Por exemplo, o módulo prefetch vai trabalhar em cima de artefatos do prefetch, o módulo IIS vai trabalhar em cima de artefatos do IIS, o módulo squid vai trabalhar em cima de artefatos do squid, o módulo mft vai trabalhar em cima de artefatos da MFT, e assim por diante.

"Versão 0.x do log2timeline tem sido extremamente útil, mas foi escrito em Perl e tem limitações de desempenho. Está em curso um grande esforço para reescrevê-la em Python, chamada Plaso. Alguns lançamentos alfa desta ferramenta forma liberados." (tradução livre, fonte: aqui).

Se você quiser instalar o plaso, pode seguir as instruções desta página. Mas, se você estiver tendo algum tipo de problema na instalação, pode seguir as instruções desta página.
Aqui neste post, nós não vamos falar do plaso; nós vamos falar do log2timeline mesmo. E vamos focar na análise da MFT. Se alguém quiser ver algum outro uso do log2timeline, você pode entrar aqui, aqui e aqui.

Podemos usar o log2timeline em um arquivo de imagem forense ou podemos montar a imagem forense e depois usar o log2timeline.
Para usar o log2timeline em um arquivo de imagem forense é bem simples. Nosso arquivo de imagem forense aqui se chama image.001. Eu vou ter como parâmetros o -f que indica qual módulo eu vou trabalhar. Neste caso, como eu vou analisar a mft, então eu vou usar o módulo para se trabalhar com a mft; este módulo, por curiosidade, se chama mft :). Por último, eu vou usar o parâmetro -w que vai me indicar qual será o outuput de escrita, ou seja, o parâmetro -w me indica qual arquivo ele vai armazenar o resultado depois de realizar o parsing. No nosso caso, a ferramenta log2timeline vai armazenar o resultado no arquivo timeline.csv. Assim, eu posso abrir o calc e analisar o resultado em uma planilha.

Se eu quiser, eu posso usar o parâmetro -z local. Assim, o timezone que ele vai analisar não será o UTC, e sim o timezone usado na máquina invadida (máquina esta à qual o log de eventos pertence), o que facilita a interpretação e contextualização dos acontecimentos.

A figura a seguir mostra o resultado do log2timeline. Como o resultado foi um arquivo do tipo .csv, eu abri o arquivo no calc.


2) Analyzemft.py
Outra ferramenta para analisar a MFT é um script em python, o analyzemft. O link para baixar a ferramenta é este aqui. Esta ferramenta é bem simples de trabalhar.
Vale lembrar que ela já vem instalada na SIFT.

O comando funciona assim: python analyzeMFT.py -f [mft extraída] -o [arquivo onde os resultados serão armazenados]
No meu exemplo a mft etraída se chama mft.raw e eu vou escrever os resultados no arquivo mftanalyzed.csv.
Portanto, a linha de comando fica assim: python analyzeMFT.py -f mft.raw -o mftanalyzed.csv
Essa é a linha de comando normal. Só que no meu caso, eu estou usando a SIFT 3.0, vai dar um erro:

Esse erro aconteceu porque eu preciso passar o caminho completo do script analyzemft. Então, a linha de comando correta é: python /usr/bin/analyzeMFT.py -f mft.raw -o mftanalyzed.csv.
Pronto, agora vai tudo normal como mostra a imagem a seguir:

O arquivo de output é do tipo .csv. Isso significa que podemos abrir e analisar o arquivo em um software de planilha, por exemplo, o calc ou o excel.
Quando abrirmos o arquivo no calc, vai aparecer a seguinte tela:

Esta tela mostra como o calc vai interpretar as informações. Nós vamos falar para o calc separar os dados através da vírgula. Assim, cada coluna (campo) será um tipo de dado.
Os campos são:

  • Record Number: MFT Entry
  • Good: se a entrada é válida
  • Active: se a entrada é ativa
  • Record type: mostra o tipo de registro
  • Sequence Number: o número de sequência do registro
  • Parent file record number
  • Parent file record sequence number: número de sequência de registro de arquivo pai
  • Filename: nome do arquivo/diretório
  • Algumas informações do Atributo Standard Information: mactimes referentes ao atributo Standard Information
  • Algumas informações do Atributo File_Name: mactimes referentes ao atributo File_Name
  • Object ID
  • Birth Volume ID
  • Birth Object ID
  • Birth Domain ID
  • e outros;
Podemos usar as teclas CTRL+F para procurar por um arquivo.
Na imagem a seguir, eu procurei pelo arquivo "satriani". Ele me encontrou o arquivo "satriani.jpg", cujo record number (MFT record) é 45931; assim, eu posso usar o icat para extrair o conteúdo referente a esta entrada MFT, ou qualquer outra entrada que eu queira.


Bom, é isso galera.
Mostramos um pouquinho sobre as 2 ferramentas. É claro que elas fazem muito mais do que isso, eu só quis "dar um empurrão". :)
Um abraço!






Referências Bibliográficas:

Extraindo a MFT de uma Imagem Forense

Opa, e aí galera

Tudo bem?
Hoje, nós vamos falar sobre como extrair a MFT de uma imagem forense. Obviamente que a MFT é um recurso do Windows. Então, nesse post aqui, nós estaremos analisando uma imagem forense do windows.

1) Introdução
Mas qual a importância da MFT para a análise forense de uma imagem? A MFT é o principal arquivo no NTFS. Nela estão armazenadas referências de todos os arquivos e diretórios do sistema operacional. A MFT armazena os timestamps de cada arquivo, o tamanho, o dono dos arquivos/diretórios, permissões de segurança do arquivo/diretório, etc.
Todas essas informações são armazenadas no que chamamos de MFT Entry.
Cada arquivo/diretório possui uma mft entry (entrada mft). Essa entrada mft (mft entry) é como se fosse um ponteiro, similar ao inode no mundo UNIX.
Portanto, a mft entry contém informações (metadados) sobre o arquivo ao qual ela aponta.

Normalmente, cada entrada mft (mft entry) possui 1024 KB de tamanho. Se olharmos cada entrada mft em um editor hexadecimal, vamos ver que ela começa com a string "file0" ou "file", seguida de informações específicas.
As primeiras 16 entradas da MFT são reservadas para arquivos do NTFS, por exemplo, $BitMap e $Log.

Para o NTFS, tudo é arquivo, inclusive a MFT (que contém informações sobre os arquivos). Portanto, a MFT possui uma entrada pra ela mesma. Este é o primeiro arquivo de toda MFT: uma entrada pra ela mesma, que é representada por $MFT (mft entry 0). O segundo arquivo da MFT é o arquivo $MFTMirr (mft entry 1). O objetivo de existir o $MFTMirr é se ocorrer algum tipo de problema com as primeiras entradas reservadas da mft, eu tenho o $MFTMirr. Ou seja: o $MFTMirr é um backup das 16 entradas reservadas da MFT.

2) Extraindo a MFT de uma Imagem Forense
Eu já vou partir do pressuposto de que vocês já tenham uma imagem forense de um Windows qualquer. E aí, como eu faço para extrair a MFT da imagem forense? Resposta: eu vou mostrar 2 maneiras de extrair a MFT de uma imagem forense:
  1. usando o FTK Imager
  2. usando ferramentas do sleuthkit
2.1) Extraindo com o FTK Imager
Uma maneira simples de se extrair a MFT de uma imagem forense é usar a ferramenta FTK Imager. A figura a seguir mostra um exemplo:

Depois de exportar a MFT, eu vou gerar um arquivo dela. Assim, eu posso escolher qualquer ferramenta que faça o parsing da MFT e analisá-la.
Muito simples, né? :)

2.2) Extraindo a MFT com o Sleuthkit
Uma outra forma de extrair a MFT é fazendo uso do sleuthkit.
Cabe ressaltar que o arquivo $MFT ocupa a primeira posição (posição 0) na MFT. Como eu sei disso? Basta digitar o comando fls "imagem". Assim, a linha de comando é: fls image.001

Neste exemplo, a minha imagem forense se chama image.001.
O utilitário fls lista os arquivos e os diretórios de uma imagem forense.
OBS: a imagem não está montada, por isso eu usei o fls. Se ela estivesse montada, eu poderia usar o comando ls com os parâmetros -lhi.

Depois de usar o utilitário fls, eu vou usar o utilitário icat. O icat serve para copiar um determinado arquivo da imagem forense, tendo como base um determinado inode/mft entry. Isso significa que temos que passar um endereço (número do inode/mft entry) correspondente ao arquivo que queremos copiar da imagem forense.
No nosso exemplo, eu vou copiar a MFT da imagem forense. Como o inode da MFT é 0 (zero), eu vou passar esse endereço na linha de comando do icat.
Portanto, a linha de comando do icat fica assim:
icat -i raw -f ntfs image.001 0 > MFT.raw

Que parâmetros são esses?
É simples. O parâmetro -i indica que a imagem original de onde vamos extrair a mft é uma imagem forense do tipo/formato raw. O parâmetro -f indica que o sistema de arquivos da imagem forense é NTFS. E esse parâmetro 0 (zero), como já dissemos anteriormente, é o endereço da entrada mft da própria mft. No caso, a mft possui como entrada o endereço 0 (zero). Ou seja, a mft entry da própria mft é 0 (zero).

OBS: Existem outras ferramentas que fazem esse trabalho de extrair a MFT de uma imagem forense. Como exemplo, vocês podem ver aqui.

Pronto, agora extraímos a MFT da imagem forense. Qual o próximo passo? É analisar a mft extraída.
Mas isso fica para os próximos capítulos. :)

Bom, é isso galera
Espero que seja útil para o estudo e trabalho de vocês
Um abraço!




Referências:
http://sysforensics.org/2012/01/sift-workstation-video-4-extracting-mft-using-mmls-icat-and-log2timeline/
https://whereismydata.wordpress.com/2009/06/05/forensics-what-is-the-mft/
https://whereismydata.wordpress.com/2008/08/22/file-system-mft-entries-basic/
http://www.cse.scu.edu/~tschwarz/coen252_07Fall/Lectures/NTFS.html
http://grayscale-research.org/new/pdfs/NTFS%20forensics.pdf
https://en.wikipedia.org/wiki/NTFS

Conversão de Imagens

Opa, e aí galera.

Tudo bem?
Hoje nós vamos falar sobre conversão entre alguns formatos de imagens forense. Lembrando que temos basicamente 3 tipos de formato forense: raw (dd), ewf/e01 e AFF. Existem outros, mas esses são os mais usados.
Então, a intensão deste post é falar sobre como fazer a conversão de um formato para outro formato.
Resumindo, o que nós vamos fazer nesse post é a conversão dos seguintes formatos:

1) Conversão do formato EWF/E01 para o formato RAW
Bom, falamos sobre o formato ewf/e01 aqui. Mostramos, inclusive, sobre como criar uma imagem forense nesse formato. Agora, nós vamos mostrar como eu posso converter uma imagem forense "ewf" para o formato "raw".
Mas você pode estar se perguntando: por que eu quero converter de e01 para raw? Qual o benefício disso? A minha resposta é: a partir do formato RAW, eu posso realizar várias técnicas como o file carving visando a recuperação de arquivos, eu posso usar ferramentas para analisar o timeline (e.g. log2timeline), eu posso fazer exame de evidências em geral (analisar o registro do Windows, analisar o histórico do browser, etc) fazendo uso de várias ferramentas forense (até mesmo ferramentas open source). Tudo isso eu consigo fazer quando analiso uma imagem no formato RAW.
E se eu não converter para RAW? Se eu quiser analisar a imagem no formato EWF mesmo? Quais ferramentas eu vou usar para analisar uma imagem no formato EWF? A minha resposta é: basicamente, você vai usar o EnCase, que é uma ferramenta paga/proprietária.

Bom, então vamos lá.
O que eu quero, neste momento, é converter uma imagem do formato ewf para o formato raw. Pra isso, eu preciso ter uma imagem no formato ewf, não é mesmo? :)
E aí vem a pergunta: Onde eu vou conseguir uma imagem .E01/EWF? Resposta: eu vou usar uma imagem forense criada para um exercício do Lance Mueller, o forensics_practical_3. Pra baixar a imagem referente a este exercício, basta ir neste link. No fim deste post, ele coloca o link para baixar a imagem forense.

Existem 2 maneiras de realizar a conversão do formato ewf para o formato raw:
  1. Usando o utilitário ewfexport (que faz parte da libewf)
  2. Usando o utilitário img_cat (que faz parte da suíte do sleuthkit)
Vamos mostrar as 2 opções.
A primeira opção que vou mostrar é usando o utilitário ewfexport.


O utilitário vai fazer algumas perguntas básicas. Vamos analisá-las:
  • na primeira pergunta, ele quer saber qual o formato depois da conversão. No caso, eu escolhi que após a conversão, a imagem vai ser no formato raw
  • na segunda pergunta, ele quer saber o caminho completo do diretório onde a imagem no formato raw será armazenada. Nisso, ele pede pra ser incluído o nome da imagem no formato raw (sem usar nenhuma extensão no nome). No exemplo aqui eu disse que a imagem no formato raw vai se chamar imagem (ele vai adicionar a extensão automaticamente). O path completo (caminho do diretório) onde a imagem será armazenada vai ser em /home/sansforensics/Desktop/cases/Forensics_practical. Lá dentro, vai ter um arquivo chamado imagem.raw.
  • na terceira pergunta, o tamanho do segmento. Esse segmento é quando queremos trabalhar com o chamado split image. E o que é isso? É quando queremos dividir o nosso arquivo de imagem forense em vários pedaços/segmentos. Aí então, se quiséssemos uma split image no formato raw, iríamos indicar qual o tamanho de cada segmento. Como eu não quero que a imagem no formato raw não seja "repartida" em segmentos, eu escolhi o valor zero (0). Isso significa que eu não vou querer "splitar" a imagem forense; eu vou querer somente um arquivo, mesmo que seja grande, para ser a minha imagem forense no formato raw.
  • na quarta pergunta, ele quer saber qual o primeiro byte que será exportado/convertido. Podemos notar que ele mostra um intervalo que vai de 0 até 7.9 EiB. Nesse caso eu indiquei que o primeiro byte a ser exportado/convertido é o byte 0, justamente porque eu quero converter toda imagem no formato ewf, desde o início. Como o início é no byte 0, então eu indiquei que ele vai começar a exportar/converter desde o início :). Isso parece até um pouco óbvio :)
  • na quinta pergunta, ele quer saber o número de bytes a ser exportado/convertido. Como eu quero converter toda a imagem forense, então eu optei por converter o número máximo de bytes da imagem, assim significa que eu vou exportar/converter o arquivo inteiro.
OBS: vale a pena observar que ele mostra os valores defaults entre colchetes. Se você quiser os valores default, é só apertar a tecla Enter.
Como dissemos no post anterior, o formato EWF permite a compressão de dados. Então, a imagem no formato EWF será bem menor do que a mesma imagem no formato RAW.

Outra alternativa que nós temos é usar o utilitário img_cat, que faz parte da suíte de utilitários do sleuthkit. O comando é: img_cat -v -i ewf "imagem.e01" > "imagem.dd"

Podemos notar alguns parâmetros na linha de comando. O primeiro parâmetro (-v) significa que ele vai jogar para o stderr uma saída detalhada de erros; o parâmetro (-i) indica qual é o tipo da minha imagem antes de ser convertida. Neste caso, eu disse que antes da conversão, a minha imagem original é do tipo/formato ewf. Por fim, eu tenho um redirecionamento para um arquivo de imagem forense do tipo raw (imagem.dd).

Podemos notar também a compressão de dados do formato EWF. A imagem no formato EWF é bem menor do que a imagem no formato RAW.


2) Conversão do formato RAW para o formato EWF/E01
E se eu tenho uma imagem forense no formato RAW e quero convertê-la para o formato EWF. Como eu faço isso? Resposta, eu posso usar um utilitário que faz parte da libewf, o ewfacquire.
No post sobre imagens ewf, eu comentei sobre esse utilitário (este utilitário serve para se criar uma imagem forense no formato ewf). Só que eu também posso usar este utilitário para converter uma imagem raw para uma imagem ewf/e01.
Como eu faço isso? Basta digitar: ewfacquire "nome da imagem no formato raw".
Para exemplificar, eu tenho uma imagem no formato raw chamada: imagem.raw. Se eu quiser convertê-la para o formato ewf/e01, basta digitar o comando: ewfacquire imagem.raw. Assim, eu vou converter o arquivo imagem.raw para o formato ewf/e01 (tornando assim imagem.e01).


Vocês podem notar que ele vai me pedir para responder algumas questões básicas. Essas questões são os metadados referentes à imagem no formato EWF (lembram que esse tipo de formato permite armazenar metadados?). Pois é, são algumas perguntas básicas, coisa rápida (nós já vimos sobre o ewfacquire aqui).
Lembrando que para responder as perguntas com as opções default, basta apertar a tecla "enter". Depois de responder essas perguntas, ele começa o processo de conversão. Ao fim, ele mostra quanto tempo durou essa conversão e o hash da nova imagem forense (imagem esta que está no formato ewf).
Agora, uma pergunta: o ewfacquire mostra o hash da nova imagem. Se eu digitar "md5sum imagem.E01", porque esse novo hash vai ser diferente do hash apresentado pelo ewfacquire? Resposta: o hash mostrado pelo utilitário ewfacquire é calculado somente em cima dos dados (isso significa que o hash não leva em conta os metadados da imagem.E01). Portanto, o hash mostrado pelo ewfacquire vai ser igual ao hash do arquivo imagem.raw

3) Conversão do formato AFF para RAW
Já falamos sobre imagens AFF aqui. Se alguém tiver alguma dúvida, basta acessar o link para ver como o aff funciona.
Agora, nós vamos falar sobre a conversão do formato aff para raw.
Eu tenho uma imagem física de uma pendrive. Esta imagem física está no formato AFF? Como eu faço para convertê-la para o formato Raw? Resposta: eu uso o utilitário affconvert (lembrando que nós falamos sobre o affconvert aqui).

E como o affconvert funciona para converter de um formato para o outro? Como ele funciona para converter uma imagem no formato AFF para RAW? É simples. O comando é: affconvert -r "imagem.aff". Neste exemplo, a minha imagem no formato AFF se chama "image.aff". Então, neste exemplo, a linha de comando fica assim: affconvert -r image.aff.

Podemos ver que usei o parâmetro -r. Ele serve para falar que após a conversão, a nova imagem será no formato RAW (-r vem de raw).
Simples, né? :)


4) Conversão do formato RAW para AFF
E se eu quiser converter do formato raw para aff? Qual ferramenta eu posso usar? Resposta: o próprio affconvert. O comando é: affconvert "imagem no formato raw". Como eu vou converter um arquivo de imagem que se chama "imagem.raw", a linha de comando fica assim: affconvert imagem.raw.

Notem que eu não tenho nenhum parâmetro na linha de comando.


5) Conversão do formato AFF para AFF
Agora que nós já falamos de algumas conversões, vamos falar sobre conversão do formato AFF para AFF. Mas como assim? Conversão de um formato para o mesmo formato? Não; o que eu quis dizer é que agora nós vamos falar sobre a conversão entre os vários formatos do container AFF. Lembra que no post passado, sobre imagens AFF, eu comentei que existem 3 métodos/formatos para o container AFF? Esses 3 métodos/formatos são o próprio AFF, o AFD e o AFM.
Então, o que nós vamos fazer agora é pegar uma imagem em um destes 3 formatos e converter para outro formato.

5.1) Conversão do formato AFF para o AFM
A primeira conversão será do formato AFF (armazena tanto os metadados quanto os dados em um único arquivo) para o formato AFM (os metadados são armazenados no arquivo .afm e os dados são armazenados no arquivo splitraw).

Notem que,depois do processo de conversão, eu vou ter 3 arquivos. O arquivo image.000 é o meu arquivo de imagem splitraw. O arquivo image.aff era a minha imagem original, antes da conversão. O arquivo image.afm é o arquivo que contém os metadados referentes a imagem splitraw.
Resumindo, em grosso modo, bem simplista, o que fiz foi o seguinte: eu peguei a imagem aff (arquivo image.aff, que contém os metadados e os dados juntamente em um único arquivo) e separei os metadados dos dados em si; os metadados foi para um novo arquivo (imagem.afm) e os dados foram para o arquivo image.000.
Se eu quiser acessar os metadados, basta digitar o comando "affinfo image.afm. Se eu quiser ver a geometria do disco da minha imagem, basta digitar "mmls image.000" ou "mmls image.aff", vai dar no mesmo.

5.2) Conversão do formato AFF para o AFD
Agora, nós vamos fazer a conversão da imagem no formato AFF para o formato AFD. Lembrando que no formato AFF a imagem e os metadados estão contidos em um único arquivo; e, no formato AFD, os metadados estão armazenados na própria imagem forense, porém, quebra-se a imagem forense em alguns "pedaços".

O nome da imagem forense no formato AFF é: image.aff.
Depois do processo de conversão, será criado um diretório para os arquivos AFD (o diretório recebe o nome da imagem com extensão AFD - image.afd). Nesse diretório estarão os arquivos da imagem splitraw. No meu exemplo, dentro do diretório image.afd, eu vou ter o arquivo file_000.aff (que é um arquivo AFF - img_stat file_000.aff). Se eu quiser, eu posso até montar o arquivo file_000.aff usando o utilitário affuse; já vimos esse procedimento aqui.

5.3) Conversão do formato AFD para o AFM
O processo é o mesmo. Eu vou usar o utilitário affconvert com o parâmetro -a.

Depois do processo de conversão, eu vou ter 4 arquivos:
  • image000: a imagem forense em si. Ela é do tipo splitraw.
  • image.afd: era a minha imagem no formato AFD antes da conversão
  • image.aff: é somente uma imagem no formato AFF, que não participou em nada no processo de conversão
  • image.afm: arquivo que contém os metadados referentes à imagem splitraw - metadados referentes ao arquivo de imagem image.000
5.4) Conversão do formato AFM para o AFD
O processo não é diferente. Vamos usar novamente o utilitário affconvert com o parâmetro -a.

Se eu quiser, eu posso até entrar no diretório "image.afd", que eu vou ver um arquivo de imagem AFF lá dentro. No meu exemplo aqui, a imagem AFF que vai estar dentro do diretório image.afd é o arquivo: file_000.aff.
Eu posso fazer o que quiser com o arquivo file_000.aff; eu posso montá-lo, e posso também exibir algumas informações (metadados) referentes à imagem forense, usando o utilitário affinfo file_000.aff

5.5) Conversão do formato AFM para o AFF
O processo para conversão do formato AFM para o formato AFF é o mesmo das outras conversões. Eu vou usar o utilitário affconvert com o parâmetro -a

5.6) Conversão do formato AFD para o AFF
Por fim, nós temos a conversão do formato AFD para o formato AFF. Novamente, eu vou usar o utilitário affconvert com o parâmetro -a.


Bom, é isso galera.
Espero que esse post tenha alguma importância para você, leitor.

Um abraço!





Referências: