毕业设计So Easy:基于C++实现网络扫描器

文章介绍了一个基于C++实现的网络扫描器项目,设计目标是创建一个具有图形界面的工具,简化用户操作。系统包括主机扫描、端口扫描、NetBIOS、SNMP等多模块扫描,以及弱密码检测和DOS攻击模拟等功能。此外,还提供了报告生成模块,以不同格式输出扫描结果。该项目适合计算机专业学生的毕业设计或课程设计。
摘要由CSDN通过智能技术生成

目录

1、系统目标

2、系统原理

3、系统设计

3.1、主机扫描模块

3.2、端口扫描模块

3.3、NetBIOS 扫描模块

3.4、SNMP扫描模块  

3.5、弱密码扫描模块

3.6、嗅探器扫描模块

3.7、DOS攻击模块

3.8、注入检测模块

3.9、报告生成模块

4、系统实现

4.1、工作流图

4.2、界面设计

4.2.1、主界面

4.2.2、子界面


很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......

针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

项目专栏:7天搞定毕业设计和论文

对计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~     


目前主流的网络扫描器,大多数采用的是命令行界面,用户使用的门槛相对较高,可视化的图形界面旨在提供给用户一个友好的使用环境,这种用户— 界面的体系结构深受广大喜爱。它不需要用户去熟记过多的参数,只需要填入相应的关键信息,通过鼠标点击选择即可完成,大大降低了操作使用的难度。

1、系统目标

本设计的最终目标是打造一个具有多种扫描功能的网络扫描器。该扫描器具有以下功能:
  • 可视化的图形界面,旨在为用户提供友好的使用环境。
  • 实现一些基本的扫描任务,如读取到目的主机的软硬件信息,开放的端口等等。
  • 帮助用户去自动生成符合用户心理的扫描结果报告,并将扫描结果以文件的形式展现出了。
其对应的整体层次设计图如下图所示:

项目工程资源下载请参见:基于C++实现网络扫描器【优质毕业设计、课程设计项目】

2、系统原理

管理员站在攻击者的角度去看网络扫描器的工作原理,一切都变得清晰易懂。作为一个攻击者,管理员会考虑首先去搜索网络上存活的主机,选择其中某一些主机作为管理员攻击的目标,管理员再通过向目标主机发送数据包,通过分析反馈的数据包,寻找可能存在的安全隐患,通过利用这些安全隐患去模拟尝试攻击,找到修复该安全隐患的解决方案,从而达到修复漏洞的目的。网络扫描器的工作原理如下图所示:

3、系统设计

3.1、主机扫描模块

主机扫描就是扫描网络中可能存在的主机,主要是通过向特定的主机或者目的 IP 发送构造的 ICMP 协议包来确定目标网络上的主机是否可达。 其流程图如下图 所示:

3.2、端口扫描模块

对某一 IP 段目标主机 IP 的一段端口逐个连接,通过发送数据包对目标主机进行通信,根据反馈回来的数据包信息判断该主机的开放状态,根据其开放端口所对应的主机服务去有针对性的发起相关的服务缺陷攻击。其流程图如下图所示:

3.3、NetBIOS 扫描模块

对网上基本输入输出系统 NetBIOS 协议而言,它作为应用层上的一种特殊的协议,它常常被用来管理局域网上的主机,通过该协议的相关约定,管理员可以很方便的读取到局域网上相关目标主机可拥有的相关属性的详细信息。其流程图如下图所示:

3.4、SNMP扫描模块  

简单网络管理协议 SNMP 是对智能终端设备做简单管理,管理员可以利用该协议的相关约定去获取支持该协议的各种设备的详细的信息。其流程图如下图所示:

3.5、弱密码扫描模块

弱密码扫描是逐个对目标主机的用户名和密码进行扫描,依次穷举遍历所有的用户名和密码的组合,用遍历生成的密码去逐次尝试验证。通过密码验证系统给出的正确或错误的反馈来判断是否成功获取到了用户的信息。其流程图如下图所示:

3.6、嗅探器扫描模块

嗅探器扫描是对所接收到的所有数据包进行实时监听,然后依次与监测关键字进行匹配,筛选出那些关键信息。其流程图如下图所示:

3.7、DOS攻击模块

DOS 攻击是对目标 IP 的特定端口采用指定的线程数去发送大量的数据和连接请求,不断的消耗目标主机的资源,从而造成目标主机连接资源耗尽,导致其它主机无法使用这些连接资源。其流程图如下图 所示:

3.8、注入检测模块

由于程序员及软件设计师在编写程序或设计相关软件模型的过程中出现了设计缺陷,导致非法用户可以通过构造一系列特殊的字符串去拼接到软件的缺陷部分,从而导致非授权用户可以绕过系统验证而读取到数据库中的隐私数据,从而造成信息的泄露,造成巨大的损失。其流程图如下图 所示:

3.9、报告生成模块

报告生成是网络扫描器所提供的任意多种扫描功能对目标 IP 的扫描结果进行汇总,最终以报告的形式打印出来,提供了 html txt xml 三种打印格式。其流程图如下图 所示:

4、系统实现

4.1、工作流图

网络扫描器主要工作流程图如下图所示:

4.2、界面设计

4.2.1、主界面

网络扫描器主界面如下图 所示:

4.2.2、子界面

