计算机网络课程设计 基于ICMPTCP的网段端口扫描 C语言编写

2019-06-11 10:53

ronnie

课 程 设 计 任 务 书

【设计目的】

加深对TCP/IP协议的理解,熟悉Socket编程 【设计任务】

实现一个扫描器,必须能够完成以下所有功能:使用TCP connect、TCP SYN和TCP FIN进行端口扫描,使用ICMP echo 扫描实现IP扫描。并把结果记录下来。 【设计要求】

? Windows或Linux环境下,程序在单机上运行。

? 演示:使用端口扫描对一台主机进行扫描,并显示结果(一台主机上有哪些端口是打开的)。对一个网段进行IP扫描,显示结果(一个网段内有哪些主机是开机的)。 ? 友好的用户界面 【设计要求】

? 程序源代码,必须有详细的注释。 ? 项目设计报告。

1

ronnie

网段和端口扫描程序

一、 概述 ..................................................................................................... 3

1.1端口扫描 ........................................................................................... 3 1.2端口扫描常用技术简介 ...................................................................... 3

1.2.1 connect()扫描 ........................................................................... 3 1.2.2 SYN扫描 ................................................................................. 4 1.2.3 XMAS-TREE扫描 .................................................................... 4 1.3网段扫描 ........................................................................................... 5 二、需求分析 ................................................................................................ 6

2.1 设计功能 .......................................................................................... 6 2.2 设计要求 .......................................................................................... 6 三、概要设计 ................................................................................................ 6

3.1设计概念和处理流程 .......................................................................... 6 3.2 结构设计 .......................................................................................... 8

3.2.1 数据结构及定义 ....................................................................... 8 3.2.2 接口函数 ................................................................................. 9

四、细设设计 .............................................................................................. 10

4.1 实现原理 ........................................................................................ 10

4.1.1 connect()函数端口扫描的原理................................................. 10 4.1.2 ICMP网段扫描的原理 ............................................................ 12 4.2 函数实现 ........................................................................................ 15

4.2.1 初始化winsock动态链接库 .................................................... 15 4.2.3地址解析 ................................................................................ 16 4.2.4 计算检验和 ............................................................................ 17 4.2.5 网段扫描 ............................................................................... 17 4.2.6 端口扫描 ............................................................................... 18

五、 总结与体会 ......................................................................................... 20

5.1 程序运行与调试 .............................................................................. 19 5.2 体会 ............................................................................................... 22 六、 参考文献 ............................................................................................ 22

6.1 参考书目 ........................................................................................ 22 6.2 引用网址 ........................................................................................ 23

2

ronnie

一、概述

1.1端口扫描

端口扫描是指利用TCP协议的面向连接的特性,使用本地计算机试图与目的主机的某个端口建立连接,以此来试探目的主机的一些端口的具体状态,如是否打开,若是打开的又运行什么样的程序(利用熟知端口很容易知道)。端口扫描有很多技术实现。其中最常用的有:connect()扫描,TCP SYN扫描,TCP FIN扫描,TCP NULL扫描,XMAS- TREE扫描(圣诞树扫描)等等。在本程序中使用的是connect()扫描。

1.2端口扫描常用技术简介 1.2.1 connect()扫描

此扫描的原理是,本地计算机利用TCP协议的三次握手原理(RFC 793)试图与网络上一台主机或服务器建立TCP连接。如果目的主机或服务器回送SYN/ACK则说明该端口开放,否则该端口关闭。

具体的过程: 1.Client端发送SYN

2.Server端发送SYN/ACK(该端口开放),或Server端发送RST/ACK(该端口关闭),若无应答可能目的主机或服务器不可达。

3.Client端发送ACK,连接建立。 4.Client端主动断开连接,连接关闭。 过程图如下:

3

ronnie

1.2.2 SYN扫描

SYN扫描前两步与connect()扫描相同,只是最后一步,Client端发送的不是ACK确认报文而是RST报文,这样三次握手过程就没有完成,Client与Server也就没有建立TCP连接,因此前述过程不会被Sever端记录到系统日志中,扫描更加隐蔽。 过程图如下:

1.2.3 XMAS-TREE扫描

通过发送带有以下标志位TCP数据包URG,PSH,FIN来试探主机。

4

ronnie

在目标端口开放的情况下不放回任何信息。

端口开放:发送URG/PSH/FIN,没有响应。

端口关闭:1.发送URG/PSH/FIN,没有响应。2响应RST。 1.3网段扫描

网段扫描是指利用ICMP(因特网控制报文协议)对某一网段的所有IP地址发送ICMP报文,测试IP地址所对应的主机具体情况(如是否开机等)。所以对目的主机回答的ICMP报文进行分析是网段

5


计算机网络课程设计 基于ICMPTCP的网段端口扫描 C语言编写.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:XX医院医疗制度汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: