SlideShare uma empresa Scribd logo
Memory Anti-Anti Forensics in a
Nutshell
Aborting the Abort Factor
Tony Rodrigues
www.octanelabs.net
#whoami
• Tony Rodrigues, CISSP, CFCP, Security+
• 30 anos em TI
– Desenvolvimento
– Contingência
– Segurança de Informações/Computação Forense
• Perito em DFIR
• Fundador e Pesquisador-Chefe do OctaneLabs
• Blog: http://forcomp.blogspot.com
#whoami
Fora de TI
●
Carioca
●
Faixa Preta em Kickboxing e Muay Thai
Fora de TI
Fora de TI
• Fotógrafo, Mochileiro
• E o mais importante ...
Torcedor do Melhor Time
do Mundo !!!
Agenda
• Computação Forense e a importancia
da Forense de Memória
• Forense de Memória
• Organização de Memória do Windows
• Lembra daqueles erros no seu dump
de memória ?
• Abort Factor
• Atacando a Memória
• Podemos reverter ?
• Abortando o Abort Factor
• Conclusões
Aviso de Isenção de
Responsabilidade
As declarações publicadas aqui são
de minha única e exclusiva
iniciativa e não representam,
necessariamente, opinião,
estratégia e posicionamento do
meu empregador.
Computação Forense e
a importancia da
Forense de Memória
CF – Importancia da
Forense de Memória
• Análise Post Mortem
• Análise Live
• Análise Dump Memória
Volume de dados dificulta a
localização de malwares
Pode ser comprometida por
malwares (hooking) – menos
confiável em alguns casos
Melhor relação esforço-resultado!!
• Processo realizado em apenas 2 etapas
– Coleta da memória (Dump)
– Análise do dump
• Consegue identificar
–Processos e respectivas informações
– Dados não alocados (processos terminados)
– Processos que estejam ocultos
CF – Importancia da
Forense de Memória
Forense de Memória
Coletando a Memoria
User Mode
Kernel Mode
Inicio da Aquisição Inicio da Analise
Ferramenta de
Aquisição
Ferramenta de
Analise
Dump de
Memória
Analise Dump
Driver de
Aquisição
NtWriteFile () dump
NtWriteFile () dump
Host Remoto
Dump Memória
Algoritmo Dump de
Memória
DevicePhysicalMemory
Physical space mapping (MmMapIoSpace())
• Coleta
– MoonSols Windd (Raw e CrashDump)
– WinEn (Raw)
– HBGary Responder (Raw)
– DumpIt (Raw)
– WinPMem (Raw e CrashDump)
– Windows Memory Reader
– Belkasoft Live Ram Capturer
Forense de Memória
• Análise
– Volatility
– Redline ou Memorize
– HBGary Responder
– Rekall
Forense de Memória
• Open Source
• Versão Windows OS – XP, Vista, 7, 8,
8.1, 2003, 2008 e 2012
• Suporta Raw, Crash Dump, snapshot de
máquinas virtuais e Hibernation
• Arquitetura Intel x86
• Trabalha com conceito de plugins
Volatility
Volatility
• Desenvolvido pela Mandiant
– Foco na análise dos processos
• Versão Windows OS - todas
• Suporta apenas Raw
• Duas arquiteturas: x86 e AMD64
• Trabalha três conceitos
– Malware Risk Index
– IoC (Indicators of Compromise)
– MemD5 (whitelist)
Redline
Redline
• Desenvolvido pela HBGary
• Versão Windows OS – Todas
• Suporta apenas Raw
• Duas arquiteturas: x86 e AMD64
• Trabalha com dois conceitos
– Digital DNA
– Code Graphing
HBGary Responder
HBGary Responder
Organização de Memória
do Windows
Atenção
As estruturas da memória
podem variar com a versão
do Sistema Operacional ou
mesmo do Service Pack
Memória do Windows
Um conjunto de bytes
Organização da Memoria
Page
Table
Entries
Memória FísicaPaginas
Virtuais
00000000
7FFFFFFF
80000000
C0000000
C1000000
FFFFFFFF
Tradução de endereços
virtuais
Pagina
Desejada
Existem outros modelos de endereçamento como o PAE e 64 bits
Page Directory
Index
Page Table
Index
Byte Index
KPROCESS
CR3
PFN
PFNPDE
PTE
Endereço
Físico
Index
Index
Index
Endereço Físico
Estruturas Importantes
Process Control Block (PCB)
Process ID
Parent Process ID
Image File Name
Exit Status
Create and Exit Time
Active Process Link
Session Process Link
Quota Block
Memory Management Information
Security,Exception, Debug Ports
(...)
Process Counter
Process Flag
Image Base Address
EPROCESS
Dispatcher Header
Kernel Time
User Time
Cycle Time
Inheritable Thread
Scheduling Flags (...)
Insawap-Outswap List Entry
Thread List Head
Process Spinlock
Processor Afinity
Resident Kernel Stack Count
Process State
Thread Seed
Ideal Node
KTHREAD
PSActiveProcessHead
Estrutura EPROCESS
Estrutura KPROCESS
(...) Directory Table Base
Outras Estruturas
Lembra daqueles erros
no seu dump de
memória ?!?



