Iedere Unix-systeembeheerder heeft wel Netcat in zijn gereedschapskist zitten, maar het programma wordt al meer dan tien jaar niet meer onderhouden. Dat heeft gezorgd voor heel wat herimplementaties van Netcat met extra functionaliteit, zoals Socat, OpenBSD's nc, CryptCat en GNU Netcat.

Recent is er een nieuw Zwitsers zakmes opgedoken: Ncat, onderdeel van Nmap 5.0. Ncat werkt met IPv4 en IPv6, kan TCP- en UDP-poorten omleiden, ondersteunt SSL-verbindingen en proxy-verbindingen via een SOCKS4- of HTTP-proxy. Zie de man-pagina en de uitgebreide User's Guide voor meer informatie en een aantal handige tips.

Nu ook met SSL

Vooral de SSL-ondersteuning van Ncat is interessant. Met de optie --ssl verbind je met een server via SSL, en Ncat versleutelt het netwerkverkeer transparant. Een voorbeeld (voor HTTPS):

ncat -C --ssl example.com 443

Ncat verifieert standaard niet het certificaat van de server, maar doet dit wel als je in de plaats van --ssl de optie --ssl-verify gebruikt. Als de SSL-server een client certificate vereist, geef je de locaties van de bestanden op met de opties --ssl-cert en --ssl-key.

Anderzijds kan Ncat zich ook als SSL-server voordoen. Gebruik je geen opties --ssl-cert en --ssl-key voor de certificaatbestanden, dan genereert Ncat die automatisch en toont in verbose mode ook de vingerafdruk van de RSA-sleutel:

ncat -v --listen --ssl

Ncat kan tot slot ook als een versleutelde brug functioneren tussen een client die geen SSL verstaat en een server die SSL vereist. Een voorbeeld:

ncat -l localhost 143 --sh-exec "ncat --ssl imap.example.com 993"

Dit is voor een mail client die geen SSL ondersteunt: je verbindt je mail client op poort 143 (IMAP) van localhost, en al het verkeer hierdoor wordt door Ncat versleuteld met SSL en naar de server op poort 993 (IMAPS) verstuurd. Dit maakt ook gebruik van de optie --sh-exec waarmee Ncat een extern commando (hier zichzelf) uitvoert waarvan de standaard in- en uitvoer naar de netwerkverbinding worden omgeleid. Bron: Techworld