Vulnerable Web Applications – Simuladores para Estudo

Hoje não há o que discutir quando o assunto é a segurança das aplicações desenvolvidos para a web em sua corporação, ou então as que são disponibilizadas para usuários. Apesar do grande número de técnicas e estratégias para aumentar a segurança existentes, a última grande camada, que irá de fato aumentar a segurança da aplicação é sem dúvida, o próprio desenvolvedor.

Ainda hoje, apesar de segurança ter se tornado uma matéria interdisciplinar e estar presente em todos os âmbitos onde hajam profissionais de tecnologia, existe uma lacuna gigantesca entre o que é preciso fazer para de fato aumentar a segurança e o que é possível fazer levando em conta o cronograma onde os projetos são desenvolvidos, e onde muitas vezes por falta de planejamento estratégico adequado do Core Team, a segurança é relegada a pequenos aspectos, que muitas vezes são apenas o inicio do todo trabalho.

Muitas vezes, durante os estudos fica difícil para iniciantes conseguir aplicar e visualizar alguns conceitos de vulnerabilidades e ataques em aplicações web, e isso acaba tornando a experiência algo difícil de ser absorvido. Pensando nisto, resolvi publicar um artigo voltado a alguns frameworks para estudo e simulação de explorações de vulnerabilidades em aplicações web.

Com estes frameworks você poderá ver na prática o efeito das principais vulnerabilidades, suas contra-medidas, assim como abrir a mente no que diz respeito a possíveis formas de mitigação destes tipos de ataque.  Utilizando uma plataforma das 3 que irei falar abaixo, certamente você verá que o entendimento destes tópicos se tornará muito mais interessante (e divertido).

dvwa

DVWA (Damn Vulnerable Web Application) – Este framework consiste basicamente de uma aplicação vulnerável em PHP/MySQL onde você pode testar suas habilidades em SQL Injection, XSS, Blind SQL Injection, etc.  O DVWA é desenvolvido por Ryan Dwhurst e faz parte de um projeto OpenSource da RandomStorm

http://www.dvwa.co.uk

hackxor11_7

Hackxor – É um web application hacking game. Neste game o jogador precisa localizer e explorer vulnerabilidades para progredir através da história do jogo, como se fosse um hacker contratado para rastrear outro hacker, usando todos os meios necessários. Ele contem scripts vulneraveis a Cross Site Scripting (XSS), Cros Site Request Forgery (CSRF), Structured Query Language Injection (SQLi), Remote Command Injection (RCE) e muitos outros.

http://sourceforge.net/projects/hackxor

WebGoat_Welcome_Page

WebGoat – É um projeto da OWASP (Open Web Application Security Project) onde você possuirá uma interface deliberadamente insegura disponibilizada em J2EE, onde você encontrará diversas lições e exercícios, onde poderá aprender de forma bem didática, com exemplos e exercícios de diversos níveis de dificuldade. O mais legal dessa web application e que permite ao usuário demonstrar seu entendimento de uma determinada falha de segurança explorando uma vulnerabilidade real em cada lição.

http://code.google.com/p/webgoat

Todas são geralmente muito simples de utilizar e começar a brincar. Acredito que é sempre bom deixar bem claro aqui que, obviamente a segurança dessas aplicações é algo praticamente inexistente, sendo assim, não hospedem estes recursos em servidores de produção (nunca é demais lembrar eheh), pois fatidicamente vocês serão hackeados, e não será apenas de brincadeira. :)

Advertisements

Auditando Aplicações: Análise Estática de Códigos

Cada vez mais serviços estão sendo direcionados para plataforma web, sendo assim acabamos ficando dependentes ainda mais destas aplicações. Estes sistemas tem que ser cada vez mais onipresentes (quero acessá-los de qualquer lugar – cloud) confiáveis (quero que ele faça o que ele precisa fazer) e ágeis (quero que façam isso rápido!).

Qual a consequência disto? A consequência imediata é: sistemas cada vez mais complexos. Quando digo complexo não me refiro tão somente a complexidade do código fonte ou o seu desenvolvimento, mas também a complexidade inerente ao serviço em si. Cada vez mais APIs, cada vez mais plugins, cada vez mais sistemas interconectados e interdependentes.

