端口扫描经常被系统管理员和***用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。

nc -z -v -n 10.135.9.1 21-25 
nc: connect to 10.135.9.151 port 21 (tcp) failed: Connection refused
Connection to 10.135.9.151 22 port [tcp/*] succeeded!
nc: connect to 10.135.9.151 port 23 (tcp) failed: Connection refused
nc: connect to 10.135.9.151 port 24 (tcp) failed: Connection refused
nc: connect to 10.135.9.151 port 25 (tcp) failed: Connection refused

可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.

z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换

v 参数指使用冗余选项(译者注:即详细输出)

n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

这个命令会打印21到25 所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。

一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。

nc -v 10.135.9.151 22
Connection to 10.135.9.151 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_5.3

Protocol mismatch.

netcat 命令会连接开放端口22并且打印运行在这个端口上服务的banner信息。