电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

(网络空间安全技术实践)10.1端口扫描器编程实验

30页
  • 卖家[上传人]:繁星
  • 文档编号:88156476
  • 上传时间:2019-04-20
  • 文档格式:PPTX
  • 文档大小:448.68KB
  • / 30 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、网络空间安全技术实践教程,吕秋云,王小军,胡耿然,汪云路,王秋华 西安电子科技大学出版社,第三篇 网络安全理论与技术实验篇,第十章 网络安全编程实验 10.1端口扫描器编程实验,网络空间安全技术实践教程,2,10.1端口扫描器编程实验,实验目的: 一个开放的网络端口就是一条与计算机进行通信的虚拟信道,网络攻击者通过对网络端口的扫描可以得到目标主机开放的网络服务程序,而网络安全防护者也可以通过扫描系统的端口,发现安全隐患;因此网络扫描器有着非常重要的地位。本次实验通过在理解扫描器原理的基础上,利用VS开发环境来编程实现一款简单的扫描器。,网络空间安全技术实践教程,3,10.1端口扫描器编程实验,实验要点说明:(实验难点说明) VS的下载及安装 理解扫描器的实现原理 用不同的方式编程实现端口扫描器功能,网络空间安全技术实践教程,4,10.1端口扫描器编程实验,实验准备: (实验环境,实验先有知识技术说明) 操作系统Windows 7及以上 VS2010及以上开发环境,网络空间安全技术实践教程,5,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 (1)扫描技术的分类 黑客攻击往往

      2、分为三个阶段:信息搜集,攻击实施,隐身巩固。在信息搜集阶段中,扫描器发挥着巨大作用。扫描器根据扫描技术来分可以分为:主机扫描技术、端口扫描技术、栈指纹OS识别技术、漏洞扫描技术。 主机扫描技术 主机扫描的目的是确定在目标网络上的主机是否可达。这是信息收集的初级阶段,其效果直接影响到后续的扫描。,网络空间安全技术实践教程,6,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 端口扫描技术 确定目标主机可达后,使用端口扫描技术,发现目标主机的开放端口,包括网络协议和各种应用监听的端口。 栈指纹OS识别技术 根据各个OS在TCP/IP协议栈实现上的不同特点,采用黑盒测试方法,通过研究其对各种探测的响应形成识别指纹,进而识别目标主机运行的操作系统。,网络空间安全技术实践教程,7,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 漏洞扫描技术 在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在。通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。若模拟攻击

      3、成功,则表明目标主机系统存在安全漏洞。 而在上述4类扫描技术中,端口扫描是最常用的扫描手段。,网络空间安全技术实践教程,8,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 (2)扫描器实现原理 通常人们将端口分为如下两类:公认端口和已注册端口。从0到1023,这些端口由IANA分配,通常只有系统进程可以使用它们,一些入侵者利用了这些端口,则潜在地控制了整个系统。从1024到65535,这些端口则不受IANA控制。 端口扫描是向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应的技术。通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。 扫描类型:可分为TCP connect()扫描、半连接扫描和秘密扫描等。其中TCP connect()扫描是端口扫描最基础的一种扫描方式。秘密扫描包含有TCP FIN扫描、TCPACK扫描等多种扫描方式。,网络空间安全技术实践教程,9,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 (2)扫描器实现原理 TCP connect()扫描 TCP连接扫描是向目标端口发送SYN报文,等待目标端口发送

      4、SYN/ACK报文,收到后向目标端口发送ACK报文,即著名的“三次握手”过程。在许多系统中只需调用connect()即可完成。优点:不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处是速度,可以通过同时打开多个套接字,从而加速扫描。缺点:会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。,网络空间安全技术实践教程,10,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 (2)扫描器实现原理 TCP SYN扫描 TCP SYN扫描(半开放扫描)就是利用3次握手的弱点来实现的。通过向远程主机的端口发送一个请求连接的SYN数据报文,如果没有收到目标主机的SYN/ACK确认报文,而是RST数据报文,就说明远程主机的这个端口没有打开。而如果收到远程主机的SYN/ACK应答,则说明远程主机端口开放。在收到远程主机的SYN/ACK后,不再做ACK应答,这样3次握手并没有完成,正常的TCP连接无法建立,因此,这个扫描信息不会被记入系统日志,不会在目标主机上留下记录。,网络空间安全

      5、技术实践教程,11,10.1端口扫描器编程实验,实验步骤: 1)扫描器简要介绍 (2)扫描器实现原理 秘密扫描 端口扫描容易被在端口处监听的服务记录到日志中:这些服务监听到一个没有任何数据的连接,就记录一个错误。半开放扫描现在已经不是一种秘密,很多防火墙和路由器都有了相应的措施。这些防火墙和路由器会对一些指定的端口进行监视,将对这些端口的连接请求全部进行记录。秘密扫描能躲避IDS、防火墙、包过滤器和日志的审计,从而获取目标端口的开放或关闭的信息。由于没有TCP三次握手的任何部分所以无法被记录下来,比半连接扫描更为隐蔽。缺点:扫描结果的不可靠性会增加,而且扫描主机也需要构建自己的IP包。现有的秘密扫描有TCP FIN扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK扫描等。,网络空间安全技术实践教程,12,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 在Windows平台下实际编程过程中只要调用套接字的connect()函数,根据该函数执行的返回结果来判断是否连接成功,从而判定该端口是否开放。实现该函数的调用可以采用原始

      6、套接字,CSocket,CASynSocket等,同时也可选择阻塞模式或非阻塞模式来实现. (1)利用原始套接字编程实现扫描的控制台程序代码 不需要输入,实现对给定IP:127.0.0.1(可根据目标在源代码中修改自己的IP地址),从1到200的端口进行Connect()连接,连接成功即表示该端口开放,否则为关闭。可以将这些代码放到一个cpp文件调试通过。,网络空间安全技术实践教程,13,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 #include #include “stdio.h” #pragma comment(lib,”ws2_32”) #include #include void main() WSADATA ws; SOCKET s; struct sockaddr_in addr;,网络空间安全技术实践教程,14,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 int RESULT; long lRESULT; for (int i=1;i200;i+) lRESULT=W

      7、SAStartup(0x0101,网络空间安全技术实践教程,15,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 RESULT=connect(s,(struct sockaddr*) 其具体的思路是首先申明一个Socket,给其相应的目标IP,目标端口赋值,然后调用Connect();其中端口号是一个for循环的控制变量。,网络空间安全技术实践教程,16,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 (2)利用CSocket实现扫描的关键代码举例 CSocket的扫描设计思路与前面的例子一样的,关键是使用的形式不一样,具体的Socket创建和连接调用的关键代码如下:,网络空间安全技术实践教程,17,10.1端口扫描器编程实验,实验步骤: 2)利用TCP connect()实施端口扫描关键源码 CSocket testSocekt; CString temp; for (i=1;i200;i+) testSocekt.Create(); if (testSocekt.Connect(“12

      8、7.0.0.1“,i)=1) temp.Format(“%d%s“,i,“开放“); AfxMessageBox(temp); testSocekt.Close(); ,网络空间安全技术实践教程,18,10.1端口扫描器编程实验,实验步骤: 3)实现基于TCP connect()的端口扫描软件 以CSocket编程为例,使用VS2010进行MFC编程。 (1)新建工程 建立一个基于对话框的工程C*Scanner,注意在创建工程的时候需要勾选上包含Windows Socket的头文件,否则后续编程在使用CSocket的时候会出现未定义的情况。建立成功后,设计好界面,如图10-1-2所示:其中“开放端口报告”下方的框选择VS工具栏中List Box绘制。“输入IP地址”后面选择工具栏中IP Address Control控件进行绘制。设计好后,分别给各个控件填上恰当的名字或者ID。,网络空间安全技术实践教程,19,10.1端口扫描器编程实验,实验步骤: 3)实现基于TCP connect()的端口扫描软件 (2)为控件添加变量 完成上述内容后,右键选择类向导,添加成员变量。如图10-1-3

      9、所示。,网络空间安全技术实践教程,20,(3)实现扫描功能 添加成员变量后,回到设计界面(图10-1-2),双击开始扫描按钮,进入代码编辑页。,10.1端口扫描器编程实验,实验步骤: 3)实现基于TCP connect()的端口扫描软件 void CJiaocaiScannerDlg:OnBnClickedButton1() UpdateData(TRUE); WSADATA ws; CSocket testSocket; struct sockaddr_in addr; CString temp; CString ipstr; CString fini; BYTE nFild4;,网络空间安全技术实践教程,21,10.1端口扫描器编程实验,实验步骤: 3)实现基于TCP connect()的端口扫描软件 m_remoaddress.GetAddress(nFild0,nFild1,nFild2,nFild3); /将ip控件内容强制转换 ipstr.Format(“%d. %d. %d. %d“,nFild0,nFild1,nFild2,nFild3); for(int i=m_startport;im_endport;i+) addr.sin_family=PF_INET;/*实现协议族,采用TCP/IP方式*/ addr.sin_addr.S_un.S_addr=inet_addr(ipstr); /*目的IP地址*/ addr.sin_port=htons(i); /*扫描端口号*/ testSocket.Create();,网络空间安全技术实践教程,22,10.1端口扫描器编程实验,实验步骤: 3)实现基于TCP connect()的端口扫描软件 if(testSocket.Connect(“127.0.0.1“,i)=1) /*端口开放成功*/ temp.Format(“%d %s“,i,“open“); m_strmessage.AddString(temp);/*将扫描结果显示到列表框里面*/ else temp.Format(“%d %s“,i,“close“); m_strmessage.AddString(temp); testSocket

      《(网络空间安全技术实践)10.1端口扫描器编程实验》由会员繁星分享,可在线阅读,更多相关《(网络空间安全技术实践)10.1端口扫描器编程实验》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.