Teste de conexão HTTPS utilizando netcat + stunnel | Software Design
Teste de conexão HTTPS utilizando netcat + stunnel
Em um post anterior mostrei como fazer para interceptar uma conexão utilizando o netcat. Aquela dica é muito útil porém só serve para conexões não-seguras. Se você precisa testar uma conexão HTTPs por exemplo, precisará que a conexão com o servidor seja criptografada, mas mesmo assim você pode utilizar o netcat em conjunto com o stunnel para fazer isso.
Stunnel é um wrapper SSL, ou seja, você envia dados em formato ASCII pra ele, e ele estabelece uma conexão segura com a outra ponta enviando dados criptografados. Existem diversas aplicações para esse software, hoje vou demonstrar como utilizar ele para estabelecer uma conexão HTTPs ( para testes )
Para este exemplo, estou utilizando a versão 4 do stunnel, essa versão precisa que você crie um arquivo de configuração bem simples:
connect = httpbin.org:443
Salve este arquivo como https.stunnel ( ou qualquer outro nome que você preferir ). O que este arquivo faz basicamente é:
Configura o stunnel como um client.
Especifica em qual porta o stunnel vai esperar por conexões
Especifica host/porta de destino ( onde ele vai se conectar como cliente )
Você pode se perguntar porque um client precisa abrir esperar por conexões… A resposta é que, ele precisa enviar uma requisição para o servidor e a forma mais simples de você fazer isso é enviar a requisição via socket pra ele portanto ele também é um servidor.
Para iniciar o stunnel e abrir a porta 80 o comando é:
stunnel https.stunnel
Pronto, se você olhar no netstat a porta 8080 estará aberta, agora é só enviar as requisições para ela. No caso do pastebin ele tem um url /ip que retorna o endereço ip do requisitante. Você pode utilizar o telnet ou netcat para enviar essa requisição:
GET http://httpbin.org/ip HTTP/1.1
Date: Tue, 18 Dec 2012 15:33:08 GMT
"origin": "100.200.100.140"
Pronto, você fez uma requisição plain-text e recebeu uma resposta plain-text, no entanto a comunicação ocorreu de forma criptografada.