Uma vez que a complexidade entrou na equação ela traz o seu efeito colateral: situações inesperadas.  Quando temos um ciclo de vida em nossa aplicação que não contempla o devido cuidado com segurança, temos implicações de diversos níveis. A maior delas é que em geral problemas que a primeira vista são simples e pequenos, acabam se tornando  verdadeiros pesadelos.

Análise Estática do Código consiste basicamente em antever problemas de segurança efetuando uma auditoria no código, sem executá-lo. Isso pode se tornar uma tarefa muito trabalhosa, especialmente quando o desenvolvedor não tem experiência com segurança e se não existe um framework de desenvolvimento seguro em uso no projeto.

As aplicações web são alvos constantes de ataques, quase que 24 horas por dia. Temos estatiscas de que muitas vezes, 60% do tráfego diário que chega a um website é gerado por bots que em sua grande maioria estão procurando por scripts vulneráveis para efetuar ataques, comprometer o servidor e a aplicação e fazê-la parte de sua rede de zumbis. Não seria nada legal ter seu e-Commerce em uma lista de hosts que estão disseminando Malwares para os usuários. Isto pode comprometer gravemente seus negócios.

Para auxiliar desenvolvedores neste árduo processo de análise estática, temos algumas aplicações muito interessantes e que podem realmente trazer a tona, muitas vezes problemas de segurança que não eram imaginados durante o desenvolvimento. Talvez aquele “warning” que seu compilador cuspiu na tela e você pensou “ah mas é apenas um warning, não tem nada de grave ai..” esconda muito mais do que imagina J

RIPS – Analisador Estático de vulnerabilidades em código fonte de Scripts PHP

RIPS é uma ferramenta escrita em PHP para encontrar vulnerabilidades em aplicações PHP utilizando o conceito de análise estática do código. Utilizando tokenização e parseando todos os arquivos de código PHP, ele consegue transformar seu código fonte PHP em program model e detectar sinks sensíveis (pontecialmente funções vulneráveis) que poderiam ser manipuladas por um userinput (influenciada por um usuário malicioso) durante o fluxo do programa. Além disto, baseado  na estrutura de output de uma vulnerabilidade encontrada, RIPS também oferece um framework integrado de code audit  para que você possa fazer uma análise manual.

Entre algumas das features apresentas pelo RIPS temos:

RIPS consegue identificar por padrão diversas vulnerabilidades em sua aplicação, em sua grande maioria as listadas no OWASP Top 10 são identificadas. Segue abaixo uma pequena lista das principais vulnerabilidades identificadas pela aplicação:

  • Code Execution
  • Command Execution
  • Cross-Site Scripting
  • Header Injection
  • File Disclosure
  • File Inclusion
  • File Manipulation
  • LDAP Injection
  • SQL Injection
  • XPath Injection

A interface de auditoria de código do RIPS consiste de algumas funcionalidades muito interessantes, entre elas podemos citar:

  • Estatísticas referentes ao Scans e as vulnerabilidades da aplicação
  • Linhas de código vulneraveis são agrupadas
  • Descrição das Vulnerabilidades com exemplo de código, PoC e patch
  • Engine que permite a criação do Exploit para explorer a vulnerabilidade encontrada
  • Exibição gráfica de arquivos (conectada pelos includes)
  • Exibição gráfica de funções (conectadas pelas calls)
  • userinput list (parámetros da aplicação)
  • visualização do código fonte com destaque em funções e parametros

Entre muitas outras que permitem que você faça o debug da aplicação utilizando inclusive expressões regulares. Efetuando a análise estática do código com RIPs, você consegue rapidez ao executar a análise (executar uma análise estática manualmente pode ser dolorosamente demorado).  Você consegue identificar blind/non-blind SQL exploitation, detectar backdoors em seu código entre outras vantagens.

Aplicação sendo analisada – Temos os resultados Preliminares com o número de funções vulneráveis.

Visualização gráfica dos Arquivos  – Interligação ocorre através dos Includes.

Engine permite criar Exploits para gerar PoC da vulnerabilidade.

Download + Instalação

O Download pode ser feito a partir do site http://rips-scanner.sourceforge.net

Para utilizar o RIPs você precisa primeiramente de um webserver local com suporte a PHP (tendo em vista que você é um desenvolvedor PHP, você já deve ter um J ).

Feito isto basta baixar a ultima versão estável , extrair os arquivos em seu Document Root do servidor web e acessar a interface, disponível em: <http://ip_servidor/rips>, e iniciar as análises.

Análise de Malware: Win32 ProxyChanger

