Arquivo executável para estrutura de dados

0

No ano passado, tive um problema com o meu kali 2.0 rodando no VirtualBox. Resumindo, deixei de ser capaz de inicializar em modo gráfico, então acessar a internet era, pelo menos para mim, praticamente impossível.

Eu queria fazer backup dos meus arquivos na minha máquina principal e, em seguida, formatar a máquina virtual. Eu não podia fazer o ssh da minha VM no meu PC com Windows, nem poderia o contrário. Então eu configurei uma máquina "fictícia" metassisturável, hackeada nela com o meu kali no modo CLI. Eu usei o msfvenom para criar uma simples carga útil de medidor de inversor, usei minha sessão de medidor atual na máquina metassisturável e carreguei a carga útil para ela. Eu poderia ssh (com putty) da minha máquina windows para a VM metasploitable, mas não consegui encontrar nenhuma maneira de transferir a carga útil do metasploitable para o meu pc do windows.

Então eu usei o hexdump para ver o conteúdo desse arquivo exe, e copiei-o na minha área de trabalho nas janelas (via putty). Eu escrevi algum código C ++ para pegar os dados hexdump como entrada de texto , analise-o e transforme-o numa grande matriz de bytes que depois coloco num ficheiro (no modo binário). Em seguida, alterei a extensão desses arquivos para .exe, configurei o manipulador de exploração com minha máquina kali e executei o .exe na minha máquina Windows (antivírus e firewall desativados), esperando obter uma sessão de medição. No entanto, nada aconteceu, acabei de receber um erro "Incompatible format" (ou algo parecido) quando tentei executar o .exe no Windows.

Algumas semanas depois, eu consegui inicializar a máquina kali em algum tipo de modo seguro, no qual eu pude usar o modo gráfico. Todos os meus arquivos estavam lá, até mesmo a carga gerada. Em vez de enviar TODOS os arquivos via internet, eu dei mais uma chance ao payload. Eu carreguei-o em uma página de hospedagem de arquivos grátis, e baixei-o no meu pc do windows. Desligou o antivírus e o firewall, configurou o manipulador de sessão e o executou. E lá estava eu finalmente tive uma sessão.

Eu usei o comando upload de meterpreter, para carregar todos os meus arquivos kali no meu PC com Windows e depois fechá-lo. No entanto, eu estava curioso sobre por que a carga útil funcionava dessa vez, então, usando a versão do MidnightCommander (uma espécie de hexdump sofisticado) do Windows, comparei os bytes da carga útil que baixei pela página de hospedagem de arquivos gratuita e a que tinha convertido a partir da saída hexdump. Eles eram exatamente os mesmos! E ainda um deles funcionou e o outro não. E sim, eu tentei os dois no CLI e no modo gráfico, e ainda o baixado foi o único a trabalhar em ambos os casos.

Minha única teoria é que deve ter havido alguns metadados importantes, recursos de arquivos, que não são visíveis no hexdump porque esses dados não são parte do próprio arquivo bruto, mas ainda assim parecem essenciais para sua execução adequada.

Eu sei que você pode acessar esses dados com programas como o ResourceHacker, mas codificando:

Como você pode carregar um arquivo executável em um programa escrito em qualquer idioma para poder colocá-lo em uma matriz de bytes ou, se necessário, uma estrutura de dados mais complexa que pode ser representada por texto (como JSON, por exemplo)? ) e, em seguida, transformar essas informações brutas novamente no mesmo executável?

    
por Mr.Robot 08.01.2018 / 04:07

0 respostas