DIA#16-Ethical Hacking Tools (Metasploit- Meterpreter part1)
Continuo hoje com o tutorial da Offensive Security, desta vez abordando o Meterpreter.
O Meterpreter é um payload avançado e dinamicamente extensível que usa injecções de stagers DLL (Dynamic Link Library) que são extendidos pela network em runtime, realizando a sua comunicação através da socket stager. Com o Meterpreter tem-se acesso a um client-side ruby API (Application Programming Interface) compreensivo. A sua porção de server é implementada com o uso de C, sendo compilado com MSVC (Microsoft Visual C++) e a porção do client pode ser programado em qualquer linguagem, mas com Metasploit tem-se acesso a um API full-featured de Ruby.
Como funciona o Meterpreter
- O target executa o stager inicial, normalmente um bind, reverse, findtag, passivex, etc;
- O stager carrega o DLL com o prefixo Reflective. A Rflective stub toma conta do carregamento/injeção de DLL;
- A core do Meterpreter inicializa e estabelece um link TLS(Transport Layer Security)/1.0 link através da socket e manda um GET. O Metasploit recebe o GET e configura o client;
- Finalmente, o Meterpreter carrega as extensões através de TLS/1.0 com o uso do protocolo TLV(type-length-value/tag-length-value é um esquema de encoding usado para enviar/receber data). Carrega sempre stdapi e carrega priv se o modulo der permissões administrativas.
Características do Meterpreter
O Meterpreter foi concebido para ter algumas características, entre as quais:
- Ser furtivo
- O Meterpreter reside completamente na memoria, não escrevendo nada no disco;
- Não são criados processos novos, o Meterpreter injecta-se num processo comprometido, podendo migrar para outros processos a correr;
- Usa comunicações encriptadas em modo default.
- Ser poderoso
- O protocolo TLV tem poucas limitações;
- O Meterpreter usa um sistema de comunicações com channel
- Ser extensível
- É possível aumentar features durante o runtime, sendo carregadas através da network;
- É possível colocar novas features ao Meterpreter se ter que o reconstruir.
- O client faz upload do DLL através da socket;
- O servidor a correr na vitima carrega o DLL na memoria e inicializa-o;
- A nova extensão regista-se no servidor;
- O client na máquina do attacker carrega a extensão API local, podendo chamar as funções das extensões.
PS. Para ver comando incluídos com a extenção stdapi recomendo ir a "http://pwnwiki.io/#!msf/meterpreter_files/windows_meterpreter.md"
Comentários
Enviar um comentário