Este malware foi obtido em um ataque de Phishing Scam. O atacante encaminhou um link contendo um executável se passando por um arquivo compactado que faz referência a um boleto de cobrança vencido em nome da vítima. Ataques de engenharia social deste tipo visam fazer com que o usuário sinta-se atraido por visualizar seu conteúdo, sendo assim,  boletos de cobrança, faturas e chamarizes que façam alusão a dados pessoais sempre acabam sendo empregados.

Segue abaixo o e-mail recebido na íntegra:

phishing01

É possível visualizar na imagem acima que o campo de destinatário consta o valor “Recipientes”. Isso nos diz duas coisas:

1 Este ataque não foi o que chamamos de Spear Phishing Attack, ou seja, não foi uma mensagem criada especificamente para um ataque direcionado e sim um Phishing em massa.

2 A mensagem não tem nenhum resquicio de técnica avançada para disparo da mensagem. Foi utilizado apenas um e-mail em HTML com um Hyperlink no corpo da mensagem, nenhum tipo de payload malicioso (ex. Drive-by Exploit).

O host responsável pelo disparo da campanha de Phishing pertence a empresa Dytech.

É muito comum que criminosos que utilizam este tipo de abordagem procurem por contas de e-mail hospedadas em domínios .COM.BR.  Isto faz com que diversos filtros de conteúdo de e-mail, reputação e antispam sejam contornados. Geralmente domínios corporativos por padrão tem reputação elevada nos Scores de análise.

Abaixo o whois do domínio utilizado como difusor da Campanha:

whois01

Efetuando uma rápida checagem através do site http://mxtoolbox.com  é possível identificar falhas na configuração que permitiriam utilizar o servidor MX do domínio de forma maliciosa (relay aberto):

whois04

A credencial utilizada pelo criminoso pode ter sido comprometida através de algum phishing diretamente na rede corporativa. Outras possibilidades são de que o usuário possua uma senha muito simples que pode ser facilmente descoberta utilizando algum tipo de Brute-Force, ou então alguma aplicação web vulnerável que permita o envio indiscriminado de mensagens.

Ao clicar no link anexado no corpo do e-mail o usuário é direcionado para o download de um binário com nome de “cobranca.docx.exe” a partir do seguinte link:

http ://nwgawomensexpo  com/modules/ mod_finder/ cobranca.doc/ 

host01

Abaixo segue o Whois do domínio que hospeda o artefato:

whois03

Criminosos procuram por aplicações web vulneráveis para efetuar Upload de seus artefatos e hospeda-los de forma não rastreável.

Vamos agora analisar o artefato coletado e verificar o seu comportamento e que tipo de dano ele causa na máquina infectada.

ANÁLISE HEURÍSTICA

File name: COBRAN~1.EXE
File size: 93184 bytes
File type: PE32 executable for MS Windows (console) Intel 80386 32-bit
MD5: 47b405e428b345fcb4b23ac73bb24031

Sections

Name Virtual Address Virtual Size Size of Raw Data Entropy
UPX0 0x1000 0x2d000 0x0 0.0
UPX1 0x2e000 0x17000 0x16200 7.8974382553
.rsrc 0x45000 0x1000 0x600 2.89353823492

Como pode ser observado nas Sections acima, o artefato está compactado utilizando o UPX. Logo mais iremos efetuar o unpacking para poder analisa-lo de forma mais completa.

Após submete-lo ao VirusTotal obtivemos o seguinte resultado:

Antivirus Assinatura
McAfee Generic-FRAX!0958FA229CEB
TheHacker Posible_Worm32
Norman Sample.G.dropper
TrendMicro-HouseCall PAK_Generic.001
Kaspersky Trojan-Banker.Win32.Banbra.axlz
AntiVir TR/ATRAPS.Gen
TrendMicro PAK_Generic.001
McAfee-GW-Edition Generic-FRAX!0958FA229CEB
Emsisoft Gen:Trojan.Heur.GZ.fmGfbOVgePi (B)
Jiangmin Backdoor/Delf.hux
SUPERAntiSpyware Trojan.Agent/Gen-Autorun[Swisyn]
AhnLab-V3 Trojan/Win32.Banker
ESET-NOD32 Win32/ProxyChanger.HG
Ikarus Trojan-Dropper.Delf

Taxa de Detecção:  14 / 45

