编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

netcat之“端口扫描”

wxchong 2024-06-13 22:32:07 开源技术 11 ℃ 0 评论

◇使用场景
  在以前文章中里面介绍了:如何测试【单个】端口是否可达。
  扩展一下:如果你要测试的不止一个端口,而是某个【范围】的端口。这种行为有个专门的术语叫【端口扫描】。
  顺便说一下:
不论是 TCP 还是 UDP,协议规定的【有效】端口号范围都是:1 ~ 65535

◇方法
  下面这个命令,用来扫描 IP 地址为 x.x.x.x 的主机,扫描的端口范围从 1 到 1024

nc -znv x.x.x.x 1-1024

  选项 -z
  意思是:开启“zero-I/O 模式”。该模式指的是:nc 只判断某个监听端口是否能连上,连上后【不】与对端进行数据通讯。
  
选项 -n
  (前面已聊过,参见以前的文章)
  
选项 -v
  
-v 选项前面也聊过,这里要特地强调一下。
  对 nc 的其它用法,
-v 选项是可加可不加滴;但对于“端口扫描”而言,一定要有这个选项——否则你【看不到】扫描结果。

◇补充说明:优化输出
  玩“端口扫描”的时候,“-v 选项”会把“成功/失败”的结果统统打印出来。
  通常大伙儿关注的都是“扫描成功”的那些端口。因此,可以用如下命令过滤一下,只打印扫出来的端口。

nc -znv x.x.x.x 1-1024  2>&1 | grep succeeded

  由于“-v 选项”产生的输出位于【stderr】,上述命令中的 2>&1 用来把【stderr】合并到【stdout】(注:这种写法只适用于 POSIX 系统上的 shell)
  
grep 命令用来进行【过滤】。对于 Windows 系统,默认【没有】grep 命令,需改用 find 命令过滤。

◇补充说明:超时设置
  如果你要扫描的端口范围,跨度比较大,超时值要【恰到好处】——
超时值太大,会浪费时间;超时值太小,可能会遗漏某些端口(端口本身开放,但 nc 还没来得及连上就超时了)
  具体如何设置,参见以前的文章。

◇补充说明:【并发】扫描
  如果你设置了较小的超时值,依然嫌慢,还可以用【并发】扫描的方式,进一步提升效率。
  简而言之就是:同时运行多个 nc,分别扫描不同的端口范围。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表