CEH v11 31250 备考指南(二)

CEH v11 31250备考:枚举与社会工程

原文:annas-archive.org/md5/28d1f586e1c9996605326ebee42bc698

译者:飞龙

协议:CC BY-NC-SA 4.0

第五章:枚举

枚举非常有趣。它会导致一些我们通常不希望发生的事情。它让系统表现得异常,或者以我们无法预料的方式行为。史蒂夫·沃兹尼亚克,苹果的创始人之一,说过:“很多黑客行为其实是和别人玩,你知道,让他们做一些奇怪的事情”,这正是枚举为我们做的事情。枚举是评估任何目标的核心部分。枚举可以像对一个 IP 地址进行反向 DNS 查找那样简单,或者像对目标进行整个 OSINT 过程那样复杂。枚举目标是渗透测试中最重要的步骤之一。对网络进行枚举的目标是尽可能多地收集关于该网络的信息。这个过程通常会查看主机及其提供的服务。有了这些信息,道德黑客可以识别并利用网络中的漏洞。

在枚举网络之前,了解枚举到底是什么以及为什么它有用是非常重要的。

在这一章中,我们将涵盖以下主要内容:

  • 什么是枚举?

  • 需要了解的端口和服务

  • 通过默认值进行枚举

  • NetBIOS 枚举

  • 使用 SNMP 进行枚举

  • 通过 LDAP 进行枚举

  • 网络时间协议

  • 使用 SMTP 进行枚举

  • 黄金票证 – DNS

  • 哦,等等,还有更多!

  • 对策

开始吧!

什么是枚举?

这种技术通常在内部进行。虽然也可以通过侦察来完成,但风险略高,因为我们需要与目标机器建立主动连接,这意味着我们做的事情可能会被安全团队检测到。当用户连接到网络共享时,他们必须提供凭据。这些凭据与我们称之为访问控制列表ACL)相关联。该 ACL 包含有访问权限的用户名和组以及访问者的权限。所以,也许我们可以欺骗目标机器,获取这些信息,而无需提供我们的凭据。

我们还会查看一些服务。如果我们通过侦察和扫描技术了解某个特定服务,我们可以枚举这些服务,以获取关于操作系统之外的更多信息。这被称为空会话。许多较新的操作系统已经屏蔽了这种功能。问题是并不是每个人的系统都更新到最新版本,总有一台小机器没人监控。而且,也许你无法负担最新最强的设备,因此创建这些空会话是建立主动连接的一种方式,之后可以查询服务和/或共享资源。

当我们接触一个目标时,我们会提取诸如用户名和可能的用户组等信息。在某些情况下,我们还会获取属于该组的用户。如果我们现在还不能做到这一点,我们应该能够获取机器的名称,以及该系统可能正在运行的网络资源和服务。

再说一遍,我们可能能够提取的一些信息还包括路由表——特别是如果是像交换机或路由器之类的设备,并且还涉及审计服务。我们还会尝试暴露一些应用程序。再一次,我们应该通过扫描和侦察阶段发现这些应用程序,但通常,应用程序本身可能会暴露大量数据。此外,如果我能获取一些 DNS 和简单网络管理协议SNMP)信息,这可能会让你的生活变成一场噩梦。

现在,让我们讨论一下枚举的弱点。

我最喜欢的一些枚举弱点

当谈到枚举时,攻击者通常会寻找我们所说的低悬果实。这意味着我们会首先寻找最容易的弱点。以下是攻击者最初会瞄准的一些低悬果实。

名片

商务名片如何暴露弱点?想一想,商务名片上写的是什么?你的名字、地址和公司名称。这似乎没有透露太多信息,对吧?那么你的电子邮件地址呢?他们可能不会给你发垃圾邮件,但猜猜看?大多数公司——由于活动目录的工作方式,或者任何目录服务——会通过并创建用户名(也就是所谓的区分名),这些用户名可以用来登录到网络。我们通常认为登录就是域名*用户名*(gotham*bwayne*)。大多数目录服务技术也会接受bwayne@gotham.com。它使用的命名语法与电子邮件相关联。

作为攻击者或黑客,我至少需要两条信息来针对你:一个登录名和一个密码。如果你把名片给我,而且你能使用相同的电子邮件地址登录到你的系统,那么我就得到了你 50%的信息。我可能不需要名片,因为我可以从你公司的官网上获取你的电子邮件地址。现在害怕了吗?

Windows 组

正如我们之前提到的,这些组是由你的 IT 部门创建并维护的,并且已经分配了安全标识符SIDs)。它们包含其他对象,如用户帐户本身或 SIDs。

当用户尝试访问某个资源时,他们会提供凭证。然后,文件服务器会检查这些凭证,询问:让我看看你是否是有权限访问该文件或资源的组成员,或者是否已经明确授予访问权限。在这种情况下,我来看看"市场营销人员"组是否有权限访问这个文件或资源。 因此,我可以枚举一个 Windows 组,并说:好吧,哪些用户帐户是"市场营销人员"组的成员? 再次,我最终可以枚举你组织中每个部门的所有人。

默认密码

默认密码是我最头痛的问题之一。我明白——技术发展非常迅速,而且很多时候我们并没有深入考虑。希望能把这一点传达给每个人,包括家庭用户。我们购买了最新最好的路由器,根据说明书,按下一个按钮就能自动配置。只需点击一下,我们就能上网,而且我们很安全。嗯,可能并不完全安全。如今很多设备都带有默认密码。如果没有人更改它们,那么仅凭这些密码就很容易登录系统并进行枚举。

有一些网站专门存储默认密码。它们并没有什么恶意,只是非常方便,尤其是对于那些走进办公室的 IT 人员来说,嗯,这个 SMC 交换机的默认管理员密码是什么呢?我需要登录。

接下来,我们讨论一下你需要了解的端口和服务。

需要了解的端口和服务

让我们考虑一下你应该熟悉的端口和服务:

  • 大多数跨网络传输的 DNS 信息将使用端口53

  • 简单邮件传输协议SMTP)通常使用端口25

  • 微软 RPC 端点使用 TCP 135

  • 全局目录服务,这是一个简化版的 Active Directory,用户和应用程序经常利用它,它查询端口3286

  • NetBIOS 命名服务,通常是将计算机名称映射到 IP 地址,使用端口137,既支持 TCP 也支持 UDP。

  • LDAP 或 LDP 是 Active Directory、Open Directory 和其他各种目录服务所使用的协议。它使用 TCP 和 UDP 端口389

  • SMB,即通过 NetBIOS 的服务器消息块,是创建共享资源或共享文件夹的协议,它使用 TCP 139进行连接。

  • 我们还有 SNMP,它使用 UDP 161。另外,SMB 技术也可以使用 TCP,它将与 TCP 端口445相关联。

    注意

    了解这些服务及其运行的端口非常重要。你需要理解或记住一些不同技术所使用的端口和服务,这对你的考试非常有帮助。

所有这些服务都在日常的网络操作中被使用。如果你愿意,可以通过封锁所有这些端口,但那样的系统在线上并不会做太多事情。一个好的类比是这样说的:我理解在高速公路上驾驶的风险;我有更高的几率发生车祸。然而,我接受这些风险,知道可能发生的缺陷和情境。我会为此做准备——我会更加注意我周围的路况、我的车速、前方车距、即将到来的出口,并避免分心。如果你把它理解为正常的网络流量,关于这些端口的问题是,你需要监控这些端口上的流量。这是因为任何你未预料到的事情,都会引起警觉,表示可能有些事情正在发生在你的网络中。

通过默认设置进行枚举

这个话题让我抓狂;让我想拔掉自己的头发,想到外面有那么多人是多么天真。在 2015 年,CNN 发布了一项研究显示,90%的信用卡读卡器使用相同的密码。它是默认的密码——要么是166816,要么是z 66816。现在…不要急着跑到银行或者 ATM 机前,看看这个密码是否有效。我们并不是这个目的。关键是,存在这些类型的漏洞。

这是我们最大的安全问题,因为默认设置无处不在。我喜欢这句话:自满将是你的 downfall。我知道我们现在有大量的设备和技术在不断涌向我们——服务器、台式机、路由器、平板电脑、手机、交换机、Wi-Fi 等等。需求总是在,要求快速设置并完成。有时,我们会遇到设备以默认密码或默认用户账户被部署的问题。每个设备都有这些默认设置,因为你必须设置它们。

永远不要保留默认的用户账户或密码!绝对不要! 不要假设或说它只是一个小设备,它只是我的手机,它只是我孩子用的平板,或者只是我家的路由器。

一个朋友(好吧,也许是我,或者可能不是)在做很多旅行,并且在访问一个有亲戚的小镇时,他们去了当地的便利店取款。当他们站在 ATM 机前时,发现屏幕不是正常的 ATM 界面,而是要求输入密码,而他们还没有插入借记卡。

他们尝试了一些已知的默认代码,首先输入了1234。结果出现了错误,然后他们输入了0000,又出现了另一个错误。他们接着尝试了1212,令他们吃惊的是,屏幕上显示了 ATM 的管理界面。他们可以进入设置并进行配置测试。出于好奇,他们选择了测试。接着,他们看到另一个菜单,邀请他们测试收据,即打印收据。他们也可以测试现金分发。是的,那可能会发放现金给我的朋友。作为一名喜欢了解事物如何运作的道德黑客,他们走到前台告诉了工作人员这个情况。工作人员拔掉了插头并重新启动了 ATM,ATM 开始正常运行。

所以,要么是有人刚刚维修了 ATM 没有完全退出,要么是出现了故障。但再想想看,这里使用的默认设置以及可能带来的安全漏洞。

NetBIOS 枚举

什么是 NetBIOS?好吧,让我们带上记忆帽子,回忆一下过去的事情。NetBIOS 已经存在一段时间了,常常被误认为是一种协议。它代表的是网络基本输入输出系统,从技术上讲,它是一个程序,允许不同系统上的应用程序通过局域网相互通信。

警告

有些你看到的内容,尤其是关于 NetBIOS 的部分,可能稍微有些过时。我们会讨论为什么我们仍然要讲解它,为什么它今天仍然有意义。

它是 IBM 在早期创建的。IBM 后来将其放弃,微软则采用了它。从那时起,NetBIOS 就成为了行业标准。它在以太网中使用,如果你是老派用户,它也在令牌环中使用。如果你熟悉令牌环,我并不是在说关于霍比特人的事……NetBIOS 在我们使用 Windows 时会出现在选项中。如果我们进入网络接口的网络设置,它在“微软网络的客户端”下。在那里,你会看到一个选项,显示为文件和打印服务,我们可以在这里开启或关闭服务。

注意

记住,了解机器上有哪些应用程序以及用户能够从 U 盘上运行什么程序同样重要。

有些操作可能在较新的操作系统上无法运行,例如 Windows 7 及更高版本。然而,根据我的经验,网络上总有某个系统没有及时更新,或者是某个他们没有理由更新的系统。

你可以用来枚举 NetBIOS 的一些命令包括使用每个 Windows 系统中内置的实用程序,称为nbtstat.exe,使用nbtstat -A <目标 IP 地址> 命令。这将显示目标上运行的服务,以及组成员信息和域信息。

注意

要查看 nbtstat 的详细功能,只需在命令提示符中输入nbtstat

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_001.jpg

图 5.1 – nbtstat 命令的结果

接下来,我们将学习如何使用 SNMP 进行枚举。

使用 SNMP 进行枚举

会出什么问题呢?嗯,很多事情。小事情会导致重大事件发生。

SNMP 已存在很长一段时间,并经历了几个版本的更改。我们将深入探讨 SNMP 是什么以及为什么管理员要启用它。虽然它让我们的生活变得更轻松,但任何时候谈到易用性时,要记住技术三角。一旦我们在易用性方面实现了更大的优势,或者说从图形用户界面的角度来看,我们就会失去安全性。

什么是SNMP?它代表Simple Network Management Protocol。它的名字就是它的含义 – 一个在应用层运行的协议,允许我们管理不同的设备。无论是路由器、交换机、防火墙、无线接入点还是服务器,它们都向集中位置报告,以便我们可以管理设备,正如其名称所暗示的那样:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_002.jpg

图 5.2 – SNMP 客户端收集性能情报并向集中报告点报告

因此,管理员可以了解发生了什么。如果某个特定路由器的 CPU 负载过载,如果服务器内存被过度利用等等,管理员需要收到这些警告。除了设备外,许多操作系统,包括 Windows 和 Linux,都支持 SNMP 协议。通常,我们在这些设备上安装了代理,并且它们向管理控制台报告。管理控制台或管理站点将向代理发送请求,检索您输入并尝试监控的某些信息。

我们安装在组件上的代理和管理软件程序将进行通信,但我们不希望它们随意交谈。SNMP 实现了一点安全性,但对于安全性或缺乏安全性因素而言,这远远不够。这完全取决于您正在运行的 SNMP 版本。第一个版本非常简单,基础且极易受到 SNMP 枚举的攻击。然后他们发布了第二个版本,与第一个版本相同,只是添加了一些附加组件和增强。然而,它并不是非常安全的。

SNMP 之所以被认为不安全,是因为代理和管理软件之间使用了两种不同类型的密码进行通信。其中一种具有读取权限,而另一种具有读取和写入权限。现在,问题就出在这里。对于公共密码,即具有读取权限,意味着我的软件可以读取信息并提取 CPU 信息和整个内存信息,默认密码是 public。现在,这很巧妙,不是吗?那你永远也猜不到私有密码是什么。有时,我们将这些密码简称为社区字符串。

对于我们正在监控的大多数设备,IT 人员已经想出了一个管理用户名和密码,或者可能甚至是一个交换机、路由器或无线接入点。他们必须将其链接起来,并说,“只有这些用户允许通过,或者这些计算机允许通过”,这意味着信息被存储在那个盒子的某个地方,并且 SNMP 被设计来推断出那些信息。

然后他们推出了第三版,这是协议的最新版本。在认证和隐私领域,有很多强调。因此,我们可以选择或指定受限用户访问。我们还可以在传输数据时加密数据。这确实需要更复杂的配置,因为我们必须配置它来执行这些操作,这也是我们在这里必须有所抵抗的另一个问题。毕竟,这可能会产生一些安全漏洞。

我在这里经常看到的一个非常常见的问题是,许多 IT 人员去购买支持 SNMP 的设备。他们没有意识到,默认情况下,版本一和版本二都启用了向后兼容性。如果你一定要这样做,除非你不介意有人获取信息,否则请禁用版本一和版本二。现在,你可能会想,这样的设备可以获取什么类型的信息呢?嗯,他们可以获取相当多的信息。他们可以查看足够的信息,这会使你的网络面临风险。如果默认情况下启用了私有社区字符串,他们很容易就能够查看路由器的路由表;他们还可以更改你的配置。如果它是一个主机机器,他们也可以查看文件共享、ARP 表和流量统计信息。

我们可以在这里使用管理信息库MIB),这是一个虚拟化的数据库,提供了可以通过 SNMP 管理的网络对象的描述。它是按层次结构进行管理的,MIB 中的每个对象都用 OID(对象标识符)来描述。OID 是指对象标识符,它是一个数值名称,用于唯一标识层次结构中存在的对象。SNMP 使用它将 OID 转换为普通人类语言。

微软在服务器平台上包含了一个 MIB 列表。其中最常用的是用于 DHCP 的 MIB。它监视 DHCP 服务器和客户端之间的流量。还有一个用于 WINS 的 MIB,在撰写本文时正在被弃用。还有一个用于主机的 MIB,它帮助你监视主机资源上的资源,如 CPU、网络卡、内存和硬盘。我们还有 LNMIB,其中包含了工作站和服务器服务的不同类型的对象。

通过 LDAP 进行枚举

那么,LDAP 是什么呢?我们之所以感到它熟悉,是因为我们将它作为数据库来存储用户账户信息和关于网络的对象信息。微软在 Active Directory 中使用它,Novell 的 e-directory 也使用它,当然,苹果使用 Open Directory。现在,这项技术包含或存储我们的用户账户和计算机账户。从 Active Directory 的角度来看,它包含/存储与我们的微软平台相关的所有内容。

有些人认为微软从 Novell 那里窃取了这项技术,但 LDAP 是一个开放标准。Novell 首先用 e-directory 实现了它,微软随后使用他们的实现,称为 Active Directory。由于这些是开放标准,所以它们的名称和语法有很多相似之处。

现在,完全披露…我不是很喜欢苹果,但苹果的 Open Directory 也是 LDAP 的另一种实现。它们在那里使用 LDAP,包括一个苹果密码服务器,还使用 Kerberos 5。技术上来说,它是一种我们称之为开放 LDAP 的形式,这是 LDAP 的一个开源实现。它是平台独立的。Linux、Solaris、Microsoft、HP、HP UX 和 Android 都使用 LDAP。

理解 LDAP

让我们来看一下 LDAP 背后的内容。这里有一些被称为目录系统代理DSA)的端口。客户端通过连接到 LDAP 服务器,使用这些端口启动 LDAP 会话。默认情况下,这个端口在 TCP 和 UDP 389上。如果它们恰好使用 SSL,则实际上是在使用 LDAP,它是在端口636上运行的。

还有一个叫做全局目录的服务,它只是完整数据库的一个精简版本。当你打开电子邮件客户端(如 Outlook)并点击我想创建一封新邮件,然后点击收件人框时,Outlook 通过 Exchange 查询全局目录服务器,并推导出一些基本信息,如用户名和电子邮件地址。

默认情况下,这些端口设置为通过 TCP 和 UDP 3268进行通信。同样,如果你使用任何类型的加密,它是在端口3269上完成的。

该结构技术上是基于所谓的 X 500 模型,这个模型已经存在了很长时间。我们在这里的意思是,由于这个数据库基于这个模型,所以它包含了所谓的类。

类是一种查看对象的方式。例如,我可以有一个表示用户的类,再有一个表示群组的类,还有一个表示计算机的类。你明白我说的意思吗?类代表对象。每个类都有自己的一组属性。例如,在用户类中,属性包括名字、姓氏、城市、州和邮政编码。这些类、属性和对象可以通过使用我们称之为唯一标识符或区别名称的方式,在 LDAP 环境中找到。

一个区分名非常独特;每个对象都必须是它自己的实体;你不能有重复的对象。所以,在一个名为Bruce Wayne的用户,属于Gotham.com域的情况下,他的区分名或唯一标识符会列出为cn=Bruce Wayne,dc=gotham,dc=com。在区分名中,cn代表常用名称,dc代表域组件。你也会经常看到ou,它代表组织单位。因此,如果最后一个dc是城市,那么它将表示为gotham.com或哥谭市。你必须理解区分名,尤其是在开始枚举以查找它们的位置时。

我们可以从 LDAP 学到什么?

很多,因为你大部分时间都可以匿名查询 LDAP 服务器。

注意

好的 IT 人员会确保你无法匿名访问域控制器,但当你考虑到域控制器时,它们是用来请求认证的。因此,通常会允许匿名访问。

我们可以找到的一些内容包括组名称。当我们看到这些组名称时,可以推测出属于该组的用户。我甚至可以调出个别用户。现在,由于我可以调出这些名称,我还应该能够检查帐户信息,比如与这些对象相关的其他属性、城市的州、邮政编码、登录时间和密码重置阈值。再次强调,大多数属性都可以很容易查看。

我们还可以查看系统名称,这就是我回到命名系统的地方——确保你不会泄露它们是什么。我知道我已经展示了我的环境,其中有 Batcave DC1,你可以看出它是一个域控制器。然而,如果这是我公司实际的生产环境,我绝对不会做出这样的命名。然而,仍然通过 LDAP 枚举,我可以轻松确定哪个机器是域控制器。

使用像 JXplore 和 Hyena(图 5.3)这样的工具,我可以调出 Active Directory 模式(布局,尽管你可以将其视为一个列出属性和类的 Excel 表格)。我不仅应该能看到模式,还能看到类。因此,我应该能够深入了解用户帐户、组帐户、服务器名称等:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_003.jpg

图 5.3 – 来自 Hyena 的 Active Directory 基础架构结果

接下来我们将讨论网络时间协议。

网络时间协议

好吧,猜猜看?我们可以使用时间进行枚举!有一种协议是我们的计算机用来同步彼此时间的,叫做网络时间协议NTP)。现在,你可能在想,Dale,你不可能有关于这个的名言吧。嗯,再想想吧。Cindy Lauper 曾经说过,If you’re lost, you can look and you will find me, time after time(如果你迷路了,你可以看一眼,你会一直找到我)。在黑客攻击中,你意想不到的事情最终会泄露信息。

NTP 是我们用来同步局域网内所有系统时钟的协议。这个协议已经存在几十年,最早由 David Mills 于 1981 年开发。在域环境中,最重要的设置之一就是时间,所有计算机需要保持在一个特定的时间范围内。例如,在 Microsoft 环境中,计算机或桌面设备之间的时间差不能超过 5 分钟。技术上讲,域控制器使用 NTP 并且采用被称为协调世界时UTC)的时间标准。

UTC 独立于时区,使得 NTP 可以在世界任何地方使用,无论时区设置如何。这就是为什么无论你是在山地标准时间(MST)还是东部时间(EST),它都能够跟得上。在典型的 Microsoft 环境中,会有一台计算机被指定为整个域的 NTP 服务器,称为 PDC 模拟器,它也是最灵活的单一主控操作FSMO)角色之一。它是负责时间同步的机器,时间来源于 BIOS 时钟,这是默认的设置。Microsoft 的最佳实践是让 PDC 模拟器服务器与互联网中的原子钟同步。所有这些通信都发生在一个特定的端口,即 UDP 端口123。这个端口必须确保是开放的,这样所有的域控制器才能与 PDC 模拟器进行同步,且所有域成员的服务器和工作站都会与某个域控制器同步。

你需要确保 UDP 的123端口是可访问的。在域中,时间同步会在系统启动时由 Windows 时间服务器启动时进行,每当系统运行时也会定期同步。NTP 本身非常准确。当我说非常准确时,这取决于它同步的网络。如果是私有网络,它可以将机器同步到彼此之间的时间误差不超过 200 微秒。而在公共网络中,速度会稍微慢一些,但仍然能保持在 10 毫秒以内。

现在,这些相互同步时间的计算机会暴露给我们用于枚举的接口。那么我们能从 NTP 中学到什么呢?我们可以做很多事情,包括从 NTP 服务器中拉取主机列表,因为它们都会向 NTP 服务器报告以确保时间同步。会有一些残留信息列出主机名,通过这些信息我们也应该能够获取到 IP 地址。我们甚至可能能够提取出系统名称,甚至看到操作系统的显示信息。

使用基本的 NTP 命令,我们应该能够追踪 NTP 服务器的链条,查询 NTP 守护进程及其当前状态,并监控 NTP 守护进程。NTP 攻击主要是基于拒绝服务DoS)来对组织造成破坏。

使用 SMTP 枚举

谁会想到一个我们日常生活中使用的简单协议,比如 SMTP,竟然能揭示出如此多关于网络的信息?几年前,在 Blackhat 大会上,一件著名的 T 恤开始流行。大多数人没有理解它的意思。它上面写着:我读过你的邮件。

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_004.jpg

图 5.4 – 我在 Blackhat 上的“我读过你的邮件”T 恤

这确实是这样。通常,电子邮件是以明文传输的,这意味着信息是可以阅读的。当电子邮件服务器相互通信时,它们还通过 SMTP 协议传递信息,而 SMTP 协议可以用来进一步枚举你的网络。

这么做的目的并不一定是为了阅读他人的电子邮件,尽管那样可以揭示出很多信息。更多的是在查看我们所说的电子邮件头部信息,这是邮件在传输过程中附加到邮件开头的内容,它暴露了不少信息。

那么,SMTP 是什么?它只是我们用来在电子邮件服务器之间以及跨互联网传递电子邮件的协议。它利用一种叫做存储转发的过程,这意味着 SMTP 协议将你的邮件在网络中传输。它使用 DNS 查找一种特定类型的记录,称为 MX 记录,以便确定需要转发或存储邮件的服务器。它还与邮件传输代理MTA)密切配合,确保邮件发送到正确的计算机和电子邮件收件箱。SMTP 指导你的邮件如何从计算机的 MTA 传送到另一台计算机的 MTA,甚至可能是几台计算机的 MTA。

我知道这有点混乱,但由于这一切都发生在后台,我们不需要担心它。一旦邮件进入我们的网络基础设施,我们通常会使用其他类型的协议。例如,我们可能会使用 POP、IMAP 或 MAPI 在内部传递邮件。然而,在外部,即互联网上,SMTP 才是“大佬”。SMTP 使用几个端口,包括端口25和端口587来进行提交。

一些命令在服务器之间进行,以便通信和传递电子邮件。有一组代码可以帮助简化这些通信。当你发送电子邮件时,邮件会被转换成由这些代码单词(及其数字)分隔的文本字符串,这些代码单词用来标识每个传输部分的目的。

通常,只有其他 SMTP 服务器知道这些命令是什么,因为邮件在传输过程中朝着目的地前进。有时,邮件会经过几台计算机以及它们各自的 MTA。它也可能会暂时存储,之后再传递到路径中的下一台计算机。

这些命令中的一些包括指定发件人的电子邮件地址。此命令还告诉 SMTP 服务器一封新邮件即将开始,并使这些 SMTP 服务器重置所有状态和缓冲区。还有一个回执发送给邮件的收件人。还有数据命令,用于开始传输邮件本身。它通常会接收附件和正文文本。一旦 SMTP 服务器发送邮件,它会等待一个特定的代码来验证目标服务器是否收到了邮件。此验证通常通过一个叫做250 回复代码来完成,表示一切正常。还有一个验证命令,它要求服务器确认或验证某个特定的用户名或邮箱是否存在。

如果你开始像我教你思考那样思考,想想看那个命令对你有何帮助。你可以使用这些命令来探测服务器上的登录名以及可能的用户组。

忽略verify命令的服务器通常会发送某种类型的回复,但不会发送客户端所请求的信息。然而,事实是,不论是“是”还是“否”,都能提供相当多的数据。

我们还有expanded命令,它与verify命令类似,但在邮件列表的情况下,它显示该邮件列表的所有成员。SMTP 的expand命令使已发送的邮件扩展到所有收件人,并确保每个收件人都能收到那些最初在数据部分中的邮件信息。

知道这些,SMTP 能告诉我们什么呢?嗯,我们可以从互联网上下载一份名称列表。这份列表可能用于验证网络中哪些用户是有效的,哪些不是。这也是许多垃圾邮件发送者清理其垃圾邮件列表的方式。它还可以帮助我暴露一个可能的目标,确保它是一个有效的登录名。

接下来,我们将讨论 DNS 枚举。

黄金票据 – DNS

在枚举方面,你能做的一件最有启发性的事情就是一次性获取网络上所有计算机的名称和 IP 地址。我们可以通过 DNS 枚举来做到这一点。DNS 负责将名称转换为 IP 地址。名字代表什么? 威廉·莎士比亚会问。好吧,在这个情况下,名字代表了一切,因为 DNS 为我提供的信息可以揭示大量内容。我可以看到服务器名称、提供的服务,必要时还可以识别域控制器,以及网站或 SQL 服务器。

计算机在确定事物位置时,大部分网络连接是通过 DNS 来处理的。如果我能列举出这些内容,我就能获取大量信息:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_005.jpg

图 5.5 – 与已安装服务相关的 DNS 记录

如您所见,我们有192.168.0.1,它解析到计算机名称NYC-DC1。它恰好在运行 LDAP。通过这个信息,我可以知道,当我尝试登录到域环境时,我需要找到一个 LDAP 服务器。它还告诉我 LDAP 服务器等于NY-DC1,而NY-DC1又等于一个 IP 地址,我可以与它建立连接。在底部条目中,192.168.0.2,它告诉我这是一个名为NY-DNS1的服务器,它是我的授权起始SoA)服务器。

通过枚举,我们可以浏览并查找记录,识别哪些记录与哪些计算机注册。我们还可以做一种叫做缓存嗅探的操作。缓存嗅探是指 DNS 服务器为客户端计算机解析名称到 IP 地址的过程。例如,如果我说我想访问www.yahoo.com,我可以将该条目提交给 DNS 服务器,它将解析并获取 IP 地址,再将结果返回给我。这些信息会存储在我计算机的缓存内。如果我能嗅探到这个缓存,尤其是针对内部 DNS 服务器,我就能看到哪些计算机名称已经被该服务器解析。我们还可以使用 Google 查询。如果我能够通过 Google 的 DNS 服务器进行枚举,可能会发现很多关于您的基础设施的信息,特别是如果您有子域名的话。

反向查找

我们还具备反向查找功能。当进行正常的域名解析时,我们有一个域名。例如,我尝试访问yahoo.com,然后从 DNS 服务器获得一个 IP 地址。反向查找则是相反的过程,我们拥有一个 IP 地址,想要知道与该 IP 地址关联的域名。我有一个 IP 地址192.168.0.1,但我不知道它对应的计算机名称是什么。这个反向查找是通过所谓的指针记录来完成的,我们可以对 IPv4 或 IPv6 地址进行反向查找。我们还可以进行区域传送。区域传送并不难理解。这是一种技术,帮助我们揭示内部记录,前提是该区域没有被正确配置。我们可以询问,您背后有哪些子域名?这可以通过列举区域内容帮助我们绘制网络主机映射。

区域传送

这就是大坏蛋。如果我能控制你的 DNS 服务器,注意了——我将会乐得不行。当我教授微软服务器平台时,我会讲解如何设置 DNS 服务器。我们所做的一件事是设置一个 DNS 服务器,只与另一个次级 DNS 服务器进行复制。我们要确保它只与那个次级 DNS 服务器进行复制。这样做的原因是,如果设置不正确,攻击者会试图联系你的 DNS 服务器,要求说,嘿,你能和我复制一下并告诉我你有哪些记录吗?因为我的数据库里没有任何记录。现在,我就能完整地掌握你的环境记录,包括 MX 记录、主机名和其他各种记录。这可以帮助我做一件事,叫做DNS 污染,就是将无效的记录插入你的 DNS 区域。

DNS 记录

那么,DNS 背后是什么呢?我们知道,它本身是一个包含计算机名称及其 IP 地址的数据库。它通过 UDP 53端口和 TCP 53端口运行。通常,我们使用 UDP 端口53来执行标准查询,比如嘿,我需要获取 yahoo.com 的 IP 地址,而区域传输通常通过 TCP 端口53完成。我们使用 UDP 的原因是它具有更快的解析速度。接下来,我们将详细查看一些记录。

A 记录

到目前为止,我们提到的数据库本身由多个记录组成,这些记录指向 IP 地址,帮助识别这些名称,且在某些情况下,还包括正在运行的服务。其中一项记录是A记录,或者正如加拿大人所说的,a record, eh? 它就是将主机名解析为 IP 地址。

AAAA 记录

这些与A记录是一样的,只不过它们指向的是 IPv6 记录,而不是 IPv4 地址。

旁注

Fonz 是AAAA记录的超级粉丝。AAAAAAY!好了,对于年轻的朋友们,如果你们不知道这个梗是什么,赶快去 Google 一下——《快乐时光》,The Fonz。

CNAME 记录