Este artefato já havia sido submetido para o VirusTotal no dia 15/02. Em sua primeira análise contava com uma taxa de detecção de 6 Engines.

Vamos verificar algumas informações do binário:

pefile

Temos então que este artefato foi criado utilizando Delphi e compactado com o UPX.

O UPX é um packer muito conhecido.  É utilizado também por atacantes para tentar obsfuscar o seu binário e dependendo de como é feita a detecção do binário por parte do antivirus, o simples fato dele estar packed é suficiente para que passe batido pela detecção Heurística.

Para poder efetuar o disassembly do artefato de forma mais completa iremos primeiramente remover a compactação pelo UPX:

reverse_upx

Agora vamos efetuar o disassembly do artefato:

reverse01_jpg

Ao ser executado ele carrega o componente TRegistry. Este componente é nativo do Delphi e permite ao artefato manipular chaves de registro.  Após carregar o objeto  ele determina que o valor para o TRegistry.SetRootKey  será  “Software\Microsoft\Windows\CurrentVersion\Internet Settings”.

Após definir a chave a ser modificada ele efetua um TRegistry.OpenKey e carrega  a chave “ProxyEnable” modificando o valor dela para “1”.  Ou seja, o artefato modificou o comportamento do sistema operacional dizendo que a partir de agora ele deve utilizar um endereço Proxy para navegar.

Em seguida ele chama o componente com a instrução TRegistry.WriteInteger  e escreve o valor “http:// lashlerouxsafaris co.za/components/com_jce/js/in.jsp”  na chave “AutoConfigUrl”.

Esta chave é responsável por configurar a URL com script para Auto Configuração de proxy.  Setando esta URL o browser irá buscar pela configuração do proxy que irá utilizar neste endereço a cada vez que for carregado. Assim o atacante pode manter o endereço IP do servidor de Proxy sempre atualizado caso migre para outro host.

Abrindo a configuração do Internet Options do  IExplorer conseguimos visualizar na íntegra a configuração que o malware realizou.

proxy02

Após efetuar a configuração do proxy no Internet Explorer o malware chama o browser padrão e direciona ele para a url “http://palhacopeteleco.com/res/ws/jjjjjjj/su.php” através da instrução Shell32.ShellExecuteA.

reverse02_jpg

Esta URL redireciona o acesso para o Google. Acredito que este PHP armazena informações do Client como por exemplo, ip, browser e afins. Muito provavelmente serve para que o criminoso tenha algum tipo de controle da quantidade de Hosts infectados.

reverse03_jpg

Como processo final de sua execução o executável cria um .bat  com o nome de cobranca.docx.bat. Este batch entra em loop para apagar o executável original, e após isso o Executável finaliza sua execução e o artefato é eliminado da máquina.

Aproveitei e submeti  o  artefato sem estar protegido pelo UPX. Ninguem havia submetido ainda esta amostra sem a proteção e o resultado foi o seguinte:

AntiVir TR/ATRAPS.Gen 20130218
AVG Proxy.AZEZ 20130218
ESET-NOD32 Win32/ProxyChanger.HG 20130218
Ikarus Trojan-Dropper.Delf 20130218
Kaspersky Trojan-Banker.Win32.Banbra.axma 20130218
Malwarebytes Trojan.Agent.DF 20130218
McAfee Generic-FRAX!60A450670696 20130218
McAfee-GW-Edition Generic-FRAX!60A450670696 20130218

Taxa de Detecção:  8/46

Abaixo segue o Whois do domínio que hospedava o script “su.php”

whois02

Screenshot do momento em que o malware foi executado

sandbox01

Script de Configuração de Proxy

Como vimos acima o nosso artefato não se tratava de um Trojan ou Backdoor.  Após ser executado ele modifica a configuração padrão do proxy do sistema e depois se auto-remove da máquina infectada.

Acessando a URL adicionada no AutoConfigUrl do Browser podemos ver o seguinte script:

script01

Este JavaScript efetua uma checagem de alguns itens para validar se a conexão irá ou não ser redirecionara através do Proxy.  Podemos ver na linha 23 que ele inicia o FOR para efetuar o decrypt do ArrayList utilizando um XOR. Após efetuar o decrypt da linha ele faz uma comparação na linha 32. Caso a variavel “Host” esteja contida no shExpMatch da variável “the_res” ele faz o return na linha 33. Este  está fragmentado para evitar algum tipo de identificação por assinatura de antivirus ou HIDS.

script02