Abort Factor
Ataque do Abort Factor
• BlackHat 2012
• O ataque é contra a análise
• Baseado na modificação de um byte em alguns
lugares específicos (Abort Factor)
• Implementado em código que executa no nível
do Kernel
• Busca inviabilizar as ferramentas de análise
Ataque do Abort Factor
• Ataque é realizado sobre operações
críticas
– Tradução do endereçamento virtual do kernel
space
– Identificação da arquitetura e Sistema
Operacional
– Obtenção de Objetos do Kernel
• Não pode dar BSOD !
Abort Factors Possíveis
Atacando a Memória
Atacando a Memória
• Rootkit
– Altera o abort factor
• Apenas 1 byte alterado em cada
• Não pode dar BSOD*
– Logo no momento da carga do rootkit
• Durante a análise, teremos:
– Impossibilidade de achar o SO
– Erro nas operações
• No PoC realizado a máquina ficou ligada por 15 dias consecutivos sem dar BSOD
Código disponível
Uso
• Malwares
– Esconder os vestígios na memória
– Evitar ou atrasar a análise do dump
• Auto-defesa maliciosa
– Usuário malicioso pode usar na própria
máquina
– Evitar vestígios de atividades ilícitas
Podemos reverter isso?
Apresentando ....
Phosfosol
OctaneLabs
Indicium in Veritas
Abortando o Abort Factor
• Fato
– Abort Factor inviabiliza todas as 3
ferramentas de análise
• Anti-Abort Factor
– Fazendo funcionar para ao menos uma das
ferramentas
• Volatility é o alvo
– Permite indicar DTB e Profile
Como ?
• Principalmente
– Localizando o DTB do Kernel
– Inferindo o profile correto
• Foco em estruturas de kernel intactas e
correlação
– Não atacadas por opção
– Não atacadas por impossibilidade
– Correlação entre os vestígios
Estruturas preservadas
• PoC somente explora 3 Abort Factors
– Código pronto. Copy&Paste
– Os 3 explorados já cumprem o objetivo
• Outros podem ser mais complicados
– Pelo menos em um primeiro momento
• Estruturas mapeadas
– Eprocess do IDLE
– _DBGKD_DEBUG_DATA_HEADER64
(KDBG)
Ataque impossível
• Assinaturas baseadas em endereços
– Endereços adulterados == BSOD
• Estruturas auto-referenciadas
– Page Directory Table, Page Table
Estruturas Auto-Referenciadas
Estruturas Auto-Referenciadas
Phosfosol
Abort Factor
Phosfosol
Vamos usar
essas
informações
Phosfosol → Volatility
DTB informado
Profile
informado
E se não funcionar ?!?
Phosfosol não funcionou
• Outros Abort Factors foram usados
– Assinatura do KDBG adulterada
– Imagename do System ou do Idle adulterado
• Serão endereçados no upgrade do
Phosfosol
Phosfosol 2.0 Ultra Gold
Vitaminado ++
• Uso de assinaturas fortes
– Trabalho de Brendan Dolan-Gavitt
– Carving baseado em campos críticos
• BSOD se adulterados
• Suportará ataques múltiplos até mesmo
de todos os Abort Factors conjugados
• Novas opções de linha de comando
– Confirmação de ataque/abort factor
– Reversão do ataque
Conclusões
• Abort Factor é um ataque eficiente
✔
Lançado em 2012
✔
Ainda efetivo em 2016
• Código disponível
• Phosfosol pode recuperar as informações
danificadas
Referencias
• Phosfosol
– https://code.google.com/p/phosfosol/
• OctaneLabs
– http://www.octanelabs.net
• Moonsols (Dumpit, Win32dd)
– http://www.moonsols.com/
• Mandiant (Red Line, Memoryze)
– http://www.mandiant.com/
• HBGary (Responder Community Edition)
– http://www.hbgary.com/
• Volatility
– https://code.google.com/archive/p/volatility/
References
• One-byte Modification for Breaking Memory Forensic Analysis
– https://media.blackhat.com/bh-eu-12/Haruyama/bh-eu-12-Haruyama-Memory_Fore
nsic-Slides.pdf
• Robust Signatures for Kernel Data Structures
– http://www.cc.gatech.edu/~brendan/ccs09_siggen.pdf
• Windows Kernel Architecture Internals
– Dave Probert
• Windows Internals
– Mark Russinovich, David Solomon
• Windows operating systems agnostic memory analysis
– http://www.dfrws.org/2010/proceedings/2010-306.pdf
Obrigado !
• Agradecimentos do OctaneLabs
– Ao co-autor Diego Fuschini
– Takahiro Haruyama san
– Mr Brendan Dolan-Gavitt
– Mr Matthieu Suiche
OctaneLabs
OctaneLabs
• O que é OctaneLabs ???
• Time de Pesquisa Open Source em
Computação Forense e Resposta a
Incidentes
OctaneLabs
• Objetivos
• Fomentar a pesquisa em
Computação Forense no Brasil
• Promover Projetos Open Source
com foco em Computação Forense
e Investigação Digital
• Ministrar Treinamentos em CF
• Consultoria, Perícia e Investigação
Digital
OctaneLabs
• Projetos
• MUFFIN
• Byte Investigator
• DataJuicer
• Jardineiro
• CORE
• FSJuicer
• Phosfosol
• Blitz
• Langoliers
We Want YOU ! www.octanelabs.net
@octanelabs
Perguntas !
Obrigado !
inv.forense arroba gmail
ponto com
@octanelabs
(Tony Rodrigues)