CNAME记录是指向另一个A记录的别名。例如,我的A记录或AAAA记录可能是batcave,并指向一个 IP 地址,但也许我有一个不同的名字,指向同一台计算机,我叫它www。因此,无论是输入www还是batcave,它们都会指向同一个 IP 地址/位置。所以,CNAME记录指向的是A记录的引用。

MX 记录

接下来,我们有MX记录。不是指摩托越野,而是邮件交换记录。它帮助我们识别负责发送和接收电子邮件的服务器。

NS 记录

我们还有NS,即名称服务器。嘿,名称服务器!如果攻击者能找到这些记录,那就是我想要枚举的 DNS 服务器的 IP 地址。这是一次重要的收获。

SOA 记录

我们还有SOA记录,这是主 DNS 服务器。这是我也想获得并查看是否能进行区域传输的另一个记录。

PTR 记录

我们还有PTR记录,也叫做指针记录。同样,这是反向查找,所以如果我们只有一个 IP 地址,而不知道计算机名,或者不知道主机名是什么,如果我能进行反向查找,我就能推断出这些信息。

SRV 记录

然后,我们有一个叫做SRV记录的东西,或者叫服务记录。这些服务记录记录了哪些服务正在某台机器上运行。例如,在一个微软 Exchange 环境中,如果我打开 Outlook,创建一封新邮件,然后点击我那个小小的收件人按钮,我会看到我公司所有电子邮件地址的长长列表:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_05_006.jpg

图 5.6 – 由全局目录服务器填充的全球通讯录

其实发生的事情是,我的计算机去查看了 DNS,找到网络中提供全局目录服务的计算机。它识别、联系、解析,并将电子邮件地址信息返回给我。

总结一下

那么,我们能从 DNS 中学到什么呢?各位,这可是藏宝图——它是枚举的秘密宝藏。因为,一次性,我可以找出你网络中每一台计算机的名称、它们的 IP 地址和它们运行的服务,这些都帮助我确定可能存在的漏洞,作为攻击点。现在,我们也可以获取,如我之前提到的,服务器名称和工作站。信不信由你,有时候,IT 人员会用工作站来,例如,监控网络流量。我想知道那台设备是什么,最好是为了避免它。我还应该能看到哪些服务在什么服务器上运行。同样,我可以找到一个 LDAP 服务器,它将是我的域控制器,这样我就能找到全局目录服务器或 Kerberos 服务器。一旦我列出了你所有的域控制器,我就会回到之前说过的(记得我们谈过 NetBIOS 枚举吗?),看看是否能发现使用的操作系统。如果是 2012 服务器,我会内心兴奋,因为那是一个较旧的操作系统,可能没有打补丁,或者微软已经停止支持它了。

哦等等,还有更多!

我们可以通过更多方式进行枚举;它不限于 Windows 平台,几乎适用于所有设备,没一个是安全的。当朋友和家人告诉我他们感觉很安全,因为他们不使用 Windows,而是使用 Linux 或某个版本的 Unix 时,我总是忍不住笑出声。但这里有个不为人知的秘密:如果涉及到某个协议,你就不安全!如果你认为某个操作系统或设备是安全的,那你就大错特错。各种类型的设备都可以遭遇攻击,无论是 Linux 主机、Unix 主机、Cisco 路由器等等。在他们某个旧的营销活动中,苹果曾吹嘘自己没有病毒——不会感染恶意软件。今天,他们知道得更清楚了。在 1995 年的间谍电影《黄金眼》中,一个叫 Boris Grishenko 的黑客每当发现新线索时都会喊:“我无敌!”电影接近尾声时——剧透警告——他遭遇了一些不愉快的事情。今天,一些操作系统也是如此,让我们有种“无敌”的错觉。

IPsec

IPsec 是一种常见的技术,广泛应用于网关到网关、局域网到局域网,甚至基于 VPN 的企业环境。大多数基于 IPsec 的 VPN 使用 Internet Security Association Key Management ProtocolISAKMP)。它用于建立、协商、修改和删除 SA 以及 VPN 环境中的加密密钥。

那么,从黑客的角度来看,这需要什么呢?其实很简单。攻击者可以执行一个简单的直接扫描,寻找使用 UDP 端口 500 的 ISAKMP 协议。我们可以在这里使用像 Nmap 这样的工具。

VoIP 枚举

这是一个有趣的枚举。VoIP 正在替代企业和家庭环境中的大部分传统电话服务。整体概念是 VoIP 利用你的网络或互联网接入,并通过 Session Initiation ProtocolSIP)执行语音通话、视频通话等操作。

SIP 使用 UDP 或 TCP 端口 2000200150505061。有一些工具可以用来枚举 VoIP。Metasploit 自带一些工具,也有像 SIPvicious 这样的工具,它是一个审计工具,可以通过执行邀请扫描来扫描电话系统。当然,攻击者可以将这个 邀请扫描通话命令 结合起来,找出连接到特定电话主机或 PBX 网络时使用的弱密码。另一个流行的工具是 svmap,它是一个免费的开源扫描工具,我们用它来识别特定网络上的不同 SIP 设备和 PBX 服务器。

如果你跳出框框思考,考虑这些不同的 VoIP 解决方案以及它们可能通过互联网传输的信息,你可能会开始考虑进行一些 Google 黑客攻击。

使用远程过程调用(RPC)进行枚举

RPC 是我们用来创建分布式客户端-服务器程序的技术。它允许客户端和服务器通过这些程序进行通信。

如果你愿意,可以启动 Kali 并使用 Nmap。你使用的命令是nmap -p 135。然后,你需要指定目标机器。在我们的例子中,它将是192.168.01-254。如果你怀疑某一台特定的目标机器,可以直接输入目标机器的完整 IP 地址。

对策

对策旨在通过防止攻击发生或在攻击发生时检测出来,从而保护网络或系统免受攻击。这使得安全专业人员能够采取纠正措施,确保他们的系统保持安全。对策必须引起重视,因为一旦攻击者枚举了网络,渗透系统就变得容易得多。

默认设置和 NetBIOS

关于默认设置,我们指的是默认配置——无论是 NetBIOS 的默认设置,还是无线接入点的默认设置,或是 SQL 数据库的默认设置。规则是:不要通过保留默认的用户名、密码或设置而制造安全漏洞。更改它们。例如,我经常通过远程桌面进入我的服务器,但我不使用默认端口。我已经更改了端口。同样,要注意你的端口。当然,有些端口是无法更改的。比如 DNS 端口,除非我实现像 Windows Server 平台上的套接字池这种功能,它能够随机化端口,但那是另一本书的内容。

同时,如果你不希望某台机器上的共享对用户可访问,那就关闭服务器消息块(SMB)。不过,你不会想对文件服务器执行此操作。

SNMP

就 SNMP 的对策而言,记住这是一个允许我们监控和管理网络设备及服务器的协议。如果你不需要它,就关闭它。如果你打算启用它,至少确保使用版本 3,因为它具有更好的安全性。

另一个你可以在 Windows Server 平台上执行的操作是使用组策略,这可以让我们控制服务器上的设置。我还建议查看匿名连接的附加限制。如果你有任何旧的服务器,应该将它们锁定(求求你,赶紧更新它们)。同时,阻止161 端口,包括 TCP 和 UDP。

或者,如果你仍然需要使用 SNMP,可以进入你的防火墙规则并允许161 端口开放,但仅限于特定的机器,这可能是你的监控服务器。这也回到了关于 SNMP 的问题——不要在你不会使用它的设备上安装代理。你不必监控每一台设备。如果你打算启用它,可能需要关注的一个方面是实施 IPsec 过滤,这样就能加密代理和服务器监控器之间的通信。当然,要非常小心那些厂商提出的快速修复方案,告诉你需要开放空会话,因为空会话可能非常危险。

LDAP

LDAP 是我们用来认证用户、存储用户帐户和对象的协议,至少从微软的角度来看是这样。其他 LDAP 服务包括 Open LDAP 和其他一些,但它们都使用相同的协议。

你需要做的一件事是将电子邮件地址与登录名分开使用。顺便提一下,不要使用默认值,通常默认值是登录名,而登录名就是他们的电子邮件地址。为什么呢?因为作为攻击者,我会访问你的网站,查看是否列出了你公司高管或员工的电子邮件地址。然后我会逐一尝试这些作为网络中的登录名。让人吃惊的是,仍然有很多公司使用电子邮件地址模式作为登录名。

注意

如果你不确定这一点,可以对着你的电脑做个三指敬礼(Ctrl + Alt + Delete)然后注销。现在,如果我的登录名通常是Bwayne,我的域名是gotham.com,那么如果我用bwayne@gotham.com作为登录名并且能够正常工作,你可能需要重新考虑你的活动目录环境!

现在,你可能还需要记住,LDAP 流量在网络上传输时是不加密的。因此,我们可能需要考虑使用 SSL 来加密我们的流量。另一个我非常推荐的做法是使用加密硬盘存储 LDAP 数据库,采用 BitLocker,这是一个很好的解决方案。全盘加密或其他硬盘加密技术是确保如果有人物理接触到它,他们无法访问其中信息的好方法。而且,嘿,BitLocker 是免费的!#加分项。

网络时间协议(NTP)

网络上的所有计算机都从一个集中位置获取时间。这取决于你使用的是 Windows 产品,还是可能使用 Cisco 路由器作为你的 NTP 服务器,或者 Juniper 设备,因为 Windows 不使用 NTP 协议。这意味着它不会受到现有的 NTP 漏洞的影响,但它也有自己的问题。

关于 NTP,确保你监控好你的端口。记住,默认端口是123,很容易记住。你还需要了解安装了什么软件,或者有哪些补丁被应用,尤其是对于这些硬件设备。有时候,我们安装软件时,它会在我们不知情的情况下打开端口,因为它们可能需要使用 NTP 协议。当然,使用我们之前谈到的命令检查你自己的 NTP 主机,以便了解正在暴露哪些信息。

简单邮件传输协议(SMTP)

我们想做的一件事是确保已禁用开放中继。对于大多数邮件服务器,开放中继通常已经关闭。其实很有意思,因为在过去,它们是开启的,以方便用户。但如果你了解技术三角形的原理,你会发现当我们让事情变得更简单时,往往也会打开更多的安全漏洞。此外,要丢弃未知的收件人。同样,大多数处理电子邮件的产品会进行反向查找。它们会查看电子邮件的头部,那里总是会显示邮件来源的 IP 地址,然后它会进行 DNS 反向查找。如果没有匹配项,它会将其丢弃。

DNS

DNS 是我们的名称服务器——它负责将计算机名称解析为 IP 地址。因此,首先,我们需要将 DNS 区域传输配置为发送到特定或明确的服务器。同时,请确保您不希望向外界公开的计算机主机名,在您的 DNS 区域文件中没有被引用到 IP 地址。

当你检查 DNS 区域文件时——也就是说,你知道数据库中列出了哪些名称——请确保检查内部和外部 DNS 服务器。我见过一些情况,IT 人员将内部数据库直接复制到外部 DNS 服务器,只是为了方便自己。

看在上帝的份上,有一种叫做 HINFO 的 DNS 记录,它指定了服务器的 CPU 类型和操作系统。最初它是为了让像 FTP 这样的应用程序在与已知 CPU 或操作系统的服务器通信时使用特定进程而设计的。但是想一想,如果这是一个可以从外部访问的文件,告诉你服务器的名称和操作系统,那么你今天就不太可能有个好日子。

总结

在本章中,我们介绍了许多枚举目标网络的方法。这些方法中的一些,实际上是由于网络和互联网设计时的工作方式造成的。从像 LDAP 和 NTP 这样的协议,到像 NetBIOS 和 DNS 这样的服务,存在很多需要注意的事项。再说一次,记住我之前教给你们的:你不能阻止攻击者——你只能拖慢他们的速度。不要因为不能解决其中的一些问题而气馁。相反,要意识到它们的存在,并密切监控。

在下一章中,我们将探讨攻击者如何在我们的基础设施中发现漏洞,以及我们如何通过使用相同的技术,提前一步保护我们的系统安全。

问题

总结时,这里有一些问题供你测试自己对本章内容的掌握情况。你可以在 附录 中的 评估 部分找到答案:

  1. 以下哪项最能描述枚举?

    1. 用户和机器名称识别

    2. 破解密码

    3. 路由器和防火墙识别

    4. 活跃网络系统识别

  2. SMTP 执行的是哪项功能?

    1. 传输状态信息

    2. 网络设备监控

    3. 文件传输

    4. 发送电子邮件消息

  3. 要查看 NetBIOS 信息,应该使用什么命令?

    1. Nmap

    2. netstat

    3. nbtstat

    4. telnet

  4. __________ 用于同步网络中的时钟。

    1. SAM

    2. NTP

    3. NetBIOS

    4. FTP

第六章:漏洞分析

漏洞管理是使用工具、流程和知识来减少与 IT 系统相关的风险的过程。它包括整个生命周期,从最初发现漏洞到报告漏洞,根据业务需求对其进行优先级排序,通过软件或程序变更进行修复,验证漏洞已被修复,并记录经验教训以便将来参考。

请注意,漏洞管理不是一次性事件。它是一个持续的过程,需要定期回顾。新的漏洞不断被发现,旧的漏洞被修复或变得不相关。你需要确保系统始终保持最新状态,并确保你的补丁是最新的。

在这一章中,我们将涵盖以下内容:

  • 漏洞分析——从哪里开始

  • 漏洞分类

  • 生命周期

  • 持续扫描与监控

让我们深入探讨吧!

漏洞分析——从哪里开始

漏洞评估是对信息系统中安全弱点的系统性审查。具体来说,它会查找计算机系统、应用程序和网络基础设施中的漏洞。它评估系统是否容易受到任何已知漏洞的影响,给这些漏洞分配严重性级别,并在需要时推荐修复措施。

漏洞评估还为组织提供了必要的知识、意识和风险背景,以便理解并应对对其环境的威胁。

漏洞分类

漏洞可以分为以下几类:

  • 配置错误:我总是强调这一点,因为它是最常见的漏洞之一。配置错误是由人为失误引起的,它使攻击者能够未经授权访问你的系统。配置错误有多种类型,因为它可能发生在应用平台、数据库、网络本身甚至是 Web 服务器上。配置错误可能是因为某人忘记更新应用程序或数据库,禁用了所需的安全设置或某些功能,或者他们错误地设置了权限或错误配置了 SSL 证书。

  • 默认安装漏洞:这些漏洞通常发生在我们在安装过程中点击下一步选项时。我理解,有时这种情况确实发生。当我们安装一个应用程序,而攻击者和其他人都预期它会出现在某个位置,并使用相同的目录结构时,这可能会造成漏洞。

  • 缓冲区溢出:这些是常见的软件漏洞,通常由于编码错误导致。通常发生的情况是,攻击者通过写入超出分配的缓冲区大小的内容来破坏程序的功能,试图控制系统。如果你超载缓冲区,就会创建一个漏洞,这可能导致系统崩溃、系统不稳定,甚至允许一些程序执行它们平时不会做的事情。

  • 服务器操作系统:如果没有适当修补服务器的操作系统OS),可能会导致漏洞。攻击者总是会寻找或扫描服务器,看它们是否使用最新的操作系统补丁。

  • 设计缺陷:这些缺陷通常是由于加密不正确或数据验证过程不当引起的;可能是在通信或应用程序的后台,甚至是网络基础设施本身的设计缺陷。

  • 操作系统缺陷:我知道你在想什么,答案是否定的,这不仅限于 Windows。Linux 可能比微软修复了更多的补丁。但正是因为这些缺陷,攻击者才能利用木马、蠕虫,甚至病毒攻击这些机器。所以再次强调,及时打补丁是关键。

  • 应用程序缺陷:研究你的应用程序或任何主流产品,了解与你的应用程序相关的缺陷。你还需要及时得知这些缺陷何时发生或被发现。因此,要保持应用程序更新和最新。

  • 开放服务和端口:我们常常安装一些软件,它会打开端口或启动一些我们可能在该产品或应用中并不使用的服务或功能。那么,为什么要保持这些端口开放呢?安全专家需要时刻保持警觉,扫描网络或系统,寻找任何不必要的或不安全的服务或端口。

  • 默认密码:每次看到有人继续在设备、软件或操作系统上使用默认密码时,我都忍不住笑。这些是漏洞的原因在于,如果有人只是想安装应用程序,他们只需要点击“下一步”并使用默认设置,而这些默认设置中包含了默认密码。他们会想,“哦,我稍后再改”,然后就忘记了,或者项目被放弃,或者他们被解雇,或是其他人接手了。不管什么情况,这些默认密码都将成为我们头疼的问题。所以,请帮个忙,在安装应用程序时确保将密码保密。

现在我们已经确定了潜在的漏洞区域,让我们看看你应该使用哪些漏洞评估方法。

漏洞管理计划(VMP)的好处

一些公司跳过使用漏洞管理程序(VMP)的原因之一是,他们通常认为他们当前使用的设备或服务已经在保护他们。然而,我们必须记住,防火墙严格执行它应当做的工作,即根据端口或协议的使用情况来允许或拒绝连接。抗病毒程序也是一样,它会扫描我们系统中的文档或文件,确保它们没有被感染。我们可能还会有入侵检测系统,但同样,它仅仅是在寻找活跃的连接。

然而,VMP 会检查网络设备、服务器、工作站和移动设备,找出需要修复或修补的弱点。希望他们在发生泄露之前就已经进行修复。每周大约有 100 个漏洞被公布,因此你组织的网络安全性仅取决于其最近的漏洞评估。

阻碍组织使用 VMP 的一个问题是,漏洞扫描和报告以及修复过程可能会令人不堪重负。然而,如果你从另一个角度看待这个问题,如果你的团队掌握了修复过程和扫描,那么这些报告将不再令人畏惧,因为你会对事情更加掌控。

一个持续的 VMP 过程结合适当的修复过程,将帮助你确保网络的极高安全性,并能够抵御最新的攻击。

以下是 VMP 的一些好处:

  • VMP 可以帮助识别需要修复或修补的风险。如果我们彻底监控活动,我们将获得关于网络中系统的更多信息。这使我们能够将扫描报告中列出的不同节点或系统进行上下文化分析。这样,我们可以更好地评估哪些问题需要修复、何时修复以及如何修复。它们还可以帮助我们区分哪些风险是极其紧迫的,而哪些则不那么重要。

  • 时间就是金钱。有些人认为执行漏洞扫描和修复过程需要花费太多时间。他们忘记了要将这与他们花费大量时间修复那些被发现得太晚的巨大风险,或者更糟的是,处理因为环境中发生某种泄露事件而带来的负面舆论相比。这些报告以及监控正在发生的情况表明,这其实是一个巨大的节省时间的方式。它能避免你每晚和每个周末都在加班修复问题,因为泄露事件正在发生,你试图修复漏洞。

如果公司或组织有效地管理其漏洞,它将花费很少的时间来监控其系统。当检测到风险时,通常可以迅速且轻松地修复。它还可以避免你在短时间内做大量工作,因为你的系统和网络是安全的,且是最新的。

  • 它提高了安全性。管理漏洞的组织将其视为一个过程,而不仅仅是一次性活动。那些持续监控环境,确保他们领先于攻击者和潜在威胁的组织,维护了一个更安全的环境。

  • 它节省了金钱。实施 VMP 的最大好处可能就是节省了你遭受昂贵攻击的风险。我们经常看到公司因遭受攻击而登上新闻,他们最终面临来自多个领域的巨大成本。他们不仅需要支付人员来控制局面,还可能突然需要升级系统或更换不同的组件。当然,我们不能忘记由于遭受攻击而可能产生的诉讼。

在 21 世纪初我周游世界,为政府机构和 500 强公司进行不同的研讨会和培训课程时,这样的对话会发生。我会听到 IT 人员说他们无法获得升级操作系统或系统的预算,因为没有人认为这很重要,或者他们可以应付过去。现在情况已经不同了。我很多客户(希望你也是)将改变他们的思维方式。

请让你的首席财务官或首席技术官知道你有两个选择:现在支付升级费用,而不是在出现关键问题或遭受攻击时支付更多费用。我认为这是我们需要接受的新思维方式或新常态。问题不在于你何时遭受攻击,而在于何时遭受攻击。

与其对出现的问题做出反应,不如主动预防。如果你认识我或之前参加过我的课程,你会知道我是主动预防的忠实拥护者。

现在,让我们谈谈漏洞评估的类型。

漏洞评估

漏洞评估让你检查应用程序或系统的能力 - 包括当前的安全程序和控制 - 抵御任何类型的攻击。

以下是拥有良好漏洞评估流程的一些优势:

  • 它应该识别、衡量,然后对漏洞进行分类。然后,根据报告,作为安全专业人员,你将了解如何加强安全措施。

  • 在漏洞评估期间,你应该能够识别弱点,并根据其重要性和严重性对其进行分类。你还需要根据设备类型和/或使用的通信渠道对其进行分类。

  • 它应该为你提供额外的安全措施或确定你需要做些什么来修复这些弱点。

  • 它应该能够基于网络扫描漏洞。

  • 它应该能够识别开放端口。你会在这里看到很多交叉点,因为评估应该能够识别正在运行的服务、不必要的服务以及任何应用程序弱点。漏洞管理产品将帮助你识别那些未更新或需要更新的应用程序。

  • 它应该能够识别任何服务的弱点。如果服务正在运行,我们需要确保该服务本身是安全的。通常,它会识别那些未打补丁或由于设计缺陷而存在问题的服务。

  • 它应该帮助我们识别配置错误,并显示出那些密码弱、没有密码或者多年来从未更改密码的账户。

现在,让我们来看一下可供我们使用的不同类型的漏洞评估。

漏洞评估类型

你可以运行不同类型的漏洞评估,包括以下几种:

  • 主动评估:这些通常是我们使用网络扫描器扫描网络,以识别主机、这些主机上的任何漏洞、所有不同的节点和服务——网络上所有的东西。主动网络扫描器可以减少它们执行检查时的侵入性。因此,你可以将它们设定为非常响亮,或者非常安静,甚至可以做到隐蔽。

  • 被动评估:这是我们嗅探流量的方式。所以,我们并不针对特定目标,而是通过查看流量来识别是否可以发现活动的系统、服务或应用程序,然后尝试确定存在的漏洞。由于我们在嗅探流量,我们还应该能够获取当前在网络上的用户列表。

  • 外部评估:外部评估是道德黑客使用的众多方法之一。外部评估意味着评估是在互联网上进行的,通常从端口扫描或其他形式的网络映射开始。

外部评估的主要目标是定位组织的公共网页和服务中的漏洞(如果存在的话)。一旦定位到这些漏洞,就必须进行内部评估以加以利用。

关于外部评估的一个常见误解是,它们旨在评估私有网络的安全性,例如 DMZ 和内部网络。如果你的公共网页与私有网络直接相连,漏洞扫描将不会显示你内部网络上的漏洞。内部主机(如文件服务器)不会通过互联网暴露,除非你已经打开了特定的端口和服务。

  • 内部评估:这种类型的评估从内部视角查看一切。内部评估通常旨在揭示私人网络上的漏洞。因此,内部评估通常会揭示比外部评估更多的风险,因为攻击者更愿意入侵文件服务器或邮件服务器,而不是尝试入侵您的公共网页。

故事通常不仅仅是关于是否发现了漏洞。例如,内部评估可能会发现公司网站上的一个 Web 应用程序被识别为存在几个漏洞。然而,这并不能给你全貌。也许其中一个漏洞可以通过更改网站上数据库的默认凭据来减轻。由于这是一个常见的漏洞区域,仅从漏洞的角度评估不更改这些默认凭据的风险将会很困难。

这只是漏洞评估复杂现实的一个例子。你的组织必须评估围绕每个漏洞的风险,以评估它们的真正影响。这是内部评估如此宝贵的一部分。

  • 基于主机的评估:你可能已经猜到这是什么意思了,对吧?在这里,我们将对每台主机进行配置级别的检查,无论它们是服务器还是台式机。我想要查看的内容包括我是否可以获取注册表并查看是否配置不正确,以及任何文件权限和软件配置问题。

  • 网络评估:这显示了您的桌面、笔记本电脑、服务器和网络设备本身上的不必要服务、弱身份验证和缺失补丁等漏洞。您的交换机接口通过 HTTP 吗?它是开放的吗?使用了什么身份验证机制?加密强度如何?

  • 应用程序评估:在这里,我们看的是到处安装的应用程序。当我说应用程序时,我不仅指的是工作站上的应用程序。SQL、Exchange、SharePoint 和 WordPress 都是应用程序的例子。任何在服务器上加载的东西都是应用程序,我们必须确保它已经修补和正确配置,并且是最新的。我见过几次发生的情况是,一家公司声称他们所有系统都是最新的,严格运行着最新和最好的 Windows,他们只进行网络扫描,结果发现他们有一台主机运行着较旧版本的应用程序或操作系统。他们的理由是?"你看,我们不想为升级付费"或"公司已经不存在了。"猜猜?是时候找到不同的解决方案了,除非你想因为被入侵而在 Twitter 上流行一两天。

  • 无线网络评估:我们使用这种评估来测试我们的无线网络,并尝试识别可能存在于公司内某处的任何恶意无线网络。它们审计特定客户端站点的无线网络。他们通过嗅探无线网络流量并尝试破解加密密钥来实现这一点。如果我能够通过无线网络进入,那么整个网络评估就会发挥作用,对吧?

现在,让我们讨论漏洞评估过程的生命周期。

漏洞生命周期

每次看到生命周期这个词,我就觉得需要出去运动,但这里的生命周期的目的是确保我们按照每一步找到解决方案并加以补救。在这种情况下,这些步骤将帮助我们找到安全漏洞并在它们变成利用之前加以补救:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_06_001.jpg

图 6.1 – 漏洞评估生命周期

这里是漏洞生命周期过程的步骤:

  • 创建基线:在这个阶段,我们查看关键资产,识别它们,并对其进行优先排序,以创建漏洞管理的良好基线。

  • 评估:这是漏洞管理的关键阶段。作为安全专业人员,我们要做的是识别和了解基础设施中的漏洞。

  • 风险评估:我们在这里所做的一切只是衡量或总结漏洞和风险水平 - 一些系统可能比其他系统处于更高的风险水平。再次强调,这取决于它们的功能以及谁在操作它们。

  • 补救:补救是根据风险评估修复这些漏洞的过程。我们需要知道哪些是最重要的,然后相应地解决它们。

  • 验证:我们采取这一步骤以确保我们已经解决了问题。这使安全团队能够检查我们之前所做的所有阶段是否已经遵循,并且已经修复了已识别的漏洞。

  • 监控:需要定期进行监控,以帮助您保持并始终拥有最新的更新。这是因为新的更新将使您创建一个新的基线,新的威胁每天都会出现。因此,我们将继续监控。

现在,让我们讨论一些可用的漏洞评估解决方案。

漏洞评估解决方案的类型

有四种漏洞评估解决方案可供查看。它们如下:

  • 基于产品的解决方案:这些安装在您的网络中的某个位置。它们可以安装在公司网络的私有或不可路由空间,以及互联网可寻址部分。在您的网络中安装这些的唯一缺点是它们将位于防火墙后面,不能始终检测到外部的漏洞。

  • 基于服务的解决方案:这些通常由第三方或你所使用的顾问提供。部分解决方案托管在你的组织内部,例如基于云的解决方案。

  • 基于树的解决方案:这是一种混合类型的解决方案。安全专家会选择一个特定的扫描器来扫描 Windows 产品、数据库或 Web 服务器上的服务,但在扫描 Linux 机器时会使用不同的扫描器。

  • 基于推理的解决方案:在这里,我们通过建立一个清单或识别出在特定机器上发现的所有协议来开始扫描。一旦我们发现或识别出这些协议,扫描过程就会开始检测哪些端口与服务相关联,比如邮件服务器、数据库服务器或 web 服务器。找到这些服务后,它会选择每台机器上的漏洞并开始执行相关的测试。

企业政策的重要性不容忽视,接下来我们就来讨论这个话题。

公司政策和规章

关于公司政策,我们的目标是获得组织内部的安全意识支持,并大致概述我们环境中的风险、指南和责任。制定和执行安全政策有助于法律合规,因为它展示了尽职调查。政策需要强调其目标和责任。一些部分可能需要技术细节,而其他部分则可以对公司内的每个人开放。在制定这些政策时,指南需要通过在部门或管理层级别的详细技术实施政策来支持。

例如,网络管理员可以实施一项政策,以保护通过组织网络传输的数据。人力资源部门的人可以确保安全培训和意识程序的开展。防火墙管理员可以实施一项政策,帮助保护通过特定端口传输的数据。

重要提示

安全政策的某些部分,如其标准、程序和指南,应保持机密。将你的安全系统或灾难恢复计划的细节公开,甚至公开给所有员工,都不是明智之举。这些信息可能会帮助某人进行恶意攻击。

在监管环境中,一些公司和组织受法律和规章的约束,这些法律和规章规范了他们存储、传输和处理信息的方式,特别是如果该组织处理敏感个人信息或政府数据。

运营于医疗保健或支付卡处理等行业的组织必须遵守行业规定。问题在于,这些法律很多并没有规定或提供有关使用虚拟化管理平台(VMP)的具体信息。

一些示例如下:

  • 健康保险流动性与责任法案HIPAA):该法案规定了医疗服务提供者以及与医疗提供者、保险公司以及与之合作的任何商业伙伴如何存储信息。

  • 格雷姆-里奇-布莱利法案GLBA):该法案控制了金融机构如何处理客户的财务记录。这些法律并没有告诉我们需要实施什么类型的漏洞扫描。

  • 支付卡行业数据安全标准PCIDSS):该标准规定了零售商处理信用卡交易和参与这些交易的服务提供商的安全控制。值得注意的是,大多数人认为 PCIDSS 是一项法律,实际上它并不是。它只是一个标准,你可以选择是否遵循。若不遵循其规定,后果可能是信用卡公司或你的商户服务提供商会说:“我们将不再支持你的交易。

  • 联邦信息安全管理法FISMA):该法规要求政府机构以及任何与政府合作或代表政府运营的单位遵守一系列安全标准。就 PCIDSS 而言,它列出了以下内容作为实施 VMP 时的要求之一:

    • 首先,你需要实施 VMP。它们不关心你选择哪种,只是要求你必须使用某种方案。

    • PCI 规定的另一个要求是,内部扫描必须由合格的人员进行——即经过专门培训,可以执行内部和外部任务的人。外部任务必须由组织外部的人员完成。

    • 它们还规定,组织必须至少每季度进行一次扫描。此外,每当你对网络进行重大更改时,例如添加新的防火墙规则或升级某些网络组件的固件时,你需要确保一切仍然安全。并且,在内部和外部扫描之间,这些必须由合格的人员或供应商进行——外部扫描由供应商完成,内部扫描由人员完成。通过一系列步骤,包括填写申请表、接受培训并在 PCI 安全标准委员会注册,人员才会被认定为合格。

    • 组织还需要尽可能快速地修复任何高风险漏洞。它们需要重复扫描,以确保漏洞已经被修复或系统已清理干净,确保实施的修复应用了适当的设置。

很多组织会在外部供应商进驻之前进行扫描,以确保没有什么尴尬的漏洞。如前所述,FISMA 是另一个适用于政府机构的法规,它为受 FISMA 约束的组织列出了要求。我没有看到关于该法规的详细信息,除了它适用于政府机构,但他们的一些要求与 PCIDSS 非常相似。

