当前位置:网站首页>【网络攻防原理与技术】第4章:网络扫描技术
【网络攻防原理与技术】第4章:网络扫描技术
2022-07-07 15:39:00 【Godams】
4.1 网络扫描基本概念
目的:
- 判断主机的⼯作状态、即其是否开机。若其没有开机,⼀切攻击都是徒劳的。(主机扫描)
- 判断主机端⼝的开放状态。(端⼝扫描)
- 判断主机服务的操作系统类型(操作系统识别)
- 判断主机中可能存在的安全漏洞。(漏洞扫描)向主机发送精⼼设计的探测数据包,根据⽬标主机的响应,判断其是否存在某安全漏洞。
4.2 主机发现
4.2.1 基于ICMP的主机发现
ICMP协议:为了提交数据包交付的机会和更加有效地转发数据包。路由器和目标计算机可以利用ICMP协议向数据包的源主机通告传输中的问题。除了差错报告功能外,ICMP协议还具有查询功能,一台主机可以通过ICMP协议获取另一路由器或主机的某些信息。
- 使⽤ping命令检查与另⼀台主机的⽹络连通情况。
- 本质是向对⽅发送ICMP请求报⽂。如果对⽅主机回复了,说明在线。不回复不⼀定不在线。
4.2.2 基于IP协议的主机发现
- 主机在收到⾸部异常的IP数据报时应当返回”参数问题“ICMP报⽂。
- 另一种方法是有意制造分片时间超时,将会向数据包源主机发送“分片重组超时”的ICMP报文。
基于基于IP协议的主机发现实质上是攻击者针对被扫描的IP地址,有意制造通信错误,并通过是否收到被攻击者反馈的ICMP差错报⽂推断其⼯作状态(判断是否收到ICMP差错报告报⽂)。
4.3 端口扫描
应用程序 | SSH | TELNET | SMTP | DNS | HTTP | POP3 | SNMP | SNMP(trap) |
---|---|---|---|---|---|---|---|---|
熟知端口 | 22 | 23 | 25 | 53 | 80 | 110 | 161 | 162 |
⼀个端⼝就是⼀个潜在的通信信道,也就是⼊侵通道。
向⽬标端⼝发送探测数据包。根据收到的响应判断端⼝的状态。
4.3.1 TCP扫描
- TCP全连接扫描(TCP connect 扫描)。
- 尝试向⽬标端⼝建⽴正常的TCP连接(三次握⼿四次挥⼿)。直接使⽤系统提供的connect函数。如果连接建⽴成功,说明端⼝开放;建⽴失败则说明⽬标端⼝关闭。
- 优点:稳定可靠,不需要额外权限。
- 缺点:不隐蔽,服务器会记录下连接⾏为
- TCP SYN扫描。
- 只完成三次握⼿中的前两步骤。第三步时攻击放发送rst报⽂中断连接。如果攻击⽅发送SYN请求后服务器返回SYN+ACK报⽂,则说明端⼝开放;若没
有返回任何报⽂,则说明端⼝关闭。 - 优点:很少有服务器会记录这样的⾏为;
- 缺点:需要管理员权限才可以构造这样的数据包。
- 只完成三次握⼿中的前两步骤。第三步时攻击放发送rst报⽂中断连接。如果攻击⽅发送SYN请求后服务器返回SYN+ACK报⽂,则说明端⼝开放;若没
- FIN扫描:
- 攻击⽅直接向服务器发送FIN报⽂。如果没有收到任何响应,则说明端⼝开放。若收到RST报⽂,则说明端⼝关闭。
- 优点:⽐较隐蔽。
- 缺点:也需要管理员权限;且如果攻击⽅发送的FIN数据包丢失,或者应答丢失,攻击⽅会误以为端⼝开放,做出错误的结论;且只适⽤于Unix系统主机,Windows主机在这种情况下总是返回RST报⽂段。
- Xmas扫描和Null扫描是FIN扫描的两个变种。
- 扫描过程和FIN扫描⼀样。只是Xmas扫描打开FIN、URG、ACK、PSH、RST、SYN标记,既全部置1;Null扫描关闭所有标记,全部置0
4.3.2 FTP代理扫描
FTP代理选项允许客户端控制⼀个FTP服务器向另⼀个服务器传输数据。FTP代理选项使得FTP客户端能够控制FTP服务器向⽹络上的任何⼀台主机发送⽂件。
设S为攻击机,T为⽬标主机,F为FTP代理连接的FTP服务器
FTP代理扫描步骤如下
- S与F建⽴会话
- S使⽤PORT命令指定⼀个T上的端⼝P
- S使⽤LIST命令让F尝试启动⼀个到⽬标端⼝P的数据传输
- 如果⽬标端⼝P处于监听状态,则数据传输成功;否则失败。
- S持续利⽤PORT和LIST命令对⽬标主机T进⾏端⼝扫描
优点:隐蔽,且如果FTP服务器和⽬标主机在同⼀个受保护的内部⽹络,则此⽅法可以绕过防⽕墙的防护。
缺点:⼀些防⽕墙禁⽌这种特性。
4.3.2 UDP代理扫描
攻击机向⽬标主机的端⼝发送UDP数据包,如果该端⼝打开,则不会有回应;若端⼝未打开,将会返回ICMP_PORT_UNREACH错误。依次判断端⼝是否开放
缺点:UDP数据包和ICMP数据包在传输过程中都可能丢失,容易使得判断出现偏差;且⼤多数主机对ICMP错误信息的⽐例做了限制。如Linux内核规定4s内只能出现80条⽬标不可达报⽂
4.3.4 端口扫描的隐匿性策略
如果扫描过程中持续性地向⽬标主机发送⼤量的探测报⽂,很容易被防⽕墙、⼊侵检测系统发现。由此需要扫描活动越隐蔽越好
- 调整扫描的次序(随机端⼝扫描)。⽐如如果要扫描192.168.123.0/24⽹段的所有主机。如果按照192.168.123.1,192.168.123.2,192.168.123.3,192.168.123.4顺序扫描,很容易被发现。我们将要扫描的IP地址和端⼝地址次序随机打乱,增强随机性,降低被发现的概率。
- 减缓扫描速度(慢扫描):避免探测数据包在短时间内⼤量出现,减弱扫描的⾏为特征。
- 对数据包中⼀些字段进⾏随机化处理。传统扫描软件发出的报⽂⾥的字段都是固定的,正常的连接中不会出现这些字段。在探测报⽂的⾸部字段中随机填⼊合适的数值,可以加⼤对⽅检测的难度。
- 伪造源地址:防⽌攻击⽅泄露。
- 分布式协同扫描:将扫描任务交给多台主机完成,将扫描任务分散开来。
4.4 操作系统识别
旗标信息识别、通过端口信息识别、TCP/IP协议栈指纹识别
- 通过旗标信息
旗标(banner):客户端向服务器端提出连接请求时,服务器返回的欢迎信息。 - 通过端⼝信息
不同的操作系统通常都会有⼀些默认开放的服务,这些服务使⽤特定的端⼝进⾏⽹络监听。端⼝⼯作状态的差异能够为操作系统检测提供⼀定的依据。 - 通过TCP/IP协议栈指纹
根据操作系统在TCP/IP协议栈实现上的不同特点,通过对探测的响应规律形成指纹,进⽽识别⽬标主机运⾏的操作系统。- 即通过向⽬标主机发送构造的特殊包并监控其应答的⽅式来确定操作系统的类型。⽐如向⼀个关闭的端⼝发送UDP数据包,Windows系统会返回RST,Linux不返回。
- Linux内核限制每秒钟发送ICMP差错⽂的数量。不同操作系统对相同的TCP数据包的响应体现在:响应顺序不同、响应值不同、⼆者都不同
4.5 漏洞扫描
漏洞扫描:漏洞指的是在软硬件或者协议的具体实现或者系统的安全策略上存在的缺陷。使得攻击者可以未经授权地访问和破坏系统。
定义:基于漏洞数据库,通过扫描等⼿段对指定的计算机系统的安全脆弱性进⾏检测,发现可利⽤漏洞的⼀种安全检测(渗透攻击)⾏为
方法:
- 在端口扫描后得知目标主机开启的端口及端口上的网络服务,在漏洞库中进行匹配。
- 通过模拟黑客攻击的手法,对目标主机系统进行攻击性的安全漏洞扫描。
基于网络的漏洞扫描软件由扫描控制台、漏洞库、漏洞扫描引擎等几部分组成。
常⽤⼯具:Nessus, Burpsuite等
边栏推荐
- [image sensor] correlated double sampling CDs
- LeetCode 213. Home raiding II daily question
- 【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid
- How to choose the appropriate automated testing tools?
- 电脑无法加域,ping域名显示为公网IP,这是什么问题?怎么解决?
- LeetCode 1043. Separate the array to get the maximum and daily questions
- Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
- Problems encountered in Jenkins' release of H5 developed by uniapp
- 策略模式 - Unity
- Proxmox VE重装后,如何无损挂载原有的数据盘?
猜你喜欢
[video / audio data processing] Shanghai daoning brings you elecard download, trial and tutorial
Shallow understanding Net core routing
Skimage learning (1)
Sator推出Web3遊戲“Satorspace” ,並上線Huobi
With the latest Alibaba P7 technology system, mom doesn't have to worry about me looking for a job anymore
Leetcode brush questions day49
【TPM2.0原理及应用指南】 5、7、8章
redis主从、哨兵主备切换搭建一步一步图解实现
QT中自定义控件的创建到封装到工具栏过程(一):自定义控件的创建
网络攻防复习篇
随机推荐
第二十四届中国科协湖南组委会调研课题组一行莅临麒麟信安调研考察
redis主从、哨兵主备切换搭建一步一步图解实现
无法链接远程redis服务器(解决办法百分百)
LeetCode 1049. Weight of the last stone II daily question
[Huang ah code] Why do I suggest you choose go instead of PHP?
LeetCode 403. Frog crossing the river daily
LeetCode 648(C#)
On Apache Doris Fe processing query SQL source code analysis
The computer cannot add a domain, and the Ping domain name is displayed as the public IP. What is the problem? How to solve it?
Flask搭建api服务
Skimage learning (3) -- adapt the gray filter to RGB images, separate colors by immunohistochemical staining, and filter the maximum value of the region
Seaborn数据可视化
【源码解读】| LiveListenerBus源码解读
测试用例管理工具推荐
Shallow understanding Net core routing
How to mount the original data disk without damage after the reinstallation of proxmox ve?
LeetCode 152. Product maximum subarray daily question
Solidity函数学习
Several best practices for managing VDI
DNS 系列(一):为什么更新了 DNS 记录不生效?