Mais conteúdo relacionado

Mais procurados

Botnets
BotnetsBotnets
Botnets
Alex Nogueria
 
Git
GitGit
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Sandro Suffert
 
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
Jerônimo Medina Madruga
 
Confraria0day - 11º Edição - Jhonathan Davi
Confraria0day - 11º Edição - Jhonathan DaviConfraria0day - 11º Edição - Jhonathan Davi
Confraria0day - 11º Edição - Jhonathan Davi
Jhonathan Davi
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Ricardo Rufino
 
Pwn3d IoT - CryptoRave 2017
Pwn3d IoT - CryptoRave 2017Pwn3d IoT - CryptoRave 2017
Pwn3d IoT - CryptoRave 2017
Jhonathan Davi
 
Dicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigosDicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigos
Joubert Guimarães de Assis "RedRat"
 

Mais procurados (8)

Botnets
BotnetsBotnets
Botnets
 
Git
GitGit
Git
 
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
 
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
Clonezilla seu amigo, vai salvar seus dados do perigo! - Tchelinux Caxias 2011
 
Confraria0day - 11º Edição - Jhonathan Davi
Confraria0day - 11º Edição - Jhonathan DaviConfraria0day - 11º Edição - Jhonathan Davi
Confraria0day - 11º Edição - Jhonathan Davi
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Pwn3d IoT - CryptoRave 2017
Pwn3d IoT - CryptoRave 2017Pwn3d IoT - CryptoRave 2017
Pwn3d IoT - CryptoRave 2017
 
Dicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigosDicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigos
 

Semelhante a Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de VulnerabilidadesMetasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
Leandro Silva
 
H2HC University 2014
H2HC University 2014H2HC University 2014
H2HC University 2014
Joaquim Espinhara
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012
Leandro Silva
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
tdc-globalcode
 
Insustentavel js
Insustentavel jsInsustentavel js
Insustentavel js
Leonardo Balter
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
CDS
 
Desenvolvimento seguro
Desenvolvimento seguroDesenvolvimento seguro
Desenvolvimento seguro
Marcelo Fleury
 
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
BHack Conference
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Rafael Salerno de Oliveira
 
Engenharia Reversa para Principiantes
Engenharia Reversa para PrincipiantesEngenharia Reversa para Principiantes
Engenharia Reversa para Principiantes
Wanderley Caloni
 
Implementando Fail Fast no Rails
Implementando Fail Fast no RailsImplementando Fail Fast no Rails
Implementando Fail Fast no Rails
Luís Fernando Murara
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Alex Hübner
 
utilitários de linha de comando bonitos em python
utilitários de linha de comando bonitos em pythonutilitários de linha de comando bonitos em python
utilitários de linha de comando bonitos em python
tdc-globalcode
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
Stefan Teixeira
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
tdc-globalcode
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
Claudio Romao
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
Impacta Eventos
 
Táticas de obfuscação de código em projetos PHP
Táticas de obfuscação de código em projetos PHPTáticas de obfuscação de código em projetos PHP
Táticas de obfuscação de código em projetos PHP
Murilo Chianfa
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
Alexandre Almeida
 

Semelhante a Anti-Anti-Forense de Memória: Abortando o "Abort Factor" (20)

Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de VulnerabilidadesMetasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
H2HC University 2014
H2HC University 2014H2HC University 2014
H2HC University 2014
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 
Insustentavel js
Insustentavel jsInsustentavel js
Insustentavel js
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Desenvolvimento seguro
Desenvolvimento seguroDesenvolvimento seguro
Desenvolvimento seguro
 
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Engenharia Reversa para Principiantes
Engenharia Reversa para PrincipiantesEngenharia Reversa para Principiantes
Engenharia Reversa para Principiantes
 
Implementando Fail Fast no Rails
Implementando Fail Fast no RailsImplementando Fail Fast no Rails
Implementando Fail Fast no Rails
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
 
utilitários de linha de comando bonitos em python
utilitários de linha de comando bonitos em pythonutilitários de linha de comando bonitos em python
utilitários de linha de comando bonitos em python
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Táticas de obfuscação de código em projetos PHP
Táticas de obfuscação de código em projetos PHPTáticas de obfuscação de código em projetos PHP
Táticas de obfuscação de código em projetos PHP
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 

Mais de Nullbyte Security Conference

Speeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorallSpeeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorall
Nullbyte Security Conference
 
Gitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on GithubGitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on Github
Nullbyte Security Conference
 
Automatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostosAutomatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostos
Nullbyte Security Conference
 
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Nullbyte Security Conference
 
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Nullbyte Security Conference
 
Is rust language really safe?
Is rust language really safe? Is rust language really safe?
Is rust language really safe?
Nullbyte Security Conference
 
Stealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploitStealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploit
Nullbyte Security Conference
 
C&C Botnet Factory
C&C Botnet FactoryC&C Botnet Factory
C&C Botnet Factory
Nullbyte Security Conference
 
Hacking cable modems the later years
Hacking cable modems the later yearsHacking cable modems the later years
Hacking cable modems the later years
Nullbyte Security Conference
 
Muito além do alert() em ataques web client side
Muito além do alert() em ataques web client sideMuito além do alert() em ataques web client side
Muito além do alert() em ataques web client side
Nullbyte Security Conference
 
Cabra Arretado Aperriando o WordPress
Cabra Arretado Aperriando o WordPressCabra Arretado Aperriando o WordPress
Cabra Arretado Aperriando o WordPress
Nullbyte Security Conference
 
