一、实验题目

本次实验主要对主机扫描和端口扫描原理的理解。使用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)首先仔细观察demo代码,将IP地址设置为本地地址127.0.0.1,端口号设置为开放端口号1900,运行后得到结果如图:

使用icmp协议探测主机是否开启。packet=IP(dst=str(ip))/ICMP()/b’rootkit’,构造包,由于ICMP协议需要IP协议传输,所以需要先构造IP协议。/b是发送的数据;ping=sr1(packet,timeout=1,verbose=False),发送三层数据包,并仅仅只等待接收一个数据包的响应,timeout定义超时的时间,如果超出时间范围就说明该主机不存活或者其他原因没有返回数据包,verbose如果不将该参数定义为False,那么屏幕将会打印一些不相关的字符串,定义为False之后,就可以print自己想看到的字符串。

2)对本机(关闭防火墙)的开放端口和非开放端口完成半连接、ACK、FIN、Null、Xmas、windows扫描,并与nmap扫描结果进行比较。
①半连接扫描,扫描者向目标主机发送一个SYN,如果目标主机回复了一个SYN/ACK数据包,那么说明主机存活,如果收到一个RST/ACK数据包,那么主机没有存活。因为扫描者只向目标主机发送了SYN,并没有和目标主机进行连接,因此称为半连接。

开放端口扫描结果:

非开放端口扫描结果:

②ACK,设置flags位为ACK,不回复表示端口关闭或被过滤,如果回复的数据包TTL小于等于64表示端口开放,大于64端口关闭(windows)。

开放端口扫描结果:

非开放端口扫描结果:

③FIN,FIN扫描和NULL扫描类似,将标志位FIN置1,如果端口开放,则没有反应,端口关闭,目标主机会发送RST。

④Null,设置flags位为空,不回复则表示端口开启,回复并且回复的标志位为RS表示端口关闭

开放端口扫描结果:

非开放端口扫描结果:

⑥windows,通过设置flags为ACK,不回复表示端口关闭或被过滤

开放端口扫描结果:

非开放端口扫描结果:

结果分析:
从nmap的角度来看一个被扫描的端口可能处于3种状态:开放,关闭和被过滤。 半开放扫描器发送一个SYN数据给TCP端口,希望获得一个SYN/ACK数据包或者RST/ACK 。收到前者表示目标端口是开着的,收到后者表示是关着的。当然还存在第三种情况,那就是什么都没获得,这种情况只能说明数据包被过滤了,这个端口到底开着或者没开,nmap也不知道。但是这种扫描方式不会完成3次握手,也就是它故意不返回ACK给已经响应了SYN/ACK数据包的开放端口。因此SYN扫描也称为半开放扫描; FIN,XMAS,NULL 扫描的操作是基于同一个原理,就是当某个关闭端口突然收到一个没有设置SYN,ACK或RST控制位的TCP数据包时,通常是一个RST去响应这个令人诧异的数据包,但如果是一个开放的端口,TCP将不做任何响应;TCP ACK扫描向每个被扫描的端口发送一个TCP ACK数据包。如果目标数据包发送出去有接收到RST(不是RST/ACK数据包)说明端口是开放或者关闭的,没有回信表示被过滤了。ACK扫描的目的并不是确定某个端口是开着的还是关着的,它是为了确定一个端口是否被一个有状态的防火墙过滤了。

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

①ACK扫描结果:回复的包TTL<64,说明端口开放。

未得到回复,端口关闭:

②FIN扫描:
标志位FIN置1,如果端口开放,则没有反应。

端口关闭,目标主机会发送RST

③NULL扫描:
设置flags位为空,不回复则表示端口开启:

回复并且回复的标志位为RA表示端口关闭。

④windows扫描:
设置flags位为ACK,不回复表示端口关闭或被过滤,如果回复的数据包TTL小于等于64表示端口开放:

无回复,端口关闭:

⑤xmas扫描:
设置flag位FPU,未回复表示端口开启

回复RA表示端口关闭:

5)“conf.L3socket=L3RawSocket”的作用
设置“conf.L3socket=L3RawSocket”,就能通过Scapy发送数据包