扫描范围

在谈到扫描范围时,我们指的是扫描时包含的主机或子网的范围。如果你有一个大网络,可能需要合理安排在不同时间扫描网络的不同部分。这样可以帮助你减少对网络性能的影响,并使分析每个扫描结果变得更加容易。

你可能希望设计有限范围的扫描,以识别问题或满足特定的合规目标。现在,我认为在确定漏洞扫描范围时,有几个问题你应该问自己。

第一,问:“我应该将哪些系统和网络包含在漏洞扫描中?”记住,我们不必扫描每一个系统。

第二,问:“针对漏洞扫描发现的系统,将执行哪些测试?”如果你没有准备好,或者不了解在漏洞管理平台(VMP)中执行了哪些测试,这可能会给你带来一些问题。

第三,问:“系统是否在线?”这听起来很基础,但请记住,你对系统的了解仅仅是基于你最后一次扫描的结果。

扫描频率

定义扫描频率可能会受到多个因素的限制,包括以下几个方面:

  • 技术限制:这是主要因素。对 Windows 工作站进行漏洞扫描通常是非常低风险的,而且每当主机连接到网络时都可以执行。但对于像代码审查或漏洞分析这样的定制应用程序,这必须更加小心,且可能会有些昂贵。因此,技术限制可能会限制扫描的频率。

  • 系统扫描:你可能每天只能执行有限数量的扫描。你的组织可能需要调整扫描频率,以确保所有扫描能够成功完成,并且在规定时间内完成。

  • 风险承受度:这就像是在掷骰子。每次扫描活动都会产生相应的成本。同样,如果我们查看定制应用程序,可能会有一个政策要求进行扫描或审查,但只有当整体威胁情报发生变化时才会执行。例如,假设发现了一种新的代码漏洞。那么,组织的风险承受度就是指在你的环境中愿意容忍的风险程度。例如,假设你的公司或组织极其厌恶风险。那么,你可能会选择更频繁地进行扫描,以帮助减少漏洞成为重大问题或被发现之间的时间。

  • 监管要求:法规可能会使你无法增加风险承受度。如果你的公司必须遵守某些法规,尤其是在预定的间隔时间进行扫描控制或根据正式的变更管理流程进行扫描,这可能会影响计划,因为这些规定必须严格遵守。

  • 工作流程:随着组织逐步完善其安全政策和控制措施,它采用了更为成熟的安全模型。随着安全能力的提升,漏洞管理和信息安全保障需要融入到网络管理和软件开发的工作流程中。

  • 业务约束:业务约束可能会限制你的组织,因为漏洞扫描可能会消耗大量资源。例如,在高业务活动期间进行扫描可能并不符合你的最佳利益;你需要确保尽量避免影响到关键业务流程。我们需要确保在合适的时间安排扫描。

  • 许可:这可能会限制扫描器消耗的带宽,甚至限制你同时进行的扫描数量。

作为一名安全专业人员,你必须学会在规划漏洞扫描程序时平衡这些因素。最好从小范围开始,逐步扩大扫描范围和频率,这样你就能在实践中学习。

扫描类型

我们的漏洞扫描器或漏洞管理平台(VMP)可以进行不同类型的扫描,具体如下:

  • 主动扫描/无凭证扫描:此类扫描通过向主机发送测试数据包进行,而无需登录到操作系统或应用程序中。我们通过这种扫描得到的结果,是一个特定的视角,能够查看主机对网络的暴露情况。这些也被称为远程扫描。即使你进行的是无凭证扫描,仍然可以包括一些内容,如设备服务帐户的默认密码。主动扫描还会消耗更多的网络带宽,并且有可能导致扫描目标崩溃,产生一些异常结果,甚至引发停机。

  • 被动扫描:被动扫描器通过镜像端口监控网络流量,并试图识别策略定义或已知漏洞(CVE)。这种扫描对网络的影响最小,因为它只是静静地监听,而不是进行凭证扫描。在凭证扫描中,你为用户提供一个账户,允许其登录多个主机,并可以指定用户名和密码。这为你提供了深入分析,特别是在检测应用程序或安全设置可能存在配置错误时。它还帮助你证明攻击者是否已经入侵了某个用户账户。

  • 代理扫描:这种类型的扫描是我们在计划扫描的不同工作站或目标上安装代理程序。代理程序只是一种软件,它会向特定的服务器或服务报告,并由管理服务器进行管理。它在本地运行扫描,然后按计划将报告发送到管理服务器。Nessus 是一个虚拟机器平台(VMP),它有一个可以安装在 Windows 主机上的代理程序。这里的最大优势是,基于代理的扫描有助于减少对网络的影响,因为所有操作都由本地机器上的代理执行,只有结果被报告回去。然而,一个缺点是代理的范围可能仅限于特定的操作系统,但如今大多数代理都支持所有主要的操作系统。另一个缺点是,这将是一个新的应用程序,作为安全专业人员,你需要确保这些代理是最新的,以防攻击者利用它们进入你的环境。

我们还必须关注扫描级别,扫描级别更多地关注敏感度级别。我们可以进行发现扫描,通常用于创建和更新资产清单。这通常用于识别主机及其正在运行的服务。

  • 评估扫描:这仅包含用于分析主机漏洞和/或恶意软件的选项。

    重要提示

    漏洞可能包括配置错误以及软件漏洞。通常,评估扫描会提供将操作系统和应用程序设置与策略模板进行比较的选项。另一个选项是检测弱密码或重复使用的密码。请注意,评估扫描可能会产生大量网络流量,因此必须非常小心。

现在,让我们来谈谈扫描器的维护。

扫描器维护

扫描器维护是一款软件。像任何技术产品一样,我们需要确保虚拟机器平台(VMP)健康且强大。我们通过为该应用程序实施适当的保养和维护来做到这一点。管理员应该定期维护他们的 VMP,以确保扫描软件和漏洞数据流是最新的。定期修补和升级你的 VMP 将有助于保护组织免受特定扫描器漏洞的威胁。

另一个需要关注的问题是插件。许多产品允许你安装额外的插件来帮助调整环境。然而,一些插件是由个人编写的,这些个人可能不会保持插件的更新,而根据未来的漏洞,这可能使你的系统容易受到攻击。因此,管理员应该配置扫描仪以检索新的插件或其更新。如果你每天进行此操作,效果会更好。

数据分类

在考虑你环境中的数据资产时,必须识别哪些信息是重要的,这将取决于你的具体情况。例如,如果你是一家租赁水上摩托的公司,那么水上摩托的蓝图可能并不重要,但如果你是水上摩托的制造商,这些蓝图可能会变得更为重要,并且可能需要保密。

有时,如果攻击者获取了你公司组织结构图,它不仅能显示谁为谁工作,还能透露更多敏感信息。

那么,如何对数据进行分类呢?这很简单。

你应该关注以下四个不同的事项:

  • 产品开发、生产和维护:这些信息对于公司来说可能至关重要。我们常见的泄露事件之一是客户联系信息的泄露。有时,这还包括财务操作和控制——例如借记卡收款和工资税支付。

  • 法律义务:法律义务有助于在特定时期内保持准确的记录,同时也有助于通过服务级别协议SLA)履行对第三方的合同义务。

接下来,让我们来看看文档管理。

文档管理

也称为数据处理,这是管理信息生命周期的过程,从创建过程到销毁。在这个生命周期的每个阶段,安全考虑都极其重要。大多数文档在发布之前会经过一个或多个草稿阶段。但是作为草稿,文档将遵循一个工作流,这有助于描述编辑更改是如何进行或批准的。我们看到很多这种工作流是在微软的 SharePoint 产品中创建的。

工作流会经过并指定——这可能是纸质的——谁是作者、编辑和审阅者。

作为创建过程的一部分,文档必须根据敏感性进行分类。通常,这些分类会有以下标签:

  • 未分类:此文档没有查看限制。

  • 分类:也称为受限、私人或仅限于官方使用。查看此文档的权限仅限于所有者、组织或在保密协议下的第三方。

  • 机密信息:这是分类中较低的一种,尤其是与一些高级分类信息相比,但它被设置为敏感信息,只能由组织内的批准人员查看。我们还可能希望在这里包含一个保密协议NDA)。

  • 机密:这也叫做中级机密。观看受到限制,因为这些信息过于宝贵,不能冒任何被查看的风险。可以把它想象成顶级机密信息,就像你在间谍电影中看到的一样。

  • 双重机密监督:这比最高机密还要高级。

接下来让我们讨论为什么持续扫描和监控过程非常重要。

持续扫描与监控

当谈到持续扫描和整个周期中的持续监控——采购、替换,以及新战术或新威胁和技术的应用——仅仅进行一次漏洞评估是不够的。你需要有某种持续扫描的计划。正如我们之前提到的,你需要制定一个计划并坚持执行。

持续的安全监控是指持续风险评估的过程。这意味着我们保持对正在出现或已经泄露到外部的威胁的高度关注。它还意味着实时执行权限和特权的常规审计。

要真正理解监控,你需要创建一个初步基线,以帮助识别任何变化。你需要进行对比。这就像有人说我的系统似乎变慢了。那么,相比什么呢?我们必须有某个对比基准。能够与初始基线进行比较,有助于你识别出任何可能代表发生了事件并需要调查的变化。

理解应该使用哪种扫描器

考试中可能出现的内容与现实世界中可接受的内容之间存在差异。你必须进行深入的研究,决定最适合你的产品。这就是为什么了解不同的漏洞扫描器非常重要。

再次声明,我的目标不是告诉你确切该使用哪个工具,而是让你看看不同的功能和可用的选项。通常,漏洞扫描器只是一种网络映射工具,旨在检测网络是否暴露于任何威胁。

市面上有许多工具可能执行其他功能,如足迹和指纹识别工具,在某种程度上,甚至可能涉及到密码破解。但是当谈到漏洞扫描器时,你需要寻找一个能够解答你问题的工具,或者是你的解决方案套件,或者是瑞士军刀。你会想确保它们不仅能绘制出主机的映射,甚至可能检测到正在运行的服务。

现在,让我们回到漏洞扫描工具或 VMP 的核心功能。它不仅应该能够映射网络主机并检测正在运行的服务,还应该使用技术(例如横幅抓取)来扫描系统或目标已打补丁级别、安全配置、以及策略或网络共享、未使用的用户账户、弱密码、非法访问点、是否已配置防病毒软件等等。

漏洞扫描工具可以以两种不同的方式实现——作为安装的软件或作为安全设备。它可以是虚拟机或实际的机架安装设备。

还有其他类型的扫描工具,包括用于检测特定应用程序漏洞的 Web 应用程序漏洞扫描工具,例如 SQL 注入或跨站点脚本(XSS)软件攻击。

开源扫描工具和商业扫描工具的区别

大多数人认为开源是最好的选择,因为它不需要花费任何费用,但我们也有一些产品最初作为开源项目推出,然后转向商业化。有些产品继续提供双重功能。开源扫描工具通常对任何想要使用它们的人开放,并且是免费的。由于开源扫描工具是开源的,你还可以与其他开源工具集成,以获得更完整的解决方案。

商业漏洞扫描工具提供端到端的测试,确保符合安全标准。这对于需要确保其环境安全且不容易受到漏洞影响的公司来说是一个很好的特性。商业扫描工具通常提供全天候支持,而较小的开源扫描工具公司可能仅在某些特定时间提供支持。

要决定是否应该使用商业或开源扫描工具,你需要审视你的环境,并看看哪种对你的组织最合适。

当你决定使用哪种类型的扫描工具时,请考虑以下因素:

  • 你有多少资源可用?

  • 你需要帮助定制扫描功能吗?

  • 你是否需要支持(学习或故障排除)?

  • 你需要验证哪些合规标准?

正如你所看到的,公司在选择漏洞扫描工具时可能会考虑使用开源产品或商业产品的几个原因。

其中一个产品是由 Tenable Network Security 生产的 Nessus。它是知名的商业漏洞扫描工具之一。它可以通过 Nessus Manager 部署在本地,也可以在云端(Tenable Cloud)使用。他们还提供专业版,适用于较小的网络。该产品还有一个家庭版,可以免费使用,另外还提供付费订阅服务。

Nessus 最初是一个开源产品。它为其他许多扫描器提供了源代码。你可以使用 Nessus 执行的默认扫描,它们使用 Nessus 订阅源中的插件。

本地部署与云端

了解并非每个解决方案都适合你的环境是很重要的。

本地部署是你自己安装并管理的系统。

说到云端,这里我们依然进行管理,但不需要担心更新问题。大多数情况下,这些产品会在发现某些漏洞时自动更新。

我们还需要考虑数据库及其存储位置。

对于某个供应商来说,他们会在你的机器上安装一个客户端来扫描该机器,然后将结果上传到云端的数据库中。

其他的则将它们保存在本地机器的数据库中,并进行回传。具体取决于你希望通信渠道如何建立,以及希望多久进行一次。

我个人唯一的问题是依赖云端——这只是个人观点——因为云端可能会出故障。例如,拒绝服务DoS)攻击可能会影响你与漏洞扫描云提供商的联系。所以,确保你有一些备份。

现在,当我说每个人都参与时,我是指很多人都参与了这个环境。谷歌有一个云安全扫描器可以供你使用。它叫做 Amazon Inspector。还有 Retina,这是 Beyond Trust 公司拥有的产品。它们提供云漏洞评估。我曾经使用过 Retina 的本地版本,并且很喜欢。Nessus 有一个名为 Tenable I/O 的云解决方案。McAfee 也有一个安全即服务SaaS)概念。

我们还有 Secure Works,它有一个很好的界面。Alien Vault 也是市面上的一个产品。我们还可以看到 Koalas,这是一个基于云的服务,可能是最受欢迎的解决方案之一,效果非常好。用户在他们网络的各个点安装传感器代理,传感器将数据上传到云平台进行分析。

安全内容自动化协议(SCAP)

一个正在发展的安全分析和威胁情报领域是不同安全工具(如漏洞扫描器和入侵检测系统)产生的信息的关联。

SCAP 允许兼容的扫描器确定计算机是否符合特定的配置基准。要了解 SCAP 的规格,你可以访问scap.nist.gov。是的,它是一个政府项目。

MITRE 公司帮助开发了 SCAP 的一些关键组件,这些组件可以用于多个扫描或漏洞设备。它开发了用于 NIST 漏洞数据库的标识符字典。这些标识符为我们提供了一个标准的方式,用于在漏洞或平台中一致地引用产品。

一些标识符如下:

  • 常见漏洞暴露 (CVEs):该标识符有助于识别发布的操作系统和应用软件中的网络安全漏洞。

  • 公共平台枚举 (CPE):这也是由国家标准与技术研究院 (NIST) 维护的,涉及操作系统、应用程序和硬件设备。如果你需要一些常见的最佳实践声明,那么企业合规与道德协会 (SCCE) 就发挥作用了。它是常见配置枚举。

  • 常见弱点枚举 (CWE):除了这些标识符,SCAP 还使用其他几个组件。

  • 开放漏洞与评估语言 (OLA):如果你在寻找可能导致漏洞的设计和开发缺陷,这非常有用。这是一种 XML 架构,用于描述系统的安全状态,查询漏洞报告及其他现在不详细讲解的信息。

  • 可扩展配置检查清单描述格式:这也是一种 XML 架构,但它用于开发和审核最佳实践配置检查清单和规则。在过去,最佳实践指南是为了管理员手动应用而编写的。这个组件提供了一种机器可读的格式,可以使用兼容软件进行应用和验证。如果你在问自己,"这些漏洞扫描器怎么知道如何修复自己?"那是因为这些组件和标识符。

  • 常见漏洞评分系统 (CVSS):现在由事件响应与安全团队论坛(Forum of Incident Response and Security Teams)维护。CVSS 是将漏洞与标准度量关联的方式。这样,我们可以理解某些漏洞的重要性。这些度量会根据漏洞的固有特性、暴露发生的环境以及漏洞随时间变化的特性,从 0 到 10 生成一个分数。分数越高,问题越严重。

漏洞扫描器

说到漏洞扫描器,我们的大部分漏洞扫描软件使用非侵入式扫描技术。非侵入式扫描使用网络指纹识别和横幅抓取,或者允许代理在文件传输或日志文件中读取系统配置。这些通常不会对服务器或主机造成性能问题,但它们可能会返回较多的误报。

我们还拥有侵入式扫描技术,这通常涉及尝试利用已检测到的漏洞。最著名的漏洞利用框架之一是 Metasploit,它是一个由 Rapid7 维护的开源平台。

免费版是一个社区版,适用于 Linux 和 Windows。作为一个框架,它包含了大量的工具,帮助我们发现主机及其漏洞,然后识别或创建利用模块来针对这些漏洞。Metasploit 可以使用 Nmap 或其工具。同样,由于它是一个框架,它可以连接到像 OpenVAS、Nessus 或 Nexpose 这样的漏洞扫描器。我们还可以使用并实施一个密钥扫描器,帮助我们开启反向 Shell,以便完全访问目标系统的目录结构,这些系统正利用这些漏洞。

很多这些漏洞利用框架使用的一个常见技术是模糊测试(fuzzing),它涉及向应用程序发送无效或随机数据,测试其处理意外数据的能力。然后监控该应用程序,看看它是否崩溃、失败或反应错误。最先进的商业模糊测试工具之一是 Peach Fuzzer。它有一个免费使用的社区版,以及具有不同许可模式的专业版和企业版。该平台还提供了他们所称的 peach pits,这是不同的包(插件)。微软曾经也有模糊测试工具,但现在已不再提供下载。相反,微软正在转向一个基于云的模糊测试服务,代号为项目 Springfield。

所以,你有了扫描报告,报告中列出了它检测到的漏洞。通常,这些漏洞会与一个常见漏洞评分系统CVSS)分数相关联。它旨在为你提供一种非常基本的方式来优先安排响应行动。你应该审查整个报告,并根据你自己的经验和知识,试着判断这些漏洞是否被高估或低估了。

大多数漏洞报告的结果对于我们来说通常是比较直接的。可能系统没有接收到更新,或者你通过查看事件日志进行调查。分析师的工作是找出不合常规或稍微有些奇怪的地方,然后调查其原因。你的工作的一部分是尝试通过查看以下提示,看看能否让事情变得不那么混乱:

  • 调和结果:漏洞扫描器可能会误解它们从不同探测工具获得的信息。如果你无法调和你找到的某个特定问题,可能需要考虑使用不同的软件产品重新扫描以确认结果。你还应该查看日志,以及任何其他数据源。如果你在将漏洞报告与特定主机或软件应用程序关联时遇到困难,可以使用与该 IP 相关的主机上的日志来关联结果——也许在扫描时某个应用程序存在,但此后已被卸载。

  • 比较最佳实践:你可能使用的一些扫描工具会根据最佳实践框架来评估系统和配置设置。这对于合规性检查可能是必要的,或者你可能希望遵循自己外部协议的最佳实践标准。

唯一的问题可能是,一些合规扫描可能返回的结果并不是高优先级,或者可能被认为是低风险。例如,假设你扫描了一台 Windows 8 机器,发现有些 .NET Framework 版本或浏览器已经不再支持。要修复这类问题,你可以运行 Windows 更新,并确保 Windows 更新已经安排了未来的更新。你还需要考虑将 Windows 8 机器升级到一个更现代的版本,然后重新进行扫描,并处理列表上发现的任何问题。

公共漏洞评分系统(CVSS)

这里的概念是,分析人员必须识别并评估其网络内可能存在的不同类型硬件和软件平台中的漏洞。他们还需要优先处理这些漏洞,并首先修复那些带来最大风险的漏洞。

然而,当有大量需要修复的事项时,每一项都使用不同的评分标准,分析人员如何将这堆信息转化为可操作的信息呢?这就是 CVSS(公共漏洞评分系统)发挥作用的地方。它是一个开放框架,解决了这个问题,并提供了许多好处。

让我们来讨论一些这些好处。

排名

把这个看作是一个评估你环境的系统,它通过标准的漏洞评分来完成这项工作。当一个组织在其软件和硬件平台上统一漏洞评分时,它可以利用单一的漏洞管理策略。这个策略类似于服务水平协议(SLA),告诉我们特定漏洞需要多快验证和修复。

还需要注意的是,当计算出环境评分时,漏洞变得具有上下文意义,意味着漏洞评分现在代表了它对组织的风险。这一评分模型是基于多个不同的因素。

基础度量

基础度量包括像可利用性这样的指标。这个度量衡量的是漏洞利用技术的当前状态。如果漏洞代码本身是公开的并且容易使用,那么潜在攻击者的数量也会增加。

当你想到可利用性时,你需要考虑攻击向量、攻击本身的复杂性、所需的权限以及用户交互的类型,是否用户需要点击电子邮件才能使攻击发生。

范围度量

这指的是由计算机权限管理机构(例如应用程序或操作系统)在授予访问计算机资源(如内存或 CPU)时所定义的一组权限。这些权限是基于身份识别和授权的方法分配的。在某些情况下,你可能会发现授权是容易的或者根本不存在。例如,如果你有以太网流量发送到网络交换机,交换机会接受到达其端口的流量,并且它有权控制流量流向其他交换机端口。

影响度量

影响度量指的是受影响组件的属性。无论如何,一个成功的漏洞利用会影响一个或多个组件。影响度量是根据那些遭受最严重影响或最直接、最可预测影响的组件来评分的。

分析师应将影响限制在他们确信攻击者能够实现的合理结果内。

临时度量

这个度量衡量的是漏洞利用技术的当前状态、是否存在任何补丁或替代修复方案,以及你对描述漏洞的信心。我们所指的意思是,我们看待漏洞被攻击的可能性。它是基于该漏洞利用的当前状态,不考虑更新。

让我们看看 2017 年的 WannaCry 爆发。值得注意的是,这个漏洞的临时度量较低,因为微软在其流行之前几个月就已经修补了该漏洞。

当涉及到漏洞利用代码的成熟度时,我会回到现实世界的探索参考,看看它可能仅仅是理论性的。同样,我们可能会看到一个概念验证的出现。这并不一定意味着这个漏洞会被用来攻击你。

临时度量还包括漏洞的修复级别。你需要能够优先处理这些漏洞。通常,漏洞在最初发布时是未修补的。供应商可能会发布临时修复或替代方案,直到发布正式的升级补丁。这几乎每天都会发生。

报告的可信度

这个指标衡量了漏洞存在的可信度以及漏洞本身的可信性。很多时候,我们看到这些漏洞被披露,大家宣布漏洞存在,但却没有人发布具体细节。因此,它的可信度不是很高。后来,漏洞可能会被作者或供应商确认并承认,当漏洞被确定存在时,它的紧急性就会提高到一个新的水平。

环境指标

这个指标允许分析师根据 IT 人员认为对组织有多重要来自定义他们的 CVSS 评分。分析师通过诸如安全要求等内容来做出调整。再次强调,这就是字面意思:贵公司政策规定了哪些安全要求?现行法规的安全要求是什么?例如,如果某个 IT 资产支持一个业务功能,而该功能对可用性要求较高,分析师可以相对于机密性和完整性给可用性分配更高的权重。每个安全要求都属于以下三类之一:低、中或高。

修改后的基本指标

这使得分析师可以根据其环境中的变化调整基本矩阵。一个很好的例子是,如果某个环境对某个软件进行了普遍更改,从而影响了漏洞利用、范围或影响的方式,那么该环境就可以通过修改基本矩阵来反映这一点。

这一点很酷,因为 VMP 会为我们考虑这些 CVSS,并在此过程中提供帮助。

假阳性和例外

那么,我们如何识别假阳性和例外呢?我们收到的许多漏洞报告会包含大量的假阳性,或者是一些你对了,你错了的结果。这些是非常耗时的调查和排除工作。如果有大量假阳性,您可能需要调整和优化扫描,以减少假阳性的数量。

那么,我们该怎么做呢?我们可以开始查看验证可能生成流量的应用程序,这些流量可能会错误地匹配漏洞扫描器的签名。在这种情况下,您可以将其添加到例外列表中,这样您就不会再查看该特定结果。

另一个问题是扫描器可能在使用启发式分析,这可能会因为网络使用的有效变化而产生混淆。换句话说,可能需要建立新的基准来参考。

另一个可能出现的问题是,你可能正在运行一些不适合你网络的扫描——例如,在你的网络中并未运行该应用时进行应用漏洞扫描。你应该做的其中一件事是尝试调整扫描的范围,以确保你只对网络基础设施中的相关应用进行测试。

最后,我们面临的问题是扫描仪可能会识别出一些可以通过管理员权限而非最终用户来利用的漏洞。现在,你可以做的一件酷事——尤其是针对市面上大多数的 VMP(虚拟化管理平台)——就是通过识别扫描中的例外情况并将其配置到模板中来减少误报的发生。这可能意味着你将排除某些主机不进行某些类型的扫描,或者继续报告该漏洞但将其优先级降低。如果你有无法修补或修复的系统,那么你可能需要更密切地监视这些系统。

接下来,让我们看看作为一名安全专业人员,你如何确保及时了解威胁世界的动态。

趋势

安全问题的一个难点是做一些事情来营造你拥有控制权的假象。我经常这样做,对我的孩子们来说,他们以为我知道的比实际多。

通常,你将部署一些控制措施来帮助识别感染或未打补丁的系统,并为你提供可以依赖的报告。这类活动很好,但在心里你应该担心,可能有其他事情在悄悄发生,而你并未察觉。这就是趋势发挥作用的地方。

如果你在一段时间内监控关键矩阵,它应该能显示出未应用的策略,或者攻击者开始对你发起非常复杂或多阶段的攻击。

趋势的问题在于如何选择分析和调查哪个矩阵,因为你手头的时间有限。在这里,你应该制定一个度量分析程序。你还应该确保它评估你所追踪的每个矩阵的有效性。

以下是我们可以分析的一些可能领域:

  • 观察事件和检测的数量,以及响应时间。

  • 观察因影响而丧失的小时数或成本。

  • 查看网络本身或其指标——你可以在这里衡量许多问题。你可以查看内部和外部流量的数量、登录次数、登录失败次数、活动端口、网络上授权或未授权的设备数量、未授权软件等等。这些统计数据可能仅从安全的角度来看比较有趣,因为大多数网络都会发生变化——也就是说,随着新设备和新电缆的部署,它们会变得更快。你应该关注员工的培训以及威胁意识教育——你的员工对网络安全威胁了解得怎么样?你可以衡量员工的知识水平,或者开始为他们评分。如今,许多公司帮助你创建那些设计成让用户点击链接的邮件,然后一个“猴子”就会跳出来给他们一记重击。

  • 查看合规性。这很好——你已经制定了所有这些规则和政策,但有多少已经被执行?执行的百分比是多少?是上升还是下降?是因为合规目标在增加,导致这个百分比下降吗?还是合规性变得越来越难以达到?又或者你的政策没有被正确遵循?

  • 查看外部或外部威胁等级——你需要问自己,整体上你的安全性在互联网上看起来如何。我们是否看到一些新的威胁在其他公司、竞争对手或我们行业内的其他人中浮现?有没有哪些重大新威胁你需要开始关注?每天早上,当我开始查看我的所有安全网站、讨论串和 RSS 源时,我会问自己,这些内容对我有用吗?如果有,我需要将其纳入我的扫描中,以确保我没有漏洞。

现在,因为我爱你们每一个人,我将提到一些我一直在查看的源:

  • SANS 研究所:他们有一个完整的培训环境,而且还提供大量关于漏洞的信息,以及发生了什么。

  • Dark Reading:正如它们的名字所暗示的那样,它们的文章涉及黑客攻击,挺酷的。他们覆盖的范围很广,从云计算到移动设备,再到当前发生的数据泄露和攻击。

  • 微软的 Windows Defender 安全情报:他们主要关注基于微软的内容,但也会提供一些有关其他攻击威胁的更新。

  • FireEye:这是一个很棒的资源。它们最受欢迎的资源之一是最近的零日漏洞,展示了一些流行的漏洞。它们还有很好的年度报告资源以及威胁情报报告。如果你愿意,还可以订阅它们的威胁研究博客。

  • Alien Vault:你会发现大多数这些公司有某种隐藏的目的,因为他们都有自己想要销售的产品。然而,他们仍然提供了许多非常酷的信息。以 Alien Vault 为例,他们提供了一个威胁情报摘要。你只需要注册,就会开始收到新漏洞或安全威胁的通知。

  • Symantec:他们也有一个安全情报网站,提供大量信息。通常,你会发现,如果一个供应商知道了某个漏洞或威胁,其他大多数供应商也会知道。所以,有时候这些信息只是重复的。

  • Secure Works:虽然这家公司提供一些服务,但他们也在其洞察平台上免费提供了大量有关威胁的信息。他们有一个知识中心,以及研究和博客,供你查阅。例如,在研究类别下,你可以进入威胁分析,查看该领域当前的动态。

总结

在这一章中,我们讨论了 VMP 的好处。我们查看了正在进行的 VMP 流程,以及漏洞研究的重要性,漏洞研究有助于确保网络的安全性,并能抵御攻击。

接下来,我们讨论了如何识别扫描目标,扫描的频率、深度以及扫描范围的设置,以及不同级别的配置。我们还介绍了如何分类数据,这样当发生事件时,你就能知道修复问题时需要优先处理的事项。我们回顾了根据你的环境选择使用哪种扫描器。我们还讨论了如何修复我们的网络漏洞。我们还讨论了 SSL 和 TLS,确保我们的证书有效,并且我们使用的加密算法足够强大。我们还讨论了虚拟化带来的问题。

在下一章中,我们将深入探讨如何攻击我们已识别的目标。

问题

在总结时,这里有一份问题清单,供你测试关于本章内容的知识。你可以在附录中的评估部分找到答案:

  1. 为了找到漏洞,攻击者向目标发送探测器和伪造请求。这是什么类型的扫描?

    1. 被动扫描

    2. 主动扫描

    3. 洪水攻击

    4. 中间人攻击

  2. 用于识别主机和漏洞的评估类型是什么?

    1. 分布式

    2. 被动

    3. 主动

    4. 自动化

  3. 哪种漏洞评估解决方案被认为是放置在私人或公司资源中的?

    1. 基于服务

    2. 基于推理

    3. 基于产品

    4. 基于树的

  4. 当扫描的位置和数据存储在单一系统上时,使用的是什么类型的扫描器?

    1. 基于集群

    2. 基于代理

    3. 基于网络

    4. 基于代理

第七章:系统黑客

系统黑客指的是黑客用来获取和妥协数字设备(如计算机、智能手机、平板电脑,甚至整个网络)的活动。本课程将解释系统黑客的主要方法——密码破解、特权升级、间谍软件安装、键盘记录以及其他战术。我们还将学习信息技术(IT)安全专业人员可以用来应对不同攻击的对策。

学习系统黑客技术将帮助你实施最强的安全实践,帮助你评估当前的安全防护,了解系统和网络中可能存在的漏洞。你将学习哪些安全功能在你的环境中最有效,如何发现和修复安全漏洞,以及如何预测这些漏洞。

在本章中,我们将涵盖以下主题:

  • 理解我们的目标

  • 第一阶段 – 获取访问权限并破解密码

  • 第二阶段 – 升级特权

  • 第三阶段 – 维持访问并执行应用程序

  • 第四阶段 – 维持访问并隐藏你的工具

  • 第五阶段 – 掩盖痕迹 – 清除日志和证据