How i cracked millions of “pt br” hashed passwords
How i cracked millions of “pt br” hashed passwordsHow i cracked millions of “pt br” hashed passwords
How i cracked millions of “pt br” hashed passwords
Nullbyte Security Conference
 
Evitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaXEvitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaX
Nullbyte Security Conference
 
All your binaries are belong to us
All your binaries are belong to usAll your binaries are belong to us
All your binaries are belong to us
Nullbyte Security Conference
 

Mais de Nullbyte Security Conference (14)

Speeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorallSpeeding up Red Team engagements with carnivorall
Speeding up Red Team engagements with carnivorall
 
Gitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on GithubGitminer 2.0 - Advance Search on Github
Gitminer 2.0 - Advance Search on Github
 
Automatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostosAutomatizando o abuso de repositórios expostos
Automatizando o abuso de repositórios expostos
 
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objectsWindows Internals: fuzzing, hijacking and weaponizing kernel objects
Windows Internals: fuzzing, hijacking and weaponizing kernel objects
 
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
 
Is rust language really safe?
Is rust language really safe? Is rust language really safe?
Is rust language really safe?
 
Stealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploitStealth post-exploitation with phpsploit
Stealth post-exploitation with phpsploit
 
C&C Botnet Factory
C&C Botnet FactoryC&C Botnet Factory
C&C Botnet Factory
 
Hacking cable modems the later years
Hacking cable modems the later yearsHacking cable modems the later years
Hacking cable modems the later years
 
Muito além do alert() em ataques web client side
Muito além do alert() em ataques web client sideMuito além do alert() em ataques web client side
Muito além do alert() em ataques web client side
 
Cabra Arretado Aperriando o WordPress
Cabra Arretado Aperriando o WordPressCabra Arretado Aperriando o WordPress
Cabra Arretado Aperriando o WordPress
 
How i cracked millions of “pt br” hashed passwords
How i cracked millions of “pt br” hashed passwordsHow i cracked millions of “pt br” hashed passwords
How i cracked millions of “pt br” hashed passwords
 
Evitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaXEvitando execução de códigos arbitrários com GRsecurity e PaX
Evitando execução de códigos arbitrários com GRsecurity e PaX
 