网络攻防技术——端口扫描相关推荐

  1. 2018-2019-2 20165315《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165315<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.实验内容 二.实验步骤 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫 ...

  2. 20155201 网络攻防技术 实验六 信息搜集与漏洞

    20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...

  3. 2018-2019-2 20189215 《网络攻防技术》第九周作业

    教材<网络攻防技术>第九.十章学习 第9章 恶意代码安全攻防 9.1 恶意代码基础知识 恶意代码是指使计算机按照攻击者的意图执行以达到恶意目标的指令集.类型包括:计算机病毒.蠕虫.恶意移动 ...

  4. 2018-2019-2 20165312《网络攻防技术》Exp7 网络欺诈防范

    2018-2019-2 20165312<网络攻防技术>Exp7 网络欺诈防范 目录 一.相关知识点总结 二.实验内容 三.实验步骤 四.实验总结及问题回答 五.实验中遇到的问题及解决方法 ...

  5. 2017-2018-2 20179205 《网络攻防技术与实践》第八周作业

    <网络攻防技术与实践>第八周学习总结 教材第八章<Linux操作系统安全攻防>学习总结 本章通过介绍Linux的结构和安全机制,引出了对Linux系统的攻击过程,包括首先从远程 ...

  6. 网络攻防技术(摆烂一天)

    网络攻防技术非常基础 1. 信息采集 信息采集的重点概念: 信息采集是黑客为了更有效的实施攻击而在攻击前对被攻击目标进行探测活动(信息渗透的过程) 信息采集是渗透重要的一部分:知道的越多就可能知道的更 ...

  7. 网络攻防技术(郑大信安个人总结版)

    网络攻防技术(郑大信安个人总结版) 目录 第1部分 绪论 2 第2部分 网络脆弱性分析 3 第3部分 网络侦察 5 第4部分 网络扫描 7 第5部分 拒绝服务攻击 11 第6部分 计算机木马 14 第 ...

  8. 网络攻防技术与实践笔记-信息收集技术手段

    网络攻防技术与实践笔记(一) 一.网络踩点 1. web搜索与搜索 Google.百度等高级搜索,xgoogle查询工具:wget爬虫工具,Teleport Pro.Offline Explorer爬 ...

  9. 2018-2019-2 20165332《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165332<网络攻防技术>Exp5 MSF基础应用 1.基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit:就是 ...

  10. 20189216 《网络攻防技术》第六周作业

    教材和视频学习总结 一.教材内容学习总结 课本第五章主要围绕TCP/IP网络协议攻击技术进行讲述,教材中主要涉及的攻击内容如下: 网络攻击基本模式: 截获 中断 篡改 伪造 网络层协议攻击手段 IP源 ...

最新文章

  1. 如何正确使用as follows 与 following
  2. 中国中草药提取物市场需求容量与投资价值预测报告2022年
  3. AS编写sdk并打成jar包供其它APP调用
  4. not null primary key什么意思_为什么我使用了索引,索引却没有生效?
  5. 将VMware Workstation 12 Pro的虚拟网卡修改为自己希望的IP网段
  6. Hive UDF,就这
  7. quartz 每30秒执行一次_Net Core 使用 Quartz
  8. 自学几小时,斯坦福AI推测并复现了元素周期表 | 华裔团队研究
  9. 只听几句话,百度AI就能模仿你的声音 | 附论文
  10. 探索python--Robert J. Brunner
  11. RocketMQ 概述
  12. AS2在FLASH中调用EXE文件方法详细说明 已测试可行
  13. 如何创建SQL Server Management Studio 18(SSMS)扩展
  14. 最全的女生变声教程—正太音,萝莉音,少女音,御姐音
  15. openpyxl,重写Worksheet
  16. java word转html乱码怎么办,poi导出word 乱码 poi word转html 乱码
  17. 如何实现数据库的读写分离
  18. 汉明码纠错java_汉明码(Hamming)编码与纠错原理
  19. 中南大学计算机学院研究生录取分数线,2021中南大学
  20. 计算机组装师分为哪几步,电脑组装主要需要学习哪几个方面?难学吗?

热门文章

  1. javaweb框架介绍
  2. Android中X5WebView详解
  3. Ubuntu 安装Qt以及配置
  4. 时间复杂度为O(n)的排序(JAVA)
  5. subsonic orm_Hanselminutes播客132-Subsonic与Rob Conery
  6. win10多合一原版系统_【教程】制作Windows 10 多合一原版系统
  7. amd k14主板参数_R5 1400配什么主板好?R5-1400主板搭配与参数详解 (全文)
  8. java pdf版本转换_无需依赖第三方软件,在Java中进行PDF格式转换全新攻略
  9. IT项目实施管理办法
  10. 第三方SDK:SMSSDK