Basta efetuar uma organização manual baseada nos valores demonstrados no script e temos que quando o Match da expressão ocorre ele retorna para o Browser  “PROXY 178.33.168.31”.  A partir daí o browser irá direcionar aquele acesso por dentro do proxy e interceptar a comunicação.

whois05

Uma vez que identificamos o comportamento vem a pergunta:

– Para que hosts este proxy irá fazer o direcionamento da conexão ?

Como vimos acima os itens do ArrayList são muito provavelmente os domínios que ele irá interceptar. Como estão encriptados pelo XOR não conseguimos identificar a olho nú. Para poder termos a lista de quais são os dominios visados pelo criminoso iremos criar um HTML e carregar o JavaScript de configuração do Proxy.

decrypt

Colocamos o Action do JavaScript em um Botão no HTML e ao invés de chamar o Return com o valor do endereço do Proxy iremos fazer um Print dos valores decriptados em nosso form HTML. Com isso teremos uma lista completa dos hosts que estão sendo monitorados.

Domínios interceptados pelo Proxy:

Agora que conhecemos o comportamento e a finalidade do malware, vamos efetuar um laboratório para ver como o ataque é de fato executado na máquina de um usuário comprometido. Para isto irei executar o artefato em uma Máquina Virtual e navegar para algum dos sites listados acima. Por ter experiência com o BankLine do Itaú resolvi elege-lo como portal alvo.

Uma vez que a máquina foi comprometida pelo  malware e a configuração do proxy foi adicionada no browser basta navegar para o endereço http://www.bancoitau.com.br

itau01

A primeira vista o portal do Banco Itaú e carregado para visualização. Foi feito um clone idêntico ao site original para que a vítima não perceba que está acessando na verdade um site falso.

itau02

Uma vez que o usuário coloca a Agência e Conta é direcionada a uma próxima página onde deve confirmar o número da conta. No caso coloquei como dados Agência: 1337 e Conta: 31337-0.

É possível logo de cara identificar que o site não possui Certificado Digital o que por sí só ja iria mostrar que o site é falso. Infelizmente este detalhe ainda é pouco identificado por usuários. Em verdade a grande maioria nem sabe de sua existência ou funcionalidade.

itau03

Na próxima tela o usuário é conduzido a colocar sua senha numérica utilizando o Teclado Virtual fornecido pelo site.  Colocarei um sequência qualquer.

itau04

Independente do valor digitado na tela anterior o portal irá direcionar o usuário para esta tela que diz que a senha está errada e obrigando o usuário a digita-la novamente. Com esta tática o criminoso pode evitar que o usuário digite uma senha errada na primeira tentativa e ele perca então uma Conta devido o descuido da vítima.  Digito qualquer outra senha e o acesso prossegue.

itau05

Na próxima tela o usuário se depara com a Página inicial de seu Home Bank. É possível ver no cabeçalho o número da agência e conta que usamos, um relógio marcando horário da sessão e tudo mais.  Não existe nenhum dado como Nome do titular.  É uma tela totalmente Inóqua e a partir de agora qualquer link que o usuário clicar irá direciona-lo para o roubo dos próximos dados e prover as informações finais que o criminoso necessita para efetuar fraudes em nome da vítima.

itau06

Após clicar no link de “Transferência, DOC e TED” o portal me direciona para uma tela onde sou solicitado a escolher qual o mecanismo de segurança utilizo para o acesso.  Iremos clicar no “Cartão de Segurança Itaú”. Este cartão é um método de segurança utilizando OTP (One-Time Passwords) e é um método muito comum entre usuários bancários para validar e proteger transações em sessões online e em Caixas Eletrônicos.

itau07

Nesta tela totalmente desconexa do contexto da nossa transação atual é pedido ao usuário que ele digite no template o número do cartão de crédito e a validade para “confirmação”.  Um detalhe interessante a ver é a falha no caracter no Title da Janela.

itau08

itau09

Após preencher os dados referentes ao cartão de crédito, a próxima tela irá pedir para o usuário preencher o template do cartão de senhas com o número de referência e os números de cada posição.

Caso o usuário preencha estes campos corretamente e envie o criminoso irá ter acesso total aos dados necessários para efetuar transações compras e tudo mais.

itau10

Após clicar em  Continuar é exibida uma tela dizendo que o acesso foi finalizado e a sessão foi encerrada. Após isso o usuário é direcionado para a sessão HTTPS original do banco do cliente.