All your binaries are belong to us
All your binaries are belong to usAll your binaries are belong to us
All your binaries are belong to us
 

Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

  • 1. Memory Anti-Anti Forensics in a Nutshell Aborting the Abort Factor Tony Rodrigues www.octanelabs.net
  • 2. #whoami • Tony Rodrigues, CISSP, CFCP, Security+ • 30 anos em TI – Desenvolvimento – Contingência – Segurança de Informações/Computação Forense • Perito em DFIR • Fundador e Pesquisador-Chefe do OctaneLabs • Blog: http://forcomp.blogspot.com
  • 4. Fora de TI ● Carioca ● Faixa Preta em Kickboxing e Muay Thai
  • 6. Fora de TI • Fotógrafo, Mochileiro • E o mais importante ...
  • 7. Torcedor do Melhor Time do Mundo !!!
  • 8. Agenda • Computação Forense e a importancia da Forense de Memória • Forense de Memória • Organização de Memória do Windows • Lembra daqueles erros no seu dump de memória ? • Abort Factor • Atacando a Memória • Podemos reverter ? • Abortando o Abort Factor • Conclusões
  • 9. Aviso de Isenção de Responsabilidade As declarações publicadas aqui são de minha única e exclusiva iniciativa e não representam, necessariamente, opinião, estratégia e posicionamento do meu empregador.
  • 10. Computação Forense e a importancia da Forense de Memória
  • 11. CF – Importancia da Forense de Memória • Análise Post Mortem • Análise Live • Análise Dump Memória Volume de dados dificulta a localização de malwares Pode ser comprometida por malwares (hooking) – menos confiável em alguns casos Melhor relação esforço-resultado!!
  • 12. • Processo realizado em apenas 2 etapas – Coleta da memória (Dump) – Análise do dump • Consegue identificar –Processos e respectivas informações – Dados não alocados (processos terminados) – Processos que estejam ocultos CF – Importancia da Forense de Memória
  • 14. Coletando a Memoria User Mode Kernel Mode Inicio da Aquisição Inicio da Analise Ferramenta de Aquisição Ferramenta de Analise Dump de Memória Analise Dump Driver de Aquisição NtWriteFile () dump NtWriteFile () dump Host Remoto Dump Memória Algoritmo Dump de Memória DevicePhysicalMemory Physical space mapping (MmMapIoSpace())
  • 15. • Coleta – MoonSols Windd (Raw e CrashDump) – WinEn (Raw) – HBGary Responder (Raw) – DumpIt (Raw) – WinPMem (Raw e CrashDump) – Windows Memory Reader – Belkasoft Live Ram Capturer Forense de Memória
  • 16. • Análise – Volatility – Redline ou Memorize – HBGary Responder – Rekall Forense de Memória
  • 17. • Open Source • Versão Windows OS – XP, Vista, 7, 8, 8.1, 2003, 2008 e 2012 • Suporta Raw, Crash Dump, snapshot de máquinas virtuais e Hibernation • Arquitetura Intel x86 • Trabalha com conceito de plugins Volatility
  • 19. • Desenvolvido pela Mandiant – Foco na análise dos processos • Versão Windows OS - todas • Suporta apenas Raw • Duas arquiteturas: x86 e AMD64 • Trabalha três conceitos – Malware Risk Index – IoC (Indicators of Compromise) – MemD5 (whitelist) Redline
  • 21. • Desenvolvido pela HBGary • Versão Windows OS – Todas • Suporta apenas Raw • Duas arquiteturas: x86 e AMD64 • Trabalha com dois conceitos – Digital DNA – Code Graphing HBGary Responder
  • 24. Atenção As estruturas da memória podem variar com a versão do Sistema Operacional ou mesmo do Service Pack
  • 25. Memória do Windows Um conjunto de bytes
  • 26. Organização da Memoria Page Table Entries Memória FísicaPaginas Virtuais 00000000 7FFFFFFF 80000000 C0000000 C1000000 FFFFFFFF
  • 27. Tradução de endereços virtuais Pagina Desejada Existem outros modelos de endereçamento como o PAE e 64 bits Page Directory Index Page Table Index Byte Index KPROCESS CR3 PFN PFNPDE PTE Endereço Físico Index Index Index Endereço Físico
  • 28. Estruturas Importantes Process Control Block (PCB) Process ID Parent Process ID Image File Name Exit Status Create and Exit Time Active Process Link Session Process Link Quota Block Memory Management Information Security,Exception, Debug Ports (...) Process Counter Process Flag Image Base Address EPROCESS Dispatcher Header Kernel Time User Time Cycle Time Inheritable Thread Scheduling Flags (...) Insawap-Outswap List Entry Thread List Head Process Spinlock Processor Afinity Resident Kernel Stack Count Process State Thread Seed Ideal Node KTHREAD PSActiveProcessHead Estrutura EPROCESS Estrutura KPROCESS (...) Directory Table Base
  • 30. Lembra daqueles erros no seu dump de memória ?!?
  • 31.
  • 35. Ataque do Abort Factor • BlackHat 2012 • O ataque é contra a análise • Baseado na modificação de um byte em alguns lugares específicos (Abort Factor) • Implementado em código que executa no nível do Kernel • Busca inviabilizar as ferramentas de análise
  • 36. Ataque do Abort Factor • Ataque é realizado sobre operações críticas – Tradução do endereçamento virtual do kernel space – Identificação da arquitetura e Sistema Operacional – Obtenção de Objetos do Kernel • Não pode dar BSOD !
  • 39. Atacando a Memória • Rootkit – Altera o abort factor • Apenas 1 byte alterado em cada • Não pode dar BSOD* – Logo no momento da carga do rootkit • Durante a análise, teremos: – Impossibilidade de achar o SO – Erro nas operações • No PoC realizado a máquina ficou ligada por 15 dias consecutivos sem dar BSOD
  • 41. Uso • Malwares – Esconder os vestígios na memória – Evitar ou atrasar a análise do dump • Auto-defesa maliciosa – Usuário malicioso pode usar na própria máquina – Evitar vestígios de atividades ilícitas
  • 44. Abortando o Abort Factor • Fato – Abort Factor inviabiliza todas as 3 ferramentas de análise • Anti-Abort Factor – Fazendo funcionar para ao menos uma das ferramentas • Volatility é o alvo – Permite indicar DTB e Profile
  • 45. Como ? • Principalmente – Localizando o DTB do Kernel – Inferindo o profile correto • Foco em estruturas de kernel intactas e correlação – Não atacadas por opção – Não atacadas por impossibilidade – Correlação entre os vestígios
  • 46. Estruturas preservadas • PoC somente explora 3 Abort Factors – Código pronto. Copy&Paste – Os 3 explorados já cumprem o objetivo • Outros podem ser mais complicados – Pelo menos em um primeiro momento • Estruturas mapeadas – Eprocess do IDLE – _DBGKD_DEBUG_DATA_HEADER64 (KDBG)
  • 47. Ataque impossível • Assinaturas baseadas em endereços – Endereços adulterados == BSOD • Estruturas auto-referenciadas – Page Directory Table, Page Table
  • 52. Phosfosol → Volatility DTB informado Profile informado
  • 53. E se não funcionar ?!?
  • 54. Phosfosol não funcionou • Outros Abort Factors foram usados – Assinatura do KDBG adulterada – Imagename do System ou do Idle adulterado • Serão endereçados no upgrade do Phosfosol
  • 55. Phosfosol 2.0 Ultra Gold Vitaminado ++ • Uso de assinaturas fortes – Trabalho de Brendan Dolan-Gavitt – Carving baseado em campos críticos • BSOD se adulterados • Suportará ataques múltiplos até mesmo de todos os Abort Factors conjugados • Novas opções de linha de comando – Confirmação de ataque/abort factor – Reversão do ataque
  • 56. Conclusões • Abort Factor é um ataque eficiente ✔ Lançado em 2012 ✔ Ainda efetivo em 2016 • Código disponível • Phosfosol pode recuperar as informações danificadas
  • 57. Referencias • Phosfosol – https://code.google.com/p/phosfosol/ • OctaneLabs – http://www.octanelabs.net • Moonsols (Dumpit, Win32dd) – http://www.moonsols.com/ • Mandiant (Red Line, Memoryze) – http://www.mandiant.com/ • HBGary (Responder Community Edition) – http://www.hbgary.com/ • Volatility – https://code.google.com/archive/p/volatility/
  • 58. References • One-byte Modification for Breaking Memory Forensic Analysis – https://media.blackhat.com/bh-eu-12/Haruyama/bh-eu-12-Haruyama-Memory_Fore nsic-Slides.pdf • Robust Signatures for Kernel Data Structures – http://www.cc.gatech.edu/~brendan/ccs09_siggen.pdf • Windows Kernel Architecture Internals – Dave Probert • Windows Internals – Mark Russinovich, David Solomon • Windows operating systems agnostic memory analysis – http://www.dfrws.org/2010/proceedings/2010-306.pdf
  • 59. Obrigado ! • Agradecimentos do OctaneLabs – Ao co-autor Diego Fuschini – Takahiro Haruyama san – Mr Brendan Dolan-Gavitt – Mr Matthieu Suiche
  • 61. OctaneLabs • O que é OctaneLabs ??? • Time de Pesquisa Open Source em Computação Forense e Resposta a Incidentes
  • 62. OctaneLabs • Objetivos • Fomentar a pesquisa em Computação Forense no Brasil • Promover Projetos Open Source com foco em Computação Forense e Investigação Digital • Ministrar Treinamentos em CF • Consultoria, Perícia e Investigação Digital
  • 63. OctaneLabs • Projetos • MUFFIN • Byte Investigator • DataJuicer • Jardineiro • CORE • FSJuicer • Phosfosol • Blitz • Langoliers
  • 64. We Want YOU ! www.octanelabs.net @octanelabs
  • 66. Obrigado ! inv.forense arroba gmail ponto com @octanelabs (Tony Rodrigues)