linux扫描端口命令 linux扫描软件( 三 )


这个例子中,Metasploitable2 系统上所有可能的 65536 和 TCP 地址都扫描了一遍 。要注意该扫描中识别的多数服务都在标准的 Nmap 1000 扫描中识别过了 。这就表明在尝试识别目标的所有可能的攻击面的时候,完整扫描是个最佳实践 。Nmap 可以使用破折号记法,扫描主机列表上的 TCP 端口:
这个例子中,TCP 80 端口的 SYN 扫描在指定地址范围内的所有主机上执行 。虽然这个特定的扫描仅仅执行在单个端口上,Nmap 也能够同时扫描多个系统上的多个端口和端口范围 。此外,Nmap 也能够进行配置,基于 IP 地址的输入列表来扫描主机 。这可以通过 -iL 选项并指定文件名,如果文件存放于执行目录中,或者文件路径来完成 。Nmap 之后会遍历输入列表中的每个地址,并对地址执行特定的扫描 。
Nmap SYN 扫描背后的底层机制已经讨论过了 。但是,Nmap 拥有多线程功能,是用于执行这类扫描的快速高效的方式 。
除了其它已经讨论过的工具之外,Metasploit 拥有用于 SYN 扫描的辅助模块 。这个秘籍展示了如何使用 Metasploit 来执行 TCP 隐秘扫描 。
为了使用 Metasploit 执行 TCP 隐秘扫描 , 你需要一个运行 TCP 网络服务的远程服务器 。这个例子中我们使用 Metasploitable2 实例来执行任务 。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍 。
Metasploit 拥有可以对特定 TCP 端口执行 SYN 扫描的辅助模块 。为了在 Kali 中启动 Metasploit,我们在终端中执行 msfconsole 命令 。
为了在 Metasploit 中执行 SYN 扫描,以辅助模块的相对路径调用 use 命令 。一旦模块被选中 , 可以执行 show options 命令来确认或修改扫描配置 。这个命令会展示四列的表格 , 包括 name 、 current settings 、 required 和 description。name 列标出了每个可配置变量的名称 。current settings 列列出了任何给定变量的现有配置 。required 列标出对于任何给定变量,值是否是必须的 。description 列描述了每个变量的功能 。任何给定变量的值可以使用 set 命令,并且将新的值作为参数来修改 。
在上面的例子中 ,  RHOSTS 值修改为我们打算扫描的远程系统的 IP 地址 。地外,线程数量修改为 20 。THREADS 的值定义了在后台执行的当前任务数量 。确定线程数量涉及到寻找一个平衡,既能提升任务速度,又不会过度消耗系统资源 。对于多数系统,20 个线程可以足够快,并且相当合理 。PORTS 值设为 TCP 端口 80(HTTP) 。修改了必要的变量之后,可以再次使用 show options 命令来验证 。一旦所需配置验证完毕,就可以执行扫描了 。
上面的例子中 , 所指定的远程主机的钱 100 个 TCP 端口上执行了 TCP SYN 扫描 。虽然这个扫描识别了目标系统的多个设备,我们不能确认所有设备都识别出来,除非所有可能的端口地址都扫描到 。定义来源和目标端口地址的TCP 头部部分是 16 位长 。并且 , 每一位可以为 1 或者 0 。因此 , 共有 2 ** 16 或 65536 个可能的 TCP 端口地址 。对于要扫描的整个地址空间,需要提供 0 到 65535 的 端口范围,像这样:
在这个李忠 , 远程系统的所有开放端口都由扫描所有可能的 TCP 端口地址来识别 。我们也可以修改扫描配置使用破折号记法来扫描地址序列 。
这个例子中 , TCP SYN 扫描执行在由 RHOST 变量指定的所有主机地址的 80 端口上 。与之相似,RHOSTS 可以使用 CIDR 记法定义网络范围 。
Metasploit SYN 扫描辅助模块背后的底层原理和任何其它 SYN 扫描工具一样 。对于每个被扫描的端口,会发送 SYN 封包 。SYN+ACK 封包会用于识别活动服务 。使用 MEtasploit 可能更加有吸引力,因为它拥有交互控制台,也因为它是个已经被多数渗透测试者熟知的工具 。

推荐阅读