高级基础设施渗透测试(三)

283 阅读42分钟

高级基础设施渗透测试(三)

原文:annas-archive.org/md5/45BAA65013025C678E3A42A0CD4FCB67

译者:飞龙

协议:CC BY-NC-SA 4.0

第十章:不安全的 VPN 利用

虚拟私人网络VPN)在安全传输数据方面非常有用。VPN 可以实现信息安全,但仍然容易受到黑客的高风险。如果你想学习如何保护 VPN,本章将从密码学的基本知识开始,帮助你获得保护 VPN 所需的技能。

本章将涵盖以下主题:

  • 密码学

  • VPN 基础知识

  • 不安全的 VPN 利用

密码学

在密码学艺术中,我们有两种不同的科学:密码学和密码分析。密码学基于数学算法保护信息,而密码分析则处理密码系统创建的密文。这两种科学并存。简单来说,密码学处理隐藏信息,而密码分析则破解密码系统以揭示隐藏信息。密码学并不是一门新科学,它很古老。有一些经典的密码学技术,比如苏美尔楔形文字、埃及象形文字、斯塞塔利、维吉尼亚密码、凯撒密码和 ROT13 密码。

密码系统

加密技术的实施被称为密码系统;有时也被称为密码系统。以下图表描述了一个简单的密码系统。发送者使用加密算法对明文进行加密,这是一个使用加密密钥的数学过程。该操作的输出生成一个密文,接收者将使用解密算法和解密密钥对其进行解密,使密文可读为明文:

密码

密码是加密的消息。密码可能会被攻击者拦截。我们有两种主要类型的密码:经典和现代。让我们逐一发现它们。

经典密码

这种类型存在于计算机时代之前,有以下两个分支:

  • 置换:它使用排列。明文被重新排列成另一种格式。字符仍然相同,但位置不同。

  • 替换:它使用字符替换,换句话说,用另一个字符替换一个字符,比如用M替换O。替换算法应该由发送者和接收者知道。ROT13 和凯撒密码是替换密码的两个例子。

ROT13 是一种替换密码,其中明文中字符的位置向后移动了 13 个位置。因此,如果明文是HELLO,那么密文应该是URYYB,如下所示:

凯撒密码是由朱利叶斯·凯撒使用的替换密码,其中明文消息的每个字符都向前移动了预定义的位置数。举个例子,假设移动的数字是2,那么HELLO的密文将是JGNNQ,如下所示。这种密码很容易被破解,你可以尝试最多 25 次移位,直到找到可读的文本:

现代密码

现代密码再次分为两种类型:

  • 分组密码:这些按块处理信息。每个块将分别进行加密和解密。数据加密标准DES)是最常用的分组密码之一,基于费斯特尔密码,由 IBM 研究员 Horst Feistel 开发,试图构建实现克劳德·香农的替换-置换S-P)网络的理想分组密码结构。以下图表说明了费斯特尔结构:

  • 流密码:这些按位或按字节处理信息,在加密和解密中。例如,要加密一条消息,会使用一个与消息大小相同的种子密钥生成一个密钥流,然后进行加密。以下图表说明了两种密码类别:

克尔克霍夫密码系统原则

为了检查您是否拥有一个良好和安全的加密系统,一位名为奥古斯特·克克霍夫的荷兰密码学家提出了一套用于设计安全加密系统的法律和原则。这些文章发表在 1883 年的一篇文章中,军事密码学。如果您想阅读完整的文本,请查看奥古斯特·克克霍夫,《军事密码学》,《军事科学杂志》,第九卷,第 5-38 页 II,军事密码学的 Desiderata,1883 年 1 月。克克霍夫的密码系统六原则如下:

以下是六个原则的英文翻译:

  • 加密系统在实际上应该是不可破解的,即使在数学上不可破解

  • 加密系统落入入侵者手中不应导致系统的任何妥协,从而不会给用户带来任何不便

  • 密钥应该易于传达、记忆和更改

  • 密文应该可以通过电报传输,这是一个不安全的渠道

  • 加密设备和文件应该是便携的,并且可以由一个人操作

  • 最后,系统必须易于使用,既不需要精神紧张,也不需要长串规则的知识来遵守

加密系统类型

在加密系统方面,我们有基于加密-解密密钥的两个主要类别——对称和非对称加密系统。如果系统同时使用相同的密钥进行加密和解密,那么它将是一个对称加密系统,否则,加密系统是非对称的,因为加密中使用的密钥与解密中使用的密钥不同。

对称加密系统

各种类型的对称加密系统如下:

  • 数据加密标准(DES):这是由 IBM 开发的。它最初是 Lucifer 加密,后来由国家标准与技术研究所NIST)发布。这种加密使用 56 位密钥:

轮函数在以下工作流程中描述:

密钥生成使用以下工作流程完成:

初始和最终置换由两个逆置换盒(P 盒)完成:

  • 三重 DES(3DES):这种加密是 DES 的增强版本。它使用 168 位密钥,因为用户生成三个密钥,k1、k2 和 k3。第一个密钥 k1 用于加密单个 DES。第二个密钥 k2 用于解密第一步的输出。最后一个密钥 k3 用于加密上一步的单个 DES:

  • 高级加密标准(AES):AES 是 DES 的替代品。它更快(大约快六倍)和更强大。它使用 Rijndael 密码:

  • Rivest Cipher 5 (RC5):这是由麻省理工学院教授罗纳德·里维斯特开发的非对称加密系统。RC5 由以下三个主要组成部分组成:

  • 密钥扩展算法

  • 加密算法:

    • 解密算法:

RC6 是从 RC5 派生而来,块大小为 128 位,密钥大小灵活。

非对称加密系统

以下是非对称加密系统的算法:

  • Rivest-Shamir-Adleman(RSA):RSA 是互联网上最广泛使用的加密系统之一。它是由麻省理工学院的 Ron Rivest、Adi Shamir 和 Leonard Adleman 开发的。在使用 RSA 时,将生成一对密钥,即私钥和公钥。

  • Diffie-Hellman 密钥交换:Diffie-Hellman 密钥交换是一种在此操作期间创建密钥而无需共享和交换信息的方法。

基本思想是这样的:

    1. 选择两个素数,gp
  1. 计算ga mod p并发送输出

  2. 另一个键计算gb mod p并发送输出B

  3. 计算Ba mod p

  4. 另一个键上的相同计算Ab mod p

  • El Gamal:El Gamal 是基于 Diffie-Hellman 密钥交换的加密系统

哈希函数和消息完整性

哈希函数是数学函数,它接受任意大小的输入字符串,并生成固定大小的输出,称为哈希值或消息摘要。一个好的哈希函数

应该容易计算哈希;计算给定的明文将非常困难

哈希,对于两个不同的输入,它不会生成相同的哈希,除非在罕见情况下。

现在有许多知名的哈希函数;它们如下:

  • 散列消息认证码

  • 消息摘要MD2

  • 消息摘要MD4

  • 消息摘要MD5),如果您想加密或解密明文,可以使用md5decrypt.net/en/如下所示:

  • 安全哈希算法SHA

  • Whirlpool

  • HAVAL

  • RIPEMD

数字签名

数字签名的主要目标是验证消息或文档的真实性和完整性。您可以将其视为电子指纹。以下图表显示了签署文件的步骤:

隐写术

隐写术是将消息隐藏在人类可读的媒介中的艺术,如图像文件、视频、文本等。这些变化在视觉上应该是不可察觉的,以掩盖承载文件后面的消息。隐写术有两种类型:

  • 文本隐写术:

  • 行移编码

  • 词移编码

  • 特征编码

  • 图像隐写术:

  • 最低有效位LSB):在 8 位图像的每个像素中隐藏 1 位数据,在 24 位图像的每个像素中隐藏 3 位数据。您可以使用steglsb执行 LSB 隐写术:

    • 扩频图像隐写术(SSIS)
  • F5 算法

密钥管理

密钥管理是保护加密密钥的过程。为了确保这种保护,必须维护一个生命周期,如下所示:

  • 密钥创建

  • 密钥保护和监管

  • 密钥轮换

  • 密钥销毁

  • 密钥托管

密码攻击

为了检索信息的明文,攻击者和密码分析师使用了许多技术:

  • 穷举攻击(BFA):在此攻击期间,攻击者将尝试所有密钥组合以检索密钥

  • 字典攻击:在此攻击中,攻击者使用准备好的字典并尝试其中的单词

  • 生日攻击:在生日攻击中,攻击者使用哈希碰撞

  • 仅密文攻击(COA):在此攻击中,攻击者拥有密文,他只需要确定密钥

  • 已知明文攻击(KPA):攻击者使用我们称之为线性密码分析来从密码中检索缺失的明文,同时他知道密码的部分明文

  • 已选择明文攻击(CPA):攻击者在选择密文和明文后使用差分密码分析来检索密钥

  • 侧信道攻击(SCA):攻击者使用硬件攻击密码系统,利用功耗或 CPU 周期来利用密码系统物理实现的弱点

  • 时序攻击:攻击者分析加密算法的计算时间

  • 功率分析攻击:这与时序攻击相同,但攻击者分析的是功耗

  • 故障分析攻击:攻击者研究密码系统中的错误以收集更多信息

VPN 基础知识

当涉及信息技术时,加密在保护不同状态的信息方面发挥着重要作用。各种技术应用每天都在使用加密,如磁盘加密、电子邮件安全和通信。VPN 就是其中之一。按定义,VPN 是两个站点之间的逻辑网络。VPN 的流量是加密的。

在加密中,我们有以下两种模式:

  • 链路加密:在这种模式下,所有信息都被加密,消息应该在每一跳中解密。在这种情况下,路由器应该解密消息,以便了解路由信息,然后再次加密并转发到下一跳。

  • 端到端加密:在这种模式下,所需头部中的信息不被加密,因此路由器等不需要解密它们,因为路由信息是清晰的:

隧道协议

VPN 中使用的两种技术是 SSL 和Internet Protocol SecurityIPSec)。我们将详细和全面地讨论这两种技术,但现在让我们看看不同的隧道协议:

  • 点对点隧道协议PPTP

  • 第二层隧道协议L2TP

IPSec

IPSec 是一种协议套件,它能够在系统之间提供安全性,我所说的安全性是指信息安全第一章中讨论的三个基本支柱之一:保密性和完整性,以及身份验证和防重放保护。IPSec 使用以下两种协议:

  • 认证头(AH)协议:此协议用于对流量进行身份验证而不加密。使用哈希函数(MD5 或 SHA1)进行身份验证。

  • 封装安全载荷(ESP)协议:此协议也用于身份验证,但它也支持加密。

IPSec 在以下两种不同模式下运行:

  • 隧道模式:在这种模式下,整个数据包被封装并转发。它在 VPN 中被广泛使用。在原始 IP 头部上添加了一个新的 IP 头部。

  • 传输模式:这种模式用于系统之间的端到端加密。AH 头部被添加到 IP 头部中:

