【发布时间】:2009-12-04 05:46:49
【问题描述】:
我想实现一个 Linux C 程序来完成以下任务:它使用 FIN 扫描来扫描主机的所有开放端口。
下面是 FIN 扫描的简短描述(如果你已经知道,请跳过):Wikipedia: FIN scanning
在 FIN 扫描中,打开的端口不会以任何形式响应,而关闭的端口会发回一个 RST 数据包。你知道,每台计算机总共有 65536 个可能的端口。我还没有找到可以给我一些指导的源代码。
我的想法,有点低效率,是这样的:主程序迭代发送FIN包到每个端口,一个线程负责接收反馈(RST包)。该线程只工作一段时间,超时后退出。之后,主程序会检查并确定哪些端口还没有进行RST。
我认为这个方案的一个更严重的问题是它不够可靠,因为超时很难定义。请问有谁可以提供更好的方案吗?
【问题讨论】:
标签: c linux security networking