Para usuários leigos que não tem conhecimento deste tipo de fraude é muito difícil identificar que o site do banco é falso e que os dados que ele está digitando serão utilizados para fraudes. Imagino que devido ao grande número de sites que o criminoso clonou, deve estar coletando muitas credenciais.

Todos os responsáveis  pelos hosts envolvidos neste ataque foram notificados para que possam tomar alguma providência e remover do ar os acessos responsáveis pelo ataque. Foi efetuada também uma denúncia em Blacklists diversas, como por exemplo PhishingTank.org.

Malzilla: Malware hunting tool

Infecções de malwares causadas por Drive-By Applets tem feito cada vez mais vitimas. Muitas vezes é dificil perceber que o website foi modificado. Muitas vulnerabilidades permitem que o atacante modifique o conteúdo da aplicação que o usuário visualiza, fazendo com que se torne cada vez mais dificil identificar possíveis ataques.
Uma tecnica utilizada por atacantes, que torna seus scripts maliciosos dificeis de serem detectados por engines de IDS, antivirus e afins, é a criptografia e ofuscamento do source, utilizando-se de multiplas camadas de javascript, e codificações como por exemplo Base64Encode, HTMLencode, entre outros.
Páginas que contem exploits geralmente usam uma série de redirecionamentos e códigos ofuscados para torna-la mais dificil para alguem identificar. Malzilla é um programa muito útil para explorar páginas maliciosas. Ele permite que você escolha seu próprio “user agent” e “referrer”, e tem a habilidade de usar inclusive proxies (webscarab, paros proxy, zap).
Através do Malzilla você pode visualizar o source da página e todos os headers HTTP. Além disso a ferramenta fornece diversos decodificadores e também possui a opção para Deobfuscate javascript.

Na imagem abaixo temos um exemplo de código ofuscado utilizado em um Phishing Scam, enviado por e-mail para usuários. A utilização do código ofuscado, faz com que filtros de conteúdo, falhem em identificar tags maliciosas que podem estar previamente cadastrada em alguma blacklist.

01

Este é o conteúdo de um link que recebemos por e-mail em um eCard Spam.

Para conseguir o link direto do malware, teremos que trabalhar com a função JavaScript unescape.  Vamos clicar em “Send Script to Decoder” e “Run Script” na aba do decoder, assim conseguiriamos os seguintes resultados:

02

Na janela abaixo, podemos ver decodificado um VBScript utilizado para fazer o download  de um arquivo malicioso.

Outro exemplo muito comum, durante um ataque de Drive-by Download, é o uso de scripts que tentam escrever diretamente o Binário através de um script no disco.

03

Com o Malzilla podemos trabalhar os diversos filtros para gerar uma cadeia de identificação que pode ajudar muitos especialistas de segurança a identificar ameaças que chegam por links de Spam.

A ferramenta é disponibilizada para Windows, assim como você baixar o Source dela para compilar  e utilizar em plataformas Unix.

Para maiores informações:

http://malzilla.sourceforge.net/documents.html

Book of Month: November

Book Description

“This is a must-have work for anybody in information security, digital forensics, or involved with incident handling. As we move away from traditional disk-based analysis into the interconnectivity of the cloud, Sherri and Jonathan have created a framework and roadmap that will act as a seminal work in this developing field.”
– Dr. Craig S. Wright (GSE), Asia Pacific Director at Global Institute for Cyber Security + Research.

“It’s like a symphony meeting an encyclopedia meeting a spy novel.”
–Michael Ford, Corero Network Security

On the Internet, every action leaves a mark–in routers, firewalls, web proxies, and within network traffic itself. When a hacker breaks into a bank, or an insider smuggles secrets to a competitor, evidence of the crime is always left behind.

Learn to recognize hackers’ tracks and uncover network-based evidence in Network Forensics: Tracking Hackers through Cyberspace.Carve suspicious email attachments from packet captures. Use flow records to track an intruder as he pivots through the network. Analyze a real-world wireless encryption-cracking attack (and then crack the key yourself). Reconstruct a suspect’s web surfing history–and cached web pages, too–from a web proxy. Uncover DNS-tunneled traffic. Dissect the Operation Aurora exploit, caught on the wire.

Throughout the text, step-by-step case studies guide you through the analysis of network-based evidence. You can download the evidence files from the authors’ web site (lmgsecurity.com)