以下图示了两种不同的协议和不同的模式:

安全套接字层/传输层安全

安全套接字层SSL)是一种应用层协议。如果您在安全模式下使用现代浏览器,那么您的浏览器与 Web 服务器之间的连接将由 SSL 保护。更安全的 SSL 版本是传输层安全TLS)。如果网站由 SSL 证书保护,那么在您的 URL 栏中将出现 HTTPS 标志:

SLL/TLS 操作如下所示:

SSL 攻击

本节将讨论多年来发生的主要 SSL 攻击。

DROWN 攻击(CVE-2016-0800)

DROWN 攻击是一种破解加密的技术。当攻击被发现时,他们发现超过 33%的 HTTPS 服务器是容易受攻击的。仍然支持 SSLv2 的服务器容易受到这种攻击。在 DROWN 攻击中,攻击者发送具有相同私钥的探测包来解密 TLS 通信。因此,所有信息都会暴露出来。不仅支持 SSLv2 的服务器容易受到攻击,攻击者还可以使用另一个支持 SSLv2 的服务器的私钥来发动攻击。

要测试您的服务器是否容易受到 DROWN 攻击,您可以使用pentest-tools.com/network-vulnerability-scanning/drown-ssl-scanner

为了防御 DROWN 攻击,建议您在服务器上禁用 SSLv2;确保私钥不被用于允许 SSLv2 连接的任何其他服务,并升级 OpenSSL 加密库。

POODLE 攻击(CVE-2014-3566)

向下兼容的遗留加密填充口令POODLE)攻击于 2014 年被发现。这种攻击利用了许多服务器一方面支持 SSLv3,另一方面存在块填充漏洞的事实。以下图示了 POODLE 攻击:

通常,作为第一步,客户端发送支持的 TLS 版本。在这种情况下,攻击者拦截流量进行中间人攻击,并模拟服务器,直到连接降级为 SSLv3。如果连接建立,攻击者利用密码块链接漏洞,通过操纵填充字节执行 POODLE 攻击。

如果您想测试您的服务器是否容易受到 POODLE 攻击,您可以使用ssl-poodle nmap 脚本,或者简单地在线测试使用之前的网站:

要防御 POODLE 攻击,您需要在服务器上禁用 SSLv3 并升级客户端,因为升级的客户端使用 TLS 回退信号密码套件值SCSV)以防止协议降级攻击。

BEAST 攻击(CVE-2011-3389)

浏览器针对 SSL/TLS 的利用BEAST)攻击于 2011 年被发现。在 BEAST 攻击中,攻击者利用 TLS 中的密码块链接漏洞进行 CPA,通过进行中间人攻击。要防御 BEAST 攻击,升级 TLS 版本。

CRIME 攻击(CVE-2012-4929)

压缩比例信息泄漏简化CRIME)攻击中,攻击者利用 TLS 压缩中的漏洞。以下图表演示了 CRIME 攻击:

这种压缩基本上是可选的,用于使用 DEFLATE 算法等减少带宽。要防御此攻击,请确保您的浏览器是最新的。

BREACH 攻击(CVE-2013-3587)

通过自适应压缩的浏览器侦察和泄露BREACH)攻击中,攻击者利用 HTTP 压缩。

心脏出血攻击

在心脏出血攻击中,攻击者利用 OpenSSL 库中的 TLS 心跳扩展。该扩展用于始终确保两个系统之间的连接是活动的。请求有效载荷由数据和其大小组成。攻击者利用这种格式迫使服务器从内存泄漏的数据中发送请求的大小:

为了测试您的服务器,请尝试通常的网站:

Qualys SSL 实验室

要测试您的服务器是否容易受到 SSL 攻击,您可以尝试 Qualys SSL 实验室。要尝试,请访问ssllabs.com/:

点击测试您的服务器并输入您的网站:

该网站将扫描与输入的网站相关的地址:

将生成一份报告,为您提供详细的 SSL 报告和总体评分:

总结

在本章中,您学会了如何保护 VPN。与每一章一样,我们从基础知识开始,从密码学技术到 VPN,因为对技术的各个方面有清晰的理解将使渗透测试人员更清晰地了解如何保护该技术。

在下一章中,我们将讨论交换机和路由器中可能存在的常见安全漏洞,并提供有关保持网络设备安全的建议。

第十一章:路由和路由器的漏洞

路由器是每个现代组织中的主要设备。在一个互联世界中,路由是交换信息的支柱,我们知道宝贵的信息每天都是攻击者的目标。本章将带您进行一个学习体验,从探索路由操作开始,并指导您通过利用路由协议和路由器的现实演示。

在这一章中,您将发现以下内容:

  • 路由基础知识

  • 利用路由协议——RIP、OSPF、EIGRP 和 BGP

  • 利用现代路由器

  • 如何防御三层攻击

路由基础知识

在前几章中,我们讨论了交换机。路由器和交换机都需要转发信息。即使有一些三层交换机,交换机也在第 2 层工作。路由器在第 3 层运行,即网络层

为了交换信息,路由器使用 IP 地址。它们维护着一个路由表。在路由方面,我们有两个不同的类别:

  • 静态路由:在静态路由中,所有路由都由网络管理员手动设置。对于网络较小且不需要多余路由更新的情况来说,这是一个不错的决定,但当链接中断时会出现问题。

  • 动态路由:在动态路由中,路由器从邻居那里快速学习网络拓扑,即使链接中断,但网络流量大于静态路由。因此,可能会发生网络开销。

路由可以进一步分类为有类和无类路由:

  • 有类路由:您不能在路由更新中发送子网掩码。在网络中,我们有五个 IP 类:
