端口扫描器的设计与实现分解_第1页
端口扫描器的设计与实现分解_第2页
端口扫描器的设计与实现分解_第3页
端口扫描器的设计与实现分解_第4页
端口扫描器的设计与实现分解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南理工大学计算机科学与技术学院 课程设计报告2015 2016学年第一学期课程名称网络与信息安全设计题目 端口扫描器的设计与实现姓名范腾飞学号311309040113专业班级网络1301指导教师叶青2016 年1 月 16 日目录一课程设计的目的 二课程设计的要求 三端口扫描器相关知识 3.1:端口的基本概念 3.2:常见的端口介绍 3.3:端口扫描器基本原理 3.4:端口扫描常用技术 四实验流程 4.1:基本步骤 4.2:主要函数 4.3流程图 五实验结果 六总结 一:课程设计的目的模拟常用的端口扫描软件原理, 利用 Socket 实现基本的端口扫描功能。 扫描器是网络信息收集的一种方法,

2、从功能上可分为漏洞扫描器和端口扫描器。 通过此次课程设计, 能够掌握漏洞、 端口的基础知识, 掌握扫描器的基本原理并 设计实现端口扫描和漏洞扫描程序。二:课程设计要求本课程设计的目标是设计并实现一个网络扫描器, 它通过与目标主机 TCP/IP 端口建立连接并请求某些服务,记录目标主机的应答,分析目标主机相关信息, 从而发现目标主机某些内在的安全弱点。扫描器通常分两类:漏洞扫描器和端口扫描器。端口扫描器用来扫描目标机 开放的服务端口以及端口相关信息。 漏洞扫描器检查目标中可能包含的大量已知 的漏洞,如果发现潜在的漏洞可能性,就报告给扫描者。网络漏洞端口扫描器对目标系统进行检测时,首先探测目标系统

3、的存活主 机,对存活主机进行端口扫描, 确定系统开放的端口, 同时根据协议指纹技术识 别出主机的操作系统类型。然后扫描器对开放的端口进行网络服务类型的识别, 确定其提供的网络服务。 漏洞扫描器根据目标系统的操作系统平台和提供的网络 服务,调用漏洞资料库中已知的各种漏洞进行逐一检测, 通过对探测响应数据包 的分析判断是否存在漏洞。在分析总结目前现有的扫描软件,在掌握扫描器的原理基础上,首先设计、 实现一种端口扫描程序, 存储扫描结果。 在此基础上, 有余力的同学对已经开放 的重要端口有具体漏洞分析检测。程序具体要求实现以下任一程序: 高效端口扫描器设计与实现:参照常见端口扫描器,在局域网内,能对

4、所有 计算机进行常用端口的高速扫描, 给出扫描结果。 另外根据配置不同的网段, 实现正对校园网络的基于网段的高速扫描。高效的漏洞扫描器的设计与实现:设计网络漏洞扫描仪的结构,建立常见的 漏洞库,并基于该漏洞库,实现高效的基于网段的漏洞扫描器。主机脆弱性分析系统:将漏洞和端口扫描结合起来,实现针对主机的脆弱性 分析系统。三: 相关知识1. 端口的基本概念:我们这里所说的端口, 不是计算机硬件的 i/o 端口,而是软件形式上的概念。服务器可以向外提供多种服务,比如,一台服务器可以同时是web服务器,也可以是ftp服务器,同时,它也可以是邮件服务器。为什么一台服务器可以同时提 供那么多的服务呢?其中

5、一个很主要的方面, 就是各种服务采用不同的端口分别 提供不同的服务。根据提供服务类型的不同,端口分为两种,一种是 tcp端口,一种是udp端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息 以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用 tcp协 议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用 udp 协议。对应这两种协议的服务提供的端口,也就分为 tcp端口和udp端口。那么, 如果攻击者使用软件扫描目标计算机, 得到目标计算机打开的端口, 也就了解了 目标计算机提供了那些服务。2. 常见端口介绍端口: 21 服务: FTP说明:FTP服务器所

6、开放的端口,用于上传、下载。最常见的攻击者用于寻找 打开anony mou啲FTP服务器的方法。这些服务器带有可读写的目录。木马DolyTrojan、Fore、In visible FTP、WebEx Wi nCrash和 Blade Runner所开放的端口。端口: 23 服务: Telnet说明:远程登录,入侵者在搜索远程登录UNIX勺服务。大多数情况下扫描这一 端口是为了找到机器运行的 * 作系统。还有使用其他技术, 入侵者也会找到密码。 木马 Tiny Telnet Server 就开放这个端口端口: 25 服务: SMTP说明:SMT服务器所开放的端口,用于发送邮件。入侵者寻找 SM

7、T服务器是 为了传递他们的SPAM入侵者的帐户被关闭,他们需要连接到高带宽的 E-MAIL 服务器上,将简单的信息传递到不同的地址。木马 Antigen 、 Email PasswordSen der、Haebu Coceda Shtrilitz Stealth 、Win PC Win Spy都开放这个端口 端口: 80 服务: HTTP 说明:用于网页浏览。木马 Executor 开放此端口。3. 端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道, 也就是一个入侵通道。 对目标 计算机进行端口扫描, 能得到许多有用的信息, 进行端口扫描的方法很多, 可以 是手工进行扫描、也可以用端

