前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >本科毕业设计-网络扫描器的设计与实现

本科毕业设计-网络扫描器的设计与实现

原创
作者头像
Angel_Kitty
修改2020-06-12 10:09:16
2.4K2
修改2020-06-12 10:09:16
举报

前言

从选题到答辩结束已经过了大半年的时间了,我的本科生涯到此画上了一个句号,四年的本科生活即将告一段落,在这紧张而又丰富的学习生涯中,是老师和同学们的热心帮助让我受益良多。毕业设计的完成也正是我这四年来学习阶段的总结。本项目的具体实现细节已上传至GitHub,paper正文也一并上传到GitHub上,有兴趣的小伙伴可以看看:https://github.com/AngelKitty/Network_Scanner

运行环境

  • 操作系统: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,其扫描结果如图所示:

主机扫描模块功能测试
主机扫描模块功能测试

端口扫描功能模块测试

在端口扫描功能模块中,管理员输入起始 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 端口,其扫描结果如图所示:

端口扫描模块功能测试
端口扫描模块功能测试

NetBIOS 扫描功能模块测试

在网上基本输入输出系统 NetBIOS 扫描模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,显示出的结果与实际相符,其扫描结果如图所示:

NetBIOS 扫描功能模块测试
NetBIOS 扫描功能模块测试

SNMP 扫描功能模块测试

在简单网络管理协议 SNMP 扫描功能模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,显示出的结果与实际相符,其扫描结果如图所示:

SNMP 扫描功能模块测试
SNMP 扫描功能模块测试

弱密码扫描功能模块测试

在弱密码扫描功能模块中,管理员选择 192.168.0.102 主机作为当前的目标主机,该主机为当前的主机 IP,用户名设置为 test,密码采用字典文件的方式去枚举,通过扫描出来的结果进行验证,可以确定该结果与实际相符,其扫描结果如图所示:

弱密码扫描功能模块测试
弱密码扫描功能模块测试

嗅探器扫描功能模块测试

在嗅探器扫描功能模块中,管理员添加 Pass、Password、pwd 三个关键字对本机进行监听,然后通过由服务器搭建的一个登陆提交表单的页面去提交用户名和密码,结果成功拦截到了响应的数据包,根据数据包内容,管理员可以判断该结果与实际相符合,其扫描结果如图所示:

嗅探器扫描功能模块测试
嗅探器扫描功能模块测试

DOS 攻击功能模块测试

在DOS攻击功能模块中,管理员启动 2048 个线程对目标 IP 为 39.99.157.58 的 80 端口进行连接,然后再尝试访问网站,结果发现网站宕机,管理员可以判断该结果与预期相符合,其扫描结果如图所示:

DOS 攻击功能模块测试
DOS 攻击功能模块测试

注入检测功能模块测试

在注入检测功能模块中,为了测试结果,我尝试在服务器上搭建了一个简易的测试 Demo,网站由两部分构成,一个是登录页面 login.html,一个是验证是否登录成功的页面 respone.php,登录页面如图所示:

注入检测测试登录页面
注入检测测试登录页面

如果以 welcome+ 用户名的形式返回则说明登录成功,登录成功的页面如图所示:

注入检测测试登录成功页面
注入检测测试登录成功页面

如果登陆失败会返回“The username or password is wrong!”,登录失败的页面如图所示:

注入检测测试登录失败页面
注入检测测试登录失败页面

login.html 源代码如图所示:

注入检测测试登录页面 login.html 源代码
注入检测测试登录页面 login.html 源代码

respone.php 源代码如图所示:

注入检测测试登录页面 respone.php 源代码
注入检测测试登录页面 respone.php 源代码

管理员根据以上测试分析可以得出结论,如果管理员把 welcome 一词当做注入漏洞的标志,若登录成功出现 welcome 一词,则说明网站存在注入漏洞,其结果如图所示:

注入检测功能模块测试
注入检测功能模块测试

报告生成功能模块测试

在报告生成功能模块中,管理员输入目标 IP 地址,然后尝试打印部分功能扫描出来的结果,以 HTML 的形式生成,可以看出该结果与预期相符合,其结果如图所示:

报告生成功能模块测试
报告生成功能模块测试

未来展望

本文所设计的网络扫描器由于时间和实验条件的限制,该网络扫描器还存在需要进一步改进的地方,主要表现在:

  • 该网络扫描器只能在 Windows 平台下运行,不支持 macOS、Unix、Linux 等其它主流操作系统。
  • 该网络扫描器的兼容性太差,在 32 位的环境下和 64 位的环境下运行结果会不太一样,需要进一步的去完善。
  • 网络扫描器的多线程实现过于简单,无法很好地处理线程间的关系,常常会因为卡顿而导致程序崩溃,需要进一步的去调整。
  • 网络扫描器接收到的数据只有英文字符不会乱码,中文字符会乱码,编码转换问题没有做好,也有待去改进和完善。
  • 网络扫描器目前报告只能打印 HTML 的形式,没有办法支持多种报告格式,希望能进一步的扩充其功能内容。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 运行环境
  • 主要功能模块测试
    • 主机扫描功能模块测试
      • 端口扫描功能模块测试
        • NetBIOS 扫描功能模块测试
          • SNMP 扫描功能模块测试
            • 弱密码扫描功能模块测试
              • 嗅探器扫描功能模块测试
                • DOS 攻击功能模块测试
                  • 注入检测功能模块测试
                    • 报告生成功能模块测试
                    • 未来展望
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档