
SkypeACLKeyGen.exe analysis for hacking team
Então...
o que é que analisamos hoje ? bem, hoje analisamos uma peça de software da equipa de hacking. É sobre o Skype? por que é que fazemos isto ? não sei, acho interessante.
De qualquer forma, começamos por inspecionar o comportamento em tempo de execução. Como podes ver, requer um nome de utilizador e um caminho de plugin e gera um ACL ? então o que é que isto é ? Bem, ao inspecionar este https://airbus-seclab.github.io/skype/vskype-part2.pdf, diz-nos que - "O Skype implementa um sistema semelhante a ACL para permitir ou impedir que plugins se anexem a uma instância em execução. Uma ”assinatura” do plugin é adicionada ao ficheiro de configuração com base na resposta do utilizador a um diálogo de aviso" - . Então ok, o que é que está na pasta desse software ?
Então, ok... ainda não nos diz nada. Certo, então vemos um shellcode de estágio 1 com final office nessa pasta, o que pode indicar um exploit do Office (ainda não confirmado), fakeport que é uma app C#, tracer.exe e outras coisas. Fixe. O meu palpite é que o plugin real que será registado é o tracer.exe. Porquê ? Bem, do mesmo PDF - "O motor de voz do Skype pode gerar ficheiros de rastreio encriptados se Logging e Logging2 estiverem definidos. A encriptação é muito mais simples, um XOR básico com uma chave de 31 bytes" - . Então vamos fazer uma análise do gerador real do ACL, e a seguir vamos ver o tracer, e talvez noutro post o shellcode ;)
Começamos com isto
Depois passamos para isto
E finalmente chegamos a estes
Daí passamos para isto
Fixe, outro comportamento dinâmico de easter egg é este: quando inseres utilizador e plugin a executar, obténs .png)
De qualquer forma, avançamos e analisamos
Então, numa visão de cima para baixo, calcula o SHA2 do conteúdo do ficheiro e também mapeia o seu conteúdo na memória. Infelizmente, dinamicamente falhou e por isso não fez nada :/ o que é que podemos fazer. Avançamos. Entramos em probably_do_hash_based_function_function_recovery.
Infelizmente, é o mesmo caso que o anterior, em que falhamos ao mapeá-lo na memória e saímos da função. No entanto, apenas calculamos o MD5 e provavelmente fazemos alguma recuperação de função com base na comparação de MD5.
Depois avançamos e fazemos alguns malloc e memset
.png)
Depois convertemos o nome do ficheiro para maiúsculas
O mesmo para o nome de utilizador
Fixe, e a seguir fazemos isto:
Basicamente, criamos o nosso próprio ACL para nos permitir executar o nosso plugin. Neste caso, agora presumo que será o Tracer.exe, que teoricamente suponho que registará ficheiros de rastreio gerados pelo motor de voz do Skype.

Resultado da saída da função das imagens acima mencionadas

Resultado da saída da função das imagens acima mencionadas
É tudo por agora. Mais tarde, hoje, voltarei e atualizarei isto. Por agora, o que resta é analisar apenas esta metade da função
Também, mais tarde, quando voltar, vamos mergulhar na função some_decode só por diversão e a partir daí iremos para o binário tracer.exe. Happy hacking e até já.