类别第一个范围默认子网掩码
A1 – 126255.0.0.0
B128 – 191255.255.0.0
C192 – 223255.255.255.0
D224 – 239多播
E240 – 254实验用途
  • 无类路由:您可以在路由更新中发送子网掩码

为了在互联网上传输信息,路由器协议用于从一个网络到另一个网络进行信息路由。然而,我们需要区分两个不同的术语:路由协议和路由协议。路由协议用于从源到目的地路由信息,而路由协议是携带信息的有效载荷。换句话说,路由协议确定路径,更新路由表,并路由路由协议。有许多路由协议,例如以下:

  • 互联网协议 (IP)

  • Internetwork Packet eXchange (IPX):

路由器使用各种算法来选择路由信息的路径,以提供高效、可靠、快速收敛和简单的数据交换。路由协议根据许多参数来完成这项工作:

  • 带宽

  • 延迟

  • 成本

  • 可靠性

  • 跳数

  • 最大传输单元 (MTU)

以下表格描述了一些基于其度量标准的路由协议。我们将在后面更详细地讨论每个路由协议。我们使用这个表格来更好地理解如何选择路由协议:

路由协议**度量标准 **
EIGRP带宽、延迟、负载、可靠性和 MTU 
RIPv2跳数 
OSPF成本(带宽越高,成本越低)   

根据上述度量标准,路由协议可以分为三大类:

  • 距离矢量协议:当路由器在特定时间段内向其邻居发送其路由表时使用

  • 链路状态协议:它们维护网络的整体图像;它们只交换路由更改

  • 混合协议:它们是链路状态协议和距离矢量协议的组合

以下是路由中重要的术语:

  • 自治系统(AS):AS 是由共同实体或路由策略管理的一组网络设备

  • 内部网关协议(IGP):在使用 IGP 时,路由器在自治系统内与共享相同路由协议的其他路由器交换信息

  • 外部网关协议(EGP):如果需要从一个网络移动到另一个网络,例如互联网,需要在不同自治系统之间使用 EGP:

利用路由协议

在本节中,我们将探讨许多路由协议以及如何利用它们的每一个,并学习保护您的网络所需的防御措施。

路由信息协议

路由信息协议RIP)v1 是一种距离矢量协议。它每 30 秒发送一次路由表。RIP 使用跳数作为决策度量。这是一个旧协议,它在其第一个版本 RIPv1 中不能超过 15 跳。为了到达目的地,RIP 使用跳数最少的路径,但这并不那么有效,因为在某些情况下,有许多跳数更多但带宽更好的路径。例如,在以下网络中使用 RIPv1 时,流量将通过路由 1转发,甚至路由 2具有更大的带宽:

在 RIPv1 的后继版本中考虑了许多修订。RIPv2 是 RIPv1 的增强版本。尽管 RIP 是一个分类路由协议,但 RIPv2 是无类别的,这意味着它在每个路由条目中包括掩码。因此,它支持可变长度子网掩码VLSM)。RIPv2 还提供了一个简单的身份验证机制,因此只有在检查其真实性后,路由器才接受来自邻居路由器的数据包。还添加了一个标签,这是区分通过 RIP 学习的路由和其他协议的其他路由的附加信息。所有这些增强都很好,但跳数仍然是一个存在的问题,而在 RIPv2 中,可达跳数的最大值为 15。

要在路由器上配置 RIP,只需进入 RIP 配置模式:

Router(config)#router rip Router(config-router)#network <IP Address here>

在 RIP 操作和距离矢量路由中,可能会发生路由环路。路由环路发生在数据包在路由器之间反复传输时。这种环路可能会使网络失效。

为了防止路由环路,我们可以使用许多方法:

  • 分割地平线:防止路由器将数据包发送回从中学习到该数据包的接口

  • 路由毒化:这可以防止将数据包发送到网络中已经失效的路由

  • 毒性逆转:通知邻居网关网关不再连接

  • 保持计时器:设置为允许路由器在路由离线时恢复而不更新其路由表

  • 触发更新:当度量值发生变化时发送部分更新

RIPv1 反射 DDoS

RIPv1,正如我之前提到的,是一个旧的路由协议,但攻击者重新使用了它。例如,在 2015 年,Akamai 的 Prolexic 安全工程和研究团队(PLXsert)的研究人员发现了一次巨大的 DDoS 攻击,峰值达到 12.9 Gbps。攻击者使用了放大和反射的 DDoS 攻击。在这次攻击中,黑客制作了一个正常的 RIPv1 请求查询,并使用了伪造的 IP 地址,与目标相同。为了防御这种类型的攻击,建议使用 RIPv2 而不是旧版本。此外,您需要使用访问列表并阻止来自端口520的 UDP 数据包。

开放最短路径优先

开放最短路径优先OSPF)是基于 RFC 1247 的开放标准链路状态协议。在 OSPF 操作中,路由器使用链路状态广告LSA)向同一区域中的所有路由器发送信息。路由器使用最短路径优先SPF)算法计算路径。这个算法有时被称为迪杰斯特拉算法。它需要很大的处理能力。OSPF 还支持 VLSM。

为了更好地管理,OSPF 使用分层拓扑结构。OSPF 由一个名为区域 0的骨干组成,连接其他较小的区域。当发生变化时,路由器会收到通知,获取 LSA 的副本,并更新链路状态数据库LSDB):

