fi6s 是一款 IPv6 端口扫描器,设计速度快。这是通过异步发送和处理原始数据包来实现的。设计和目标与 Masscan 非常相似,尽管它的功能还不那么齐全。
在任何最新的 Linux 系统上构建 fi6s 都相当容易,例如在 Ubuntu 上:
# apt install gcc make git libpcap-dev
$ git clone https://github.com/sfan5/fi6s.git
$ cd fi6s
$ make BUILD_TYPE=release
扫描仪可执行文件将在./fi6s
处准备就绪。
请注意,fi6s 仅在 Linux 上开发和测试。它应该可以在其他类似 UNIX 的平台上运行,但不要指望它可以在 Windows 上运行。
使用非常简单,fi6s 会尝试自动检测脏技术细节,例如源、路由器 MAC 地址和源 IP。
# ./fi6s -p 80,8000-8100 --max-rate 170 2001:db8::/120
这个例子将:
list
”格式输出到标准输出有更多不同的方法来指定要扫描的地址范围,如果您不确定将要发生什么,请使用--print-summary
运行 fi6s 来获得有关扫描的快速概述,或--print-hosts
来打印所有潜在的 IP 。
有关更多高级功能,请参阅fi6s --help
的输出。
远程主机响应新连接或探测请求而发送的数据称为“横幅”。 fi6s 让收集这些变得很容易。
您需要做的就是传递--banners
选项:
# ./fi6s -p 22 --banners 2001:db8::xx
将--udp
标志添加到命令行:
# ./fi6s -p 53 --banners --udp 2001:db8::xx
请注意,与 TCP 不同,只有当您扫描 fi6s 支持探测的协议的端口时,您才会获得有用的(或任何)结果。使用fi6s --list-protocols
查看列表。
由于 fi6s 带来了自己的最小 TCP/IP 堆栈,因此必须阻止操作系统尝试在 fi6s 使用的同一端口上与 TCP 通信,否则会破坏扫描过程。在这种情况下,它通常会发送 RST 帧。
默认情况下,fi6s 会要求操作系统保留一个临时端口并在扫描期间使用它。这只适用于 Linux。
如果这不起作用或者您位于不同的平台上,您将必须使用静态源端口并配置防火墙以丢弃该端口上的流量,例如:
# ip6tables -A INPUT -p tcp -m tcp --dport 12345 -j DROP
# ./fi6s -p 22 --banners --source-port 12345 2001:db8::xx
由于 UDP 是无连接的,因此无需防止干扰,尽管这仍然是防止操作系统发送不必要的 ICMPv6 无法到达响应的好主意(fi6s 默认情况下也会尝试这样做)。