




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕 业业 设设 计计 论论 文文 基于半打开的端口扫描技术的实现基于半打开的端口扫描技术的实现 论文作者姓名 论文作者姓名 申请学位专业 申请学位专业 申请学位类别 申请学位类别 指指导导教教师师姓姓名名 职职称称 论文提交日期 论文提交日期 基于半打开的端口扫描技术的实现基于半打开的端口扫描技术的实现 摘摘 要要 随着互联网的飞速发展 网络入侵行为日益严重 网络安全日益成为人们 关注的焦点 端口扫描技术是网络安全扫描技术的重要技术之一 对目标系统 进行端口扫描 是网络系统入侵者进入目标系统的第一步 本文对端口扫描技 术的原理和应用进行了阐述 并设计了一个简单的基于windows平台上的端口扫 描系统 在论文中介绍了半打开扫描中的SYN探测技术 分析了这种扫描技术实 现的原理和特点 实际设计中采用了扫描安全性和可行性较好的SYN探测技术来 实现端口扫描 并实现了端口列表自定义 扫描结果存储等几大模块化功能 最后结合当前的实际情况对端口扫描的未来发展方向提出了一点个人的看法 关键词关键词 网络安全 端口扫描 SYN 探测 The Implementation of a Port scanning Program Based on Semi opened Port Technology Abstract With the quick development of the internet network intrusion behavior becomes more and more serious Network security becomes the focus which people pay attention to Port Scanning Technology is one of the most important technologies of the safe scanning on internet The first step that network system intruders enter the target system is the port scanning of the system This essay explains the principle and application of the port scanning technology and then designs a simple port scan system which bases on the Windows platform The paper introduces the SYN probe technology of the semi open scan technologies analyzes its implementing principle approach and characters In the real design it use the SYN probe technology which has a better scanning security and feasibility to achieve the Port Scanning then realize user defined port list function recording of the scanning result and some other functional modules At last combined with the nowadays actual situation the paper brings a few personal minds for the future direction of the development of the Port Scanning Key words Network security Port scanning SYN probe 目目 录录 论文总页数 22 页 1引言 1 1 1端口扫描概述 1 1 2端口扫描技术的国内外研究现状 1 1 3端口扫描原理 1 1 4端口扫描技术概要 2 1 5SYN 技术详解 3 1 5 1TCP 包探测原理 3 1 5 2SYN 包探测 4 1 5 3分组时延 4 1 6端口扫描实现方法 4 2需求分析 4 2 1端口扫描器的总体要求 4 2 1 1设计背景 4 2 1 2用户特点 4 2 1 3软件开发及运行环境 5 2 2端口扫描器的需求分析 5 3端口扫描器的实现 5 3 1功能模块简介 5 3 2程序实现流程 6 3 3SYN 探测的实现 6 3 4端口扫描功能模块 15 3 4 1端口选择模块 15 3 4 2目标 IP 选取模块 16 3 4 3终止扫描 17 3 4 4扫描结果存储模块 17 4测试环境及结果 18 4 1硬件环境 18 4 2软件环境 18 4 3测试结果 18 5端口扫描技术的发展方向和趋势 19 结 论 19 参考文献 20 致 谢 21 声 明 22 第 1 页 共 22 页 1 1 引言引言 1 11 1 端口扫描概述端口扫描概述 网络安全探测在网络安全中起着主动防御的作用 占有非常重要的地位 网络安全探测的所有功能都是建立在端口扫描的基础上 所以对端口扫描技术 的研究有着非常重要的现实意义 每一个网络主机都相当于一个 房间 黑客能否进入 房间 取决于是否 发现了打开的 门窗 也就是说 能否入侵网络主机 或者网络主机是否安全 关键在于能否查出网络主机的系统信息 而端口是主机与外界通讯交流的数据 出入口 即是 门窗 端口分为硬件端口和软件端口 所谓硬件端口又称为接 口 包括 USB 端口 串行端口 并行端口等 软件端口一般指网络中面向连 接服务 TCP 和无连接服务 UDP 的通讯协议的端口 一个端口就是一个潜在的 通信通道 也就是一个入侵通道 对目标计算机进行端口扫描 能得到许多有 用的信息 通过端口扫描 发现系统的安全漏洞 它使系统用户了解系统目前 向外界提供了哪些服务 从而为系统用户管理网络提供了一种手段 1 21 2 端口扫描技术的国内外研究现状端口扫描技术的国内外研究现状 网络的安全状况取决于网络中最薄弱的环节 任何疏忽都可能引入不安全 的因素 最有效的方法是定期对网络系统进行安全性分析 及时发现并修正存 在的脆弱性 保证系统的安全 国外安全扫描技术的历史可以追溯到 20 世纪 90 年代 当时因特网刚刚起 步 但是在过去的十多年内 扫描技术飞速发展 迄今为止 其扫描技术己经 非常完善 但是在全面性 隐蔽性和智能性上还有待提高 而安全扫描器从最 初专门为 UNIX 系统而编写的一些只有简单功能的小程序发展到现在 己经出 现了可以运行在多个操作系统平台上的 具有复杂功能的系统程序 国内的扫描技术是在国外扫描器基础上发展起来的 其中有些专门从事安 全技术的公司包括绿盟科技 启明星辰等等 这些公司的扫描器以硬件为主 其特点是执行速度快 不像软件一样受到安装主机系统性能的限制 然而对于更多的基于主机的端口扫描器而言 简单 实用 可靠才是它们 的长处 1 31 3 端口扫描原理端口扫描原理 端口扫描通常指用同一个信息对目标主机的所有需要扫描的端口进行发送 探测数据包即扫描 然后 根据返回端口的状态来分析目标主机端口是否打开 是否可用 端口扫描通过与目标主机的 TCP IP 端口建立连接并请求某些服务 记录目标主机的应答 收集目标主机相关信息 从而发现目标主机某些内在的 第 2 页 共 22 页 安全弱点 并且确定该端口什么服务正在进行并获取该服务的信息 端口扫描 也可以通过捕获本地主机或服务器的流入流出 IP 数据包来监视本地主机的运行 情况 它仅能对接收到的数据进行分析 帮助我们发现目标主机的某些内在的 弱点 而不会提供进入一个系统的详细步骤 1 41 4 端口扫描技术概要端口扫描技术概要 端口扫描途径主要是扫描器 扫描器是一种自动检测远程或本地主机安全 性弱点的程序 通过使用扫描器可以不留痕迹的发现远程服务器的各种 TCP 端 口的分配及提供的服务和它们的软件版本 这就能让我们间接的或直观的了解 到远程主机所存在的安全问题 扫描器通过选用远程 TCP IP 不同的端口的服务 并记录目标给予的回答 通过这种方法 可以搜集到很多关于目标主机的各种有用的信息 扫描器有三 项功能 发现一个主机或网络的能力 一旦发现一台主机 有发现什么服务正 运行在这台主机上的能力 通过测试这些服务 发现漏洞的能力 为了理解扫描以及它的工作原理 首先应对 TCP 的三次握手机制有所了解 TCP 的报头包含一个序列号和一些起着特殊作用的标记位 这里仅提到其中的 四个标记位 SYN 同步 ACK 确认 RST 复位 和 FIN 完成 它们四个的作 用与这里讨论的主题密切相关 当系统间建立连接和释放连接时 就会用到所谓的握手机制 本文中所提 到的连接均指的是发生在两个 IP 地址间 有一定的端口号的连接 它的工作原理大致如下 握手的第一步 一台计算机首先请求和另外一台 计算机建立连接 它通过发送一个 SYN 请求来完成 也即前面提到的 SYN 标 记位置位 两台计算机间每条信息都有一个由发送方产生的序列号 序列号的 使用使得双方知道他们之间是同步的 而且还可以起到丢失信息时或接收顺序 错误时发送警告信息的作用 握手的第二步 接收到 SYN 请求的计算机响应发送来的序列号 它会将 ACK 标记位置位 同时它也提供自己的序列号 到现在为止 发起连接建立请 求的计算机认为连接已经建立起来 然而对方却并不这样认为 对方还要等到 它自己的序列号有了应答后才能确认连接建立起来 因此现在的状态称为 半连 接 如果发起连接请求的计算机不对收到的序列号做出应答 那么这个连接就 永远也建立不起来 而正因为没有建立连接 所以系统也不会对这次连接做任 何记录 握手的第三步 发起连接请求的计算机对收到的序列号作出应答 这样 两台计算机之间的连接才算建立起来 两台计算机释放连接时的情况与此类似 当一台计算机说没有更多的数据 第 3 页 共 22 页 需要发送了 它发送一个 FIN 信号 将 FIN 标记位置位 通知另一端 接收到 FIN 的另一端计算机可能发送完了数据 也可能没发送完 但它会对此作出应 答 而当它真正完成所有需要发送的数据后 它会再发送一个自己的 FIN 信号 等对方对此作出应答后 连接才彻底解除 1 51 5 SYNSYN 技术详解技术详解 1 5 11 5 1 TCPTCP 包探测原理包探测原理 高效的探测方法需要解决 3 个问题 1 用几个包判断主机和端口状态 2 占用双方的资源少 3 准确的分组时延计算方法 如果不建立完整的 TCP 连接 直接用 TCP 包来检测 TCP 应用服务端口的状态 会有效地提高探测效率和准 确性 对于问题 1 和 2 可以借鉴 TCP 端口扫描技术 发送特殊 TCP 包解决 对于问题 3 可以在仿照 Ping 的方式在 TCP 某些字段或选项中嵌入时间戳来 解决 TCP 端口扫描技术通过发送一些特殊的 TCP 包判断目标主机和端口状态 端口扫描通过扫描目标主机的大量端口 发现系统的漏洞 而服务器的地址和 端口一般都是公开的 如果只探测服务器的工作端口 不用探测其余的端口 可以向工作端口发送特殊的 TCP 包 根据返回包判断目标状态 绝大多数 TCP IP 协议栈的实现遵循以下原则 1 当一个 SYN 或者 FIN 数据包到达一个关闭的端口 TCP 丢弃数据包同 时发送一个 RST 数据包 2 当一个包含 ACK 的数据包到达一个监听端口时 数据包被丢弃 同时 发送一个 RST 数据包 3 当一个 SYN 数据包到达一个监听端口时 正常的三阶段握手继续 回 答一个 SYN ACK 数据包 4 当一个 FIN 数据包到达一个监听端口时 数据包被丢弃 FIN 行为 关 闭的端口返回 RST 监听端口丢弃包 在 URG 和 PSH 标志位置位时同样要发 生 所有的 URG PSH 和 FIN 或者没有任何标记的 TCP 数据包都会引起 FIN 行为 一般 TCP 端口扫描根据以上方式的发包收包来判断主机与端口状 态 因为 FIN 包不能直接探测监听端口 所以通常选择使用 SYN 包或 ACK 包 探测监听端口 一些防火墙出于安全的考虑 将发现和拦截 ACK 与 FIN 探测 包 但不会拦截 SYN 包 通过网络上别人的一些测试和实验发现 对 Internet 中发布的 60 个 HTTP 代理服务器进行探测 其中 97 的服务器对 SYN 包有 应答 只有 53 的服务器对 ACK 包有应答 实验发现对 SYN 包无应答的主机 对任何 TCP 包都无应答 无论服务器有什么样的安全处理规则 根据方式 1 2 SYN 请求都会得到应答 所以选择 SYN 包作为探测包 第 4 页 共 22 页 1 5 21 5 2 SYNSYN 包探测包探测 第一步 客户端向服务器的工作端口发送 SYN 服务器返回 SYN ACK 包 或 RST 包 如果客户端收到 SYN ACK 则可以肯定服务器活动和端口开启 收到 RST 包 则说明服务器活动但端口关闭 客户端不用执行第二步 如果超 时无应答 则认为包丢失 第二步 因为不需要建立正常的 TCP 连接 所以对应答 ACK 包的服务器 发送 RST 包 保证服务器端关闭半连接 因为只有少量报文对端口探测 不会 引起安全系统的报警 使用 SYN 包探测 可以检测服务器和端口的状态 分组 时延 丢包率 又可以穿透防火墙 符合网络对安全的要求 1 5 31 5 3 分组时延分组时延 假如用定时器来计算分组往返的时间 大量的定时器会造成资源极大消耗 虽然 TCP 协议规定了时间戳选项 类型 8 用该选项中嵌入时间戳 服务器返 回包的选项部分含有发送的时间戳 然而 在具体 TCP IP 协议实现中 有些 TCP IP 协议栈会忽略该选项 或者选项值置 0 无法得到往返时间 如果能像 Ping 一样保证某一字段的数据在往返中不改变 就可以像 Ping 一样嵌入时间戳 但 TCP 的各字段不能保证往返数据一致 可以考虑用一种变通的方式嵌入时间 戳 对于客户机发送的 SYN 报文 设序号 x 则服务主机返回报文的确认序号 等于 x 1 利用发送序号和确认序号的关系来传递时间戳 设置 SYN 包的发送 序号为时间戳 收到的 SYN ACK 包或 RST 包的确认序号减 1 即可得到发送包 的时间戳 用收到包的时间减去发送时间戳即得到分组时延 1 61 6 端口扫描实现方法端口扫描实现方法 本文通过对基于半打开的端口扫描技术的实现来介绍了现在一些主流的端 口扫描技术 通过对程序的开发加深了对端口扫描技术的认识 经过对端口扫 描技术的了解和认识 本文采用隐蔽性较好基于主机的 SYN 刺探技术来实现 2 2需求分析需求分析 2 12 1 端口扫描器的总体要求端口扫描器的总体要求 2 1 12 1 1 设计背景设计背景 该端口扫描器是面向普通用户使用 以期成为一个普通用户用来检测端口 网络主机端口并有效地保护自己 在采用 SYN 刺探方式进行扫描的基础上成为 一个基于半打开的实用 简单 方便的端口扫描工具 2 1 22 1 2 用户特点用户特点 由于该端口扫描系统是一个基于半打开的端口扫描器 其面向的是普通的 对于端口扫描有需求的用户 因此需要提供一个简洁 方便 高效的界面和功 第 5 页 共 22 页 能 2 1 32 1 3 软件开发及运行环境软件开发及运行环境 系统开发工具 Visual C 6 0 2 22 2 端口扫描器的需求分析端口扫描器的需求分析 端口扫描器的一般需求 1 隐蔽性需求 作为扫描的一方来说 端口扫描除了要能扫出目标主机的端口信息以外 还需要能有一定的隐蔽性 以最大的可能不在目标主机留下访问信息 如果仍 然采用基于 TCP connect 的扫描则将很容易被目标主机记录 因此从隐蔽性上 考虑 SYN 半打开扫描或者 FIN 扫描会是很好的选择 2 端口选择需求 当我们在使用扫描软件对目标主机进行扫描的时候 有的时候是有目的性 地扫描目标主机的某一个端口 然而在大部分时候却需要扫描批量端口或者是 一些重要的指定端口 这个时候需要端口扫描系统具有自定义端口列表的功能 3 扫描结果存储需求 在进行完一次端口扫描之后 需要对结果进行保存 无论是攻击还是检测 端口扫描器是需要与其他的一些工具配合到一起使用的 所以要求端口扫描器 一定要具有存储结果的功能 以将扫描得到的目标主机端口信息保存下来 3 3端口扫描器的实现端口扫描器的实现 3 13 1 功能模块简介功能模块简介 所完成的端口扫描器的界面如图 1 所示 相关功能介绍如下 图 1 端口扫描器功能界面 第 6 页 共 22 页 目标 IP 范围选择模块 选择起始 IP 和结束 IP 以确定目标 IP 的范围 端口范围选择模块 自定义起始端口和结束端口以确定扫描范围 扫描结果存储模块 自定义扫描结果的显示方式 或将扫描结果保存下来 自定义默认端口列表模块 对默认的重要端口进行添加或删除以更符合扫 描需要 3 23 2 程序实现流程程序实现流程 程序实现的流程如图 2 所示 图 2 程序实现流程图 主函数首先创建一个侦听线程以准备获得返回信息 然后调用 FillLocalIP 函数将本地 IP 写入 IP 列表中 接着读取要扫描的 IP 和端口 判断是否是本地 IP 若是则调用函数 scanlocal 对本地 IP 和端口发起连接并获得扫描结果 如果 不是本地 IP 就调用 scan 函数对远程 IP 发送 SYN 包 并通过创建的套接字 rawsock 得到从系统中返回的信息 分析数据后得到扫描结果 最后将扫描的结 果插入结果树中排序并可保存为文本文件 3 33 3 SYNSYN 探测的实现探测的实现 定义了一个线程体 ScanStart 调用其他的函数来实现端口扫描 是 否 填充本地 IP 列表 读取 IP 和端口 保存扫描结果 开始 Scanstart 主函数 本地 IP 获得扫描结果 结束 获得扫描结果 保存扫描结果 结束 第 7 页 共 22 页 1 DWORDWINAPI ScanStart LPVOID lpvoid CDWordArray 为侦听线程分配句柄空间 handle HANDLE malloc sizeof HANDLE numadapter 1 为 LocalIP 分配空间 lpLocalIP ULONG malloc sizeof ULONG numadapter HANDLE hListen handle 创建侦听线程 每块网卡绑定一个线程 while InforL num 0 hListen InforL num CreateThread NULL 0 ListeningFunc 创建一个嗅包的线程 分析接收到的包 if hListen InforL num NULL AfxMessageBox 创建侦听线程失败 Sleep 500 Sleep 0 5s 使 ListeningFunc 线程初始化完毕 InforL num pProGressCtrl SetRange32 0 EndIP StartIP 1 CPortList GetSize 设置显示扫描进度条的大小 Fill LocalIP FillLocalIPList lpLocalIP 获取本地网卡的 IP 这是为了实现监听功能 接受返回的数据包 DWORD lpLIP lpLocalIP IPANDPORT lpInfor 0 lpInfor hTree lpTreeCtrl int all 0 int k 1 int TEMP StartIP 在对 IP 范围是否符合规则进行判断以后 将端口列表中的端口信息循环读 入到 lpInfor PORT 中 为即将开始的扫描做准备 第 8 页 共 22 页 for StartIP EndIP StartIP 从第一个 IP 到最后一个 IP lpInfor NETIP htonl StartIP int Num CPortList GetSize for int i 0 iSetPos all 第 9 页 共 22 页 2 扫描程序在开始的时候将 LocalIPlist 中的 IP 与 scanIP 对比 判断待扫描 的 IP 是否是本地 IP 因为在程序中对目标 IP 和本地 IP 的扫描方式是不一样的 所以需要在这里作出一个判断 BOOL IsLocalIP ULONG scanIP ULONG LocalIPlist int num for int i 0 iPORT 设置扫描的端口 addr in sin family AF INET addr in sin port htons port addr in sin addr S un S addr lpInfor NETIP 设置 IP 地址 intiErr ULONG ul 1 if sock socket AF INET SOCK STREAM IPPROTO TCP INVALI D SOCKET AfxMessageBox Socket Setup Error n 大多数扫描技术要发送原始套接字包来进行探测 因为只有原始套接字 支持对 IP 报头的设置 即构造 IP 数据包 同时 原始套接字也支持发送和接 收 IP 数据包 这样 原始套接字接口实际上成为网络层向上提供的接口 iErr ioctlsocket sock FIONBIO unsigned long 设置 sock 为非阻 塞 if iErr SOCKET ERROR 等待错误信息 AfxMessageBox set socket FIONBIO false n 在 Windows XP 中 程序使用原始套接字构造和发送 SYN 包 TCP IP 协议 栈中不会记录该连接请求 所以对于服务器端返回的 SYN ACK 包 TCP IP 协 议栈会自动发送 RST 不用在程序中实现 SYN 探测的第二步 connect sock struct sockaddr 发送 SYN 包 在发送完 SYN 包以后立即关闭 SOCK 连接 因为程序无法直接收到返 回的信息 返回的数据是到达系统核心 然后通过嗅探抓包的方式获得目标主 机返回信息 closesocket sock 第 11 页 共 22 页 return 0 4 接着调用 scanlocal 函数对本地 IP 进行扫描 由于对本地 IP 扫描的时候 不需要考虑到扫描的安全性 即不用担心扫描的时候被主机留下扫描记录 另 外一方面 对本地主机扫描的时候就不需要从监听的网卡上抓取返回的包 直 接设置等待连接成功后的信息既方便又快速 所以在扫描本地主机的时候不用 发送 SYN 包 DWORD WINAPI scanlocal LPVOID lp SOCKET sock NULL SOCKADDR IN addr in 0 TCHAR SendBuf 256 0 设置缓冲变量 IPANDPORT lpInfor IPANDPORT lp USHORT port lpInfor PORT CTreeCtrl hTree lpInfor hTree 省略部分代码 if sock socket AF INET SOCK STREAM IPPROTO TCP INVALID SO CKET 建立 socket 的链接对象 fd set r w 设置 sock 为非阻塞 iErr ioctlsocket sock FIONBIO unsignedlong if iErr SOCKET ERROR printf set socket FIONBIO false n 套接字连接 以对本地 IP 端口进行扫描 connect sock struct sockaddr 在向本地 IP 发起建立连接后 设置 iErr select 0 closesocket sock return 1 5 原始套接字包发送完后 就可以接收目标主机的回应 当发送原始套接 字包时 如 TCP SYN 数据包 操作系统核心并不知道 也没有此数据发送或者 连接建立的记录 因此 当远端主机回应时 系统核心就把这些包都全部丢掉 从而到达不了应用程序上 所以 程序中不能简单地使用接收函数来接收这些 数据包 要达到接收数据包的目的 必须采用嗅探 接收所有通过的数据包 然后进行筛选 留下符合需要的 为此可以表示接收所有的数据 通过设置原 始套接字的 I 0 控制命令 便可以调用 SIO RCVALL 接收返回的数据包 分析 是不是扫描程序返回的 DWORD WINAPI ListeningFunc LPVOID lpvoid 定义套接字 rawsock 以连接应用程序和监听的本地网卡 SOCKET rawsock SOCKADDR IN addr in 0 int settimeout 500 INFORLISTEN lp INFORLISTEN lpvoid int num lp num 省略部分代码 if rawsock socket AF INET SOCK RAW IPPROTO IP INVALID SOC KET 建立原始 IPPROTO IP 套接字 AfxMessageBox Socket Setup Error n return false addr in sin family AF INET 第 13 页 共 22 页 构造 SYN 包 最好选用较大的端口号作为发送端口 以免和应用程序正在 使用的端口发生冲突 在这里我们选用的是 8288 另外在构造 TCP 头的时候 还添加了 TCP 选项 SACK 保证 TCP 连接请求被接受 addr in sin port htons 8288 设置接收的端口为 8288 addr in sin addr S un S addr htonl INADDR ANY 监听所有的本地 IP 地址 对 rawsock 绑定本机 IP 和端口 当系统收到目标的返回信息时 便 可以通过 rawsock 传到应用程序当中 int ret bind rawsock struct sockaddr if ret SOCKET ERROR AfxMessageBox bind false 程序使用两次判断来过滤 IP 包 首先判断 IP 头部 要求目的地址是本机 协议号是 TCP 协议 然后再判 断 TCP 头部 要求目的端口等于选用端口号 控制标志位为 SYN ACK 或者 RST 因为监听套接字会接收到所有的 IP 包 要保证能尽快处理分组 如图 4 所示 图 4 返回 IP 包的接收及过滤 设置 SIO RCVALL 包括延时和数据大小等信息 以接收所有的数据包 在收到返回信息的时候接受并分析数据包是否为应用程序返回的信息 setsockopt rawsock SOL SOCKET SO RCVTIMEO char DWORD lpvBuffer 1 DWORD lpcbBytesReturned 0 设置一个套接口的模式 接受所有数据 WSAIoctl rawsock SIO RCVALL 第 14 页 共 22 页 省略部分代码 char RecvBuf 256 0 接收数据包 ret recvfrom rawsock RecvBuf sizeof RecvBuf 0 struct sockaddr if ret SOCKET ERROR 分析数据包 IPHEADER lpIPheader lpIPheader IPHEADER RecvBuf 这里从接受到的数据中分离出 IP 报头 lpIPheader 接着又从 IP 报头中继续 分离出源地址 sourceip 并判断源地址是否在起始 IP 和结束 IP 的范围内和是否 为远程开放端口返回的数据包 if lpIPheader proto IPPROTO TCP 省略部分代码 InsertToTree hTree StrIP CSPort 6 在扫描完成以后 使用函数 InsertToTree 将结果插入到结果树中 hTree 并在结果树中进行排序 使得结果按照选择的方式展开或合拢 第 15 页 共 22 页 void InsertToTree CTreeCtrl hTree CString CSIP CString CSPORT HTREEITEM A hTree InsertItem CSIP NULL TVI LAST hTree InsertItem CSPORT A TVI LAST 3 43 4 端口扫描功能模块端口扫描功能模块 3 4 13 4 1 端口选择模块端口选择模块 选择从端口范围或默认端口列表中获取待扫描的端口 首先通过消息传递 函数 m IsChecked 来判断是否得到了选取端口范围的消息 如果是 则获取起 始端口和结束端口的数据并判断起始端口是否不大于结束端口 如果没有传来 消息 则尝试调用 m PortListTree GetNextItem 从自定义端口列表树中得到当 前所选择的默认端口并从端口列表树中继续获得下一个端口 BOOL CLScanPortDlg ReadPortToPortList UpdateData 这里通过 m IsChecked 获得选取端口范围的消息 然后就判断端口范围是 否符合规则 即起始端口不应该大于结束端口 if m IsChecked if m PortFrom m PortTo AfxMessageBox 起始端口 不应该大于 结束端口 return FALSE while m PortFrom IsBlank AfxMessageBox IP 地址 不能为空 Return FALSE 省略部分代码 AfxMessageBox IP 地址 不能为空 Return FALSE pIP GetAddress m EndIP 第 17 页 共 22 页 最后使用 if 循环来判断 m StartIP 和 m EndIP 当 m StartIP 大于 m EndIP 的时候 返回提示信息 起始 IP 必须EnableWindow TRUE 以使界面上的按钮有效 可以重新 开始扫描 3 4 43 4 4 扫描结果存储模块扫描结果存储模块 通过使用 OnButtonSaveResult 函数 在得到保存结果的消息后首先判断结 果地址树是否为空 如果有扫描结果则创建一个标准文件对话框以准备存储扫 描结果 在创建成功以后将扫描结果列表树上的数据写入到文本框中以存储本 次扫描的结果 如果程序仍然处于扫描状态中 将不能保存结果 通过全局变量判断程序 是否处于扫描状态 如果没有则创建一个命为 Result txt 的文本文件来保存 扫描结果 if OK TRUE AfxMessageBox 失败 还在扫描 请等待停止后再保存 return TCHAR pR MAX PATH 0 GetModuleFileName NULL pR MAX PATH memset pR strlen pR 4 0 4 strcat pR Result txt 创建标准文件对话框 用 Fdlg DoModal 来显示创建的对话框 当打开文件的时候属性设置为写入 并将得到的扫描结果保存到创建的文 本文件当中 第 18 页 共 22 页 FILE fp fopen Fname w if fp NULL AfxMessageBox 写入失败 return fprintf fp PortScanner 扫描结果如下 n 定义两个结构体 A 和 B A 表示结果树中的 IP 地址 B 表示每个 IP 下面 扫描出来的端口信息 在对扫描结果进行保存的时候 首先用 A 通过 m ListTreeResult GetItemText 得到一个扫描的 IP 然后将所有扫描这个 IP 得 到的端口子属性 m ListTreeResult GetNextSiblingItem 写到 A 的下面 如此循 环便可以将所有的 IP 和扫描出来的端口保存到创建的文本文件中 省略部分代码 fclose fp AfxMessageBox 成功写入 创建标准文件对话框失败 else if nResponse IDCANCEL return 4 4测试环境及结果测试环境及结果 4 14 1 硬件环境硬件环境 计算机 CPU sempron2200 oc 1 8G 内存 512M 网络环境 局域网 4 24 2 软件环境软件环境 系统环境 Windows XP 编译工具 Visual C 6 0 4 34 3 测试结果测试结果 通过和寝室同学搭建的一个局域网 对所设计的端口扫描器进行了实验 在一开始的实验中 发现扫描速度及结果的准确率都不理想 在经过编程测试 第 19 页 共 22 页 后发现是延时设置过小的原因 接受包的延时本来设置为 1000 毫秒 但正是由 于延时过小 所以不能及时接收返回的包 导致了结果准确率不高 很多扫描 的结果都不能显示出来 发现这一问题后 将延时设置为 5000 毫秒 这时扫描 速度及准确度大大提高 5 5端口扫描技术的发展方向和趋势端口扫描技术的发展方向和趋势 在未来 端口扫描将不仅仅作为一个简单的工具 它会集成更多的功能 或是和别的工具结合起来 成为一个综合的检测工具 仅仅借助单一的漏洞扫 描等工具进行的安全评估是不完整的 有局限性的 它不能够很好地表现信息 系统的安全特征 因此需要一种既能够有效收集系统中各主机的安全信息 又 能够及时发现网络中发送信息的源地址相关信息的工具为安全评估提供支持 现在已有一些综合扫描系统既能实现安全扫描 又能监听并分析系统中的数据 包 提供网络中的存在的漏洞及安全状况 成为一个综合扫描系统 综合扫描系统是一种自动检测远程或本地主机安全脆弱点的程序 通过使 用扫描系统 系统管理员能够发现所维护的 Web 服务器的各种 TCP 端口的分 配 提供的服务 Web 服务软件版本和这些服务及软件呈现在 Internet 上的安 全漏洞 同时综合扫描系统还能从主机系统内部检测系统配置上的缺陷 模拟 系统管理员进行系统内部审核的全过程 发现能够被黑客利用的问题 根据扫 描子系统所发现的信息 系统管理员可以及时填补安全漏洞 避免入侵者攻击 在综合扫描系统中通过使用端口扫描系统来交换信息协同工作 可以使入 侵检测得到更好的效果 综合扫描系统可以利用扫描子系统的扫描结果 对 目前网络或系统和应用所存在的漏洞做到心中有数 然后利用扫描结果对预警 策略进行修改 这样一方面可以尽可能的减少误报 另外也可以对隐含在正常 行为中的攻击行为做出报警 综合扫描系统也可以利用对日常警报信息的分 析 对端口扫描系统的扫描策略进行修改 然后进行预约扫描 对目前可能遭 受攻击的漏洞提出一个报告 端口扫描子系统也可以利用综合扫描系统的报 警信息 对有些主机进行特定的扫描 查看正在受攻击的端口或漏洞是否真的 存在 结结 论论 由于计算机网络的广泛应用 黑客的活动日益猖獗 网络入侵事件越来越 多 网络系统的安全已经成为网络建设面临的一个重大问题 信息系统安全的 实现 网络安全占有很重要的一部分 如何能够有效地获取网络安全信息 是 第 20 页 共 22 页 信息安全评估需要首先解决的一个问题 同时了解网络安全状况又是防止网络 被攻击必须解决的问题 只有发现并填补了网络系统存在的各种安全漏洞 才 能更有效地保护计算机网络 真正将网络带来的优势发挥出来 因此 网络安 全漏洞信息的收集是至关重要的一步 工具的辅助是一个完整的安全评估体系不可或缺的重要组成部分 所以一 个高效 实用 方便的端口扫描器将为我们对端口进行评估 对整个入侵检测 体系提供支持 本论文中提供的这个端口扫描器就能满足以上的需求 并且利 用 SYN 刺探能实现安全扫描 参考文献参考文献 1 程鹅 董小国 端口扫描技术及检测 J 华南金融电脑 2004 7 109 112 2 杨成卫 端口侦听 与 端口扫描 研究 J 警察技术 2006 3 22 24 3 洪宏 张玉清 胡予濮 戴祖锋 网络安全扫描技术研究 J 计算机工程 2004 10 7 9 4 李健 张国印 顾国昌 张万松 网络扫描技术实现及其在网络安全中的应用 J 计算机应 用研究 2004 2 55 58 5 武装 网络端口扫描及对策研究 J 电子技术应用 2004 6 19 23 6 李树军 反射式 TCP 端口扫描技术的研究 J 网络安全技术与应用 2006 9 29 33 7 戴文华 桂学勤 基于 TCP 连接的网络漏洞扫描器的设计与实现 J 福建电脑 2005 11 96 99 8 谢希仁 主机网络教程 M 北京 人民邮电出版社 2003 9 周明天 汪文勇 TCP IP 网络原理与技术 M 北京 清华大学出版社 1998 10 Eric Cole 著 苏雷等译 黑客 攻击透析与防范 M 北京 电子工业出版社 2002 第 21 页 共 22 页 致致 谢谢 本文是在张金全老师的热情关心和指导下完成的 他渊博的知识和严谨的 治学作风使我受益匪浅 对顺利完成本文起到了极大的作用 在此向他表示我 最衷心的感谢 在论文完成过程中 本人还得到了毛磊和伍映谯等同学的热心帮助 本人 向他们表示深深的谢意 最后向在百忙之中评审本文的各位专家 老师表示衷心的感谢 作者简介 姓 名 牟楠轲 性别 男 出生年月 1985 年 1 月 民族 汉 E mail mnk2200 第 22 页 共 22 页 声声 明明 本论文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程学院网络工程 系完成的 文中除了特别加以标注的地方外 不包含他人已经发表或撰写过的 研究成果 也不包含为获得成都信息工程学院或其他教学机构的学位或证书而 使用过的材料 除非另有说明 本文的工作是原始性工作 关于学位论文使用权和研究成果知识产权的说明 本人完全了解成都信息工程学院有关保管使用学位论文的规定 其中包括 1 学校有权保管并向有关部门递交学位论文的原件与复印件 2 学校可以采用影印 缩印或其他复制方式保存学位论文 3 学校可以学术交流为目的复制 赠送和交换学位论文 4 学校可允许学位论文被查阅或借阅 5 学校可以公布学位论文的全部或部分内容 保密学位论文在解密后 遵守此规定 除非另有科研合同和其他法律文书的制约 本论文的科研成果属于成都信息 工程学院 特此声明 作者签名 2007 年 6 月 日 第 23 页 共 22 页 Anyway I was here in Amber some years ago Not doing much of anything Just visiting and being a nuisance Dad was still around and when I noticed that he was getting into one of his grumpy moods I decided it was time to take a walk A long one I had often noticed that his fondness for me tended to increase as an inverse function of my proximity He gave me a fancy riding crop for a going away present to hasten the process of affection I suppose Still it was a very nice crop silver chased beautifully tooled and I made good use of it I had decided to go looking for an assemblage of all my simple pleasures in one small nook of Shadow It was a long ride I will not bore you with the details and it was pretty far from Amber as such things go This time I was not looking for a place where I would be especially important That can get either boring or difficult fairly quickly depending on how responsible you want to be I wanted to be an irresponsible nonentity and just enjoy myself Texorami was a wide open port city with sultry days and long nights lots of good music gambling around the clock duels every morning and in between mayhem for those who couldn t wait And the air currents were fabulous I had a little red sail plane I used to go sky surfing in every couple of days It was the good life I played drums till all hours in a basement spot up the river where the walls sweated almost as much as the customers and the smoke used to wash around the lights like streams of milk When I was done playing I d go find some action women or cards usually And that was it for the rest of the night Damn Eric anywayl That reminds me again He once accused me of cheating at cards did you know that And that s about the only thing I wouldn t cheat at I take my card playing seriously I m good and I m also lucky Eric was neither The trouble with him w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养殖水产品品牌IP形象设计创新创业项目商业计划书
- 教师招聘之《小学教师招聘》模拟考试高能及参考答案详解【培优b卷】
- 演出经纪人之《演出经纪实务》考前冲刺练习试题含答案详解(巩固)
- 2025年教师招聘之《幼儿教师招聘》通关试卷提供答案解析及参考答案详解(a卷)
- 教师招聘之《幼儿教师招聘》考前冲刺训练试卷含答案详解(突破训练)
- 2025年教师招聘之《幼儿教师招聘》模考模拟试题含答案详解(培优)
- 2025年教师招聘之《幼儿教师招聘》基础试题库附答案详解【夺分金卷】
- 2025江苏盐城市阜宁县金沙湖开发投资有限公司招聘工作人员岗位调整考试参考题库附答案解析
- 2025广东广州市黄埔区大沙街道招聘编外聘用人员2人考试参考题库附答案解析
- 2025年文化产业园产业集聚与服务体系建设与区域文化繁荣
- 国际贸易学(第五版)课后题参考答案 金泽虎
- 化药口服固体制剂连续制造技术指导原则(试行)
- 2025年家庭医生签约服务培训大纲
- 单位食堂劳务外包服务投标方案(技术方案)
- 2025三门县国企招聘考试题目及答案
- 电梯有限空间作业安全专项施工方案
- 2025-2030红色旅游行业市场发展现状及发展前景与投资机会研究报告
- 植筋施工方案 全
- 2025四川省前期物业服务合同示范文本
- 法院舆情风险防控课件
- 动态系统仿真技术-全面剖析
评论
0/150
提交评论