理解我们的目标

本章有三个目标,分别如下:

  • 获取目标的访问权限:确定目标,了解可用的服务以及开放的端口。同时,了解可能存在于机器上的用户账户,以及可能存在的一些漏洞。

  • 维持访问:没有什么比成功进入一台机器后,却被踢出去更糟糕的了,因为有人增加了我们的再次进入难度。

  • 掩盖痕迹:如果你像我一样喜欢看动物或自然纪录片,你知道狗和狼有共同的基因关系,这也解释了它们为何有很多相似之处。它们尤其有一个令人恶心的习惯——吃掉自己的粪便来掩盖痕迹,因为它们的粪便会向附近的捕食者或猎物透露它们的存在。就像狼和狗一样,我们也需要掩盖我们的痕迹。如果我们不这样做,人们就会发现我们进入了系统。然后他们会重新安装系统或将其下线,修复我们造成的所有问题,并限制我们的访问权限。掩盖痕迹是维持访问的一部分。

为了实现这三个目标,我们在系统黑客阶段必须经历五个阶段。

五个阶段

以下是我们将在本章中涵盖的五个阶段的简要概述:

  • 第一阶段:获取系统访问权限。再次,我们已经确定了系统,了解哪些服务在运行,并且——可能——知道用户账户信息。我们需要两个信息来获得机器的访问权限:用户名和密码。我们可以使用几种方法来破解密码。

  • 阶段 2:提升权限。我们可以提升自己创建的账户的权限,或者拿到一个已经存在的账户——比如邮件室的 Billy Bob——并赋予该账户管理员权限。如果我被发现,猜猜谁会有麻烦。可怜的 Billy Bob。现在,我们不必挑选特定的用户账户;我们可以使用已经活跃的服务账户。

  • 阶段 3:维持访问。我们怎么做呢?通过启动应用程序或我们的工具。我们有一套喜欢使用的工具,我特别喜欢某些工具。我会启动这些应用程序,以便继续从内部发起攻击。如果我已经击中了初步目标,或者这是我预定的最终目标,我需要启动我的应用程序,这样我就能更轻松地重新进入系统。

  • 阶段 4:隐藏工具。因为我们不想让别人看到我们在系统上的操作。你不想有人浏览时看到你的机器上安装了某个特定的应用程序。你需要隐藏这些信息。有很多方法可以隐藏工具,包括 rootkit 和隐写术。

  • 阶段 5:掩盖痕迹。我们怎么做呢?好吧,通常机器上有什么东西会跟踪我们在系统上做的所有操作?那就是日志文件。我有时把它称作“大哥”。这就是我们区分好黑客和伟大黑客的地方。为了达到我们的目标,我们将删除或修改日志文件。

让我们更详细地讨论这五个阶段中的每一个。

阶段 1 – 获取访问权限并破解密码

如果你了解我,你知道我对密码有很大的问题。每次谈到密码,我总是忍不住站上我的讲台,因为说实话,我们创建在线身份,常常在我们自己的网络内或外部——在互联网上使用账户。我们的一切信息都包含在这些身份中,而我们必须用密码来保护这些身份。现在,准备好听我讲的“讲台”部分了吗……人们在创建密码时真的是懒到极点——这让我完全抓狂。随着我们继续深入,你会明白我为何对这个话题如此热衷。

创建 WordPress 的 Matt Mullenweg 有一句很棒的话:爱是伟大的……但不是作为密码。你知道吗,love是人们常用的前 20 个密码之一,甚至会在后面加个变种?所以,再次强调,在这个阶段我们获取访问权限的整个目标就是试图破解一个密码。我们不一定一开始就去破解那个超级管理员密码,因为获取访问权限的第二个阶段是提升权限。所以,我们首先需要看看能否找到一个密码来获得访问权限。

什么是破解?

破解是指通过在本地机器上寻找或发现存储的密码,或者尝试在传输过程中进行破解。一个很好的例子是文件传输协议FTP)。当你登录用户名和密码时,默认情况下会以明文传输用户名和密码。显然,这是我可以轻松捕捉到的。

有人问我:“破解密码真的有充分的理由吗?”是的,确实有。通常,人们会忘记他们的密码,尤其是对于独立机器来说。我绝不会建议在域环境中尝试破解某人的密码,因为那是这个功能的目的——能够重置密码——但通常,邻居们会跑来对我说:“我忘记了我机器上的密码,进不去了。”当然,当他们说“突然间我进不去了”时,我的大脑通常会有很多警示信号。但我们可以重置本地账户密码。有时候,心情不好的某人会在域环境中做些恶意的事,比如锁定每个人的密码。这表明,破解密码确实有一些合理的目的。

在破解密码方面,我们有两种不同的方式——我们可以通过自动化工具进行破解,或者使用一些有趣的工具手动破解。

当涉及到破解密码时,我们面临的问题是大多数用户选择他们熟悉的东西,因为他们必须记住它,而这正是使得破解密码变得容易的原因。大多数人会用家庭成员的名字、宠物的名字、最喜欢的运动队、漫画书中的英雄、脏话、最喜欢的城市、宗教名词或他们曾经上的学校——大学、小学或高中。这些东西可能容易记住,因为它们对你作为用户来说有意义,但正是这些原因让密码容易被破解。

大多数人从这些类型的词开始,然后在密码的开头或结尾加上数字。通常,这些数字对他们也有意义。大多数人会使用他们的出生年份、毕业年份、结婚纪念日等等。

然而,尽管我们要求人们创建复杂的密码,但它们仍然需要容易记住。否则,我们会整天收到帮助请求:“嘿,我把自己锁了出去,我不记得我的密码了。”所以,在我看来,关于一个合适的密码策略,我们通常依赖四种不同的选项:生物识别、指纹、双因素认证2FA)和视网膜扫描,这也是 Windows 10 的一些令人兴奋的特点:微软将生物识别技术嵌入其中,而且它不容易被欺骗。如果你的笔记本电脑或平板电脑有摄像头,它可以通过你的面部进行登录。而且不用担心——他们用的是三维3D)技术,这是他们从 Xbox 中学到的。还记得 Kinect 吗?它能进行面部和有时是身体的 3D 识别,这让我感到有点可怕。

这项技术背后的天才们创造了这样一种方式:如果你把自己脸部的照片举到摄像头前,它会将其视为一个平面结构。它意识到没有深度。他们给你展示的示范是,一个绅士把自己的照片举到自己脸前,笔记本电脑并没有让他登录。当他移开照片,露出真面目时,笔记本电脑立刻让他登录。这样一来,没人能窃取你的生物识别信息,除非,当然,他们把你的手指切掉。

我们也可以使用公共访问卡CACs)这种刷卡方式。不幸的是,有人可能会偷走它们,这就是为什么使用密码可以提供额外安全性的原因。我是多因素认证MFA)的忠实粉丝,你输入密码后,会收到一条短信或电子邮件,上面有一个验证码,确认你已经注册。你通过公司发给你的验证码来验证身份。

随着越来越多的密码被破解,我认为我们将会看到巨大的变化,我们可能会逐步转向生物识别技术。

复杂性

复杂性意味着,当我们创建这些密码时,我们需要让它们更难被攻击者猜到。通常,至少在微软,我们通过使用以下四个选项中的三个来处理这个问题——这些选项作为经验法则是很不错的选择:

  • 第一个选项是使用密码中的大写字母。现在,我不一定会把所有字符都设置为大写——我的电脑可能会以为我在对它喊叫。

  • 我们也可以使用小写字符,你可以随意组合这两种字符——你不需要先用大写字母再用小写字母,或者反过来。

  • 我们还可以注入数字。所以,到目前为止,我们得到的就是他们所说的基于字母数字的密码。

  • 我们还可以使用盐值技术(稍后我们会讲到)来帮助随机化密码的哈希值。

然而,如果这四个选项是你唯一使用的复杂性元素,总有人会最终pwn你,因此,这也是我们喜欢使用特殊字符的原因。

然而,我们在使用特殊字符时需要小心,因为用户和攻击者都会做出一些假设。

任何特殊字符都能帮助你增加复杂性,但我最喜欢的一种特殊字符——让攻击者抓狂的——就是空格键。但仅仅因为它复杂,并不意味着你就安全了,你仍然需要小心。

首先,你必须小心我们所说的五大要素。这包括**@$30!字符,许多人认为这些字符会迷惑攻击者,假设攻击者永远不会猜到美元符号代表S,零代表O,3 代表E。好吧,攻击者有字典和机制来帮助他们搞清楚这些。不要以为0penm3up会让攻击者猜不到你的 3 是E,或者L3tm3inLetmein。我另一个喜欢的密码是op3ns3same**。你不认为这会出现在字典里吗?我知道这是一个很酷的密码,但它不会欺骗攻击者。

我之所以总是使用Pa$$w0rd,是因为它是所有微软实验室在训练环境中的默认密码。微软要求四个复杂性要求中的三个必须满足,而这个密码正好符合要求。但复杂性并非一切。

密码的强度在于其长度。永远不要使用真实单词,因为它们在外面有我们所说的字典。字典包含大量的单词,而且不同主题的字典有成千上万本。

举个例子,假设你知道我喜欢蝙蝠侠,我们会把batmanrules放入密码文件中,如下所示:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_001.jpg

图 7.1 – 密码安全检查器,网址:https://security.org

如果我尝试暴力破解它,大约需要一天时间才能破解密码,因为它是由真实单词组成的。事实上,如果它没有这么长(例如,batman),它会瞬间被破解,因为它会出现在某个字典中。

我经常做很多基于社区的演讲和研讨会,我试图教用户的一件事(因为这是我特别在意的)是如何创建复杂的密码,同时仍然使其对最终用户易于记住。

做到这一点最有效的方法之一是使用我们每天使用的语法。例如,我正在使用域名服务DNS)命名语法,但由于点号的长度和特殊字符,我的密码需要更多时间来暴力破解。希望,如果我的政策要求我在多年后更改密码,那么它不必遵循实际的 DNS 语法。事实上,我可以使用M,因为它是倒立的W,或者我可以在其中添加一个大写字母——MMM.ilovecrafstmantools.whatever。是的,它不需要是一个真实的网站——可以是你想要的任何东西。

让我们试着破解ilovecraftsman.tools。它极其长;我们可能需要穿越时间-空间连续体(或者至少让我们的 DeLorean 达到每小时 88 英里,才能向前推进时间,才能在通过暴力破解前破解它),因为暴力破解这个密码需要大约 900 万亿年。我刚刚输入了我的一个密码:破解它需要 90 sextillion 年。游戏结束——我赢了!

密码架构

我们可以尝试在密码存储时或者在传输时进行破解,后者称为“在传输中”或者“动态”状态。那么,密码是存储在哪里的呢?这取决于你的操作系统以及所处的环境。例如,在 Windows 中,如果这只是一个非域环境的机器,可能是家庭 PC、祖母的电脑,或者你的笔记本电脑,硬盘上会有一个数据库,称为安全账户管理器 (SAM) 数据库

SAM 数据库位于你安装 Windows 的地方。默认路径是C:windows/system32/config/sam。实际上,让我们在这里看一下。在下面的截图中,我打开了文件资源管理器,进入了安装 Windows 的C:驱动器下的System32目录。这里有一个名为config的子目录——展开它,你会注意到里面有一个叫做SAM的文件。密码以哈希的形式存储,且这个位置或数据库作为注册表项挂载:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_002.jpg

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_002.jpg

图 7.2 – SAM 数据库的位置

如果你在一个域环境中,用户账户不会存储在客户端机器的本地硬盘上,而是存储在一个名为ntds.dit的文件中,该文件存在于你环境中的每个域控制器上。在你的域控制器上,它存储在一个名为C:\windows\ntds.dit的目录中。

所以,在我的域控制器的C:驱动器以及 Windows 目录下,我有一个名为NTDS的子目录,NTDS是**新技术目录服务 (New Technology Directory Services)**的缩写:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_003.jpg

图 7.3 – NTDS 子目录的位置

其中就有著名的ntds.dit文件,它是包含我所有基础设施账户的数据库文件,如我们在这里看到的:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_004.jpg

图 7.4 – ntds.dit 活动目录 (AD) 账户数据库的位置

现在,不要以为 Linux 没有做同样的事,因为,猜猜看?它有!它将密码存储在etc目录下的一个名为shadow的文件中(etc/shadow)。

对于苹果系统,我们将其存储在一个名为plist的文件中,该文件位于**/var/db/dslocal/nods/default/users下的var**目录中。

使用这个文件,用户位于大于和小于括号之间**(.plist**)。plist有一个与之关联的影子哈希数据属性,有办法可以打开这个文件。通常情况下,你不能随便拿这些。如果你认为你只需拿走它们,猜猜看?这些文件包含你的认证凭据,但它们以哈希值的形式存储。你不能随便打开它。事实上,大多数文件在操作系统运行时都会被锁定。至于它被哈希化的问题,你需要知道这是一个单向算法,这意味着我无法反向解密哈希。"好吧,那很酷,显然我是安全的。"嗯——不,你不是,因为作为攻击者,我可以窃取它。

破解/密码黑客的方法

有几种用于破解的技术,如下所述:

  • 字典攻击(我们可以使用的最常见的密码破解方式之一)

  • 暴力攻击

  • 音节攻击

  • 混合攻击

  • 基于规则的攻击

  • 老实可靠的猜测

让我们详细看一下。

字典攻击

字典攻击就是它听起来的样子。我们可以去互联网上下载文件(https://zip-password-cracker.comapasscracker.com),我们也可以自己创建,因为它们只是单词的文本文档。当我说字典攻击中的单词时,我的意思是我可以找到基于不同语言的字典,无论是英语,法语,德语,俄语还是克林贡语。

我们还有基于主题的字典。有一个字典里面有医学术语,历史记载,地点,书中的人物,他们的名字,甚至书本本身特有的东西,比如一个口头禅。

字符也包括电影角色——我有一个字典,里面装满了 J.R.R.托尔金的指环王系列中的名字。我还有一个字典,里面有著名人物的名字,电影明星,历史人物,地点和事件。不要认为你很聪明,只是因为你使用的密码可能不是传统密码,因为你是基于一个真实单词。请不要这样做。也不要认为我只是把它倒过来,因为任何值得一提的密码破解工具都会进行字符串操作。它会取这个单词并尝试不同的组合或反转。所以,不,你没有欺骗我。

暴力攻击

现在听我说,下周理解我(用我的阿诺德·施瓦辛格的声音)。暴力攻击需要更长的时间来完成。我们所说的暴力攻击是尝试密码中每种字母数字和特殊字符的每种组合。显然,如果密码只有 6 个字符长,暴力攻击将相对快速,但当我们进入超过 14 个字符的密码时,情况就变得更加困难。需要更多的循环来进行,暴力攻击必须尝试每种变体。像约翰·里普尔、卡恩与亚伯尔或 Aircrack-ng 这样的工具非常有用。

暴力攻击有一个好处,尽管它需要更长的时间并尝试每种组合,这需要更多的循环。猜猜看?虽然需要时间,但它是 100%有效的。谁有时间?攻击者有。

音节攻击

使用音节攻击,我们拿一个密码——在这种情况下,我们假设密码是pass——然后结合字典和暴力攻击,尝试字典中每个条目的每种可能排列。

混合攻击

混合攻击仍然使用字典,但基于用户的懈怠,我们将尝试不同的变体,包括在密码的开头或结尾包含数字和特殊字符。所以,假设我有Batman,下个月我必须更改我的密码,所以我将其更改为Batman1,下个月我将其更改为Batman2。嗯,混合攻击最终会破解这个密码。

顺便说一句,如果你或你的用户每个月只是在密码末尾添加一个或两个字符来修改密码,请拍一下自己的脑袋,并承诺再也不这样做。但不要拍你的用户的脑袋——你可能会被人力资源HR)叫去。

基于规则的攻击

我所说的规则攻击是什么意思?还记得枚举吗?如果你对此不熟悉,可以参考本书的第五章枚举。通过枚举,我们可以使用我们发现的规则,比如要求用户至少有一个 8 位字符的密码。我将利用这些对付你。而且,我知道你使用复杂性,我能发现你需要两个数字。所以,我使用暴力、字典和音节攻击的组合。再次强调,如果我知道你只有 8 个字符,这就是你密码所需的全部,我不会尝试 9 或 10 个字符。或者,如果你不需要数字,那为什么要运行这些数字?

传统可靠的猜测

还有传统可靠的猜测,其中包括一些侦察和足迹。这是我们尽可能多地了解目标的地方,无论是用户还是公司。通常,用户的密码基于他们所知道的事情。所以,如果我上社交媒体,有机会我会发现他们最喜欢的运动队,他们成长时的宠物狗,以及他们配偶的生日。我们分享了太多信息。

攻击类型

现在我们了解了用于破解的一些技术,接下来我们来谈谈攻击的类型。

攻击通常分为四个不同的类别,如下所示:

  • 被动在线攻击

  • 主动在线攻击

  • 离线攻击

  • 非电子攻击

让我们讨论每个类别以及与每个类别相关的攻击。

被动在线攻击

这些攻击类型是被动的,这意味着我们不一定会与机器或目标进行直接的通信。

嗅探

被动在线攻击包括诸如嗅探网络,看看我们是否能发现来回传输的密码。例如,FTP 默认使用明文传输,因此仅仅通过嗅探,我们可能就能捕获一些密码。

中间人攻击(MitM)

这种攻击发生在攻击者将其机器或黑客设备置于源和目标之间时。他们只是处理所有来回的流量。再次强调,我并没有修改任何东西——它是如此被动,以至于很难让任何人察觉我在做什么。我只是捕获数据,确保所有数据都通过我再发送到交换机。

会话劫持

这种攻击因 Firefox 插件firesheep而广为人知。它允许攻击者前往任何 Wi-Fi 接入点,如星巴克、咖啡店或网吧,如果他们与其他用户处于同一 Wi-Fi 接入点,就能在他们交易的过程中窃取他们的 Cookie。然后,他们可以做一些事情,比如登录他们的 Facebook 账户或接管他们的 Facebook 会话。再次强调,这些攻击相对被动——我并没有攻击特定的目标。

主动在线攻击

主动在线攻击就是这样——它更加主动。我们知道,我们越活跃,就越容易被抓住。

哈希注入

这是一种将被攻陷的哈希注入当前会话并使用该哈希进行网络资源认证的攻击方式。

哈希基本上是加密后的密码,密码通常以哈希的形式存储在系统中。如果我有一个存储用户名和密码的文件,并且文件是完全明文的,那么根本没有安全性可言,对吧?原因是任何人都可以找到这个文件。还记得那个 SAM 数据库吗?它以哈希格式存储用户账户和密码。

在过去,微软使用了一种叫做 LAN 管理器 (LM) 哈希 的方式,这在当时是一个噩梦,现在有时仍然是个噩梦。每当我教授关于道德黑客的课程时,我总是听到这样的问题:“为什么要谈论这些旧操作系统中的哈希词和其他相关内容?为什么不谈论新的东西?” 好吧,我得跟你们说实话——这就像是当一个猎人。如果我要出去打猎,我不会去找最新、最现代的猎物——我想要猎取最古老的猎物,因为它更慢,而且没人关注它。谁知道它是否已经更新过呢?新的东西有新的技术,反而有时会让我更难应对。我曾教授一门课,里面有两位来自大型州政府组织的 IT 人员,当我们聊天时,他们告诉我他们仍然有一些 XP 机器和一些 Server 2000 和 2003 系统。

你可能会摇头,想知道为什么你需要升级一台可能只做一项任务的机器。在我的两位学生的例子中,那台机器处理他们的文档成像系统。在另一个制造设施中,有一台由 Windows 机器控制的机器人手臂。它整天来回移动。这些机器如果用 XP 就能正常工作,真的有必要装上 Windows 10 吗?如果你创建了一个不超过 14 个字符的密码,LM 哈希会将所有字母转化——无论是大写字母还是小写字母——并将它们转换为全部大写。转换为大写后,它会将任何剩余字段填充至完整的 14 个字符。所以,在这个例子中,我会有三个填充空格。接着,事情变得有点疯狂。LM 哈希接着会将密码分割成两个 7 字符的字符串。这两个 7 字符的字符串会被加密并合并回一起。

例如,BatmanR 会被哈希为这个值,而剩余的 ULES 和它的填充空格会被加密为这个哈希值。然后,它们会被合并,这就是你的 LM 哈希值,如图所示:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_005.jpg

图 7.5 – LM 哈希值的生成方式

然后,微软加入了 NTLM,它是 NT LAN 管理器哈希。因此,我们在 SAM 账户数据库中看到的结果会包含用户的名字(在这个例子中是 Bwayne),名字后面跟着一个数字,然后是接下来的 32 个字符,也就是 LM 哈希,最后附加上 NTLM 哈希。现在,这两者之间的最大区别在于密码哈希算法。LM 使用的是他们所称的 diz,这种算法非常容易被破解。

然后,他们推出了 NTLM 版本 1 (v1),这使我们开始使用 消息摘要 4 (MD4),它是一个更好的算法,但 NTLM 版本 2 (v2)使用了 MD5,它更好,理论上你应该尽可能使用它。所以,你可能会看到其中列出了另一个帐户作为 administrator,后面跟着数字 500。500 是安全标识符 (SID)——在微软世界里,所有的管理帐户的 SID 最后都以 500 结尾。同样,我会看到 LM 哈希和 NTLM 哈希的组合。

注意

每当你看到一个以双 AAD3B435B51404EE 结尾的哈希值时,这对你应该有所意义。这是一个非常常见的结尾哈希,它描述了最后的 7 个字符—记住我们需要填充它以确保总共有 14 个字符?它告诉我密码的长度是 7 个字符或更少。如果某人输入的密码超过 14 个字符,也会发生类似的情况。记住,这个情况会出现在 14 个字符的密码上。如果超过 14 个字符,那么 LM 哈希值就会被丢弃,而不再被使用。如今的操作系统(从 Vista 及更高版本开始)默认禁用 LM 哈希。

键盘记录器

在涉及键盘记录器时,我们会监控特定系统或目标上每一击键。这些按键,取决于键盘记录器本身,可能会被传输回攻击者。

键盘记录器是监控并记录按键、鼠标操作、截图、谁登录以及登录时间的软件程序。令人惊讶的是,这些软件程序能做的事情,但大多数会记录按键。有很多这样的软件,其中一些有其合法用途——例如,一些父母或监护人希望监控孩子在电脑上做的事情。

我们还有硬件驱动的键盘记录器,这些设备非常难以检测。它们会监控每一次按键,看起来不像是什么恶意的设备,但其中一些设备内置了小型应用程序,可以记录日志文件,或者直接将日志通过邮件发送给我。

作为一名安全专家,你需要知道你的机器上安装了什么,软件和硬件都需要了解。如果你查看一台机器的背面,看到下面列出的某个设备插入到系统背面,而且鼠标也插入到它上面,你会怎么判断?

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_006.jpg

图 7.6 – 键盘记录器

问题是:这些设备有合法用途吗? 可能对于公司来说,了解人们在键盘上输入的内容—他们分享的信息,是有商业价值的。而且,这种情况不仅限于看起来像这些的设备。

有些键盘你可以进行修改——你可以自己动手,在键盘内部安装一个键盘记录器硬件。你也可以购买这些键盘,并将它们部署到终端用户手中。或者,如果我直接给你寄一个免费的,它连接到你的系统,那么我们就可以捕捉截图,并记录你访问了哪些网站?我甚至可以读取你的电子邮件,因为你输入时,它会被记录下来。我还可以捕捉登录名。“等一下——当我输入密码时,我看到的是星号。”好吧,猜猜看?键盘记录器不会记录星号——那是你看到的视觉效果。

如果你说的是“那些是物理连接的设备”,我有个坏消息要告诉你。外面有 Wi-Fi 键盘记录器。如果你有蓝牙键盘(而且大多数微软键盘的连接方式是蓝牙),你也有麻烦了。

这看起来像是一个统一串行总线USB)充电器,但它内部却藏着一个蓝牙键盘记录器:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_007.jpg

图 7.7 – 隐藏在 USB 充电器中的键盘记录器

我不需要连接到你的系统。我只需插上它,而你可能会想:“实际上,我可以把它当做给手机充电的工具使用。”与此同时,它会接收蓝牙信号,检测人们在蓝牙键盘上输入的内容。

这就有点吓人了……现在他们已经有声波键盘记录器了。这是什么意思?现在有些应用程序正在进行实验。它需要时间,因为它必须学习击键的声音,但过一段时间后,它会通过声音波预测打的是哪些键。

如果这还不够吓人,那怎么样来点根本性的木马日志记录器?是的——已经有两个在野外被发现了。其中一个叫做水母,这是一种键盘记录器,它运行在显卡的图形处理单元GPU)中,而不是通过处理器或系统的中央处理单元CPU),而且我并不知道有多少杀毒软件正在查看 GPU 上运行的内容!

让你脊背发凉的是,我们还有虚拟机监控型的键盘记录器。这些键盘记录器会存在于一块被虚拟化的恶意软件中。它运行在操作系统之下,所以它不会被触碰,就像虚拟机VM)一样。

我们还有基于表单抓取的键盘记录器。这些基本上是一种软件,它会记录网页表单数据,然后通过互联网将你填写的表单数据发送给攻击者。不——它不仅限于 PC。

离线攻击

这些攻击方式很有意思,因为在离线攻击中,我们有的是时间。那么什么是离线攻击呢?如果我能以某种方式访问存储你密码和用户帐户的地方,并且可以在离线状态下进行操作,那么我就不会攻击那个机器。我会抓取一个数据库,比如 SAM 帐户数据库,或者可能我会抓取你的ntds.dit文件,然后我可以开始进行彩虹攻击(我们稍后会详细讨论)。

我们还可以使用以下方法之一。

分布式网络攻击

分布式网络攻击DNA)通过利用多个计算机的分布式计算能力,扩展了解密功能,可以解密文件、找出密码短语并恢复密码,而不局限于单台计算机。

预计算哈希

在这里,攻击者可以使用哈希函数解密字典中的每个单词,然后将其与加密密码进行比较。这样做的缺点是它需要大量的空间,但它的优势在于速度极快。

非电子攻击

非电子攻击是通过不使用技术的方式获取有价值信息的可能方法。虽然这些方法可能不太常见,但它们在获取所需数据或访问权限时依然非常有效。

垃圾桶潜水

这就是我们查看垃圾的方式。现在,这可能看起来不太体面,但相信我,这种事确实发生过。甲骨文曾因在微软的垃圾桶里做过垃圾桶潜水而抓到微软撒谎。

垃圾桶潜水是一种攻击者通过寻找可用信息的手段,这些信息可以用来建立信任。你可以通过探索目标受害人的垃圾,找到医疗记录、简历、个人照片、电子邮件、银行对账单、账户详情、软件信息、技术支持日志、政府记录、医疗账单、简历等内容。一旦垃圾被收集,信息就可以用来拼凑身份档案,从而使社会工程学攻击更容易成功。

肩窥攻击

在这种攻击类型中,某人显然是在监视你的肩膀,或者使用某种机制。现在最先进的方法是,我手里拿着一部可以拍摄视频的电子手机。假如我把它放在耳边,好像在和别人通话,但实际上我把摄像头指向你输入密码的地方?事实上,我对这种事情很警觉。当我去购物时,如果我打算在某个地方刷信用卡,我总是停下来环顾四周,看是否有人假装在用手机,而且手机正好指向我这边。

社会工程学

有一种社交工程的手段是一种非电子攻击,虽然有点灰色地带。它是一种非常著名的攻击方式,涉及使用 USB 切换刀。在这种情况下,作为攻击者,我配置一个 USB 驱动器,当你插入时,它会悄悄地进行一些有趣的操作,比如为我安装一个键盘记录器,也许是恶意软件,并且这一切都在背后悄无声息地进行。也许它甚至能捕捉到我检测到的你的登录凭证,然后我做的事情是随便把这个 USB 驱动器放到某个我知道有人会找到的地方——比如在公司停车场、主大厅、走廊、洗手间附近:就在目标公司附近的某个地方。如果有人捡到,它们会做什么呢?第一时间插入这个坏家伙,啪——他们就被pwned了!

认证方法旨在提供帮助

接下来是一些额外的破解概念,帮助你在破解过程中取得进展。

当 NTLM 认证对你不起作用时

这种认证机制是微软的专有技术,如果存在某些特定情况,它是默认使用的认证方式。我知道你会说:“他们在使用 Kerberos。”我知道,除非以下情况适用于你。它仅在两个不同的森林之间没有 Kerberos 信任关系并且你尝试共享资源时使用。

另一个使用 NTLM 而非 Kerberos 的情况是当通过 IP 而非 DNS 名称进行身份验证时,因为 Kerberos 要求 DNS 或域名环境。此外,如果一个或两个系统不属于同一域,请不要以为你没有使用 NTLM,因为实际上你很可能正在使用它。

另一种情况是如果你有一个防火墙阻止了 Kerberos。那么我们知道它在什么时候使用,那么它是如何使用的呢?实际上,它基于挑战-响应算法。

这其中很酷的部分是,密码从未被传输,因为你只是回应一个请求或挑战。正如我之前提到的,NTLM 从 Windows NT 的 v1 版本开始就有了。v2 版本随Service Pack 4SP 4)发布,所以如果你偶然遇到一个较老的 NT 系统,那么它很可能正在运行 v2 版本。

其工作原理是这样的:你有一台客户端机器,用户在登录界面输入用户名和密码。之后,Windows 会将该密码通过哈希算法处理,生成一个该密码的哈希值。然后,客户端将登录请求发送到域控制器,由于计算机已经加入了域,域控制器非常清楚与该登录名相关联的哈希值。因此,域控制器会生成一个随机字符串并发送过去,基本上是这样说的:“如果你说的是真的,你应该能够回答这个请求。” 客户端使用哈希值对这个请求进行加密,并将其发送回域控制器。域控制器接着会处理,获取用户密码或密码的哈希值,并进行比较,看它是否是正确的答案。如果答案相同,那么你就可以过桥了。如果不对,你就不能通过。这让我想起了著名的*《蒙提·派森与圣杯》*电影中的三问死亡之桥的场景。

Kerberos 认证

这就是我们正在使用的,几乎是与微软最新、最强大的技术同步的。Kerberos 得名于三头狗,它守护着地狱的大门——如果你是哈利·波特的粉丝,它也叫“弗拉菲”。它是基于票证的,我们发放票证,票证用来代表凭据。它非常快速,因为我们不需要一次又一次地重新认证用户——或者,可能是计算机。再次,它避免了密码的传输。

现在,这里有一个小细节,那就是它是基于时间的。如果你记得我们在枚举章节中提到的主域控制器PDC),你应该记得它负责将每个人的时钟与自己同步,因为在 Kerberos 中,微软的默认设置是 PDC 和你的系统时钟之间不能有超过 5 分钟的时间差。如果时间差超过了,它将无法认证你。那么,来看看弗拉菲是如何被使用的。