在深入了解 OSPF 工作原理之前,让我们先看一些重要的路由器术语:

  • **内部路由器:**所有 OSPF 接口都属于同一个区域

  • **骨干路由器:**至少属于相同的区域 0 的接口

  • **自治系统边界路由器(ASBR):**这连接自治系统

  • **指定路由器(DR):**这维护子网的数据库

  • **区域边界路由器(ABR):**至少一个 OSPF 接口属于区域 0,而另一个 OSPF 接口不属于区域 0

  • **备用指定路由器(BDR):**这为指定路由器提供冗余:

有三个 OSPF 表:

  • **邻居表:**这提供了关于邻居的信息

  • **拓扑表:**这提供了关于网络上路由的信息

  • **路由表:**这被认为是转发信息

以下过程描述了 OSPF 的工作原理:

  1. 每个 OSPF 路由器通过将最高 IP 分配给环回接口来选择其路由器 ID(用于标识的 IP 地址)。如果不是这种情况(逻辑接口未定义),则将选择物理接口的最高 IP 地址作为路由器 ID。

  2. 两个路由器向多播地址224.0.0.5发送 Hello 数据包。

  3. 如果数据包具有相同的 Hello 间隔、死亡间隔和区域编号,则将形成邻居邻接

  4. 路由器发送数据库描述数据包。具有最高路由器 ID 的路由器将成为主路由器,并开始数据库数据包交换。

  5. 其中一个路由器从另一个路由器请求 LSA。

OSPF 攻击

在过去的几年里,许多研究表明,使用 OSPF 的路由器容易受到各种类型的攻击。这是一个严重的问题,因为 OSPF 是许多自治系统中最常用的协议,包括许多企业。让我们了解一些针对 OSPF 协议的攻击。

伪装 LSA

这种攻击利用 RFC 2328 中的条件来检查两个 LSA 实例是否相同,基于三个标准:序列号、校验和值和年龄。因此,攻击者可以使用这些字段广告虚假 LSA,但在下一个有效实例中,因为路由器将 LSA 视为重复的,它将忽略它。

要执行伪装 LSA 攻击,请按照以下步骤:

  1. 攻击者发送了一个伪造的 LSA

  2. 攻击者发送了一个带有前面讨论过的相同三个字段的伪装 LSA

  3. 路由器 1 发送了一个反击 LSA,路由器 2 会收到,但不会更新 LSA 数据库,而接收到的 LSA 是相同的。

  4. 路由器 2 触发另一个反击

MaxAge LSAs

攻击者试图修改 LSA 的 MaxAge 以毒害路由表,向网络发送 LSA 洪泛,并甚至使网络流量陷入黑洞。为了防御 MaxAge LSAs,请确保反击陷阱可用。

远程虚假邻接

在远程虚假邻接攻击中,攻击者扮演路由器的角色,并利用路由器可以成功完成邻接设置的事实。通过启用 TTL 安全功能,可以避免这种攻击:

Seq++攻击

当攻击者滥用路由器并发送 LSAs 虚假信息和一个比当前序列号更高的序列号来妨害路由器时,就会发生 seq++攻击。为了防御这种攻击,可以使用反击陷阱。

持续中毒

CVE 2013-0149 中提到了持续中毒,并迫使路由器根据虚假 LSA 计算路由。

防御

还有许多其他防御机制可以避免 OSPF 攻击;以下是一些防御层:

  • **仅过境网络:**这些配置路由器以抑制后缀:
(config-router)#prefix-suppression
  • 使用隐藏接口:有时被称为无编号接口:
(config-if)#ip unnumbered Ethernet 0
  • 启用 TTL 安全
(config-if)# Ip ospf ttl-security
  • 启用 MD5 加密支持
(config-if)# Ip Ospf message-digest-key 1 md5 ab$c1
  • 反欺骗入口过滤:通过确保流量来自受信任的来源,阻止恶意流量

  • 链路状态数据库校验和:这确保了 OSPF LSDB 的一致性

内部网关路由协议

内部网关路由协议(IGRP)是一种分类距离矢量路由协议。与 RIP 一样,IGRP 中的路由决策基于贝尔曼-福特算法,使用跳数。它不是一个开放标准。这是 Cisco 专有的。最大支持跳数为 255,默认值为 100。因此,对于大型公司来说,它比 RIP 更具可扩展性。而且,它易于配置:

Router(config)# router igrp <AS NUM HERE> Router(config-router)# network < NeT ID Here >

IGRP 在同一个自治系统中每 90 秒定期发送信息。这个计时器被称为更新计时器。如果更新时间超过 270 秒(无效计时器),那么它将无效,并且如果超过 360 秒(刷新计时器),它将从路由表中删除。IGRP 不支持认证,它的数据包可以被伪造。

增强内部网关路由协议

增强内部网关路由协议(EIGRP)是 IGRP 的增强版本。它使用双算法。路由器使用Hello请求与邻居建立连接,同时有五种消息类型(hello,update,ack,query 和 reply)。以下图表显示了 EIGRP 的工作原理:

EIGRP 维护以下三个表:

  • 邻居表

  • 拓扑表

  • 路由表

EIGRP 使用以下公式计算成本以选择路由:

度量=带宽+延迟

虽然 IGRP 不支持认证,但 EIGRP 增加了两个主要的安全功能——明文和 MD5 认证形式。如果未设置 MD5 认证,数据包很容易被嗅探。

边界网关协议

边界网关协议(BGP)基本上是互联网的工作原理。它是一种高度可扩展的路由协议,其当前版本基于 RFC 4271。它将信息存储在路由信息库(RIB)中。

如果您的公司需要连接到互联网服务提供商,可以选择多种可能性之一:

  • 单主连接

  • 双主连接:

