首页 > 其他分享 >网络攻防技术——端口扫描

网络攻防技术——端口扫描

时间:2023-12-28 18:15:35浏览次数:34  
标签:攻防 结果 端口扫描 扫描 端口 网络 ACK 开放

  1. 作业题目

本次实验主要对主机扫描和端口扫描原理的理解。使用python(scapy库)编写端口扫描程序,对目标IP(报含IP地址段)进行扫描,完成以下功能:

1)使用icmp协议探测主机是否开启;

2)对本机(关闭防火墙)的开放端口和非开放端口完成半连接、ACK、FIN、Null、Xmas、windows扫描,并与nmap扫描结果进行比较。

3)对远程(有防火墙)主机的开放端口和非开放端口完成半连接、ACK、FIN、Null、Xmas、windows扫描,并与2)进行比较,分析结果。

4)回答问题:样例程序中"conf.L3socket=L3RawSocket"的作用是什么?

  1. 实验步骤及结果

    1. 探测主机是否开启

      将IP地址设置为本地回环地址:127.0.0.1,端口号设置为8901,IPY是IPy库中将字符串转为IP地址格式的处理函数,使用for循环处理可以实现"群ping"

      第一行代码定义了一个数据报,目标IP地址是前面设置的地址,所用的协议是ICMP协议,数据报的内容是自定义的"leo-port-lab",最后将三层数据报通过"/"符号连接。

      第二行代码使用sr1()函数将数据报发送出去,超时限制为1秒,即超过一秒认为数据报没有成果=功发送出去;verbose参数用于控制详细输出的级别,为了不输出无关字符串,设置为False。

      判断是否有返回的数据报来确定主机是否打开

    2. 对本机端口进行扫描

      Nmap对本机端口的扫描结果

      发现8900端口开放

      1. 半连接扫描:服务器和客户端建立TCP连接会发生三次握手,客户端先发送一个SYN 数据报给服务器,如果端口开放,服务器会会返回一个标志位是 SYN 和 ACK 的数据报给客户端,如果端口没有开放,则会返回一个标志位是 RST 和 ACK 的数据报,为了不留下连接日志,客户端此时不需要返回ACK来建立连接。

        使用上面的函数定义要发送的数据报并发送,将所用协议设置为TCP,标志位设置成S,即SYN位为1,函数返回值是返回的数据报,复制==赋值给ans字典变量,将ans中的键值位TCP的值取出,对其flag的值进行判断,也可以使用十六进制数来表示,如RA可以表示为0x14,具体可见TCP数据报规范

        对结果进行分析,如果标志位是SA,即SYN+ACK,说明端口开放,如果标志位是RA,即RST+ACK,说明端口关闭

        开放端口扫描结果

        非开放端口扫描结果

      2. ACK扫描:ACK扫描不能判断端口是否开放!客户端发送一个带有 ACK 标志和数据报,如果服务器返回一个带有 RST 标志的数据包,说明端口没有被过滤,不存在防火墙;如果目标服务器没有任何回应或者返回ICMP错误类型3且代码为1,2,3,9,10或13的数据报,说明端口被过滤且存在防火墙

        开放端口扫描结果

        非开放端口扫描结果

      3. FIN扫描:客户端发送FIN数据报,如果服务器没有返回数据报回应,说明端口开放,如果服务器返回一个 RST 数据报,说明目标端关闭的。

        将所用协议设置为TCP,标志位设置成F,即FIN位为1

        对结果进行分析,如果标志位是RA,即RST+ACK,说明端口关闭,如果ans==None,即没有返回数据报,说明端口开放

        开放端口扫描结果

        非开放端口扫描结果

      4. Null扫描:客户端发送没有标志位的数据报,如果服务器没有返回数据报回应,说明端口开放,如果服务器返回一个 RST 数据报,说明目标端关闭的。

        将所用协议设置为TCP,标志位为空,即每个比特位都是0

        对结果进行分析,如果标志位是RA,即RST+ACK,说明端口关闭,如果ans==None,即没有返回数据报,说明端口开放

        开放端口扫描结果

        非开放端口扫描结果

      5. Xmas扫描:客户端发送标志位为 PSH,FIN,URG的数据报,在正常情况下,三个标志位不能被同时设置,如果服务器没有返回数据报回应,说明端口开放,如果服务器返回一个 RST 数据报,说明目标端关闭的。

        将所用协议设置为TCP,标志位为FPU,即PSH、FIN、URG对应比特位的值是1

        对结果进行分析,如果标志位是RA,即RST+ACK,说明端口关闭,如果ans==None,即没有返回数据报,说明端口开放

        开放端口扫描结果

        非开放端口扫描结果

      6. Windows扫描:客户端发送一个标志位是ACK的数据报,如果返回的RST数据报没有被过滤,检查RST数据报中窗口的值,如果窗口大小的值是个非零值,说明服务器在准备建立连接传输数据,端口开放,窗口大小等于0,说明端口关闭。

        将所用协议设置为TCP,标志位为A,即发送ACK报文

        对结果进行分析,如果返回的数据报中的窗口值等于0,说明端口关闭,如果返回的数据报中的窗口值大于0,说明端口开放

        开放端口扫描结果

        非开放端口扫描结果

    3. 对远程主机进行扫描
      1. 半连接扫描:

        开放端口扫描结果

        非开放端口扫描结果

      2. ACK扫描

        开放端口扫描结果

        非开放端口扫描结果

      3. FIN扫描

        开放端口扫描结果

        非开放端口扫描结果

      4. Null扫描

        开放端口扫描结果

        非开放端口扫描结果

      5. Xmas扫描

        开放端口扫描结果

        非开放端口扫描结果

      6. Windows扫描

        开放端口扫描结果

        非开放端口扫描结果

    4. "conf.L3socket=L3RawSocket"的作用

      设置后可以使用原始套接字进行网络通信,对底层数据包进行编辑,这样就能通过Scapy库发送数据包

    5. 结果分析

      一个端口扫描的结果有三种:开放、关闭、被过滤,被过滤的结果不能够判断端口到底有没有开放,但可以判断出目标主机有防火墙拦截,所以被过滤这种结果并不是没有意义的。端口扫描的意义是区分这三种情况。半开放连接扫描可以根据返回数据报的类型判断是开放还是关闭,通过是否返回数据报判断扫描信息是否被过滤;但FIN,Null,Xmas扫描则不同,其本质是一个开放的端口收到没有设置SYN,ACK或RST标志位的异常数据报时,不会做出反应,而如果这个端口是关闭的,他会返回一个标志位是RST的数据报,这是由TCP协议本身规定而决定的,但这三种方法有局限性,体现在:1)不同操作系统在对待这类事件做出的反应不同 2)如果发送出去的数据报丢失,如被防火墙拦截,会被误判成端口开放的情况。ACK扫描不能决定一个端口是否开放 ,只能判断目标是否有防火墙,所以在实际中可以先使用ACK扫描检查防火墙的状态。

      在与有防火墙存在相比较时,由于防火墙类型为状态防火墙,区别于会将某些端口和IP全部拦截的无状态防火墙不同,状态防火墙会根据数据报的类型和TCP握手的阶段进行过滤,即使是同一端口,数据报类型的不同也会导致拦截情况的不同。比如防火墙不会过滤ACK包,但会过滤SYN包,因为SYN会建立连接,而防火墙不允许未经授权的陌生IP和服务器建立连接,防火墙的存在导致了结果的不准确性,对待ACK,无论是否关闭都返回RST,对待其他数据报请求,防火墙都会拦截,发出扫描的主机始终没有收到回复数据报,对端口的扫描结果不准确。