首先,我们有一台计算机、一个用户和一个域控制器。域控制器上运行着一些特殊的服务,其中之一就是密钥分发中心KDC)。如果我们有一个文件服务器并尝试访问它,用户会向域控制器发出请求,说:“我需要进行身份验证,请。”域控制器则回应:“好的,我能为你做什么?我可以验证你。”接着,用户的计算机会说:“我需要获取票据授权票TGT)。”因为计算机和域控制器属于同一域,所以域控制器可以向用户或计算机发放这个 TGT 或票据,以便在他们想访问资源时使用。当用户/计算机想要访问文件服务器上的文件时,他们只需提供他们的 TGT,文件服务器看到这是来自一个可信来源,便会迅速向域控制器核实并问:“这个账户仍然有效吗?”这样做的原因是为了防止管理员锁定了该用户。现在,仅仅因为票据被使用并不意味着你是安全的。我们稍后会在另一章中看到一个名为 John the Ripper 的工具——这是一个非常著名的工具,可能是现今最强大的工具之一。它是一个 Linux 工具,可以破解 Unix、LM 哈希密码、NTLM 密码和 Kerberos 密码。

盐值

盐值?是的……我的哈希需要一点盐。那么,如果你有两个用户,使用完全相同的密码,它们的哈希值会是什么样子呢?解决方案是什么?我们可以通过在密码前面或后面附加随机字符串——我们称这些为盐值——来随机化哈希值,这样可以避免出现重复的哈希值,并且使得攻击者很难弄清楚发生了什么。

每个盐值都需要确保它对于每个密码都是唯一的。不要为每个密码使用相同的字符字符串。如果你这么做了,作为攻击者,我只需要弄清楚你的盐值字符串是什么,然后就能获得每个人的密码。例如,我有两个账户,它们都使用相同的密码,那么它们的哈希值将是相同的。如果我使用盐值,我可以将一些唯一的字符附加到密码的末尾;因此,两个使用相同密码的不同账户将具有不同的哈希值。为了检查密码是否正确,我们必须能够访问盐值,因此它通常与哈希一起存储在用户账户数据库中,或作为哈希字符串的一部分。

现在,我得给你一个不幸的提醒,因为微软并不使用这个方法。它们在某些方面有使用,AD 中的密码是经过哈希处理的,但最终的哈希值实际上就是用户名本身。所以,再次提醒,确保如果你为密码加盐,每个盐值都是独一无二的。如果你是开发者,正在创建应用程序并希望让用户登录,一个常见的错误是他们会在程序中硬编码一个盐值,或者仅生成一个盐值并重复使用。如果我对每个密码都使用相同的盐值,两个使用相同密码的用户会有相同的哈希值。

另一个问题是你的盐值可能不够长——例如,只有 3 个字符。3 个字符会缩小攻击者需要考虑的可能性范围。现在,因为我刚才告诉过你哈希值需要被存储,这就带来了一个难题,对吧?如果密钥存储在系统中,而攻击者获得了系统的完全访问权限,他们将能够窃取密钥,无论盐值多长。密钥需要存储在外部系统中,比如一个物理隔离的服务器,专门用于密码验证。市面上也有专用硬件帮助存储盐值密钥。

其他破解方法

除了我们之前提到的方法,还有几种其他方法值得一提。

彩虹表和其他选项

彩虹表是一种预计算的哈希表,这样我就不必尝试每个哈希值的变种——我事先计算好了它们。我只需进行比较。不幸的是,这些预计算的哈希值占用大量存储空间。然而,你可以下载一些免费的彩虹表。

注意

你必须用谷歌搜索它们,并准备一个超大的文件(太字节TB),在某些情况下)。可以访问freerainbowtables.com查看示例。

如果你有足够的存储空间,也可以创建自己的彩虹表。有趣的是,随着固态硬盘SSDs)和云计算等新技术的出现,攻击者利用这些技术以创纪录的速度创建彩虹表,并利用亚马逊云系统或 Azure 的处理能力。在编译完这些彩虹表后,攻击者会去出售它们。

查找表

我们还可以利用查找表LUTs),它们就是普通的表格。基本上,这表示:“有没有哪个哈希值等于这个哈希值?哦,看——找到了,一个密码是 password5,”因为这就是哈希值的结果。

下面是一些示例:

  • 有没有哪个哈希值等于下面的?

5f4dcc3b5aa765d61d8327deb882cf99: 找到:password5

然后它会继续查看这些表格,表示:“嘿,那个怎么样?”哦,不在数据库中,所以没人拥有这个密码或哈希值。

  • 那下面的怎么样?

6cbe615c106f422d23669b610b564800: 不在数据库中

你的破解工具将继续工作:“嘿,我能得到 letMEin12 吗?有回应吗?”

  • 我能得到以下内容吗?

630bf032efe4507f2c57b280995925a9: 找到:letMEin12

“是的,这是另一个——试试这个。”它是这样的:

  • 386f43fab5d096a7a66d67c8f213e5ec: 找到:mcd0nalds

它会继续进行,具体取决于你下载的表格大小。

反向查找表(Reverse LUTs)

类似于查找表(LUT)的东西就是反向查找表(reverse LUT)。它们的工作方式是:“我有一个密码的哈希值:apple123——在这个列表中,谁使用了这个哈希值?哦,有几个账户……有 alice3,0bob0,还有 charles8。”

我热爱技术,但有时我看着新事物时会问自己:“这对我的安全有什么帮助?”

让我给你展示一些东西。下面的截图展示了一台装有多个显卡的计算机系统。这是一个项目:

https://github.com/OpenDocCN/freelearn-sec-pt2-zh/raw/master/docs/ceh-v11-31250-exgd/img/B17486_07_008.jpg

](Images/B17486_07_008.jpg)

图 7.8 – GPU 破解系统

现在,许多视频卡上都配有 GPU,而 GPU 非常适合破解密码。我们通常认为 CPU 有多个核心——例如,i7 可能有 8 个核心,或者你可能有一个双核。实际上,GPU 里有数百个核心。在这个研究项目中,他们建立了五个这样的系统。它们有 25 块超威半导体AMD)GPU,并且五个系统之间的连接速度为每秒 10 吉比特(Gbps)。猜猜看?我们不再需要做彩虹表了。使用这个系统和暴力破解,这个集群每秒能破解 3480 亿个 NTLM 密码。这意味着,一个 14 位密码只需要 6 分钟就能破解。

那 MD5 怎么样?嗯,我用这个设备每秒可以做 1800 亿次,即使你觉得你很安全并且在使用安全哈希算法 1SHA-1),我也只会把你的破解速度慢下来,变成每秒 63 亿次密码暴力破解。记住——这种系统,我会用在离线攻击中。我会获取你的数据库,然后可能在一两天内,就能为你找到几个登录选项。

现在我们已经完成了获取访问权限和破解密码的工作,接下来让我们讨论如何提升权限。

阶段 2 – 提升权限

想要本地管理员权限,尽管你并不被允许拥有这些权限,这就是提升权限的核心问题。所以,我们现在面临的问题是:我们已经破解了密码并找到了用户 ID,但我们被困在该用户的权限内——还是说我们没有?

世界著名的黑客凯文·米特尼克(Kevin Mitnick)曾说过:

这是真的,我曾入侵过很多公司,拿走源代码并分析其中的安全漏洞。如果我能找到安全漏洞,就能在入侵他们的系统时做得更好——这一切都是为了成为一个更好的黑客。

想一想,他所做的其实是通过了解源代码并查看哪些漏洞或问题可以帮助他提升权限,从而提升了自己的权限。

我们已经进来了。接下来该做什么?

现在我们该怎么做?记得我们是如何进入的吗?我们找到了一个用户账户并破解了他们的密码。我们现在的目标是给自己足够的权限和许可来做我们想做的事。所以,永远不要认为因为你不是管理员或没有管理员权限,你就不能完成目标。

一旦我们成功进入,下一步是四处查看。如果我们以本地管理员身份进入,我将查看是否有任何配置错误。我还可能会检查网络基础设施层面上的设计错误。再次强调,很多时候你可能会通过 Google 黑客手段发现目标,然后仅凭默认的用户名和密码就进入了系统。进入后你会想:“嗯,我还没有完全侦察这个环境”,所以我们可能还需要再检查一下这些设计错误。也许它们被错误配置了,或者没有更改默认密码和默认设置。

我还想了解一下布局。这个我已经攻击过的目标,它在网络中的作用是什么?我还会查看是否有编程上的缺陷。我知道——程序员从不犯错,对吧?他们只是发布补丁来增强应用程序。这就像 IT 人员——他们从不犯错,他们只是改善性能。

至于我们的整体目标,我们有四种基本的提升权限方法,具体如下:

  • 征服管理员/root 账户

我们的目标之一是能够征服 管理员root 账户。

  • 利用漏洞

第二种方法是利用应用程序或操作系统中的漏洞,这些漏洞将允许你以特权用户身份访问。有许多应用程序在后台提升当前登录用户的权限,而这些你可能没有考虑到。

尝试使用 www.exploit-db.com。它提供了关于你可以利用的漏洞的见解。我们将会详细了解其中的一些。我们可以通过这个来进行权限提升。

  • 使用提升权限工具

另一种提升权限的方法是启动像 Metasploit 这样的工具,它是一个完整的框架和黑客套件,旨在让你查看网络中是否存在任何漏洞或其他类型的弱点。但显然,我们知道攻击者会利用这些工具来对付我们。Metasploit 的缺点是它非常容易使用。你可能会在 YouTube 上找到相关的视频,这意味着可能有个 12 岁的小孩正在试图攻击你的系统。

还有更多类似的工具,包括 Canvas 和 Core Impact,这些都是完整的渗透测试工具,以及 Armitage,它基本上是 Metasploit 的图形化前端。

  • 社会工程学

如果我们让别人为我们做这件事怎么办?这就是所谓的社会工程学。作为攻击者,我可以说服人们为我运行一个程序,或者可能为我查看一个文件。我必须以某种方式引诱他们,利用社会工程学的核心情感之一。通常,我会通过恐惧或贪婪,或者寻求帮助来做这件事——这是一种非常可靠的社会工程学手段,因为作为人类,我们喜欢帮助他人,对吧?我做的就是发一封邮件给你,附上一个脚本或程序,要求你双击它,因为它会为你修补系统。我会让它看起来像是 IT 人员发来的邮件。我还可以创建一个便携式文档格式PDF)文件,打开后它会为我执行程序。

对策

我们如何阻止这种情况发生?好吧,确实有一些对策,但你需要记住,你的工作不是去阻止它们——因为你做不到。你只能减缓它们的速度。那么,我们如何做到这一点呢?以下是方法:

  • 第一种方法是使用加密,这有助于保护被认为是敏感的数据。如果我将数据加密到某个特定用户,那么无论该用户的权限是什么,或者我自己用户的权限是什么,我都无法访问这些信息。

  • 你还可以考虑在用户和应用程序方面实施最小权限。我们所说的是,不要过度分配你的权限。如果某人需要在机器上做某件事,花时间弄清楚他们需要哪些权限,并只给予他们这些权限。

  • 你还可以确保你的更新已完成。这让我感到非常恼火,因为许多权限提升问题可以通过确保你在修补系统来避免。

  • 你还可以做的一件事是限制交互式登录。交互式登录是指在计算机上按下“三指礼”或Ctrl + Delete键并登录的权限。默认情况下,普通用户没有权限在服务器上进行交互式登录。

  • 你还可以确保你的服务帐户是有限制的,使用类似于最小权限的概念。我经常看到这种错误,IT 人员会去安装一个应用程序——例如结构化查询语言SQL)或 SharePoint——他们需要一个能够利用机器的服务帐户。就机器而言,所有的工作是由用户执行的,但实际上是由这个帐户来做。有时候,IT 会使用本地计算机上的管理员帐户。再一次,你需要评估这些服务帐户需要什么访问权限,因为它可能为你创造了一个漏洞或漏洞点。

  • 另一个选项是限制代码的范围,如果你是开发者并且正在创建一个以高权限级别运行的应用程序。再次强调,通常我们在走捷径时会导致问题的发生。

  • 你还可以做权限分离。采用这种方法时,我们可以限制编程错误和可能的漏洞的范围。

  • 如果你是开发者,你还可以仔细测试操作系统和应用程序,审查代码。如果你是 IT 人员,并且开发者说:“这是我们将要使用的新应用”,那么应该有一些文档说明做了哪些工作。你应该对任何要求你在环境中放置的代码提出质疑。如果你是开发者,不要随便下载某人的示例代码并直接复制粘贴。确保理解每一行代码的作用。

  • 使用多因素认证是另一种对策。通过这种方式,我们为自己增加了另一层安全防护网。

  • 做一些压力测试。因为很多时候,当一个应用程序或操作系统过载时,它会产生漏洞。你甚至可能会考虑使用BoundsChecker进行调试。然而,请意识到,尽管这些措施无法完全防止所有事件的发生,但至少可以让你感觉自己已经掌握了一些主动权。

接下来,我们将讨论有助于我们实现目标的不同类型的升级。

升级类型

现在我们了解了不同的对策,让我们来讨论不同类型的升级。

特权升级

这是指任何能够让攻击者在系统被攻破后获得更高权限的情况。换句话说,我们将一个低权限账户的权限提升到更高的账户,这样我们就能进行横向移动,享受各种有趣的操作。我们还涉及到他们所称的信息泄露。这基本上是指任何类型的漏洞,允许攻击者访问敏感或受保护的数据。我们还涉及到他们所称的安全功能绕过。通常,这是由软件弱点引起的,允许攻击者绕过政策、验证,甚至其他保护措施,比如绕过用户账户控制UAC)或任何类型的过滤器。你可以执行不同类型的升级,选择使用哪种方法将取决于你要实现的目标。特权升级可以通过使用动态链接库DLL)注入来完成。

横向升级

在安全术语中,横向升级是攻击者用来实现其目标的最常见方法之一。

攻击者通常会寻找穿透外围防御的方法,以便在网络内获得初步的立足点。通常,他们会发现一些低挂的果实,比如一个留下空白密码的用户,或者一个缺乏适当安全控制的 Web 应用程序。

一旦攻击者获得了对网络的访问,他们将寻找横向移动的方式,并尽可能地将感染传播到更多的系统。通过这样做,他们可以收集更多有价值的数据,甚至控制整个网络。

离线访问

离线访问通常是指那些可能不总是连接到网络的机器。如果一台笔记本电脑被盗,或者我能够攻陷这台笔记本电脑,我就有了无限的时间,因为它是离线的。正因为如此,我可以利用一些简单的漏洞来完全控制这台机器,然后希望当你重新连接它时,我能继续我的完全支配。

DLL 和 DYLIB 劫持

DLL 文件一直困扰我们。这是我们必须面对的问题。大多数 Windows 应用程序在加载 DLL 时并没有使用完全限定的路径,因此没有结构。它基本上是说:运行这个 DLL。相反,默认情况下,当一个应用程序启动时,它首先会搜索其启动目录。考虑到大多数应用程序开发人员和用户会走捷径——不指定路径——攻击者可以在应用程序目录中加载一个带有恶意意图的 DLL。一个例子是,如果一个应用程序需要 library.dll 文件(该文件位于系统目录中)来安装应用程序。如果它找不到该文件,或者如果它首先在你安装的路径中找到了该文件,它就不会看到 Windows 系统目录中的文件。所以,当用户运行并加载应用程序时,它使用了该 DLL,攻击者就可以获得对该计算机的完全远程访问。嗯——也许这应该让你开始怀疑现在下载 torrent 文件了,对吧?

Fortnite 是一款深受儿童和成人喜爱的游戏,极为流行。了解这一点后,攻击者曾经发布 补丁,让玩家变得无敌或获得额外的枪支。好吧,当然可以,但它们通常是装载了其他东西。事实上,安全研究人员发现了这个漏洞。

别以为 Windows 是唯一的受害者。苹果也是一个非常大的目标。但与使用 DLL 不同,苹果使用 DYnamically linked LIBrariesDYLIBs),这基本上是相同的概念。这是一个动态库,因此得名,应用程序可以调用它,但 DYLIBs 通常是特定于用户的。所以,根据我们想要部署的方式,攻击者可以简单地将恶意 DYLIB 放入特定位置。在很多情况下,OS X 中的加载器将会在多个路径中搜索动态库。这将帮助攻击者将恶意 DYLIB 注入到其中一个主目录中,然后在运行时简单地加载该恶意 DYLIB。这使得攻击者能够绕过安全软件,甚至绕过 Gatekeeper——macOS 系统的安全功能,它强制代码签名并在允许应用程序运行之前验证下载的应用程序。但是,同样的,我可以通过劫持 DYLIB 绕过这一切。好了——我们别再挑软件的毛病了,来谈谈硬件吧!

利用 CPU 漏洞

我们来谈谈 Spectre 和 Meltdown,好吗?这两个漏洞都是基于 CPU 的,遗憾的是,这些漏洞跨越了不同类型的芯片,且存在了很长一段时间。它们每个都利用了内存缓存和执行顺序,和/或利用了分支预测。现在,这些术语可能有点难懂,但要知道,漏洞是存在的。

我们面临的另一个问题,特别是在关注像 Spectre 这样的安全漏洞时,就是它带来了一些有趣的问题,因为它影响了来自 Apple、AMD、高级 RISC 机器ARM)的 CPU、Intel、Samsung 甚至 Qualcomm 的处理器。这些基本上是地球上所有的手机,对吧?这个漏洞通过欺骗处理器,利用预测执行来读取受限数据。这意味着,如果芯片识别到一个包含多个条件语句的程序,它会开始执行,然后在程序执行之前得出所有可能的输出,从而加快系统速度。这个漏洞允许攻击者强制处理器在执行边界检查之前完成预测执行读取。结果是,攻击者可以访问并读取 越界OOB)内存位置。这些位置可能包括机密信息——例如存储在浏览器中的凭证——甚至是读取内核内存或利用 JavaScript 进行基于 Web 的攻击。

说到 Meltdown,这个漏洞并不是所有 CPU 都存在,但它确实影响了 Apple 部署的所有处理器,不论是基于 Intel 还是 ARM 的处理器。这个漏洞通过利用 CPU 的优化机制和预测执行,欺骗进程访问越界内存。攻击者可以利用这两种漏洞之一,强制无特权进程读取其他相邻的内存位置,例如内核内存或物理内存,从而提升其权限。

这两个漏洞最大的一个问题是,它们是内建于芯片中的,唯一能够修复这些漏洞的方法是针对已发布的受影响 CPU,推出软件修复程序,但这导致了 CPU 性能的下降。

访问令牌篡改

攻击者可以通过诸如访问令牌篡改等方式提升权限。Windows 本身使用访问令牌来确定正在运行的进程的所有者。用户或攻击者可以篡改访问令牌,使一个运行中的进程看起来像是属于启动该进程的用户之外的其他人。我们将这些称为伪造令牌。

应用程序修补

这在 Windows 操作系统使用 Windows 通信框架WCF)时发挥作用。我们称之为 Shim,它允许 Windows 10 执行或运行旧版本的程序。例如,对于那些在 XP 下创建的程序,如果你升级到 Windows 10,仍然希望该应用程序能够运行。这些 Shim 在程序与操作系统之间提供了一个缓冲区。

如果你曾经在 Windows 中使用过兼容性向导来尝试运行一个应用程序,它会问你一些问题,比如:“它是否需要提升的权限,或者它是否能在以前版本的 Windows 中运行?”这帮助你构建那个 Shim。现在,当程序启动时,会引用 Shim 创建的缓冲区。它需要验证程序是否有权限访问 Shim 数据库。一些 Shim 可以用来绕过 UAC,注入恶意 DLL,捕获内存地址,甚至赋予攻击者安装后门或提升权限的能力。

其他 Windows 问题

Windows 操作系统中还有许多进程会自动执行二进制文件,这是它们功能的一部分,或者是它们试图通过这个应用程序完成的某些任务。如果这些二进制文件的文件系统权限设置不当,攻击者就可以用恶意文件替换它们。我们称之为文件系统权限漏洞。如果执行二进制文件的进程具有更高权限,那么二进制文件也会在更高权限下执行,这可能包括系统账户。攻击者可以利用这种技术,替换原始二进制文件,使用恶意文件来提升或增强他们的权限。

我们还有一种叫做 路径拦截 的技术。这是攻击者通过将可执行文件放置在特定路径中,从而让应用程序执行它,而不是合法目标应用程序的方式。路径拦截帮助攻击者在系统中保持持久性,并提升他们的权限。

定时任务

Windows 操作系统有一个叫做任务调度程序的东西,它允许用户配置每大约 3 天就进行一次系统碎片整理。具有管理员权限的用户可以将这些工具与任务调度程序结合使用,来调度在特定时间和日期执行的脚本或程序。如果用户提供了正确的认证,他们可以使用 远程过程调用RPC)从远程系统调度任务。攻击者可以利用这种技术在系统启动时、任何类型的维护过程中执行恶意程序,进行远程执行,当然,还可以提升他们的权限。

Apple 问题

对于非 Windows 用户,macOS 或 OS X 系统在启动过程中,launchd 被执行以完成系统初始化过程。每个按需启动和系统级守护进程的参数都通过 launchd 加载。这些守护进程有一个属性列表文件(plist),该文件与启动时运行的可执行文件关联。攻击者可以创建并安装一个完全不同的启动守护进程,并配置其在启动时执行。这些弱配置允许攻击者修改现有的启动守护进程可执行文件,以便在系统中保持持久性或提升其权限。

我知道,你在说:“请告诉我就这些了吧。”不,还有更多呢。记得我刚刚提到的 plist 文件吗?这些文件存在于任何应用或服务中。它们包含了配置所需的必要信息。plist 文件本身实际上就是 可扩展标记语言XML)文件,修改一个 XML 文件有多容易?攻击者可以访问并更改这些 plist 文件,以代表合法用户执行恶意代码。他们还可以利用它们来保持持久性,并提升在该设备上的权限。

Linux 问题

如果你是 Linux 用户,你可能会说:“哥们,我们是安全的!”其实,不论是 Linux 还是 macOS,如果一个应用使用了 setuidsetgid 标志,那么该应用将以所属用户或所属组的权限执行。通常情况下,应用是以当前用户的权限运行的,但也有一些情况,程序必须以更高权限执行,而运行程序的用户并没有这些权限。在这种情况下,可能是开发者设置了应用的 setuidsetgid 标志。攻击者可以利用带有 setuidsetgid 标志的应用,执行具有更高权限的恶意代码。你看出问题了吗?我们在到处提升权限。

Web Shell

最后一种是 Web Shell,这只是一种可以上传到 Web 服务器的脚本——或者它可能成为服务器的一部分——允许远程管理机器。这对于使用 PowerShell 进行远程管理非常有效。问题在于,攻击者可以创建自己的 Web Shell,并将恶意脚本注入 Web 服务器,以维持或提升他们的权限。他们还可以利用它们作为后门,远程访问并控制服务器。通常情况下,Web Shell 在当前用户的权限下运行,但如果该机器存在任何类型的漏洞,攻击者就可以提升权限,安装恶意软件、更改用户权限、添加用户和组、窃取凭据、阅读电子邮件——几乎可以做任何事。

缓冲区溢出

首先,我们需要回顾并理解任何运行在计算机上的程序的最终目的是处理某种类型的数据。通常,这些数据是由用户提供的,因此程序需要将数据存储在某个地方,而最好的存储位置就是内存。这就是我们麻烦的开始。许多开发者假设用户输入在某种程度上是合理的。例如,假设一个 URL 地址超过 500 个字符似乎有些不合常理。通常,开发者会通过将其乘以 2 或者 10 来进行填充。基于这一假设,开发者可能会为一个网页地址保留最多可以容纳 5,000 个字符的内存。那么,这块保留的内存空间就叫做缓冲区,并且它位于随机存取内存RAM)中。所以,因为开发者可能永远不会怀疑有人会使用超过 5,000 个字符的输入,他们通常不会进行任何检查。数据只是按原样处理。那么,如果用户无意中——或者可能有恶意动机——提供了一个包含 5,500 个字符的网页地址,会发生什么呢?嗯,在写入第 5,000 个字符后,剩余的部分就会变坏,它会被放置在缓冲区后面的内存中,导致缓冲区溢出。这些攻击的目的通常是让攻击者能够直接在系统上运行自己的代码,这被称为任意代码执行,或者攻击者可以执行自己的代码并将其从一台机器传输到另一台机器,这有时被称为远程代码执行

拒绝服务

然后,显然,我们有我们最著名的漏洞(可能是):拒绝服务DoS)。这包括允许攻击者消耗 CPU、硬盘、连接、RAM 等所有资源的条件,从而使进程无法再处理合法请求。

另一种类型的漏洞是另一个著名漏洞,跨站脚本攻击XSS)。这是一种漏洞,恶意脚本被注入到网站中,然后该脚本会被浏览器下载并在最终用户的系统上执行——或者应该说是在其他用户的系统上执行。

另一个著名的漏洞是目录遍历。这是一种漏洞,允许攻击者访问他们进入的目录之外的受限目录。例如,如果我进入了我在生产网络上分配给D. Meredith的主目录,假如我能够执行一些恶意代码并转移到 B. Wayne 的目录查看他们的信息,或者 C. Kent 的,甚至 L. Lane 的,可能会玩得很开心。我们还称之为跨站请求伪造CSRF)。这些类型的漏洞允许未经授权的命令从用户传递到 Web 应用程序。

到目前为止,我们已经破解了密码,找到了我们的用户帐户,进入了系统,并提升了权限——那么,我们就完成了吗?实际上,我们可能已经成功入侵了机器,但完全入侵是指我们能够通过执行应用程序来维持访问。

第三阶段 – 维持访问并执行应用程序

总体来说,这一阶段的整个过程就是确保我们始终能够重新进入。再说一次,从攻击者的角度来看,你不会仅仅完成我们所经历的所有步骤之后说:“哈哈,我成功了!”然后就离开,对吧?我们还需要继续观察系统或目标机器的状态,获取清晰的画面。我们还会检测哪些以前可能被阻止的信息现在可以访问了。

假设我是一个攻击者,创建了一款软件,我将它放到网络上,让它与主服务器通讯,某天我发现有三台系统安装了我的软件。我会利用这款软件重新进入,然后使用一些额外的软件,确保我能对环境有极为清晰的理解。我要寻找的一件事是他们是否有任何类型的入侵检测系统IDS)。

我们如何执行应用程序?

好吧,这通常是通过以下三种方式之一来实现的:

  • 间谍软件:最常见且最简单的方式是通过间谍软件。我知道这个词在行业中很火,而且间谍软件有不同的层次——例如,市面上也有合法的间谍软件产品。如果我去安装一个应用程序到我的安卓设备上,很多时候我会说:“是的—继续,查看我的联系人,或者使用我的网络连接。”

我的父亲教了我一件非常宝贵的事情。他说:“没有免费的午餐。”如果你足够大,能理解这句话的含义,你会明白他是说,世上没有什么是免费的。我知道它说是免费的——Gmail 说:“嘿,这是免费的。”但真的是吗?我们为此付出了代价。代价就是谷歌会查看你的邮件,寻找特定的词汇,以便进行营销销售。那就是它们赚钱的方式!没人会说:“我想做个好人,花费无数小时创建一个应用程序,然后就免费赠送。”事情不是这样的。

  • 后门:我们可以通过后门来执行应用程序,这允许用户或攻击者在不被察觉的情况下重新进入。通过键盘记录器,我可以设置在特定按键或按键组合被按下时,执行我的程序。后门非常有效,因为它们很隐秘,还可以在指挥与控制C2)场景中使用,以绕过防火墙和入侵检测系统(IDS)。

间谍软件和后门

当我们谈论间谍软件时,我们心中会浮现出一些没有经验的用户,比如奶奶(或者在我的情况下是侄子侄女),他们安装了假的软件或点击了链接,然后砰的一声:“事情完成了。”

间谍软件通常是在我们下载文件、应用或免费产品时安装的。通常,制造商希望知道你如何使用该产品,或者他们可能会因此赚钱。事实上,我觉得很有趣的是,上次我安装 Java 时,如果我没有在安装过程中点击高级按钮,我也会安装一些额外的工具栏和软件,我敢肯定 Oracle 会因此赚钱。

间谍软件的设计目的是捕捉我们输入的身份验证凭证。攻击者甚至可能捕获电子邮件,或在我们填写网页表单时启动并记录信息。同样,我将以 Google 为例,因为他们是行业中的大佬,并且他们免费提供一切。其中很多目的就是为了捕捉用户的习惯。从攻击者的角度来看,能不能通过了解你的习惯更好地为你画像呢?“什么样的习惯?”那可能是:“嘿,这个目标在银行网站上使用这个密码”,或者“他们在社交网络网站上使用这个密码”,或者“目标只是使用特定密码的变体。”如果我同时捕获屏幕截图和按键,我就能开始捕捉习惯。即使在你的 Android 手机上,如果你从种子下载了一个免费的应用并进行旁加载,它也可能是恶意的,这些应用可能会开始捕捉你的习惯。有些合法应用会跟踪用户使用应用的时长,甚至记录你在设备上的滑动操作。

此外,当你要在平板电脑、手机、电脑上安装一个应用时,你会坐下来阅读用户许可协议ULA)吗?不会吗?我知道——我有时候也不会。但我理解它的整体意思。也就是说——第一:你并不拥有软件;第二:我们将收集有关你的信息,可能访问你的联系人,查看你使用我们应用的时长,甚至看看你使用完我们的应用后打开了哪个应用。如果我认为这个应用值得信任,我会把它作为一种风险接受。然而,我只会接受来自合法软件公司的风险。

间谍软件的类型

间谍软件通常是在安装应用程序时安装的。例如,如果我下载了一个 WinZip 的副本,然后在安装过程中,我只是一直点击下一步下一步下一步下一步下一步下一步下一步下一步——他们希望我这么做——我可能会安装一个新的工具栏,而该工具栏会在Internet ExplorerIE)中跟踪我的部分活动。

现在,从攻击者的角度考虑这个问题。假设 Photoshop 推出了一个新版本,作为攻击者,我破解了这个产品,并插入了我自己的间谍软件,这样当用户安装应用时,我的间谍软件就会被安装。我会确保它是隐藏的,这样他们就看不到它在运行。是的,我可以把它隐藏在你的任务管理器中。

它在视频中

我们还有通过视频传播的间谍软件。我不是在说 YouTube,尽管我很确定 YouTube 确实会监视你在他们频道上观看的视频。但那应该是合法的,对吧?其他视频来源可能会用最新的大片电影来诱惑你,免费观看,但事实是…并非如此。我有一个侄子曾经把他的电脑带给我,说:“嘿,运行得很慢而且迟钝。”

重要提示

速度慢是你安装了间谍软件的迹象之一。

当我查看时,我看到所有这些程序在启动时启动,当我和他交谈时,他告诉我找到了一个非常酷的网站,他可以免费观看仍在影院上映的电影。现在,再次,我确信 Netflix 在监视我们;然而,我更担心有人来到我的家里,对我的网络或系统犯错。我的侄子试图打开网页,以便我能看到它,我跳了起来:“不要”,然后迅速拔掉了网络电缆,因为我知道外面有什么。

你的打印机正在监视你

打印机也有间谍软件。如果我加载一段间谍软件,每次你打印东西,我都能得到一份副本,可以吗?想一想这个。你打印了什么?你确定你从未打印过税表、医疗记录,或者更好的是,假设你的医生的机器上安装了一段间谍软件,因为医生的接待员认为每次弹出窗口显示“您需要安装这个软件”是因为他们访问了不当或恶意的网站?攻击者可以安装一段间谍软件并获得每份打印的文档的副本。