8、口扫描软件进行。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通 过这种方法可以搜集到很多关于目标主机的各种有用的信息, 例如远程系统是否 支持匿名登陆、是否存在可写的FTP目录、是否开放TELNE服务和HTTP服务等。4. 常用端口扫描技术:1 、 TCP connect() 扫描:这是最基本的TC旳描,操作系统提供的connect()系统调用可以用来与每 一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么 connect() 就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术 的一个最大的优点是, 你不需要任何权限。 系统中的任何用户都有权利

9、使用这个 调用。另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的 connect() 调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套 接字来加速扫描。使用非阻塞 I/O 允许你设置一个低的时间用尽周期,同时观察 多个套接字。 但这种方法的缺点是很容易被察觉, 并且被防火墙将扫描信息包过 滤掉。目标计算机的 logs 文件会显示一连串的连接和连接出错消息, 并且能很快 使它关闭。2、TCP SY扫描:这种技术通常认为是“半开放”扫描, 这是因为扫描程序不必要打开一个完 全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接 并等待反应一样(参考T

10、CP勺三次握手建立一个TCP连接的过程)。一个SYN|ACK 的返回信息表示端口处于侦听状态:返回 RS表示端口没有处于侦听态。如果收 到一个SYN|ACK则扫描程序必须再发送一个RSTW号,来关闭这个连接过程。这 种扫描技术的优点在于一般不会在目标计算机上留下记录, 但这种方法的缺点是 必须要有root权限才能建立自己的SYN数据包。3 、 TCP FIN 扫描:SYN 扫描虽然是“半开放”方式扫描, 但在某些时候也不能完全隐藏扫描者 的动作,防火墙和包过滤器会对管理员指定的端口进行监视, 有的程序能检测到 这些扫描。相反, FIN 数据包在扫描过程中却不会遇到过多问题,这种扫描方法 的思想

11、是关闭的端口会用适当的 RS睐回复FIN数据包。另一方面,打开的端口会 忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系,有的系统不管 端口是否打开都会回复RST在这种情况下此种扫描就不适用了。另外这种扫描 方法可以非常容易的区分服务器是运行 Unix系统还是N係统。4、IP段扫描:这种扫描方式并不是新技术,它并不是直接发送 TCP探测数据包,而是将数 据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而过滤器 就很难探测到。但必须小心:一些程序在处理这些小数据包时会有些麻烦。5 、 TCP 反向 ident 扫描:ide nt协议允许(rfc1413)看到通过TCP

12、连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。 例如扫描者可以连接到 http 端口,然后用 identd 来发现服务器是否正在以 root 权限运行。这种方法只能在和目标端口建立 了一个完整的TCP连接后才能看到。6 、 FTP 返回攻击:FTP协议的一个有趣的特点是它支持代理 (proxy)FTP连接,即入侵者可以从 自己的计算机和目标主机的FTP server-PI(协议解释器)连 接,建立一个控制通信连接。然后请求这个 server-PI 激活一个有效的 server-DTP(数据传输进程)来给In ternet上任何地方发送文件。对于一个 User-DTP,尽管R

13、F(明确地定义请求一个服务器发送文件到另一个服务器是可以 的,但现在这个方法并不是非常有效。 这个协议的缺点是“能用来发送不能跟踪 的邮件和新闻,给许多服务器造成打击,用尽磁盘,企图越过防火墙”。 四:实验流程步骤:1. 先输入想要扫描的网段;2. 然后将输入的网段转化为可排序的 ip 数组3. 建立多个线程,每个线程扫描一个 ip 。每个线程内先建立数据流套接字, 然后绑定 ip 端口进行扫描。将扫描端口保存到 g_map_ScanResult。4. 清理结束后进程,输出结果。5. 计算所用时间。程序中主要的函数:int main()/ 主函数InitProc();/ 初始化UserInpu

14、t();/ 输入ScanIp(g_startIp,g_endIp,g_map_ScanResult);/ 开始扫描CleanProc();/ 清理结束后进程OutPutScanInfo();/ 输出结果DWORD WINAPI ThreadFunc(LPVOID th_para)/ 扫描线程每一个 ip将ip化为可比较的const string &EndIp,unsigned long InvertIp(unsigned long srcIp) /int GetIpToScan(const string &StartIp, vector &vec_ip)/ 将所有 ip 排序放在一个数组内流程

15、图:函数ThreadFunc主流程图:uihiunedkinulScuntp.JYport porrsTOscan.,.Wfli tForSingleObjectl.,. D_Z E ROl & et_Tlflg ;IY1:nik.+i-iiidex;bhutdowndink cckho i.retnn/1;五:结果开始界面:*C:U5ersadamDesktopDebiig6.exer扫描界面:结果界面:回I * C:Usersa da mDes ktopD e bug6.exe六:总结通过这次端口扫描器的实验深化了信息对抗,信息安全的意识。对于网络扫描器有了整体上的认识。了解了 socket函数的基本用法和端口扫描的基本原 理,更加熟练掌握了 C+语言。在这次设计中在处理线程上遇到了很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论