您还可以使用多种类型的连接连接到多个服务提供商:

  • 单个多宿主

  • 双多宿主

BGP 攻击

BGP 是许多攻击的目标。让我们发现一些 BGP 威胁:

  • 虚假更新和前缀劫持:这种攻击,有时被称为 BGP 劫持,发生在一个自治系统将流量路由到被劫持的自治系统时。

  • 去聚合:在这种攻击中,一个地址块被划分为更具体的块和前缀。

  • 矛盾的广告:在这种攻击中,攻击者将流量重定向到另一个自治系统。

  • 不稳定性:当 BGP 会话反复超时时发生此攻击

利用路由器

之前,我们看到了如何利用路由协议。现在是时候学习如何利用现代路由器了。

路由器组件

像每个主要的网络设备一样,路由器由许多内部组件组成:

  • CPU:执行系统操作

  • RAM:用于存储指令

  • ROM:包含引导指令

  • 闪存:包含 IOS

  • NVRAM:包含启动配置文件:

路由器引导过程

为了引导,每个主要的路由器都经历多个步骤:

  1. 首先,路由器执行 POST。

  2. 它加载引导程序。

  3. 它定位并加载操作系统。

  4. 您可以选择进入设置模式或加载配置文件:

路由器攻击

你已经了解了路由协议的威胁,现在我们将讨论针对路由器的攻击;即使硬件也面临许多具有挑战性的威胁:

  • DDoS 攻击

  • 中间人攻击

  • 路由器固件攻击

路由器利用框架

Routersploit 框架是一个用于利用路由器嵌入式系统的开源工具。您可以像往常一样使用git clone命令从此链接克隆它:

#git clone https://github.com/reverse-shell/routersploit

在使用之前,您需要安装一些依赖项,如python-pip

从 GitHub 克隆存储库到您的本地机器:

克隆后,您可以在 CLI 中运行脚本来运行它:

# ./rsf.py

要检查扫描仪,请键入以下内容:

# show scanners

要检查凭据,请使用此命令:

# show creds

摘要

本章是学习如何利用路由协议和路由器的完整指南。它在向您介绍路由协议的基础知识之后展示了真实世界的攻击技术。通过阅读本章,您已经获得了执行二层和三层攻击所需的知识,并具备了保护现代公司网络的正确思维和工具。在下一章中,我们将扩展我们的知识。此外,您还将学习如何保护物联网项目。

第十二章:物联网利用

术语“物联网”是由麻省理工学院媒体中心的凯文·阿什顿创造的。它描述了包括摄像头、车辆和传感器在内的物理设备网络。物联网得到了指数级的采用,并且代表了不可否认的承诺和可能性。这种快速采用为新的商业机会打开了大门,但另一方面,从安全角度来看,也揭示了新的威胁和弱点。本章将是您的救世主。因此,它将带您了解物联网生态系统,了解如何抵御真实世界的物联网攻击。实际上,在本章中,您将学会在学习如何利用物联网环境之后,获得准备安全物联网项目所需的技能,从最小的设备到连接的汽车。根据 F5 Labs 的报告,2017 年上半年物联网攻击激增了 280%。在本章中,我们将完成我们的旅程。这是又一个里程碑。在走过攻击和保护宝贵企业资产的不同技术之后,是时候继续学习经验,并发现渗透测试物联网项目的技能了。

物联网生态系统

到 2020 年,将有超过 500 亿个连接设备。这么多设备将带来大量新的威胁。作为渗透测试人员,我们需要准备好抵抗这场技术启示。物联网生态系统基于许多因素,我们也在以下图片中显示了这些因素:

  • 商业机会

  • 公共机构

  • 消费者

  • 基础设施

物联网项目架构

像任何技术项目一样,典型的物联网项目由许多组件组成,如下所示(请参见以下图片):

  • 远程设备

  • 数据存储

  • 物联网设备(例如,闭路电视摄像头,家用路由器,打印机,工业系统和连接的汽车)

  • 网关

这幅图表显示了物联网项目的典型架构:

物联网协议

在典型的物联网项目中,涉及许多协议以确保满足要求。它们分为不同的层。以下是一些知名的物联网协议:

  • Wi-Fi:这是物联网开发人员广泛使用的协议。它基于 IEEE 802.11 标准。它使用 2.4 GHz 和 5 GHz 作为频段频率,范围约为 50 米。通常,它可以传输 150-200 Mbps 的数据。

  • Z-Wave:这是一种低功率容量的射频通信技术。它广泛用于传感器和家庭自动化产品,数据速率为 100 Kbps。它可以控制最多 232 个设备,范围为 30 米。

  • Zigbee:这类似于蓝牙。它基于 IEEE 802.15.4 协议,并在 2.4 GHz 频率上运行。通常在我们没有大数据速率的情况下使用,通常为 250 Kbps,范围为 100 米。有许多 Zigbee 配置文件,例如 Zigbee PRO 和 Zigbee 远程控制(RF4CE)。最新版本是 Zigbee 3,它结合了所有先前的 Zigbee 标准。

  • Sigfox:这是一种广域技术,在农村环境下为 30-50 公里,在城市环境下为 3-10 公里。它在 900 MHz 频率上运行,数据速率为 10-1000 Kbps。您无需许可证即可使用其频段,因为它在免许可使用频段(ISM)上运行。

  • Lora:这类似于 Sigfox。它旨在在 WAN 网络上运行(在城市环境下为 2-5 公里,在郊区环境下为 15 公里),数据速率为 0.3-50 Kbps。

  • 近场通信(NFC):这是一种基于 ISO/IEC 18000-3 标准的双向交互技术,频率为 13.56 MHz,在智能手机中广泛使用,特别是在非接触式支付操作中。它在 4 到 10 厘米的范围内运行,数据速率为 100-420 Kbps。

  • IPv6 低功耗无线个人区域网络(6LOWPAN):这是基于 RFC 6282 的互联网协议。它非常适应性强,可以使用不同的通信平台,如 Wi-Fi 和以太网。

