【问题标题】:The difficulty in designing a FIN scanning program设计FIN扫描程序的难点
【发布时间】:2009-12-04 05:46:49
【问题描述】:

我想实现一个 Linux C 程序来完成以下任务:它使用 FIN 扫描来扫描主机的所有开放端口。

下面是 FIN 扫描的简短描述(如果你已经知道,请跳过):Wikipedia: FIN scanning

在 FIN 扫描中,打开的端口不会以任何形式响应,而关闭的端口会发回一个 RST 数据包。你知道,每台计算机总共有 65536 个可能的端口。我还没有找到可以给我一些指导的源代码。

我的想法,有点低效率,是这样的:主程序迭代发送FIN包到每个端口,一个线程负责接收反馈(RST包)。该线程只工作一段时间,超时后退出。之后,主程序会检查并确定哪些端口还没有进行RST。

我认为这个方案的一个更严重的问题是它不够可靠,因为超时很难定义。请问有谁可以提供更好的方案吗?

【问题讨论】:

    标签: c linux security networking


    【解决方案1】:

    nmap 已经这样做了。但我认为您无法真正绕过基于超时的实现。几秒钟就足够了,但设置一个合理的默认值,然后使其可配置。这就是我为我曾经写过的一个 arp 扫描器所做的。我没有使用线程,而是使用非阻塞 pcap,但线程解决方案也可以。

    【讨论】:

      【解决方案2】:

      也许nmap代码可以帮助你

      【讨论】:

      • 感谢您指出 NMAP。但我怕它太大了。我将深入研究它的源代码。任何其他帮助将不胜感激。
      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多