Sunday, July 15, 2012

ASDM 6 no ASA 8





Se alguma vez ao tentar abrir o ASDM usando GNS3 você se deparou com esse erro, hoje vamos dar a dica de como tratá-lo.

  Todos os créditos ao Blog :
http://7200emu.hacki.at/viewtopic.php?t=2187&postdays=0&postorder=asc&start=240

A causa:

hofw004# sh ver

Cisco Adaptive Security Appliance Software Version 8.0(2)
Device Manager Version 6.0(2)

Compiled on Fri 15-Jun-07 19:29 by builders
System image file is "Unknown, monitor mode tftp booted image"
Config file at boot was "startup-config"

hofw004 up 26 mins 58 secs

Hardware:   , 128 MB RAM, CPU Pentium II 2097 MHz
Internal ATA Compact Flash, 256MB
BIOS Flash Firmware Hub @ 0xffe00000, 1024KB


 A linha Hardware em destaque, nos trás a dica do problema. Veja que antes da vírgula deveria vir uma informação e não temos. Essa informação é o Hardware ID. Essa informação é trocada no momento da conexão do ASDM com o servidor HTTP do ASA.

A solução:

A solução encontrada é enganar o ASDM usando um proxy. Essa solução é genial e nos dá uma amostra de como as coisas podem ocorrer em ambientes de rede. O poder de proxies no gerenciamento de conexões e o risco ao qual todos estão expostos.

  A programinha que fará a mágica chama-se Fiddler2.

Baixe o programa de :

http://www.fiddlertool.com/fiddler/

 Abaixo mostro a interface do nosso Proxy:




 Vamos configurá-lo:

Você irá precisar da classe em Java presente no seguinte link:

http://www.networksa.org/wp-content/uploads/2010/06/fiddler.CustomRules.js.txt

Copie essa classe em um bloco de notas porque a usaremos logo em seguida.

Após abrir o programinha, vá na aba "Rules"> "Customize Rules",como abaixo:




 


A janela aberta será uma um arquivo txt chamado CustomRules. Tudo que você têm a fazer é substituir essas linhas por aquelas copiadas no link  acima.


Agora vamos configurar nosso Java.



No painel de Controle, click em Java, click em Network Settings... e deixe como a janela acima.

 Estando tudo configurado, vamos fazer o seguinte teste. Vamos tentar acessar o Firewall com o ASDM sem  o Proxy:



Veja na capitura do WireShark  toda a "Conversa".


 Primeiro, no quadro 49, ocorreu o envio do SYN pelo Client ASDM :



Depois, no Quadro 50, houve a resposta SYN/ACK do Firewall:



Como não poderia deixar de ser, o Client ASDM responde ao SYN do Firewall com um ACK. Está fechado o Three-Way-Handshack.

  " Isso é uma poesia para min"..rsrsrs




 Fechado a conexão TCP, o client ASDM inicia uma conversa segura com o Firewall enviando um Hello SSL. SSL é Secure  Sockets Layer também conhecido como HTTPS.
 
O Hello do Protocolo SSL:



O Firewall responde com um ACK:





O Firewall envia no próximo Quadro um "Server Hello":



 O Client responde com um ACK ao Server Hello:



O client envia sua Chave:



ACK do Firewall  a chave enviada






O Firewall  envia as informações (PUSH). Nesse momento a informação de Hardware ID irá como "Null".

 

Client envia ACK:



E na sequência podemos presenciar no exato momento em que o client envia o Reset na conexão:



 Acima foi a conversa TCP sem o Proxy, culminando com o Reset da conexao:



Agora vamos fazer um outro teste. Vamos deixar o Fiddler2 aberto,porém, não vamos fazer o Spoof nos pacotes HTTPS.




O resultado é o pacote passando de forma ´natural´ pelo Proxy. Sem a informação do Hardware ID. Consequentemente, iremos ter o erro.


 





Abaixo, como o problema é contornado com o uso do Proxy.

Aqui a parte do Codigo que engana o ASDM:

    // Note that you really should also fix your .NET code to gracefully handle unexpected connection closure.
        //
        // if (!(((oSession.responseCode == 401) && oSession.oResponse["WWW-Authenticate"].Length > 9) ||
        //  ((oSession.responseCode == 407) && oSession.oResponse["Proxy-Authenticate"].Length > 9))) {
        //   oSession.oResponse["Connection"] = "close";
        // }
        if (oSession.url.Contains("/show+version")) {
            oSession.utilDecodeResponse();
            oSession.utilReplaceInResponse('Hardware:   ,','Hardware:   ASA5520,');
        }
    }
       

    static function Main()


O exato momento em que nosso proxy Fiddler engana o ASDM. Nós vimos acima que essa informação não aparece no comando "Show Version", mas aparece aqui como "ASA5520". Ou seja, o Proxy faz um Spoof no pacote que vem do Firewall e acrescenta a informação de Hardware.






Abaixo o ASDM aberto.

 


ASDM é uma excelente ferramenta. Se as atividades a serem realizadas no Firewall envolve visualização de informações, ASDM é o que há. Eu prefiro linha de comando sempre por uma série de razões, mas não há a menor dúvida que ter ASDM à disposição é muito útil.

  Dessa forma concluo mais esse Post. Não há muita dificuldade em seguir os passos acima.
  Parabéns ao carinha que postou a solução. Descobrir uma forma de enganar o ASDM foi genial.

Até o próximo!

No comments:

Post a Comment