物联网通信堆栈

物联网通信堆栈类似于 OSI 网络模型。它代表了不同层之间的所需功能和交互。它由以下层组成:

  • 数据层

  • 端到端层

  • 网络层

  • ID 层

  • 链路层

  • 物理层

IP 智能对象协议套件

与 TCP/IP 模型类似,物联网项目有自己的套件和表示,名为 IP 智能对象协议套件:

标准组织

物联网展示了一个充满希望的未来。因此,它需要被许多组织和联盟组织和标准化。以下是一些知名的物联网标准组织:

  • 国际电工委员会(IEC):IEC 作为物联网标准的最大贡献者之一,发挥着重要作用,特别是通过其 IEC 62056(DLMS/COSEM)讨论智能电表。

  • 国际标准化组织(ISO):ISO 致力于各种产品,特别是通过 ISO/AWI 18575 标准在供应链中的物联网。ISO 还与 IEC 联合成立了一个联合技术委员会。

  • 电气和电子工程师学会(IEEE):IEEE 制定了物联网的 IEEE P2413 标准,以及其他标准,如 IEEE 802.15.4。

  • 互联网工程任务组(IETF):IETF 对物联网有一个以网络为中心的愿景。这一愿景得到了通过在受限制的 RESTful 环境和 IPv6 协议上的工作的支持。

物联网攻击面

上一节是对物联网生态系统的简要概述。物联网为企业提供了一个惊人的增长机会,但也伴随着大量的威胁。从不同的角度来看,物联网面临着许多挑战,包括安全性、集成问题和互操作性。在市场发展的早期阶段,物联网可能会对这些领域产生许多安全警报和技术威胁。

设备和设备

设备是物联网项目的核心组件。在本小节中,我们将探讨硬件威胁,并在另一个点讨论框架攻击。物理安全在信息安全中起着重要作用。未受保护的设备对您的架构构成真正的威胁。暴露的设备很容易受到攻击。因此,黑客可以通过公开可用的数据表和大多数使用的知名设备的必需信息在线收集有关设备的信息。网站,如wiki.openwrt.org帮助用户了解各种设备,如路由器和网关的详细信息:

这一步可能是危险的,因为通过了解硬件信息,攻击者可以识别(作为入口点)使用的接口,如通用异步收发器(UART),如果攻击者成功通过查找 PINS(TX、RX 和 GND)连接到设备,就可以获得 root 访问权限,使用万用表作为连续模式(此模式不需要电源):

上图说明了用 USB 电缆连接的引脚。您需要找到波特率,它类似于比特率(每秒的位数),但它是每秒的信号变化次数。换句话说,它是每秒符号的信息变化次数。要识别设备的波特率,您可以使用 Craig Heffner 在 GitHub 链接中开发的脚本:github.com/devttys0/baudrate/blob/master/baudrate.py。一旦获得合适的波特率,就可以连接到设备。

固件

固件是一组软件,它控制设备的硬件。分析固件是物联网渗透测试的关键步骤。为了实现这一点,您可以使用许多工具和实用程序。其中之一是 binwalk,这是一个由 Craig Heffner 开发的伟大工具,可以帮助渗透测试人员分析物联网设备的固件。您可以从以下 GitHub 链接获取它:github.com/ReFirmLabs/binwalk/blob/master/INSTALL.md。让我们运行以下命令:

# git clone https://github.com/ReFirmLabs/binwalk/

# cd binwalk

# ./deps.sh

然后,使用以下命令安装它:

# sudo ./setup.py install

如果您使用 Kali Linux 发行版,可以通过在 CLI 中键入binwalk来直接使用 binwalk:

例如,如果您想使用 binwalk 收集关于 Airlink 101 AR430W V1 路由器二进制文件的信息,请使用以下命令:

# binwalk ar430w-firmware.bin

要从二进制文件中提取文件,请添加-e选项:

如果您想提取特定文件类型,请使用-D选项:

# binwalk -D 'png image:png' <firmware_binary_here>

从二进制文件中提取文件后,您可以进行固件分析。如果您想自动化这个过程,可以使用来自github.com/craigz28/firmwalker的 firmwalker:

Web 界面

不安全的 Web 界面对物联网项目构成巨大风险。许多设备都集成了 Web 服务器,就像任何其他 Web 服务器应用程序项目一样,它们容易受到 Web 应用程序攻击的影响,并且可以被利用。集成的 Web 应用程序不仅容易受攻击,而且缺乏传输加密也是一种危险的举动;因此,发送的消息可能会被拦截。

网络服务

网络服务在任何物联网项目中都是必不可少的。如前几节所讨论的,典型的物联网项目可能使用许多通信协议,这些通信面临不同的威胁:它们是攻击者的高价值目标。对于攻击者来说,映射攻击面使得黑客尝试更加成功。

云接口和第三方 API

物联网项目可以使用云接口和第三方 API。它们在现代组织中尤其是在物联网项目中扮演着重要角色,同时它们简化了许多云处理过程。这就是为什么作为渗透测试人员,您应该考虑它们。敏感数据可以通过这些渠道传输,许多 API 用于身份验证和授权。因此,您需要确保云接口和第三方 API 的安全性。

