当前位置:网站首页>【网络攻防原理与技术】第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等
边栏推荐
- Skimage learning (3) -- adapt the gray filter to RGB images, separate colors by immunohistochemical staining, and filter the maximum value of the region
- Skimage learning (1)
- L1-023 输出GPLT(Lua)
- 麒麟信安加入宁夏商用密码协会
- Mrs offline data analysis: process OBS data through Flink job
- LeetCode刷题day49
- 麒麟信安云平台全新升级!
- How to choose the appropriate automated testing tools?
- 99% of users often make mistakes in power Bi cloud reports
- LeetCode 648(C#)
猜你喜欢
skimage学习(3)——使灰度滤镜适应 RGB 图像、免疫组化染色分离颜色、过滤区域最大值
Shallow understanding Net core routing
QT中自定义控件的创建到封装到工具栏过程(一):自定义控件的创建
What is cloud computing?
QML beginner
QML初学
Mrs offline data analysis: process OBS data through Flink job
Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
PLC: automatically correct the data set noise, wash the data set | ICLR 2021 spotlight
skimage学习(1)
随机推荐
LeetCode 1626. The best team without contradiction
字符串 - string(Lua)
Sator launched Web3 game "satorspace" and launched hoobi
The process of creating custom controls in QT to encapsulating them into toolbars (II): encapsulating custom controls into toolbars
LeetCode 1654. The minimum number of jumps to get home one question per day
LeetCode 1477. 找两个和为目标值且不重叠的子数组 每日一题
【饭谈】那些看似为公司着想,实际却很自私的故事 (一:造轮子)
Is AI more fair than people in the distribution of wealth? Research on multiplayer game from deepmind
Smart logistics platform: make overseas warehouses smarter
蓝桥杯 决赛 异或变换 100分
无法链接远程redis服务器(解决办法百分百)
LeetCode 120. Triangle minimum path and daily question
From Devops to mlops: how do it tools evolve to AI tools?
[fan Tan] those stories that seem to be thinking of the company but are actually very selfish (I: building wheels)
Jenkins发布uniapp开发的H5遇到的问题
麒麟信安操作系统衍生产品解决方案 | 存储多路径管理系统,有效提高数据传输可靠性
【饭谈】Web3.0到来后,测试人员该何去何从?(十条预言和建议)
【Seaborn】组合图表、多子图的实现
Nerf: the ultimate replacement for deepfake?
[Huang ah code] Why do I suggest you choose go instead of PHP?