网络扫描器共实现了九个功能模块,下面管理员分别看看这九个功能模块的子界面。
下图 的是主机扫描功能模块的界面:

下图 展示的是端口扫描功能模块的界面:

下图 展示的是 NetBIOS 扫描功能模块的界面:

下图 展示的是 SNMP 扫描功能模块的界面:

下图 展示的是弱密码扫描功能模块的界面:

下图 展示的是嗅探器扫描功能模块的界面:

下图 展示的是 DOS 攻击功能模块的界面:

下图 展示的是注入检测功能模块的界面:

下图 展示的是报告生成功能模块的界面:

 项目工程资源下载请参见:基于C++实现网络扫描器【优质毕业设计、课程设计项目】

网络扫描器的设计与实现 运行环境 操作系统:Windows XP及以上。 开发工具:Microsoft Visual C++6.0,Notepad++。 开发语言:C/C++, MFC。 主要功能模块测试 主机扫描功能模块测试 在主机扫描功能模块中,管理员输入起始 IP 为 192.168.0.100,结束 IP 为 192.168.0.103,在这个 IP 段的范围内进行测试,结果显示有两台主机处在存活状态,分别是 192.168.0.100 和 192.168.0.102,其扫描结果如图所示: HostScan 端口扫描功能模块测试 在端口扫描功能模块中,管理员输入起始 IP 为 192.168.0.100,结束 IP 为 192.168.0.102,在这个 IP 段的范围内进行测试,端口范围设置为 1~1024,结果显示,主机 192.168.0.100 开放了 80 端口,192.168.0.102 开放了 135、139 和 445 端口,其扫描结果如图所示: PortScan NetBIOS 扫描功能模块测试 在网上基本输入输出系统 NetBIOS 扫描模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,显示出的结果与实际相符,其扫描结果如图所示: NetBIOSScan SNMP 扫描功能模块测试 在简单网络管理协议 SNMP 扫描功能模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,显示出的结果与实际相符,其扫描结果如图所示: SNMPScan 弱密码扫描功能模块测试 在弱密码扫描功能模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,用户名设置为 test,密码采用字典文件的方式去枚举,通过扫描出来的结果进行验证,可以确定该结果与实际相符,其扫描结果如图所示: WeakKeyScan 嗅探器扫描功能模块测试 在嗅探器扫描功能模块中,管理员添加 Pass、Password、pwd 三个关键字对本机进行监听,然后通过由服务器搭建的一个登陆提交表单的页面去提交用户名和密码,结果成功拦截到了响应的数据包,根据数据包内容,管理员可以判断该结果与实际相符合,其扫描结果如图所示: SnifferScan DOS 攻击功能模块测试 在DOS攻击功能模块中,管理员启动 2048 个线程对目标 IP 为 39.99.157.58 的 80 端口进行连接,然后再尝试访问网站,结果发现网站宕机,管理员可以判断该结果与预期相符合,其扫描结果如图所示: DosScan 注入检测功能模块测试 在注入检测功能模块中,为了测试结果,我尝试在服务器上搭建了一个简易的测试 Demo,网站由两部分构成,一个是登录页面 login.html,一个是验证是否登录成功的页面 respone.php,登录页面如图所示: login_input 如果以 welcome+ 用户名的形式返回则说明登录成功,登录成功的页面如图所示: login_succeed 如果登陆失败会返回“The username or password is wrong!”,登录失败的页面如图所示: login_failed login.html 源代码如图所示: login respone.php 源代码如图所示: respone 管理员根据以上测试分析可以得出结论,如果管理员把 welcome 一词当做注入漏洞的标志,若登录成功出现 welcome 一词,则说明网站存在注入漏洞,其结果如图所示: SQLScan
【本科毕业设计项目 源码+说明书+PPT】 随着当今时代新型网络技术的迅速兴起,以及第三产业的蓬勃发展,互联网早已成为社会生活当中不可或缺的一部分,而网络安全问题也越来越不容忽视,越来越多的黑客通过利用系统漏洞实施安全攻击、偷盗、诈骗等违法行为,这就需要我们利用先进的技术手段去尽早、准确地检测和解决这些安全漏洞和安全隐患。但是上述这些扫描器一般都属于C/S架构,变更不够灵活,维护与管理的难度较大。当然当前也有很多款网页版扫描器,但大多系统功能较为单一,且缺少对用户的管理和扫描结果的保存和处理,仅支持一次性在线扫描。 针对这一背景,开发了本系统。本系统的特色主要有以下几个方面。 (1)适用于Windows操作系统环境下,采用了B/S架构,用户只需按照要求注册登录即可使用,方便快捷,分布性强,便于维护和管理,可扩展性高。 (2)界面较简单、直观、易操作,对系统用户的专业水平要求不高,便于专业知识储备较少的普通用户接受。并且本系统中增设了仿命令行功能,既可以帮助用户实现对本系统功能的快速了解以及快速使用,也可以调动喜爱命令行的使用者的兴趣。 (3)系统区分了管理员用户和普通用户,管理员用户拥有较多的特权,实现了较简单的基于角色的访问控制,增强了系统安全性和可管理性。 (4)支持用户上传及管理漏洞扫描所用的第三方插件,可以提高漏洞扫描的效率和性能,提高了系统功能的可扩展性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不脱发的程序猿

亲,赏包辣条吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值