案例研究 - Mirai 僵尸网络

为了更清楚地了解和认识到不安全的物联网的危险影响,让我们深入了解一下影响数百万设备和用户的灾难性攻击之一。那就是 Mirai 僵尸网络。Mirai 在日语中意味着“未来”。它使用数百万受损设备对许多企业和服务提供商进行了分布式拒绝服务(DoS)攻击,包括 DNS、Twitter、PayPal、reddit、Brian Krebs 网站和许多其他知名网站:

OWASP 物联网项目

在第一章中,我们看到了开放式 Web 应用程序安全项目OWASP)指南作为众所周知的 Web 应用程序安全标准之一。它们也是活跃的,并且他们正在制定一个新的列表,代表了面临物联网项目的前 10 个威胁。接下来将提到这 10 个威胁。

不安全的 Web 界面

如前所述,Web 界面在任何物联网项目中都很重要。这就是为什么不安全的 Web 界面被列为前 10 个威胁之一。为了确保您的物联网 Web 界面通常是安全的,至少使用一个 Web 应用程序漏洞扫描程序。Nikto是最常用的用于检查 Web 应用程序安全性的工具之一。如果您使用 Kali Linux,您可以直接通过 CLI 使用它。它是 Kali Linux 中的内置工具:

如果你想使用 Nikto 扫描你的网络应用程序界面,请输入以下命令:

#sudo nikto -h <your_interface_address_here>

在下面的例子中,我们使用www.example.com网站作为演示:

不足的认证/授权

认证问题对物联网设备构成了真正的安全威胁。如果接口没有用强密码保护,设备可能会受到攻击。你可以看到,即使设备和家用电器是新的,攻击技术也是老的。这一切都取决于用户的行为。为了避免这种类型的攻击,确保所有密码都是强密码,并且更改每个默认密码。例如,你可以使用howsecureismypassword.net/来检查你密码的强度:

不安全的网络服务

不安全的网络服务可能被利用来通过网络的外部和内部手段来妥协设备,通常是通过使用端口扫描器识别开放端口。在这种情况下,你需要确保只有必需的端口是开放的。

缺乏传输加密

将数据作为纯文本传递代表着你的物联网项目面临巨大的风险。加密数据始终是避免数据被拦截的最佳方法。有许多标准的加密技术和协议,如 SSL 和 TLS。你可以使用一个名为sslscan的工具来扫描你的项目,这是 Kali Linux 中的一个内置工具:

作为演示,这是扫描输出消息的一部分:

隐私问题

许多隐私问题可能会被视为物联网项目的威胁。能够收集有关使用数据的信息,特别是敏感信息,可能是危险的;同时,获取有关设备功能的信息也是危险的。

不安全的云接口

云计算在现代物联网项目中扮演着重要的角色。确保云接口是安全的是必须的。作为安全措施,你需要减轻异常行为,并至少实施一个账户锁定机制。

不安全的移动接口

移动应用程序非常重要。不安全的移动接口可能会使物联网项目陷入危险。未加密的数据可能会被攻击者拦截。

不足的安全可配置性

在配置方面需要采取许多措施。分离管理面板和接口,记录安全事件,并启用警报是避免不足的安全可配置性的明智决定。

不安全的软件/固件

在前面的部分中,我们讨论了固件威胁,因为你知道它是软件,每个软件都可以被利用。使用静态和动态分析进行固件分析总是加固固件的一个好方法。

差劲的物理安全

不要忘记物理安全。对设备的访问可能对你的项目构成威胁。暴露设备和错误放置它们可能是危险的。如果你把你的设备暴露给任何人,他们可以被拆解或通过开放接口(如 USB)访问。

黑客攻击连接的汽车

物联网设备和家用电器并不是唯一受到攻击的受害者。最近的许多研究表明,连接的汽车也可能受到攻击。根据汽车黑客攻击脆弱性调查,2016 年 1 月,60%的千禧一代支持汽车变得更加连接。现代连接的汽车由许多以下单元组成:

  • 信息娱乐(主机单元)-有时称为发动机控制单元ECU

  • 远程监控和连接形式

  • GPS 和导航系统

  • 车辆对车辆通信系统

  • 安全和防盗系统

  • 传感器

  • 夜视

大多数连接的汽车包括一个控制器区域网络,它将所有汽车的组件(传感器、气囊等)与中央控制单元连接起来。控制器区域网络的标准自 1993 年以来已被 ISO 接受和发布:

对连接的汽车的威胁

连接的汽车面临来自不同攻击向量的许多威胁。因为它们由许多单元组成,所以存在各种攻击类别:

  • 固件攻击

  • 操作系统攻击

  • 对 CAN 的远程攻击

  • OBD2 受损

  • 嗅探

  • 恶意下载的应用程序

一辆日产 Leaf 被通过手机应用程序和网络浏览器进行了安全研究。2016 年 2 月,安全研究人员展示了可以通过互联网使用日产手机应用程序访问日产汽车。

总结

这一章是一个简单明了的指南,旨在帮助开发人员、制造商和渗透测试人员构建和保护物联网项目。我们首先发现了物联网生态系统,以及典型物联网项目的不同组成部分。我们看到了物联网项目面临的威胁,以及确保物联网环境安全所需的步骤。在这一点上,您已经掌握了执行渗透测试任务所需的技术技能和适当的心态。现在,您将能够保护现代组织基础设施免受当今的威胁和攻击,并部署适当的防护措施来抵御这些攻击。