标签:攻防,结果,端口扫描,扫描,端口,网络,ACK,开放
From: https://www.cnblogs.com/leo1017/p/17933255.html

相关文章

  • 网络攻防技术——SQL注入
    实验8:Sql注入实验实验内容:SQL注入是一种代码注入技术,它利用web应用程序和数据库服务器之间接口中的漏洞。当用户的输入在发送到后端数据库服务器之前未在web应用程序中正确检查时,就会出现此漏洞。许多web应用程序从用户处获取输入,然后使用这些输入构造SQL查询,这样web应用程序就......
  • Kubernetes 网络之 Ingress 介绍
    一、ingress在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。可以通过Ingress资源来配置不同的转发规则,从而实现根据不同的规则设置访问集群内不同......
  • 智安网络|实现安全与网络功能一体化:SASE的全新安全策略
    随着企业信息化和数字化程度的不断提升,网络安全面临着前所未有的挑战。传统的网络安全模式已经无法满足日益复杂的安全需求。在这一背景下,安全访问服务边缘(SASE)崭露头角,并逐渐成为新一代网络安全架构的关键概念。企业网络的规模扩大和云计算、物联网等技术的广泛应用,传统的网络安全......
  • 网络攻防技术——XSS攻击
    实验7:XSS攻击实验(Elgg)实验内容:跨站点脚本(XSS)是一种常见于web应用程序中的计算机安全漏洞。此漏洞使攻击者有可能将恶意代码(如JavaScripts)注入受害者的web浏览器。为了演示攻击者可以做什么,我们在预先构建的UbuntuVM映像中设置了一个名为Elgg的web应用程序。我们已经注释掉了El......
  • 网络拓扑图怎么画最好?
    画拓扑图的方式有很多,在线软件,Visio,PPT,都是方法。问题是你要怎么从0到1,怎么样用拓扑图完美地把你的网络逻辑结构、思路呈现出来。没经验的朋友真的不知道从哪里上手。今天就给你来一篇绘制拓扑图详解,从一页白纸开始,教你怎么从0到1亲手绘制一张拓扑图。1、什么是网络拓扑(Topology)?01......
  • 网络地址转换(NAT)之报文跟踪
    网络地址转换(NAT)之报文跟踪来源  https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/参考 https://linux.cn/article-13364-1.html 这是有关 网络地址转换(networkaddresstranslation)(NAT)的系列文章中的第一篇。这一部分将展示如何使用i......
  • 网络攻防技术——DNS攻击
    实验11:TCP攻击实验实验内容:本实验的目标是让学生获得对DNS(域名系统)的各种攻击的第一手经验。DNS是互联网的电话簿;它将主机名转换为IP地址,反之亦然。这种转换是通过DNS解析实现的,这种解析发生在幕后。DNS欺骗攻击以各种方式操纵此解析过程,目的是将用户误导到其他目的地,这些目的地......
  • James F. Kurose, Keith W. Ross著,陈鸣译,《计算机网络-自顶向下方法》(第6版),机械工业出
    JamesF.Kurose,KeithW.Ross著,陈鸣译,《计算机网络-自顶向下方法》(第6版),机械工业出版社,2014 n计算机网络课程学习什么?nn计算机网络是计算机专业和信息安全专业的专业基础课程,课程主要介绍计算机网络的基本原理和技术,通过对网络协议模型多层次功能结构的展开与探讨,详细介绍......
  • 【网络安全入门】什么是DOS?DOS攻击类型有哪些?
    大家都知道,DOS攻击是网络安全中比较常见的攻击形式,它的类型和种类有很多,具有很大的危害,而且在网络生活中DOS攻击是不可避免的,那么到底什么是DOS?DOS攻击类型有哪些?虽然DOS攻击不可避免,但掌握攻击类型可以帮助我们有效预防DOS攻击,所以快跟着小编来了解一下吧。什么是DOS?......
  • 12.网络流量分析
    网络分析:显示网络流量:adbshelldumpsysnetstats分块展示:Activeinterfaces:活动接口ActiveUIDinterfaces:活动UID接口Devstatistics:开发统计信息Xtstatistics:Xt统计信息UIDstatistics:UID统计信息UIDtagstatistics:UID代码统计信息活动接口和活动UID接口:A......