USB 也有罪

我们还有基于 USB 的间谍软件。这里,我有这个软件的一部分,我展示它作为一种概念验证POC)。这在外面经常被使用,但我总是有学生过来问我:“你能给我一份这个白皮书的副本吗?”或者,他们说:“你能给我这些虚拟机的副本吗?”如果我有恶意意图,我可以简单地说:“当然,只要给我一个 USB 驱动器”,当他们这样做时,我会插入它。我会有一个小程序,当我把文件复制到他们的 USB 驱动器时,我也会向他们的 USB 驱动器注入间谍软件,这样当他们将其插入系统时,它会在他们不知情的情况下悄悄注入所有内容。它还会将他们 USB 驱动器上的所有内容下载到我的机器上。

麦克风测试 - 1,2…1,2

我们还有注入到音频中的间谍软件。没有免费的 MP3!再次,让我们思考间谍软件的合法原因和黑暗面。

比如说你有一个 Spotify、Google 或 Google Music 的账户。我敢肯定这些公司正在监控并查看你在他们的音频文件上的操作:你安装了多少台设备,听了多少次,等等。有些监控是通过 Cookies 实现的,但如果你在你的网页浏览器中安装了任何类型的应用程序或插件,我敢肯定你正在安装某种跟踪软件。

如果我想在你的机器上安装间谍软件,我会选择一张受欢迎的音乐人或乐队发布的新专辑,撕掉它,加入我的间谍软件,然后把它发布到 torrent 网站上。每当有人下载并开始播放音乐时,我的间谍软件就会启动。

电子邮件和钓鱼攻击

我们还有通过电子邮件和互联网传播的间谍软件。我们已经讨论过恶意网站,我也见过这些网站。人们收到邮件说:“嘿,这里是国税局。我们将开始对你提起诉讼,原因是你的税务表格……点击这里。”然后你或用户点击了链接,进入了一个网站,或者执行了一个本质上是恶意的脚本。

不要以为攻击仅限于 PC/笔记本电脑。这种攻击在移动平台上正爆炸性增长。每次在我的手机上安装应用程序之前——因为我知道可能会有东西追踪我做什么——我都会查看它所需的权限,看看它需要访问什么。如果是游戏,我不在乎游戏有多酷。如果它要求访问我的联系人,那我绝对不会把它安装在我的设备上。同样,也要查看应用程序的权限。大多数大厂商都要求你这样做,无论你是从 iTunes 商店、App Store、Google 还是 Amazon 下载——这些我认为是相对值得信赖的来源。历史告诉我们,曾经有很多不良应用悄悄进入了他们的商店。

在从不同的资源库下载软件或应用程序时要非常小心,即使它看起来是史上最酷的东西。事实上,这也是黑客社会工程学的一部分。我利用你想要这个东西的心情,靠你愿意为此做出一些妥协和跳过一些障碍,甚至可能安装一款会帮助我控制你的软件。

接下来,我们将讨论如何利用后门进一步提升我们访问目标的能力。

更多关于后门的内容

说到后门,我们需要确保理解它们的含义。

后门由两个组件组成——其中一个在客户端,另一个在服务器端。

客户端是我希望能安装到目标上的部分,而服务器是所有客户端汇报的地方。

许多后门也会内置自动化功能。其中一些自动化功能可能包括回连技术。这就是我可以在目标上安装客户端(也许是因为他们下载了我的免费邪恶版本的 Photoshop),为了绕过大多数防火墙的安全性(大多数防火墙会阻止所有入站连接,除非它们是由出站连接发起的),我让客户端通过防火墙回连到我的服务器端。

我们还可能使用所谓的第一线后门,即发送初始恶意软件。主要后门充当其他恶意软件的下载器,然后我们安装这些恶意软件。通常,当某人被感染时,不仅会创建一个后门,而是会创建多个后门。因此,如果我安装了第一线后门,那么第二线后门就会出去并窃取我正在寻找的信息。

你可能会想:“如果我检测到了,我就删除它”或者“我已经安装了杀毒软件”。问题在于,大多数这些后门和间谍软件程序的自动化部分包括使 Windows 无法更新的能力。它们会禁用你的杀毒软件产品,感染你的主机文件,确保你无法打开它,并锁定系统以阻止你修复它。或者,至少需要一些计算机知识的人来修复它,而这通常不是标准用户。

常见后门

一些更常见的后门是最流行的。Back Orifice 是一个流行的后门。这是由一个名为Cult of the Dead Cow的组织创建的。他们从 Microsoft 为所有服务器平台产品提供的产品线中得到了Back Orifice的名称。不仅是 Server 2000,还有 SQL 和 Exchange,都是 BackOffice 产品线的一部分,所以,为了取笑它,他们称之为 Back Orifice。

Sercomm 制造大多数路由器和安装在路由器上的零部件,路由器由 Netgear、思科、Linux 等公司销售。嗯,这些设备中有一个后门,有趣的是,他们发布了一个应该修复后门的补丁,但实际上并没有——它只是隐藏了后门。他们的后门通过特定端口工作,以便攻击者可以打开远程 shell,重置路由器,甚至对配置进行修改。

当我们谈论后门时,我无法避免提到一些政府机构。部分后门被植入了卖给其他国家的硬件中。国家安全局NSA)一直在努力为加密技术开发后门。事实上,在 2015 年初,微软发布了一个安全公告,承认他们知道存在一个安全功能绕过漏洞,称为FREAKFREAKRSA-EXPORT 密钥的因式分解攻击的缩写,是一种已知的中间人攻击漏洞,由于网站加密弱,使得攻击者可以利用该漏洞植入后门并窃听加密通信。你永远猜不到是谁利用了这个漏洞!

也有一些消费级产品。远程执行可能是其中更受欢迎的一种。你可以使用这个产品来悄悄地安装应用程序,意味着用户看不到安装过程、执行脚本、复制、修改或删除文件。你甚至可以做个过滤器,设置为:只给我所有的 DOC 文件。我甚至可以在任何时候更改管理员密码,或者关闭或开启机器。再说一遍,这个产品是为了管理员管理环境而设计的,但如果我在你的机器上安装了这样的东西,或者让某个客户端安装它,并让它向我的服务器回报,那我就能完全控制你的机器。

我们已经讨论了如何通过几种不同的工具和选项维持访问并执行应用程序,这些方式允许我们在保持隐蔽的情况下继续访问系统或网络。接下来,我们将讨论如何隐藏我们的工具。

第 4 阶段 – 维持访问权限和隐藏工具

我知道你在想什么。你肯定在想,他肯定想不出什么笑话来解释这一点吧?所以,当我谈到隐藏工具时,其实我们真正想讨论的是我在那些讽刺的 T 恤上看到的一句话:嘘……我在躲避愚蠢的人! 这就是我们要做的——隐藏我们的工具,让那些智力水平较低或者不懂安全的人找不到它们。再说一次,我们最不希望做的事情就是在付出了所有努力,确保我们的机器完全被攻陷后,却因为没有将软件从用户或 IT 专家面前隐藏起来而丢失它。

Rootkit

当你在环境中发现 rootkit 时,你会恐惧得失去理智。你会想,天哪,真是个糟糕的情况!

安全提示

如果你发现一个系统上安装了 rootkit,你永远不该信任它。不要清理它。不要尝试修复它。你需要从头开始重新安装系统——操作系统和应用程序,全部重新安装。请不要犯试图拯救这个系统的错误。

Rootkit 最早是由索尼公司试图悄悄让大家忽视的事情发现的。这发生在 2005 年,当时索尼开始在约 2200 万张光盘CD)上加载复制保护措施。当你将 CD 插入计算机时,CD 会安装一段修改操作系统的软件,以便如果你试图复制 CD,它就会进行干扰。问题在于:1) 这个 rootkit 无法卸载;2) 它会创建额外的漏洞。而且他们使用的其中一个程序,即使用户拒绝或拒绝接受最终用户许可协议EULA),也会被安装,并且会连接到主机报告用户的听歌习惯。那时正是像 Napster 这样的服务盛行的时候。

这件事是由 Mark Russinovich 发现的,他是 Sysinternals 软件套件的创建者。他注意到光盘出现了异常,并且报告了这一现象。没有人相信他,除了一个小型的 antivirus 公司——F-Secure。F-Secure 是最早推出 rootkit 和卸载工具的公司之一。

那么,我们为什么使用 rootkit 呢?其实它有两个主要功能:远程控制或后门,以及窃听。rootkit 允许攻击者获得计算机的管理员控制权限,这意味着他们可以运行任何程序,查看用户在系统上的操作,甚至更改系统的配置。

市面上有许多不同类型的 rootkit,具有不同的功能,但最大的问题是它们极其难以删除。从病毒的角度来看,rootkit 可以被认为是所有感染的“母体”。那么,rootkit 为什么会被使用呢?嗯,我们通过它可以获得远程控制的权限,并观察环境中发生的情况。如果你认为“我刚装了杀毒软件,它一切都好——没有检测到”,那你需要确保你的杀毒软件始终保持更新,但有一种被称为 rootkit 多态性(polymorphism)的技术。这项技术使得 rootkit 极难被发现,因为它允许 rootkit 重写核心汇编代码。结果,你的杀毒软件,尤其是基于签名的,几乎变得毫无用处。

发现使用多态性的 rootkit 的唯一方法是使用能够深入操作系统内部,并将其与健康操作系统的基准进行比较的技术。

这里列出了几种不同类型的 rootkit:

  • 用户模式 rootkit:在用户模式下,rootkit 在计算机上以管理员权限或特权运行。这使得 rootkit 能够修改安全设置,并隐藏进程、文件、系统驱动程序和系统服务,rootkit 通过简单地将文件复制到计算机硬盘并在每次系统启动时自动启动,从而保持安装。缺点是,至少从攻击者的角度来看,用户模式是杀毒软件和反间谍软件应用程序能够检测到的少数几种类型之一。

  • 内核模式 rootkit:攻击者此时所做的是,他们知道用户模式的 rootkit 可以被检测到——那么,如何让 rootkit 与操作系统在同一级别加载呢?此时,操作系统就无法再被信任。最著名的内核模式 rootkit 之一是 Da IOS Rootkit,它专注于思科的iPhone 操作系统iOS)。所以,是的——你可以在网络设备上找到 rootkit。

  • 混合型 rootkit:这是两者的最佳结合,我们可以从用户模式 rootkit 中借用一些特点,比如易于使用和稳定性,再结合内核模式 rootkit——也就是说:我可以隐藏这个东西。这是目前比较流行的 rootkit 之一。

  • 固件:这种类型的 rootkit 类似于用户模式或内核模式的 rootkit,但这种 rootkit 实际上藏匿在计算机关机时的固件中——所以,当你重新启动计算机时,rootkit 会自动重新安装。当我们说它藏匿在固件中时,它可以是从微处理器代码到外设组件互联PCI)扩展卡固件的任何东西。而且,每次重新启动时,rootkit 都会被重新注入。

  • 虚拟 rootkit:这些是相对较新的,我能想到的最流行的一个叫做 Blue Pill,它基于 x86 虚拟化。它是 2006 年在Black Hat会议上展示的一个 POC(概念验证)。Blue Pill 的概念是通过简单启动一个薄型虚拟机监控器(hypervisor),然后将其余的机器虚拟化,从而陷入一个正在运行的操作系统实例。原本的操作系统仍然存在,任何对设备或文件的引用,或者涉及硬件中断或数据请求的任何操作,包括系统时间,都可以被新的虚拟机监控器拦截或伪造。

提出这个想法的绅士在黑帽大会上表示,他认为这将是 100%无法被检测到的,因为根工具本身是虚拟化的。你可能会说:“是的,但我仍然有杀毒软件,并且我保持它的更新。”好吧,这没有关系。你的杀毒软件可能会发现你的计算机上有根工具,且你可以尝试清除它,但我希望你跟我重复一句话,这是 SuperDale 规则第 385 条:“任何被检测到有根工具的系统,都不再值得信任。”这意味着你将把它脱机,格式化硬盘并重新安装。不要——这是我个人的看法——继续使用已经被攻破的操作系统,因为你不知道它是否是基于固件的;清除它可能清除掉一个实例,但一旦你重启计算机,你就又回到了原点。

既然我们已经到了这里,让我们来看一些有趣的根工具。

马赛药丸

这个根工具在 2016 年的黑帽大会上由英特尔的安全工程师和红队成员展示。马赛药丸是一个 POC Linux 根工具。那真的很有意思,因为它感染了内部 RAM 磁盘。一旦感染,它被放入一个挂载点和一个持久 IDPID)命名空间,这让它能够隐蔽地运行,包括它的存储。这还使它能够在用户不知情的情况下运行一些网络系统,比如 DNS 隧道。

别担心——我可不是只针对 Linux!没错——我们也有 Windows。那里有一个被称为 GrayFish 的根工具,它在 Windows 操作系统内部运行。它是由被称为方程组的一个组织植入的最现代、最复杂的恶意软件之一,旨在通过隐藏存储以及在 Windows 操作系统内部执行恶意命令,提供几乎不可见的存在。它大约是在 2013 年开发的,但其变种已经遍布各地。它如此恶意的原因在于,当计算机启动时,GrayFish 通过将自己的代码注入到启动记录中来劫持操作系统加载机制。这基本上使它能够控制每个阶段 Windows 的启动,绕过 Windows 的安全启动控制。根工具使用隐秘存储,但 GrayFish 在 Windows 注册表中实现了自己的加密虚拟文件系统。

如果这还不足以让你害怕,那就看看这个吧。抓紧你的袜子,准备好了吗?方程组发布了一个名为nls_933w.dll的模块,这是第一种旨在重新编程或重新刷新计算机硬盘及其固件的恶意代码。它已在从 Seagate 到 Toshiba、Samsung、西部数据、Micron、Nextdoor、IBM 和日立的硬盘中被发现。你可能会说:“哇,创造这个的人真是深思熟虑。”没错——它的起源来自于我的“大哥”——我喜欢称之为 NSA——使用的一些工具。

替代数据流

首先,我需要确保你注意到了。紧接着密码,这就是我最头痛的事。说到 替代数据流ADS),有些事情你需要理解。首先,这并不是一个广为人知的功能。我惊讶的是,每次我在授课时提到 ADS,都会有一些在 IT 领域工作多年的人的下巴掉下来,他们会说:“我不知道这竟然是可以做的。”

ADS 从 NT 3.1 就已经存在了。这是很久以前的事了,但至今仍在使用。这项功能最初的创建原因是——感谢史蒂夫·乔布斯——微软能够与 Macintosh 层次文件系统HFS)兼容。现在,Macintosh 文件系统将数据分为两部分存储。一部分是数据 fork,另一部分是资源 fork。数据 fork 用于存储关于该文件的实际数据,而资源 fork 则提供关于文件的额外信息。正因为有了这两个 fork,我们能够极其高效地隐藏文件。因此,这是一种“必要的恶行”。我们希望能够存储与文档相关的附加数据以及文档本身。

检测 rootkit

至于检测 rootkit,它取决于安装的 rootkit 类型。它可能采用以下几种方法之一:

  • 基于完整性的检测:这可以看作是对启发式检测中签名的替代。其原理是用户会在干净的系统上运行一个工具,如 Tripwire 或 高级入侵检测设备AIDE)。该工具会创建一个干净系统的基准,并将其存储在数据库中,然后我们可以利用该数据库将现有工作站与其进行比较,以查看是否存在问题。

  • 基于签名的检测:这就像指纹一样。它通过将所有系统进程及可执行文件的特征与已创建的已知 rootkit 指纹数据库进行比较——这与大多数病毒程序的工作方式非常相似。

  • 运行时执行路径分析:该技术通过比较所有进程和可执行文件的运行时执行路径来工作。通常情况下,rootkit 会在常规执行路径附近添加新的代码,这会使得执行路径不稳定,而这个运行时执行路径分析方法可以检测到这种变化。

  • 启发式/行为基于检测:这种方法通过识别操作系统正常行为及其模式的偏差来工作。关于这些类型的检测,有一点非常酷的是,它们通常能够识别新的以及以前未识别的 rootkit。它们之所以能做到这一点,是因为它们能够看到在系统模式或行为方面,什么被认为是正常的。

世界上有很多工具可以帮助你检测 rootkit(根套件),这很好,但很多时候,攻击者会想出绕过这些保护或让它们无法被检测的新方法。所以,有时最好手动检查,而这有两个不同的步骤。

第一步也是最常见的一步,是通过文件系统来执行的,方法是输入d-i-r,它是目录(directory)的缩写;/s是包含子目录,接着输入**/b**,它使用简单格式,意思是:我不需要任何头部信息或摘要,只需要信息本身。然后我们输入**/a**,它基本上表示:我想包括以下属性。我们这里指定的属性是h,表示隐藏文件。我们将保存该结果,然后运行一个非常类似的命令,但你会注意到在ah上略有不同。不是ah,而是a-hh表示不——所以,不要给我隐藏的属性。你会保存这些结果,并从一个干净的 CD 启动——可以是 Windows CD,安装 CD——进入命令提示符,再次运行相同的命令并保存输出。

第二步是我们确定差异所在的步骤。

我们将下载微软的一个名为 WinDiff 的程序,并将其运行在两组结果上,以检测隐藏的“幽灵”文件。我们所说的“幽灵文件”是指在系统运行时无法被识别的文件,这正是我们在前两步中所做的操作,与那些因为我们从 CD 启动而被暴露或可见的文件不同。现在,需要注意的是,有时你会得到一些误报,届时你只需要追踪这些结果。这种方法无法检测到隐藏在基本输入/输出系统BIOS)中的隐形软件,或者隐藏在坏磁盘扇区、替代数据流,甚至视频卡 EEPROM 中的隐形软件。但至少这是一种方法,对吧?

隐写术

隐写术,或者我们有时称之为stega,是将文件隐藏在明面上的能力。我们通常通过将文档放置在——更常见的是——一张照片中,从而将其隐藏在其他数据之后或内部。与 ADS 不同,照片文件的大小——在这个例子中是照片——会增加。如果我有一张大小为 1 兆字节MB)的图片和一个 4 MB 的文档,那么这张图片的文件大小将变为 5 MB。它通过用你想隐藏的文件的比特来替换未使用的数据位,隐藏在其他文件中。这种方法极难检测。事实上,有人甚至说它几乎不可能被检测到。

隐写术分为两类:技术性隐写和语言性隐写。

技术隐写术使用科学方法隐藏消息,而语言隐写术则将消息隐藏在他们称之为载体的东西中,或者某种用于传输文件或通信的媒介。就我们能访问的隐写术类型而言,我们可以将文件隐藏在图像中。我们还可以使用隐写术将文件隐藏在另一个文档中,这与我们看到的 ADS 非常相似。

隐写术还可以用来将文件隐藏在文件夹内,或者表示文件夹的对象和音频文件中。是的——我可以将隐藏的消息或文件隐藏在音频文件中。事实上,这是目前反恐斗争中正在进行的一项技术。许多恐怖组织通过将消息隐藏在音频和视频文件中与彼此通信。你总是在新闻中听到某个恐怖组织发布了新视频,而政府正在审查它。他们在做的就是检查视频中是否有隐藏的东西,同时深入分析视频,试图通过观察背景或听背景噪音来找出视频的来源。

我们还可以将文件隐藏在基于网页的应用程序或网站中,这样你必须知道网站中的确切位置,无论是隐藏的图片、隐藏的 URL,还是页面上隐藏的某个位置,这些位置会揭示通常不可见的信息。

我们还可以用它来隐藏我们称之为空白的内容。我们通过一个叫做Snow的程序来做到这一点,它通过将空白内容附加到每行的末尾来隐藏消息,通常是美国信息交换标准代码ASCII)格式。由于空格和制表符通常在文本查看器中不可见,因此消息实际上是隐藏的,而且如果你使用内置加密,即使消息被检测到,也可以被读取。

隐写术也可以用于在电子邮件中隐藏文件。实际上,它与基于网页的隐写术类型非常相似,因为大多数电子邮件都支持超文本标记语言HTML)。因此,我们可以再次在电子邮件中隐藏文件或消息。

我们还可以用它将文件隐藏在数字多功能光盘DVD)中。所以,再次提问:你上次获取最新电影的副本是从哪里来的?我可能在其中隐藏了我的工具,当你播放电影或观看时,我的工具就会注入。

自然文本隐写术是另一种隐写术类型。这类程序会将你试图传输的信息转换为一段像话剧一样的文本流。所以,如果有人查看你的文档,他们可能会疑惑:“这个人在说什么?他只是说有一天他和狗一起去散步。”

市面上一款比较流行的程序,Sams Big G PlayMaker,会在话剧本身中隐藏你的文本。

另一种类型的隐写术是基于隐藏操作系统的。这是指我将我的工具注入到你的某些隐藏操作系统文件中,并且我的工具会在操作系统需要使用这些文件时执行。

既然我们已经能够维持访问并隐藏我们的工具,现在让我们讨论如何在没有留下痕迹并避免被检测到的情况下,清除日志和证据,确保我们曾经存在过。

第五阶段 – 掩盖痕迹 – 清除日志和证据

那么,为什么我们要清除痕迹?

首先,我们需要保持模糊性。我们不希望有人知道我们已经进入系统,否则我们所有的努力都将付诸东流。

其次,我们需要避免回溯。这是指受害者雇佣取证专家来查明到底发生了什么事。以前我经营着自己的互联网服务提供商ISP)服务时,有个客户抱怨说他的网速不如他支付的速度。和我的一个朋友,一位来自微软的白帽子黑客兼多本集成安全系统ISS)书籍的作者,我们注意到这个客户的天线出现了问题。我们发现客户直接将互联网连接插入到他的公司笔记本电脑里,而没有通过路由器,这样他就完全被黑了。我们查明了他网速慢的原因,是因为有人将电影上传到他的笔记本电脑,并将其用作一个私人 FTP 服务器。我的朋友利用我们查看的日志文件,找到了连接进入的 IP 地址,我们追溯到了德国的一个 IP 地址。那时我们已无能为力,这也总结了我们今天面临的互联网最大问题之一:没有网络警察。但是这正是我们想要避免的情况,我们要避免回溯。

第三,我们要让受害者或多个受害者相信没有发生任何事情。“这台机器没有被攻破;继续做你正在做的事情。”事实上,正是当机器开始表现异常时,人们才会产生怀疑,对吧?现在,我们也可以谈论攻击者不希望被发现的重大问题,因为他们不想进监狱。

接下来,我们将介绍一种清除痕迹的基本方法,这也是一个优秀攻击者的做法,之后我们再看看一个伟大攻击者可能达成的成就。

基本方法 – 五个必须做的事情

一种基本方法是一个优秀攻击者在掩盖痕迹时会做的事情。他们会做一些基本的操作,而这些操作大多数很容易被检测出来。以下是他们会做的事情:

  • 清除浏览器历史记录:一种基本的方法是清除与查看目标信息、目标上的漏洞或尝试从网站上传或下载文件相关的浏览器历史记录。如果他们进行过任何类型的研究,他们将想要清除浏览器历史记录。

  • 删除 cookies:还有一个问题是,内部用户可能不希望 IT 部门或安全专业人员知道他们正在查找如何破解 Windows 7 系统上的哈希值的内容。他们也可能删除 cookies。在网站的情况下,cookies 用于存储有关你在该网站上偏好的信息。我总是感到惊讶的是,我经常会有很多人来找我说:“你能帮我清理一下我的电脑吗?”我会四处查看,结果发现他们的历史记录和浏览器已经被清空,但他们忘记了 cookies。嗯,问题就在于 cookies。cookies 包含了关于他们访问过的网站的信息,所以这是攻击者希望删除的另一个条目。

  • 删除下载文件:你将想要删除这台机器上可能下载的任何文件。也许作为攻击者,我下载了一个有效载荷文件,这个文件通过某个网站或 FTP 站点提供,因此我会想要删除这些文件。

  • 删除密码:我还会想要清除机器上可能存在的任何密码管理器。这更倾向于内部用户,希望确保没有人看到他们的密码,但这也可能适用于攻击者。

  • 删除私人数据:他们还会想要删除机器上可能存在的任何私人数据。

作为一名讲师,我会去不同的培训中心,大多数培训中心会提供一台供我使用的讲师机器,而我在教学时会用这台机器。在使用那台机器时,我可能会查看我的电子邮件,打开我的 Dropbox 或 OneDrive,而在最后一天,我会携带一个我现在随身携带的脚本,存储在一个 U 盘里,我会执行它。它会清除所有私人数据。你可以说,如果你担心别人会使用你曾使用的机器,这些就是一些不错的清理指南。

高级方法

高级方法是优秀黑客使用的技术。这涉及到清除日志。系统上有一些文件会跟踪机器上发生的所有事件,并将其记录在文本文件中。现在,在清除日志时必须小心——你不想引起关于你活动的警觉。它可能会引起明显的警告,表明某些东西已经被篡改并删除。事实上,你会看到事件 ID 1102,这是一个 日志已被清除 错误。

这里高级方法的总体概念是,优秀的攻击者不会仅仅清除日志。他们将使用工具帮助他们完成以下任务:

  • 禁用并关闭审计,使得系统不再监视他们的操作。只需打开命令提示符并使用名为 Auditpol 的内置工具来设置审计策略。我想设置一个名为“Logon/logoff”的类别,并希望更改其成功率,这样任何成功的登录都将被禁用,任何失败也都一样。禁用审计后,他们就开始破坏,尝试破解密码,对文件进行修改——做他们需要做的事情。

  • 然后,在他们完成后,他们只需重新开启审计即可。

我们现在已经讲解了离开被黑客入侵系统的必要步骤,以及一些在掩盖痕迹时的最佳离开方法。

总结

在本章中,我们讨论了系统入侵的五个阶段。在阶段 1中,我们讲解了如何获取对系统的访问权限。一旦我们了解系统以及正在运行的服务,我们需要弄清楚用户名和密码是什么。我们还讨论了破解密码的各种方法。阶段 2讲解了权限提升。我们可以提升我们创建的账户的权限,或者获取一个已经存在的账户。阶段 3讨论了如何通过启动应用程序和工具来保持访问权限,这将允许你继续在系统内部进行攻击,并使你能更轻松地再次进入。阶段 4讨论了隐藏我们的工具的各种方法。这使我们能够隐藏信息或我们可能在攻击中使用的任何东西。阶段 5讨论了如何掩盖我们的痕迹及其方法。它讲解了如何禁用审计,使你能够完成黑客攻击的目的,然后如何重新启用审计并不被察觉地退出系统。

学习如何入侵系统有很多优势。你将能够发现自己安全中的漏洞,如果你知道如何入侵,你就能知道如何更好地设置并保护自己免受其他黑客攻击,同时你还会了解保持系统安全的主要问题。

接下来,我们要入侵人类,或者说是所谓的社会工程学。

问题

在我们总结之前,这里有一系列问题,供你测试你对本章内容的理解。你可以在附录评估部分找到答案:

  1. 备用数据流ADSes)支持哪些文件系统?

    1. VHD

    2. FAT32

    3. NTFS

    4. CDFS

  2. 可以使用什么工具来停止事件的审计或日志记录?

    1. 审计策略

    2. ADS

    3. 注册表编辑器

    4. NTFS

  3. 攻击者将更高的权限添加到其账户(将自己添加到管理员组)被称为什么?

    1. 三位一体幻灯片

    2. 垂直升级

    3. 边下载

    4. Hash 传递

  4. 克拉克带着一个新键盘来到工作,并把它交给了洛伊斯;不久后,洛伊斯的凭据被用在了其他系统上。你怀疑是什么原因造成的?

    1. 键盘记录器

    2. 恶意软件

    3. MFA 攻击

    4. 勒索软件

第八章:社会工程

没有单一的安全设备可以防止攻击者使用社会工程技术。只有通过持续的培训和教育员工如何识别和应对社会工程尝试,才能减少攻击者成功的机会。

我们将探讨社会工程的许多方面,以及攻击者如何利用它来实现目的,如何更好地识别、应对、教育自己,并保护自己和组织免受其目的的侵害。

在本章中,我们将讨论以下内容:

  • 理解社会工程

  • 攻击易受行为

  • 什么因素使社会工程有效?

  • 社会工程攻击的阶段

  • 社会工程方法

  • 内部威胁

  • 来自社交媒体的对企业网络的威胁

  • 身份盗窃

  • 应对措施

在继续深入这个主题之前,让我们回顾一下社会工程的一些基本概念。

理解社会工程

那么,社会工程的定义是什么?

社会工程是一种劝说他人放弃敏感信息并用于恶意目的的技巧。通过利用社会工程来利用人们,攻击者即使在有安全政策的情况下,也能突破组织的敏感信息。员工通常没有意识到安全漏洞,可能不经意间泄露或透露组织的关键信息。

例如,回答陌生人的问题或不自觉地回复垃圾邮件。

社会工程最常见的受害者

社会工程师最强大的工具是人们的脆弱性。人们通常信任他人,并乐于帮助他人。攻击者非常擅长利用那些愿意帮助他人的人。

让我们讨论一下组织中社会工程最常见的目标:

  • 接待员和帮助台人员:社会工程师通常通过欺骗服务台或帮助台人员,诱使他们泄露关于组织的机密信息。为了获取信息,如电话号码或密码,攻击者首先赢得个人的信任。在赢得信任后,攻击者操控他们以获取有价值的信息。如果接待员和帮助台员工觉得这样做是在帮助客户,他们可能会轻易分享信息。

  • 高级管理人员:为了收集组织的关键信息,攻击者可能接触来自不同部门的高级管理人员,如财务、人力资源和高管。

  • 用户和客户:攻击者可能冒充技术支持代表,接触目标组织的用户和客户,以获取敏感信息。

  • 技术支持人员:社交工程攻击的另一个目标是技术支持人员。社交工程师可能会通过冒充高级管理人员、客户、供应商或其他角色来联系技术支持人员,从而获取敏感信息。

  • 系统管理员:组织中的系统管理员负责维护系统。因此,他们可能拥有关键性的信息,如操作系统的类型和版本以及管理员密码。这些信息使攻击者能够进行更有计划和组织性的攻击。

  • 目标组织的供应商:攻击者可能会将目标组织的供应商作为目标,以获取有助于执行攻击的重要信息。

为了成功,攻击者会特别注重发展社交工程技巧,可能会精通到让受害者甚至没有察觉到诈骗。攻击者始终在寻找新的获取信息的方法,他们还确保了解组织的前线联系人,如保安、接待员和帮助台工作人员,以利用人们的弱点。人们已习惯于不对他人过于怀疑,并将特定行为和外貌与已知的实体联系在一起。

人们天生对陌生人保持警惕,并识别某些行为和外貌。一个穿制服并携带一堆包裹的人可能会被误认为是快递员。通过欺骗和利用人类的弱点,攻击者可以通过社交工程技巧从人们那里获取机密信息、授权和访问数据。

社交工程攻击对公司的影响

社交工程是一种严重问题,可能会导致企业遭受重大损失。

