1、端口扫描程序的设计与实现端口扫描程序的设计与实现 摘摘 要要 计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增 加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现 安全问题的重要手段之一。 本程序是在 Windows 系统中使用 C 语言用 MFC 完成的一个端口扫描程序。此程序主 要完成了 TCP connect()扫描和 UDP 扫描功能。TCP 扫描支持多线程,能对单个指定的 主机进行扫描或对指定网段内的主机进行逐个扫描。能扫描特定的部分端口号或对指定 的端口段内的端口进行逐个扫描。此端口扫描程序能快速地进行 TCP 扫描,准确地检测 出对
2、 TCP 协议开放的端口。而对于 UDP 扫描只支持单线程,速度较慢。扫描结果以列表 的形式直观地展现出来。 关键词:关键词:端口扫描、TCP 扫描、UDP 扫描、TCP 多线程扫描 目目 录录 1 引言引言 .1 1.1 课题的背景及意义 .1 1.2 端口扫描现状 1 2 系统设计系统设计 1 2.1 系统主要目标 1 2.2 开发环境及工具 1 2.3 功能模块与系统结构 .2 3 系统功能程序设计系统功能程序设计 4 3.1 获取本机 IP .4 3.2 分割字符串函数的实现 4 3.3 获取待扫描的 IP 地址 5 3.4 获取待扫描的端口号 .5 3.4.1 指定端口号的初始化6
3、3.4.2 指定端口号的保存 .7 3.5 TCP CONNECT() 扫描8 3.5.1 基本原理 .8 3.5.2 扫描多个主机多端口多线程的实现.8 3.5.3 扫描结果的显示.9 3.6 UDP 扫描 10 3.6.1 基本原理 . 10 3.6.2 计算效验和 11 3.6.3 发送 UDP 数据包 . 11 3.6.4 接收 ICMP 数据包 . 12 4 测试报告测试报告 12 4.1 TCP 扫描检测 12 4.1.1 扫描本机 12 4.1.2 扫描网络中其他主机 13 4.1.3 扫描 IP 段 13 4.2 UDP 扫描检测 . 14 4.2.1 扫描本机 . 14 4.
4、1.2 扫描网络中其他主机 15 4.3 TCP、UDP 一起扫描 . 16 结结 论论 . 17 参考文献参考文献 . 17 第 1 页 共 17 页 1 1 引言引言 1.1 课题的背景及意义课题的背景及意义 网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是 大门紧闭的。入侵者们是如何找到,并打开它们的城门呢?这些城门究竟通向何处? 在网络中,把这些城堡的“城门”称之为计算机的“端口” 。端口扫描是入侵者搜 索信息的几种常用方法之一,也正是这一种方法最容易暴露入侵者的身份和意图。一般 说来,扫描端口有以下目的: 判断目标主机上开放了哪些服务 判断目标主机的操作系统
5、如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能使用相 应的手段实现入侵。而如果管理员先掌握了这些端口服务的安全漏洞,就能采取有效的 安全措施,防范相应的入侵。 1.2 端口扫描现状端口扫描现状 计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增 加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术是发现 安全问题的重要手段之一。一个端口就是一个潜在的通信通道,也就是一个入侵通道。 对目标计算机进行端口扫描,能得到许多有用的信息。扫描器通过选用远程 TCP/IP 不 同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目
6、标主 机的各种有用的信息,从而发现目标机的某些内在的弱点。 2 2 系统设计系统设计 2.1 系统主要目标系统主要目标 本程序主要实现了: 简易的 TCP connect()扫描,支持多线程; UDP 扫描功能; 能对单个指定的主机进行扫描或扫描指定网段内的主机; 能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描; 2.2 开发环境及工具开发环境及工具 测试平台:Windows XP Professional 使用软件:Visual C+ 6.0 开发语言:C 语言 第 2 页 共 17 页 2.3 功能模块与系统结构功能模块与系统结构 作为端口扫描程序,首先需要完成的功能就是对于系统操作系统的服务端口进行扫 描,返回扫描结果。对于端口的扫描,包括对于本机系统服务端口,局域网内目标机系 统,以及远程 IP 的系统服务端口进行扫描。 有些时候,用户并不需要去扫描整个系统的所有端口,因为这样的话不仅会浪费大 量的时间,而且可能导致难以找到自己需要了解的端口的扫描结果。所以,对于选择性 地对端口进行扫描也非常重要。这当然也是扫描程序需要实现的功能之一。 用户在等待扫描