以下是社交工程攻击对组织的一些影响:

  • 经济损失:竞争对手可能会使用社交工程策略来获取目标组织的敏感信息和数据,如开发计划或营销策略,从而导致财务损失或战略优势。

  • 信誉损害:公司对信誉的看法对客户的获取至关重要。社交工程尝试通过泄露重要的组织数据,可能会危及这种信誉。

  • 隐私丧失:隐私丧失是一个严重问题,尤其对于大型组织来说。如果一个组织无法维护其利益相关者或客户的隐私,公众可能会失去对该公司的信任。因此,人们可能会停止与其开展业务,组织可能会遭受损害和损失。

  • 恐怖主义:恐怖主义和反社会因素对组织的资产,包括人员和财产,构成威胁。恐怖分子可能会使用社交工程来制定目标的蓝图并渗透进来。

  • 仲裁与诉讼:诉讼和仲裁会为公司带来负面宣传,并对其业绩产生不良影响。

  • 封闭 – 临时或永久:社会工程攻击可能导致诉讼和仲裁,并可能导致公司及其运营的临时或永久关闭。

现在我们已经介绍了社会工程的基本概念以及它如何影响组织,接下来让我们看一下实现这一目标的各种方法。

攻击易受行为

当我们思考攻击易受行为及其含义时,我们指的是人们的自然、内在感受和反应。这些可以被攻击者利用,方式如下:

  • 权威:在一个组织中行使权力的权利被称为权威。攻击者通过冒充目标组织中的权威人物,例如技术员或高管,来窃取敏感信息。

  • 恐吓:恐吓是指使用霸凌手段威胁受害者采取多个行动。它通常通过冒充他人身份,欺骗受害者透露关键信息来实施。

  • 社会认同与共识:人们通常愿意喜欢或做其他人喜欢或做的事情,这被称为共识。

攻击者通过建立网站并发布虚假的客户推荐,宣传某些商品的好处,例如反恶意软件(流氓软件)。因此,当用户在互联网上搜索流氓软件时,他们会发现这些网站并相信虚假的推荐。此外,如果人们下载这些商品,攻击者可能会在其中安装恶意软件。

  • 稀缺性:稀缺性常与社会工程相关。在决策过程中,稀缺性通常意味着培养紧迫感。由于紧迫感,攻击者可能通过控制提供给受害者的信息,来操控决策过程。

例如,如果苹果公司发布了一款新产品并迅速售罄,攻击者可以利用这一情况,通过向目标客户发送钓鱼邮件,引诱他们点击邮件中的链接购买商品。如果用户点击该链接,他们将被引导至攻击者控制的恶意网站。结果,用户可能会泄露账户信息或下载恶意软件,如木马病毒。

  • 紧迫性:紧迫性意味着立即采取行动。攻击者可以利用这一点,通过欺骗受害者做出他们不愿意做的事情。

比如,勒索软件经常使用紧迫性原则,迫使受害者在规定的时间内采取立即行动。受害者会注意到感染的系统上有一个倒计时计时器,并意识到如果没有在规定时间内做出必要的决定,可能会导致重要数据丢失。

同样,攻击者可以发送钓鱼邮件,声称某个特定的产品正在打折促销,消费者应该点击立即购买链接进行购买。用户被欺骗,点击了链接并立即采取行动。结果,他们被引导到一个恶意网站,在那里用户被迫提供个人信息或下载病毒文件。

  • 熟悉度或偏袒:如果某个产品是由他们尊敬的名人代言,人们更容易购买。熟悉度或偏袒意味着当某人请求他们做某事时,他们更容易被说服。

如果人们喜欢或熟悉某个人,他们更愿意让别人从肩膀上看一眼。如果这个人不喜欢,那么肩窥攻击就很容易被识别并避免。同样的,如果他们喜欢或与某人关系友好,他们通常会允许对方尾随自己。在某些情况下,社交工程师通过魅力和愉快的对话来欺骗某人,让对方喜欢自己。

  • 信任:攻击者常常试图与目标建立信任关系。例如,攻击者可能会打电话给受害者,自称是一名安全专家。他们可能会声称自己与 XYZ 公司合作,发现了一些异常情况,比如受害者的计算机发送了奇怪的错误信息。攻击者通过利用公司的名称和他们在安全领域的经验来建立信任。一旦建立了信任,攻击者会指导受害者如何操作。接着,攻击者会通过电子邮件发送一个恶意文件,并敦促受害者打开并下载它。最终,攻击者成功地在受害者的计算机上安装了恶意软件,感染了计算机并窃取了重要信息。

  • 贪婪:有些人天生具有占有欲,想通过非法手段积累巨额财富。社交工程师通过承诺不劳而获(迎合他们的贪婪心理)来诱使目标提供信息。

攻击者可能会伪装成竞争对手,并提供丰厚的奖励,以说服目标员工提供重要信息。

接下来,我们来讨论一些使公司或组织容易受到攻击的因素。

易受攻击的商业因素

公司由于各种情况,容易受到社交工程攻击,以下是一些例子:

  • 不充分的安全教育:员工可能不了解攻击者用来说服他们提供公司敏感信息的社会工程学技巧。因此,任何组织的最低责任就是教育员工了解社会工程学手段及其带来的风险,从而防止社会工程学攻击。

  • 不充分的安全政策:安全基础设施的基础是安全政策。这是一个高层文档,解释了安全控制。每个潜在的安全危险或漏洞都应该谨慎处理。密码更改政策、信息共享政策、访问权限、唯一用户识别和集中安全都是值得实施的安全措施。

  • 无限制的信息访问:公司最宝贵的资产之一是其数据库。给所有人访问敏感数据的权限,或允许无限制地访问这些数据,可能会导致问题。因此,公司必须确保拥有敏感数据访问权限的人员经过适当培训并受到监督。

  • 多个地点:一些公司的部门分布在全国各地,这使得系统的监督变得困难。此外,这种配置使得攻击者更容易访问组织的敏感数据。

接下来,我们将讨论是什么让社会工程学有效并取得成功。

什么让社会工程学有效?

社会工程学与其他技术不同,它不涉及网络安全;而是通过心理操控和利用人类获取所需信息。

以下是社会工程学有效的几个原因:

  • 尽管有许多安全协议,但阻止社会工程学攻击仍然困难,因为人类是易犯错误的。

  • 没有任何方法能够确保完全防御社会工程学攻击的安全。

  • 发现社会工程学行为非常困难。社会工程学是指通过说服他人透露信息的艺术与科学。

  • 这一策略成本低(甚至是免费的)且易于应用。

  • 没有独特的硬件或软件能够防御社会工程学攻击。

接下来,我们将讨论社会工程学可能发生的攻击阶段。

社会工程学的攻击阶段

为了实施一次成功的社会工程学攻击,攻击者执行以下步骤:

  1. 目标公司研究

攻击者在攻击目标组织的网络之前,先获取足够的信息进行渗透。一种有助于获取信息的策略是社会工程学。攻击者首先收集目标公司的一些基本信息,如公司业务性质、地点和员工人数。攻击者进行的活动包括翻捡垃圾、浏览公司网站以及发现员工信息等。

  1. 选择目标

攻击者在完成研究后选择一个目标,提取有关公司的敏感信息。攻击者经常试图联系不满的员工,因为他们通常愿意分享关于目标公司的信息,而且更容易被操控。

  1. 建立关系

一旦目标被确定,攻击者与该个体建立工作关系,以完成他们的目标。

  1. 利用关系

攻击者利用与目标的关系获取公司账户、财务、使用中的技术以及未来战略计划等敏感信息。

攻击者可能会使用多种方法来实施攻击。接下来我们将讨论其中的一些方法。

社会工程方法

攻击者使用多种社会工程方法从个人或组织收集敏感信息,这些信息可能被用于实施欺诈或其他犯罪行为。

本节将介绍基于人物、计算机和移动设备的社会工程方法,并提供示例帮助你更好地理解这些方法。

基于人物的社会工程

人际接触是基于人物的社会工程的一部分。攻击者假装成真实的人,与目标组织的员工互动,以获取敏感信息,例如企业战略和网络信息,这些信息有助于他们发动攻击。例如,攻击者可以通过冒充 IT 支持人员轻松进入服务器房间。

攻击者可以使用以下方法执行基于人物的社会工程攻击。

冒充

冒充是常见的基于人物的社会工程方法,攻击者假冒合法或授权的个人。攻击者可能进行个人冒充攻击,或者使用电话或其他通信方式欺骗受害者泄露信息。

攻击者可能冒充快递员、送货员、清洁工、销售员、客户、技术员或访客。通过扫描终端查找密码、在员工的桌子上寻找关键文件、翻找垃圾桶等方式,攻击者获得敏感信息。攻击者甚至可能通过肩窥监听私人对话来获取敏感信息。

社会工程中使用的冒充技术包括以下几种:

  • 假装成真实的终端用户

  • 假装自己很重要

  • 假扮技术支持代理

  • 假冒内部员工、客户或供应商的身份

  • 假装成修理工

  • 使用语音钓鱼冒充技术支持人员

  • 滥用帮助台的过度协助

  • 假装成有第三方授权的人

  • 假装成受人尊敬的权威人士

攻击者使用一些冒充方法,利用人性的信任、恐惧和道德义务来获取目标公司的敏感信息。

假装自己是一个真实的终端用户

攻击者可能冒充员工,然后通过不道德手段获取敏感信息。为了获得敏感信息,他们可能使用虚假的身份。

另一个例子是,当员工的朋友要求他们获取一位卧床员工所需的信息时。一个众所周知的社交互动概念是“帮忙得帮忙”,即使原始的帮助没有经过受益人的请求。这个现象被称为互惠。互惠在商业环境中是常见的。社会工程师利用这一社交特性的一种方法就是冒充他人。

考虑这个案例:“你好!我是保罗,财务部门的员工。我忘记了我的密码。能帮我找回吗?”

装作自己很重要

另一种有利于社会工程师的行为特征是人们倾向于不质疑权威。人们经常会不遗余力地帮助那些他们认为处于权力位置的人。冒充一位高层人物,如副总裁或董事,可能轻易地欺骗一个没有准备的员工。

那些通过冒充高层员工来进一步升级冒充行为的攻击者增加了恐惧感。在这种情况下,低级员工可能会尽力帮助高层人员,而互惠的因素也起了作用。例如,一名帮助台工作人员不太可能拒绝一位副总裁的请求,尤其是在副总裁时间紧迫,需要一些关键信息来开会时。

如果员工拒绝透露信息,社会工程师可能利用他们的权力地位进行威胁,包括威胁将其不当行为报告给上级。如今,这一策略比以往任何时候都更为重要。

考虑以下场景:“你好!我是凯文,CFO 的秘书。我正在赶一个截止日期,但忘记了系统密码。你能帮我吗?”

扮演技术支持代理的角色

另一种策略是攻击者冒充技术支持人员,这在目标缺乏技术知识时尤其有效。攻击者可能冒充硬件销售员、技术员或计算机供应商。在一次黑客小组的演示中,一名讲者打电话给星巴克,询问他们的宽带连接是否正常。困惑的员工回答问题时提到问题出在调制解调器上。在没有提供任何凭据的情况下,黑客要求员工念出之前交易的信用卡号码。在商业环境中,攻击者可能要求员工提供他们的登录信息,包括密码,以解决一个不存在的问题。

考虑以下场景:“先生,我是 X 公司技术支持部门的马修。昨晚我们这边发生了系统崩溃,现在我们正在寻找丢失的数据。你能告诉我你的用户名和密码吗?”

冒充内部员工、客户或供应商的身份

攻击者通常穿着办公室服装,或者与其他人穿着相似的衣物。他们冒充承包商、客户、服务技术员或其他授权人员,进入公司的大楼。然后,他们会悄无声息地四处走动,寻找被遗忘的密码,提取废纸篓和桌面上的重要数据,收集其他信息。攻击者可能还会使用其他社交工程技巧,例如肩膀偷窥(观察用户输入登录凭证或其他敏感信息)和窃听(故意偷听员工之间的机密对话),以收集敏感信息,这些信息可能被用于对公司发动攻击。

假装是维修工人

一般来说,计算机技术员、电工和电话维修工是值得信任的。攻击者可能通过冒充技术员或维修人员渗透到组织中。他们像平常一样工作,同时寻找隐藏的密码、桌面上的关键信息、垃圾桶中的资料以及其他相关信息;他们甚至可能在秘密地方安装窃听设备。我个人曾经使用过这种技巧,成功带着整套计算机系统离开了组织。

使用语音钓鱼冒充技术支持人员

语音钓鱼(也称为语音或 VoIP 钓鱼)是一种冒充骗局,攻击者利用互联网语音VoIP)技术误导人们泄露敏感的财务和个人信息。攻击者通过冒充他人并使用来电显示伪造技术来牟利。语音钓鱼通常包括录制的通信和指示,这些看起来像是来自真实金融机构的消息。攻击者利用语音钓鱼欺骗受害者通过电话提交银行账户或信用卡信息以进行身份验证。

攻击者可能会向受害者发送虚假的短信或电子邮件,指示他们拨打金融机构的电话进行信用卡或银行账户验证;在某些情况下,受害者会接到攻击者的电话。当受害者拨打攻击者信息中提到的电话号码时,他们会听到一段录音指示,需要提供个人和财务数据,例如姓名、出生日期、社会保障号码SSN)、银行账户号码、信用卡信息或凭证,如用户名和密码。当受害者提交这些信息时,录音信息确认受害者的账户已经被验证。

滥用帮助台的过度援助

帮助台经常成为社交工程攻击的目标是有原因的。工作人员通常经过培训,乐于助人,他们常常在没有首先验证来电者身份的情况下透露关键信息,例如密码和网络细节。

为了有效,攻击者必须了解员工的身份以及他们试图冒充的人的相关信息。假装成一位高级官员,攻击者可以打电话给公司帮助台,获取重要信息。

例如,有人可能联系公司的客户服务部门,并声称自己忘记了密码。如果他们错过了一个重大广告项目的截止日期,可能会被他们的主管解雇。

帮助台员工对来电者表示同情,迅速重置了密码,无意中让攻击者获得了公司网络的访问权限。

假装自己是拥有第三方授权的人

攻击者采用的另一种常见战术是冒充公司高层领导授权的人,代表其收集信息。

例如,如果攻击者知道目标组织中有一名员工可以访问所需信息,他们会密切关注这名员工,以便在该员工不在时获取他们需要的数据。在这种情况下,攻击者可以接触帮助台或其他人员,并声称该员工(权威人物)要求提供这些信息。

即使对请求的合法性有所怀疑,人们通常也倾向于忽视这种怀疑,而更愿意在工作中提供帮助。当有人提到重要人物并提供必要信息时,人们往往相信他们所说的是真的。

这种方法在权威人物度假或旅行时非常有效,因为此时无法立即验证身份。

一个例子如下:“你好,我叫约翰,上周我和 XYZ 先生聊过,他在离开前提到过。他现在正在度假,并表示你可以在他不在时提供我需要的信息。你能帮忙吗?”

攻击者可以通过语音钓鱼(vishing)冒充目标组织的软件供应商或承包商的技术支持人员,以获取敏感信息,类似于之前描述的冒充技术支持代理的情况。攻击者可能冒充网络技术员,要求提供计算机的用户 ID 和密码,以便确定问题所在。用户会提交这些关键信息,认为他们是在与一位故障排除人员交流。

一个例子如下:(攻击者)“你好,我叫迈克,我是技术支持人员。根据某些员工的反馈,你们办公室的系统和网络最近运行比平时慢。是这样吗?”

是的,最近有点慢,”员工说道。

(攻击者)“所以,我们已经把你们转移到新的服务器上,现在你的服务应该会有显著的改善。如果你提供密码,我可以检查一下你的服务。从现在开始,一切应该都会变得更好。”

假扮成一个受人尊敬的权威人物

假扮成一个可信赖的权威人物是社交工程中最有效的方式。

为了收集目标的敏感信息,攻击者可能会假扮成消防监察员、总监、审计员、主管或其他重要人士通过电话或面对面交流。

以下是一些例子:

  • 我是詹姆斯,我想自我介绍一下。我是琼斯审计公司的一名外部审计员。公司要求我们对你们的灾难恢复方法进行突击检查。你们的团队有 10 分钟时间展示如何从网站崩溃中恢复。”

  • "你好,我叫安,来自弗吉尼亚办公室的销售代表。我知道这是一个临时请求,但我已经努力说服一群潜在客户几个月了,希望他们把安全培训外包给我们。他们离这里只有几英里,我相信给他们快速参观我们的设施就足以说服他们与我们签约

是的,他们对我们实施的安全措施非常感兴趣。他们考虑我们公司的一个原因是因为他们的网站之前遭到了黑客攻击。"

  • 嗨,我是山区空调/暖气服务公司的一员。我们接到通知说 4 楼温度过高,因此我需要检查一下你们的暖通空调系统。”

使用具有专业色彩的短语,比如HVAC(暖通空调系统),可能会给入侵者带来足够的可信度,使他们能够进入目标安全资源。

窃听

窃听是指某人未经许可监听讨论或阅读他人消息。它包括拦截任何类型的通信,无论是音频、视频还是书面,跨通道如电话线、电子邮件和即时通讯。攻击者可以获取密码、商业计划、电话号码和地址等敏感数据。

垃圾箱潜水

垃圾箱潜水是在垃圾箱中寻找敏感的个人或组织信息。攻击者寻找用户 ID、密码、网络图表、政策号码和其他机密信息进行提取。

攻击者可以找到账户号码、日历、银行对账单、工资信息、源代码、销售预测、访问代码、电话名单、信用卡号码和组织结构图。因此,攻击者可以利用这些信息进行各种恶意攻击。攻击者有时会假扮成修理人员、技术人员、清洁工或其他专业人士,以促进他们的垃圾箱潜水行动。

以下是通过翻阅垃圾可能收集到的信息:

  • 电话名单: 员工姓名和电话号码列表。

  • 组织结构图: 描述公司的组织架构、物理基础设施、服务器房、限制区域和位置以及关于公司的其他信息。

  • 政策手册: 公开有关员工、系统使用和运营的信息。

  • 打印文件、笔记、传真和通过电子邮件发送的备忘录:泄露了员工的个人信息、密码、联系人、内部工作程序、有益的指示和其他信息。

  • 关于事件、日历和计算机使用日志的备注:揭示了用户的登录和注销时间,允许攻击者选择最佳时机发起攻击。

反向社会工程学

反向社会工程学是一项具有挑战性的任务,因为其执行需要大量的计划和技能。实施反向社会工程学的攻击者扮演一个知识渊博的专业人士角色,让员工向他们寻求信息。

社会工程师会首先制造问题,通过引发事件,然后通过一般的聊天方式将自己塑造成解决方案,诱使员工提出询问。

以下是一些反向社会工程学的方法:

  • 破坏:攻击者获得访问权限后,将破坏或使工作站看起来被破坏。当用户遇到问题时,他们会寻求帮助。

  • 市场营销:攻击者必须进行推广并创造让用户拨打电话的意识。攻击者可以通过在目标的办公室留下名片或资源,并提供联系方式来解决问题。

  • 支持:即使攻击者已经获取了所需信息,他们仍然可能继续帮助用户,使受害者无法察觉黑客的身份。

搭便车

搭便车通常意味着在授权人员的允许下进入建筑物或安全区域。例如,攻击者可能会要求授权人员解锁安全门,声称自己丢失了 ID 卡。作为一种礼貌,授权人员会允许攻击者通过门。

尾随

尾随是指某人未经许可进入建筑物或受限区域。这是指悄悄跟随一位授权人员通过受保护的入口。

攻击者使用徽章试图通过紧跟授权人员通过带有密码或上锁的入口或门,进入受限区域。他们试图假扮成授权人员,进入受限区域。

这是我个人的另一个最爱。有一次,我搭便车进入了一个可能是联邦机构的建筑,具体情况如何就留待另一个时间再说吧。

转移盗窃

攻击者可能会利用转移盗窃手段来针对配送员或运输公司。这一策略的主要目标是欺骗负责送货的人将包裹送往错误地点,从而扰乱交易。例如,如果受害人是包裹配送司机,他们可能会被说服开车前往与送货地点不同的地方。通过一系列社会工程学技巧,盗窃得以实现。

在互联网上,社交工程师可以通过转移盗窃来说服受害者将敏感或机密文件传输给一个无关的、不该获取这些文件的个人。

蜂蜜陷阱

蜂蜜陷阱是一种策略,攻击者通过在网上伪装成一个有吸引力的人,建立虚假的在线关系来收集机密信息。在这种情况下,受害者是一个内部人员,拥有关于目标公司的敏感信息。

Baiting

诱饵(Baiting)是一种策略,攻击者通过诱使最终用户提供敏感信息,如登录凭证和其他个人信息,来换取有价值的信息。最终用户的好奇心和贪婪心理被利用。攻击者通过在公共场所(如停车场、电梯和洗手间)等容易找到的地方,放置携带恶意文件的物理设备(例如 USB 闪存驱动器)来运用这一策略。由于该设备上贴有一个知名公司的徽标,最终用户会被欺骗并信任它,进而打开该物理设备。当受害者连接并打开该设备时,恶意文件会被下载,它会感染系统,并允许攻击者控制系统。

例如,攻击者可能会在电梯里放置一个诱饵,诱饵的形式是一个写有员工薪资信息 2019的 USB 驱动器,并带有有效的公司徽标。受害者出于好奇捡起该设备并在自己的电脑上打开它,这时诱饵文件被下载。当诱饵文件被下载时,恶意软件会安装在受害者的电脑上,从而允许攻击者获取访问权限。

Quid pro quo

拉丁词汇quid pro quo意为以物易物。攻击者利用这一方法,随机拨打公司内部的电话,声称自己是技术支持人员。这是一种诱饵策略,攻击者通过提供服务来换取最终用户的个人信息或登录凭证。

例如,攻击者可能会收集目标组织员工的随机电话号码。然后,他们开始拨打每一个号码,假扮成 IT 部门的人员。

攻击者最终会找到一个遇到真实技术问题的人,并提供帮助来解决问题。接着,攻击者会指示受害者按照特定步骤操作,输入某些命令来安装并运行包含恶意软件的文件,这些恶意文件旨在访问敏感数据。

Elicitation

获取特定信息的行为被称为引导

通过与受害者进行普通对话,你可以从他们那里获得特定信息。为了利用职业或社交机会与拥有敏感信息的人沟通,攻击者必须具备良好的社交技能。社交工程中的引导策略旨在提取有用信息,以便获取对目标资产的访问权限。

如果攻击者的目标是获取受害者的登录名和密码,但在聊天中得到的只是他们喜欢的东西,攻击者将不得不更多地关注引诱过程以获取必要的信息。

接下来让我们谈谈基于计算机的社会工程以及它的内容。

基于计算机的社会工程

攻击者利用有害软件,如病毒、特洛伊木马和间谍软件,以及软件应用程序,如电子邮件和即时通讯,进行基于计算机的社会工程。

以下是一些基于计算机的社会工程攻击的示例。

弹出窗口

弹出窗口说服或强迫用户点击导致虚假网页的链接,该网页要求输入个人信息或下载危险软件,如键盘记录器、特洛伊木马或间谍软件。

诱使用户点击弹出窗口中的按钮的一种方法是警告他们存在问题(例如,通过显示逼真的操作系统或应用程序错误消息)或提供更多服务。窗口显示在屏幕上,敦促用户重新登录或显示主机连接中断的警告,并要求重新验证网络连接。当用户按照这些说明操作时,会安装恶意程序,该程序从目标处获取敏感信息并将其发送到攻击者的电子邮件地址或远程站点。特洛伊木马和病毒在这种攻击形式中被使用。

骗局信件

骗局是一种警告收件人存在不存在的计算机病毒威胁的消息。为了扩大其影响范围,它使用社会工程学。骗局通常不会导致身体伤害或数据丢失,但会导致生产力损失和组织宝贵网络资源的使用。

链式信件

链式信件是一封提供免费商品(如金钱或软件)的电子邮件,要求用户将邮件转发给一定数量的人。情感动人的故事,快速致富金字塔骗局,精神信仰和迷信的厄运威胁都是链式信件中常用的技术。链式信件依赖社会工程学来传递。

即时通讯

攻击者利用即时聊天功能与选定的在线用户沟通,获取个人信息,如他们的出生日期或娘家姓。然后利用他们收集到的信息来入侵用户的账户。

垃圾邮件电子邮件

垃圾邮件包括无关紧要、不需要和未经请求的电子邮件,旨在收集可用于获利的信息,如社会保障号码和网络信息。垃圾邮件通信被发送给目标以获取敏感信息,如银行账号。攻击者还可能发送包含隐藏和危险程序的电子邮件附件,如病毒和特洛伊木马。社会工程师试图通过给附件一个较大的文件名来隐藏文件扩展名。

恐吓软件

恐吓软件是一种恶意软件,诱使人们访问充满恶意软件的网站或下载、购买潜在有害的软件。恐吓软件通常以弹出窗口的形式出现,通知用户其计算机已被恶意软件感染。这些弹出窗口看起来来自一个信誉良好的来源,如杀毒软件公司。此外,这些弹出广告总是传达一种紧迫感,催促受害者尽快下载程序,以摆脱所谓的感染。

网络钓鱼

网络钓鱼是一种通过发送电子邮件或提供一个虚假声称来自信誉网站的链接来获取用户个人或账户信息的方法。攻击者注册一个虚假的域名,创建一个伪造网站,然后通过电子邮件将网址发送给用户。当用户点击邮件中的链接时,他们会被引导到一个假的主页,并被诱导分享个人信息,如地址和信用卡号码。

用户缺乏意识、视觉上的误导,以及未能关注安全标志,都是导致钓鱼计划成功的因素。

以下是常用的钓鱼攻击方法类型。

定向钓鱼

一些攻击者不会发送成千上万的邮件,而是利用定向钓鱼通过发送定制的社交工程内容,向公司中的单个员工或小范围员工获取敏感数据,如财务信息和商业机密。

网络钓鱼邮件看起来来自一个信誉良好的来源,并带有一个看似合法的网站。邮件的发件人通常是收件人工作场所中的某个高级职员。该通信实际上是由攻击者发出,目的是收集有关接收者及其公司的一些敏感信息;例如登录凭证、信用卡号码、银行账户号码、密码、机密文件、财务信息以及商业机密等都是敏感信息的例子。由于邮件看起来来自一个可信的公司来源,定向钓鱼的回复率比普通钓鱼攻击要高。

捕鲸

捕鲸攻击是一种针对高层管理人员的钓鱼攻击,目标通常是如首席执行官、首席财务官、政治人物和名人等拥有完全访问高度机密和有价值信息的人。这是一种社交工程技巧,攻击者说服受害者透露关键信息(如银行账户信息、员工详细信息、客户信息和信用卡号码)。与普通钓鱼不同,捕鲸攻击的准备非常细致,目标是企业高层领导。

药物劫持

药物劫持(Pharming)是一种社交工程技术,攻击者会在受害者的计算机或服务器上安装恶意软件,当受害者输入任何 URL 或域名时,恶意软件会自动将受害者的流量重定向到攻击者控制的网站。攻击者从中窃取个人信息,如密码、银行信息以及与网络服务相关的其他数据。

执行药物劫持攻击有两种方式:

  • DNS 缓存中毒:

    1. 攻击者对目标 DNS 服务器执行 DNS 缓存中毒。

    2. 攻击者将目标网站的 IP 地址,www.targetwebsite.com,修改为伪造的网站www.hackerwebsite.com

    3. 当受害者在浏览器的地址栏中输入目标网站的 URL 时,浏览器会向 DNS 服务器发送请求,以获取目标网站的 IP 地址。

    4. DNS 服务器提供了一个伪造的 IP 地址,该地址已被攻击者修改。

    5. 受害者随后被转发到伪造的网站。

  • 主机文件修改:

    1. 恶意代码作为电子邮件附件由攻击者发送。

    2. 当用户点击附件时,代码执行并修改用户计算机上的本地主机文件。

    3. 当受害者在浏览器的地址栏中输入目标网站的 URL 时,受感染的主机文件会立即将用户的流量重定向到黑客的虚假网站。

木马和蠕虫等恶意软件也可以在药物劫持攻击中使用。

垃圾即时消息

即时消息垃圾邮件SPIM)利用即时消息网络传播垃圾邮件。Spimmer 是指通过即时消息发送垃圾邮件的发送者。Spimmer 通常会获取即时消息 ID,并通过机器人(一个通过网络执行自动化活动的应用程序)向这些 ID 发送垃圾邮件。

SPIM 消息类似于电子邮件垃圾邮件,通常包含附件或嵌入的超链接,里面包含广告和病毒。当用户打开附件时,他们会被引导到一个恶意网站,该网站会收集金融和个人信息,如登录密码、银行账户信息以及信用卡信息。

钓鱼工具

攻击者可以利用钓鱼工具创建虚假的登录页面以窃取用户名和密码,发送伪造的电子邮件,并收集受害者的 IP 地址和会话 Cookie。然后,攻击者可以利用这些信息冒充合法用户,发起针对目标组织的其他攻击:

让我们讨论社交工程的另一个方面——基于移动设备的攻击。

基于移动设备的社会工程攻击

攻击者利用移动应用程序进行基于移动设备的社会工程攻击。

攻击者通过复制流行应用程序并创建具有吸引人功能的有害移动应用程序来欺骗用户,然后将其以相同名称上传到主要应用商店。用户不知情地下载了危险程序,使恶意软件感染其智能手机。

以下是攻击者用来进行基于移动设备的社会工程攻击的一些方法。

创建和分发恶意应用程序

在基于移动设备的社会工程攻击中,攻击者使用恶意移动应用程序进行社会工程攻击。攻击者首先制作恶意程序,例如一个游戏应用程序,然后将其发布在主要应用商店中以知名品牌的名义。不知情的用户会在手机上安装它,认为它是合法的。一旦软件安装完成,设备就会感染恶意软件,将用户的凭据(用户名、密码)、联系信息和其他信息发送给攻击者。

安全应用程序被重新打包

为了实施基于移动设备的社会工程攻击,攻击者可能会发送一个虚假的安全应用程序。在这种攻击中,攻击者向受害者的计算机发送一些恶意内容以感染它。

接下来,他们将恶意应用程序上传到应用商店。当受害者登录其银行账户时,系统中的恶意软件会显示一个弹出消息,指示他们将一个应用程序下载到手机上以接收安全消息。受害者认为他们从攻击者的应用商店下载了一个合法的应用程序。攻击者在收集到机密信息后,例如用户的银行账户登录详细信息(用户名和密码),银行通过短信向受害者发送第二次身份验证。攻击者利用这些信息访问受害者的银行账户。

SMiShing

短信钓鱼SMiShing)中,短信文本消息系统被用来诱使用户立即采取行动,比如下载恶意软件,访问恶意网页,或者拨打欺诈电话号码。SMiShing 消息被设计成引发立即行动。

想象一下特蕾西,她是一家知名公司的软件开发人员。她收到一条短信,声称来自她银行的安全部门。这是一个紧急请求,要求特蕾西立即拨打短信中提到的电话号码。由于担心,她打电话查看自己的账户,认为电话号码是合法银行的客户服务。在一段录音消息中,要求她提供信用卡或借记卡号码和密码。由于特蕾西认为这是合法消息,她分享了自己的个人信息。

一条消息可能会说用户赢得了金钱或被随机选为幸运赢家,他们所需做的就是支付一小笔费用并透露他们的电子邮件地址、电话号码或其他个人信息。

社会工程学的另一个重要方面是来自组织或企业内部的威胁。我们接下来会详细讨论这一点。

内部威胁

内部人员是指那些被信任的员工,他们有权限访问组织的最重要资产。内部攻击利用特权访问故意破坏组织的数据或信息系统。内部人员可以轻易绕过安全措施,篡改有价值的资源,并获得敏感数据。内部攻击可能会让组织蒙受巨大的财务损失。它们之所以有害,原因在于它们简单易发,且难以被察觉。

内部攻击通常由以下几类人员实施:

  • 特权用户:内部攻击通常由公司最信任的人员实施,例如经理和系统管理员,他们有权访问公司专有数据,更容易滥用这些数据,无论是故意还是无意。

  • 不满的员工:攻击可能源自不满的员工或合同工。不满的员工希望向公司复仇,他们首先收集信息,然后等待合适的机会破坏公司资源。

  • 被解雇的员工:当员工被解雇时,他们可能会带走公司的重要信息。如果他们的账户没有被禁用,他们可能通过后门、恶意软件或其以前的凭证访问公司数据。

  • 易发生意外的员工:例如,如果员工不小心丢失了手机,或错误地将电子邮件发送给了不该收件的人,或者将系统保持登录状态并且存有机密数据。若不小心,可能会导致无意的数据泄露。

  • 第三方:远程员工、合作伙伴、经销商和供应商是经常能够访问公司信息的第三方。然而,他们系统的安全性是一个问题,可能成为数据泄露的潜在源头。

  • 培训不足的员工:由于缺乏网络安全培训,信任的员工可能变成了偶然的内鬼。他们没有遵循安全规则、程序、指南或最佳实践。

内部攻击的原因

信用卡公司、医疗公司、网络服务提供商、以及金融和交易服务提供商都是内部攻击的目标。

以下是一些攻击的原因:

  • 金钱利益:内鬼攻击通常源于对金钱的渴望。内部人员将公司有价值的信息卖给竞争对手,窃取同事的财务信息以谋取个人利益,或篡改公司或员工的财务记录。

  • 机密信息的盗窃:通过发现职位空缺、帮助某人顺利通过面试并让其被竞争对手雇佣,竞争对手可能会对目标公司造成伤害,窃取重要信息,甚至让目标公司破产。

  • 报复:只需要一个愤怒的员工寻求报复,公司就可能面临危险。攻击可能来自对公司有负面情绪的不满员工或合同工。

  • 未来成为竞争对手:现有员工可能打算创办自己的竞争公司,通过访问系统中的公司机密数据,他们可能窃取或篡改客户名单。

  • 竞争对手竞标:这是一个可以让你了解竞争对手行为的功能。即便是最诚实、最可信的员工,也可能因企业间谍活动被勒索或贿赂,从而泄露公司关键数据。

  • 公众意识:一个不满的员工可能想要发表政治或社会声明,在这个过程中,公司的机密数据被泄露或损坏。

各种不同类型的内部威胁

内部威胁可以分为四类:

  • 恶意内部人士:内部威胁可能来自愤怒的或被解雇的员工,他们故意窃取数据或通过在公司网络中植入恶意软件来破坏公司网络。

  • 粗心的内部人士:粗心的内部人士更容易成为社会工程学攻击的目标,因为他们对潜在的安全问题缺乏警觉,或者为了提高工作效率而违反常规的安全规定。许多内部攻击的发生,都是员工忽视安全政策、程序和操作规范的结果。

  • 专家内部人士:从事 IT 工作的内部人士最为危险。他们利用自己的技术专长,发现公司网络中的漏洞和弱点,并将公司的专有信息出售给竞争对手或黑市竞标者。

  • 被利用的内部人士:这是一个被外部人员操控的内部人士。他们可以访问公司的重要资产或计算设备。这类威胁更难被发现,因为外部威胁者伪装成真正的内部人士。

为什么内部攻击如此成功?

下面是一些让内部攻击如此有效的原因:

  • 内部攻击可能长时间未被发现,解决这些问题的成本非常高。

  • 内部攻击实施起来非常简单。

  • 内部攻击难以预防,且很容易成功。

  • 很难区分破坏性行为和员工的日常职责。很难判断员工是否有恶意行为。

  • 即便有害行为被揭露,员工也可能拒绝承担责任,声称这是一个错误。

  • 员工可能通过修改或删除日志来掩盖有害行为。

让我们通过一个例子来理解这一点。

不满的员工

该个体通常表现为内向、无法管理压力、与管理层发生冲突、对工作或办公室政治感到沮丧、渴望获得尊重或晋升,或可能已被调职、降职或收到解雇通知。不满的员工可能会将公司机密和知识产权出售给竞争对手以获取金钱利益,导致公司蒙受损失。

不满的员工可能使用隐写应用程序来隐藏公司机密,并通过工作邮箱发送这些信息给竞争对手,伪装成看似无害的沟通,如照片、图片或声音文件。由于攻击者将偷窃的重要信息隐藏在图片或图像文件中,没人会怀疑他们。

内部威胁的行为迹象

内部威胁的行为指标通常是该个体的不寻常表现,往往与其标准行为和工作活动相对立。这些异常模式需要进一步调查,以确定它们是否出于恶意动机。员工对安全程序的无知是内部威胁最典型的指示。

内部威胁可以通过各种行为表现出来:

  • 数据泄露警告:未经授权的数据收集和传输警报可能表明恶意软件或内鬼攻击。内部人员还可能使用纸质文件、传真机、硬盘以及便携式或其他计算设备。

  • 缺失或已更改的网络日志:为了逃避检测,内部人员会尝试访问日志文件,删除、修改或编辑未经授权的访问事件、文件传输日志和其他系统与网络设备中的信息。通过日志修改、删除或访问警报可以检测到攻击。

  • 网络使用模式:恶意活动可以通过网络特定协议、数据包大小、源和目标、用户应用会话频率以及带宽利用率的变化来检测。

  • 多次登录失败尝试:通过暴力破解非法系统或应用,内部人员可能会获取访问权限。因此,许多失败的尝试可能表明存在内部威胁。

  • 时间和行为的变化:留意员工随时间变化的行为变化,如消费能力、频繁出差、情绪管理问题、与同事频繁争执和懒散等。完成任务时,也可能会发现一些欺诈迹象。

  • 在不寻常的时间和地点访问:任何事件时间框架的不一致都值得怀疑,可能表明内鬼危险。例如,如果活动在员工不在场时被记录在员工系统上,便可能是可疑的。

  • 缺失或已更改的关键数据:不满的员工可能会篡改或删除重要信息,以损害公司的声誉。

  • 未经授权下载或复制敏感数据:内部人员利用授权工具和恶意工具从组织外围提取数据。内部人员可能通过安装恶意软件、木马和后门来窃取信息。

  • 多个用户账户登录不同系统:恶意活动可能通过异常的访问时间以及用于连接账户的系统 IP 地址变化来表明。

  • 收入或支出随时间的变化:员工财务状况的意外和无法解释的变化表明其收入可能来源于其他渠道。公司应进行财务审计,以查看该员工是否涉及任何非法行为。

  • 未经授权的物理资产访问:员工未经验证访问批准的资产、试图将权限提升超出工作要求,或试图获取物理资产的访问权限,都是潜在威胁的例子。

  • 员工生产力的增加或下降:生产力低下、具有威胁性的员工,或突然出现生产力的激增或下降,可能表明如果他们不同意知识产权,他们的行为存在可疑之处。

  • 不一致的工作时间、不寻常的商业活动以及频繁或隐秘的外国旅行:从事可疑商业活动的员工,如异常的登录时间、异常的办公时间、未经授权的浏览和下载、秘密的海外访问以及与其他国家或组织代表的会议,可能会对公司构成威胁。

  • 由于潜在的心理健康问题导致的过度行为:一些员工表现出不可预测和过度的行为,或行为发生快速变化,可能表明其存在潜在的心理健康问题。这增加了他们进行财务欺诈、数据盗窃或物理盗窃的可能性。

  • 脆弱性迹象(毒品或酒精滥用、财务困难、赌博和非法活动):可能涉及毒品、赌博、酒精滥用或有感情问题的员工,可能会为金钱利益而危及公司的数据。组织可能需要频繁密切关注该员工的活动。

  • 关于敏感信息泄露的投诉:通过关于敏感数据曝光的信息或投诉可以识别内部攻击。检查客户评论和投诉中是否存在异常,然后分析它们以找到内部威胁源。

  • 异常的系统和用户账户访问:内部威胁可能通过分配的系统与用于访问这些系统的用户账户之间的差异来表明。

  • 不负责任地使用社交媒体:内部人员可能通过在社交媒体网络上分享无关的材料来试图危害公司。

  • 尝试进入受限区域:怀有恶意意图的员工可能会尝试获取公司受限部分的访问权限,以获取敏感数据。

  • 社交网络网站冒充:如今,许多人使用社交网络网站创建在线账户,分享信息,以及分享如照片、博客条目和音乐片段等资料。因此,攻击者冒充他人相对容易。受害者可能会信任攻击者,并最终透露有助于攻击者冒充他们并访问系统的信息。

让我们进一步详细讲解我们刚才讨论的最后一点。

在社交网络网站上冒充他人

由于社交网络网站,如 Facebook、Twitter 和 LinkedIn,极为流行,攻击者利用这些平台冒充他人。攻击者可以通过两种方式发起攻击:

  • 通过在社交网络平台上创建虚假的受害者档案

  • 通过获取受害者的密码或以其他方式获得受害者的社交媒体账户访问权限

由于人们在社交网络网站上发布个人和职业信息,如姓名、地址、手机号码、出生日期、项目详情、职位名称、公司名称和位置,攻击者便有了大量可用的信息。人们在社交网络上披露的信息越多,攻击者越有可能冒充他们并对他们、他们的同事或公司发起攻击。他们也可能尝试通过加入目标组织的员工群组来提取公司数据。

通过社交网络网站,攻击者获取的包括组织事实、职业细节、联系人、关系和个人信息等,这些信息随后被用来执行其他类型的社会工程学攻击。

Facebook 冒充

Facebook 是一个流行的社交网络平台,它把人们联系在一起。朋友们常在上面发布评论并上传图片、视频和链接。攻击者使用昵称或化名代替真实身份来冒充 Facebook 用户。他们创造虚假身份,尝试添加 朋友 以访问他人资料并获取敏感信息。

攻击者用来说服受害者提供敏感信息的一些方法如下:

  • 创建一个虚假的 Facebook 用户群组,名为 公司 XYZ 员工

  • 使用虚假身份,继续向真正的员工发送好友请求或邀请加入虚假的 公司 XYZ 员工 群组。

  • 用户加入群组并提供信息,如他们的出生日期、教育和职业背景,或配偶的名字。

  • 攻击者可以利用其中一位员工的详细信息,突破安全设施,进入大楼。

攻击者还可以创建虚假账户,扫描各种社交网络网站(如 LinkedIn 和 Twitter)上目标个人资料页的信息,进行网络钓鱼、冒充和身份盗窃。

社交媒体对企业网络的威胁

在社交网络网站上分享数据或扩展频道、群组或个人资料之前,个人和企业用户应意识到以下社会和技术安全威胁:

  • 数据盗窃:社交网络网站是庞大的数据库,全球有许多人访问,增加了数据被滥用的风险。

  • 无意的数据泄露:如果没有一个明确区分个人信息和企业信息的强有力政策,员工可能会不小心在社交网络网站上分享公司敏感资料,这可能会帮助攻击者对目标组织发起攻击。

  • 定向攻击:攻击者利用社交网络网站上提供的信息,对特定用户或企业实施定向攻击。

  • 网络漏洞:所有社交网络网站都存在一些弱点和问题,比如登录问题和 Java 漏洞,攻击者可能利用这些漏洞。因此,涉及目标组织网络的机密信息可能会被泄露。

  • 网络钓鱼和垃圾邮件:使用工作邮箱的员工在社交网络网站上可能会收到垃圾邮件,成为网络钓鱼攻击的目标,这可能会破坏公司的网络安全。

  • 内容修改:没有足够的安全措施和保护身份的努力时,博客、频道、群组、个人资料及其他平台可能会被伪造或黑客攻击。

既然我们了解了一些面临的威胁,接下来我们来讨论攻击者如何利用他们收集到的信息窃取他人的身份。

身份盗窃

今天许多消费者成为了身份盗窃的受害者,以至于美国一些州的立法者已通过法律禁止在招聘过程中使用或披露个人的社会安全号码(SSN)。身份盗窃不断成为新闻话题。公司应教育员工如何防范身份盗窃,以避免其反欺诈活动受到影响。

身份盗窃和身份欺诈是指所有类型的犯罪,其中有人以欺诈或欺骗的方式,非法获取并使用他人的个人数据,通常是为了经济利益。

1998 年的《身份盗窃与假冒行为阻止法》(Identity Theft and Assumption Deterrence Act),由美国联邦贸易委员会(FTC)执行,规定盗窃个人信息以实施非法行为是美国的联邦犯罪,最高可判处 25 年监禁并罚款最高 25 万美元。

身份窃贼窃取以下类型的个人可识别信息:

  • 姓名

  • 家庭和工作地点

  • 驾驶证号码

  • 社会安全号码(SSNs)

  • 信用报告

  • 电话号码

  • 出生日期

  • 护照号码

  • 信用卡信息

攻击者盗用他人身份进行欺诈,以下是常见的欺诈方式:

  • 以用户的名义开设新的信用卡账户,并不支付账单

  • 以用户的名义或以用户当前账户收费,开设新的电话或无线账户

  • 使用受害人信息获取公共服务,如电力、取暖或有线电视

  • 以受害人个人信息开设银行账户,开空头支票

  • 通过 ATM 或借记卡从受害人账户进行电子提款

  • 获得受害人需负责的贷款

  • 获取包含受害人信息的驾照、护照或其他正式身份证件

  • 使用受害人的姓名和社会安全号码(SSN)领取政府福利

  • 冒充目标组织的员工,非法进入其设施

  • 接管受害人的保险单

  • 出售受害人的个人信息

  • 使用转运点在线订购商品

  • 劫持电子邮件账户

  • 获取健康服务

  • 提交虚假的税务申报表

  • 进行其他犯罪活动,目的是在被逮捕时提供受害人的姓名,而非自己的

让我们来看一下各种形式的身份盗用。

不同种类的身份盗用

身份盗用案件不断增加,盗贼们不断开发新的方法和战术,获取各种类型的目标数据。

攻击者通过盗用目标身份进行欺诈和其他犯罪活动的手段如下:

  • 儿童身份盗用:未成年人的身份被盗。这种盗用方式具有优势,因为它可能在较长时间内不被发现。身份盗窃者会使用儿童的社会安全号码(SSN),并更改出生日期,申请信用账户、贷款和公共服务,还会在孩子出生后,租房并申请政府福利。攻击者通过盗用他人身份进行欺诈,例如以用户名开设新信用卡账户而不支付账单。

  • 犯罪身份盗用:最常见且最具破坏性的一种身份盗用是信用卡欺诈。为了避免因犯罪而被追责,犯罪分子假冒他人身份。当他们被捕或逮捕时,会披露虚假的身份。避免犯罪分子进行身份盗用的最佳方法是保密所有个人信息,包括采用安全的互联网操作方式,并警惕肩膀窥探者

  • 金融身份盗窃:当窃贼窃取受害者的银行账户或信用卡信息并非法使用时,这被称为身份盗窃。他们可以使用窃取的身份刷爆信用卡并从账户中取款,或者开设银行账户并贷款并申请新的信用卡。病毒、网络钓鱼攻击和数据泄露被用来获取入侵受害者账户并窃取其个人信息所需的信息。

  • 驾驶执照身份盗窃:这是最简单的身份盗窃类型,因为它只需要一点点复杂性。任何时候一个人的驾驶执照可能会丢失或被盗。当被盗的驾驶执照落入错误手中时,犯罪分子可以出售它或用它来进行交通违规行为,而受害者却对此毫不知情,未能支付罚款,导致其驾驶执照被暂停或吊销。

  • 身份盗窃保险:保险欺诈是一个严重的问题。它与医疗身份盗窃有很强的联系。它可以使支付医疗费用更加困难,提高保险费用,甚至使未来获得医疗保障更加困难。

  • 医疗身份盗窃:这可能是最危险的身份盗窃类型,罪犯通过使用受害者的姓名或信息而未经其同意或知情的情况下获得医疗用品并索赔健康保险或医疗服务。由于医疗身份盗窃,受害者的医疗记录中常常出现错误条目。由于受害者医疗记录中频繁出现错误条目,医生可能会做出误导性诊断并做出危及生命的判断。

  • 纳税人身份盗窃:当犯罪分子获取受害者的社会安全号以提交虚假纳税申报并获得虚假的纳税退款时,就发生了这种情况。这使受害者更难获得合法的税款退还,导致财务损失。网络钓鱼电子邮件是犯罪分子从其受害者那里获取信息的最常见方法之一。采取安全的网络使用习惯是保护自己免受身份盗窃的一种方法。

  • 身份克隆和隐匿:此类身份盗窃包括所有试图冒充他人以隐藏其身份的身份盗窃。非法移民、逃避债务人士或仅希望保持匿名的人可能是罪犯。

  • 虚假身份盗窃:这是最先进的身份盗窃类型之一,罪犯从多名受害者处获取信息以构建新身份。首先,他们窃取社会安全号,并与虚假姓名、出生日期、地址和其他信息结合使用以创建新身份。犯罪分子使用此新身份开设新账户、贷款、信用卡、手机和其他商品和服务。

  • 社会身份盗窃:这是另一种常见的身份盗窃类型,施害者盗取受害人的社会安全号码(SSN)以获得各种福利,如将其出售给无证人员,通过开设新银行账户、申请贷款或申请并获得新护照来欺诈政府。

  • 从钱包、电脑、笔记本、手机、备份媒介和其他来源窃取个人信息:物理盗窃是一种广泛存在的现象。攻击者从酒店、俱乐部、餐馆、公园、海滩和其他公共场所窃取个人电子设备。如果给他们足够的时间,他们可以从这些设备中提取有价值的数据。

身份盗窃警示信号

人们通常在开始遇到未预料到的和未经授权的问题时才意识到自己成为了身份盗窃的受害者。因此,了解身份被盗的警示信号至关重要。

以下是一些身份盗窃的迹象:

  • 信用卡上有你不熟悉的收费项目。

  • 信用卡、银行和公用事业账单不再寄送。

  • 债权人联系你,告知有一个不明的账户以你的名义存在。

  • 你有一长串未曾犯下的交通罚单。

  • 你被收费用于你从未接受过的医疗服务或护理。

  • 有多个税务申报表以你的名义提交。

  • 由于被禁止访问,你无法访问自己的账户,无法申请贷款或使用其他服务。

  • 由于邮件被盗,你未能收到能源、燃气、水费或其他公用事业账单。

  • 你的个人医疗记录发生变化,显示出你并没有患有的疾病。

  • 收到消息称你的个人信息因公司发生数据泄露事件而被黑客入侵或滥用,该公司是你工作或有账户的地方。

  • 从你的银行账户中提取你不记得的现金。

  • 来自借记卡或信用卡欺诈预防办公室的电话,告知你账户上有可疑活动。

  • 因为另一个账户使用你孩子的社会安全号码(SSN)已经在领取政府福利,所以你和你的孩子的政府福利被拒绝。

  • 你的医疗保险计划拒绝了你合法的医疗索赔,因为该索赔已被他人提交。你的医疗记录被篡改,迫使你超出福利限额。

那么,我们能做些什么来保护自己,减少受到社交工程攻击的风险呢?接下来我们来讨论这个问题。

应对措施

社交工程师可能会利用人类行为(如礼貌、对工作的热情、懒惰或天真)来获取目标公司信息资源的访问权限。社交工程攻击很难检测,因为受害者可能不知道自己已被欺骗。它们与其他类型的攻击非常相似,目的是获取公司敏感数据的访问权限。为了保护自己免受社交工程攻击,企业必须评估不同类型攻击的风险,计算潜在损害,并提高员工的警觉性。

针对社交工程的对策

攻击者使用社交工程技术说服人们泄露其公司机密信息。他们通过社交工程进行欺诈、身份盗窃、工业间谍活动及其他恶意行为。组织必须建立有效的政策和流程来保护自己免受社交工程攻击;然而,单单制定政策是不够的。

为了有效,企业应采取以下措施:

  • 将政策传达给员工,并提供适当的教育和培训。

  • 高风险职业的员工应接受专门培训,以保护自己免受社交工程攻击。

  • 获取员工签署声明,表明他们已了解公司的政策。

  • 明确违反政策的后果。

用户意识、有效的内部网络控制以及安全政策、程序和流程,是防御社交工程的主要目标。

用户可以在官方安全规则和程序的支持下做出最佳的安全决策。以下防护措施应包含其中。

关于密码的政策

遵循以下指南的密码规则有助于提高密码安全性:

  • 密码应定期更换。

  • 应避免使用容易猜测的密码;社交工程问题的答案,如"你出生在哪里?"、"你宠物的名字是什么?“或"你最喜欢的电影是什么?”,可能会被用来猜测密码。

  • 如果用户的密码猜测失败次数超过特定次数,用户账户将被锁定。

  • 让你的密码更长(至少 6-8 个字符)且复杂(包括字母数字和特殊字符的混合)。

  • 不要将密码透露给任何人。

密码安全政策通常包含有效密码管理的建议,例如以下内容:

  • 不要共享计算机账户。

  • 不要在多个账户中使用相同的密码。

  • 不要在计算机上保存密码,也不要将密码写在纸上或便签上。

  • 密码不应通过电话、电子邮件或短信共享。

  • 离开计算机时,请确保它已被锁定或关闭。

关于物理安全的政策

物理安全政策涵盖以下领域:

  • 向组织的员工提供身份证明卡ID 卡)、制服和其他访问控制措施。

  • 办公室的安全人员或员工必须陪同访客前往指定的访客室或休息室。

  • 限制对组织某些区域的访问,以防止未经授权的用户妥协敏感数据的安全性。

  • 使用碎纸机和销毁箱等设备处理含有重要信息的旧文件,以防止攻击者通过垃圾桶潜水等技术收集信息。

  • 在组织中雇佣安全人员来保护人员和财产——通过报警系统、监控摄像头和其他设备补充训练有素的安全人员。

防御规划

为了最大限度地提高抵御社会工程攻击的效果,我们必须有意识地并有计划地制定一个强有力的防御方案:

  • 社会工程攻击演习:为了观察员工如何应对真实的社会工程攻击,企业应针对不同的人群使用各种策略进行多次社会工程演习。

  • 差距分析:差距分析根据行业领先的最佳实践、新兴威胁和缓解方法评估组织,使用从社会工程攻击演习中获得的信息。

  • 修复策略:组织根据差距分析评估的结果制定详细的修复计划,以减少发现的漏洞或漏洞。该计划主要是针对员工的岗位进行教育和提高意识,以及识别和管理对公司造成的任何风险。

发现内部威胁

内部人员是大多数数据泄露事件的责任方,这使得他们更加难以检测和防范。内部人员通常了解组织的安全漏洞,并会加以利用。内部威胁可以用于窃取机密信息,因此必须谨慎处理。这些威胁很难阻止,可能导致重大的财务损失和公司中断。

以下是一些检测内部威胁的方法。

内部威胁的控制措施

对于安全专业人员而言,内部数据风险增加了额外的复杂性。这要求建立能够有效监控用户权限、访问控制和用户行为的安全基础设施。

威慑性控制措施

组织的安全框架必须包括保护措施,遵循员工和 IT 专业人员的建议,建立角色分离,并分配权限。通过这些安全政策,组织的关键资产的安全风险被消除或最小化。

数据丢失防护DLP)是安全专业人员必须实施的威慑性控制措施之一,以防止内部威胁。身份与访问管理IAM)是另一种可用的工具。

以下是一些威慑性控制措施。

数据丢失防护工具(DLP):

IAM 工具:

针对内部威胁的对策

可以通过实施以下安全措施来预防或最小化内部威胁:

  • 职务分离与责任轮换:为了限制任何一个人所拥有的控制或影响力,将任务分配给多名员工。这有助于防止欺诈、滥用和利益冲突,以及发现控制漏洞(如安全绕过和数据盗窃)。在随机时间进行责任轮换有助于防止组织内的欺诈和滥用职权。

  • 最小权限:仅为用户提供完成其分配任务所需的最低访问权限。这有助于信息安全。

  • 受控访问:通过对组织各个部门的访问控制,防止未经授权的用户访问关键资产和资源。

  • 日志记录与审计:定期进行日志记录和审计,确保公司资源没有被滥用。

  • 员工监控:使用员工监控软件记录所有用户会话,并允许安全专家进行评估。

  • 法律政策:执行法律政策,防止员工滥用公司资源或窃取关键信息。

  • 归档重要数据:以档案的形式保存组织的关键数据,以便在必要时作为备份资源使用。

  • 员工网络安全培训:教育员工如何保护他们的凭证和公司的机密信息。他们将能够识别社交工程攻击并做出适当的应对,采取缓解措施并进行报告。

  • 员工背景调查:在聘用所有潜在员工之前,进行完整的背景调查,包括使用 Google 和社交网络网站,以及咨询前任雇主。

  • 定期风险评估:定期对关键资产进行风险评估,以识别弱点,并实施保护性解决方案,应对内部和外部威胁。

  • 监控特权用户:应更加密切地监控特权用户,因为这些账户可能被利用来在系统或网络上安装恶意软件或逻辑炸弹。

  • 解除终止员工的凭证:禁用所有终止员工的访问档案。员工终止后,网络、系统、应用程序和数据将被销毁。

  • 定期风险评估:对组织的所有关键资产进行风险评估,然后建立并维护风险管理策略,以保护这些资产免受内部人员和外部人员的威胁。

  • 多层保护:使用多层防护来防止和防御重要资产免受内部攻击。为抵御此类攻击,制定适当的远程访问政策和程序。

  • 物理安全:创建一个有能力的安全团队来监督组织的物理安全。

  • 监控:安装视频监控摄像头,监视所有重要资产。在所有关键服务器上安装并启用屏幕捕捉软件。

反身份盗窃的对策

以下是几项保障措施,如果实施,能够减少身份盗窃的可能性:

  • 所有包含机密信息的文件都应妥善保管或粉碎。

  • 确保您的名字不在任何营销人员的目标名单上。

  • 定期查看信用卡账单。

  • 永远不要通过电话透露个人信息。

  • 立即清空您的邮箱,以确保邮件安全。

  • 怀疑并再次核对所有要求提供个人信息的请求。

  • 个人信息不应公开。

  • 除非必要,不要展示账户或联系方式。

  • 定期监控您的互联网金融活动。

  • 永远不要在社交媒体平台上透露个人身份信息,如父亲的名字、宠物的名字、居住地点或出生城市。

  • 在所有在线账户上启用双因素认证。

  • 永远不要通过公共 Wi-Fi 共享或访问重要信息。

  • 在您的计算机上安装主机安全软件,如防火墙和杀毒软件。

以下是一些额外的反身份盗窃保障措施:

  • 粉碎所有不需要的信用卡优惠和“便捷支票”。

  • 对任何银行账户使用强密码,并且不要在系统中保存任何金融信息。

  • 妥善保管您的社会保障卡、护照、驾照及其他重要个人信息,确保其隐蔽和安全。

  • 检查您的电话和手机账单,确认是否有未拨打的电话。

  • 阅读网站上的隐私政策。

  • 在点击电子邮件或即时聊天中的链接之前,请谨慎操作。

反钓鱼的对策

这里有一些额外的方法和工具来保护自己免受攻击。

反钓鱼工具栏

Netcraft: toolbar.netcraft.com

Netcraft 反钓鱼社区是一个庞大的邻里守望计划,它赋能最警觉和最有知识的成员保护社区内的每个人免受钓鱼攻击。Netcraft 工具栏帮助用户及时了解他们定期访问的站点的安全问题,并过滤有害网站。该工具栏提供关于著名网站的有用信息,帮助您做出关于网站完整性的明智决策。

PhishTank: phishtank.com

PhishTank 是一个在线协作的钓鱼数据和信息存储库。开发人员和研究人员可以使用开放的 API 将反钓鱼数据集成到他们的程序中。

社会工程学工具

社会工程学工具包 (SET):www.trustedsec.com

SET 是一款开源的、基于 Python 的社会工程学渗透测试应用程序。它是一个通用的攻击工具,可以用来对人类进行高级攻击,迫使目标泄露敏感信息。电子邮件、在线和 USB 攻击都被归类为 SET 攻击,这取决于攻击者利用的攻击向量来欺骗目标。该工具包利用人类的信任、恐惧、贪婪和助人为乐的天性来进行攻击。

使用 OhPhish 审计组织的钓鱼攻击安全性

启动钓鱼攻击针对客户员工的目标是检查员工对钓鱼攻击的敏感性,并帮助客户公司降低员工成为钓鱼攻击受害者时带来的风险。

OhPhishciso.eccouncil.org/phishing-solutions/

OhPhish 是一款基于网页的工具,用于判断员工是否容易受到社会工程学攻击。它是一种钓鱼模拟工具,为企业提供一个平台来针对员工开展钓鱼模拟活动。该平台记录响应并向管理层提供信息。

OhPhish 可以用来检查组织的钓鱼攻击安全性,利用多种钓鱼技术,如诱导点击、凭证收集、发送附件、培训、语音钓鱼和短信钓鱼等。

你已经获得了一些很好的工具和见解,用于识别和应对社会工程学攻击。制定计划并教育员工是提高他们对各种社会工程学攻击方式的意识的关键。

总结

本章讲解了社会工程学的基础知识,以及社会工程学攻击的多个阶段。还介绍了各种基于人、基于计算机和基于移动设备的社会工程学策略。我们探讨了内鬼威胁,包括不同类型的内鬼威胁。我们简要介绍了社交网络仿冒以及讨论了各种身份盗窃类型。本章最后详细解释了多种警示标志,帮助您识别并采取措施保护自己免受社会工程学攻击、内鬼威胁和身份盗窃。

在下一章,我们将讨论嗅探的过程。

问题

在我们总结时,以下是一些问题供您测试自己对本章内容的理解。您可以在附录中的评估部分找到答案:

  1. 社会工程学的目的是 __________。

    1. 目的在于与人们建立不信任关系

    2. 利用人类行为

    3. 夹带

    4. 即时消息

  2. 钓鱼攻击是通过以下哪种方式进行的?

    1. 网站

    2. 电子邮件

    3. 夹带

    4. 即时消息

  3. 如何最好地避免社交工程攻击?

    1. 通过雇佣额外的帮助台/支持人员

    2. 为了避免扫描,安装或升级防火墙

    3. 员工培训

    4. IDS 日志审查

  4. 以下因素可能会使企业更容易受到社交工程攻击,除了哪个?

    1. 不足的安全政策

    2. 多个地点

    3. 经常性、持续性的安全教育

    4. 无限制的信息访问

进一步阅读

如果你想深入了解与社交工程相关的兔子洞,我建议你访问www.social-engineer.org/,这是一个很棒的在线资源,提供框架、播客和其他资料。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值