道德黑客的侦查指南-全-

道德黑客的侦查指南(全)

原文:annas-archive.org/md5/2ee7244042cc3a067e5ba8e2326f9b96

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

网络安全是世界上最有趣且要求最高的领域之一。随着世界的不断发展,我们的技术进步同样在帮助人类改善任务执行的方式。然而,周围有许多系统和网络包含隐藏的安全漏洞,黑客等对手利用这些漏洞进行攻击。作为一名网络安全作者和讲师,我听到许多专业人士、爱好者和学生提到,找到一本能够引导读者深入了解如何高效执行侦察技术和程序、识别并减少组织攻击面的书籍是非常重要的。

侦察是对手进行任何网络攻击的第一阶段。攻击者需要了解目标的基础设施,识别是否存在安全漏洞以及如何利用这些漏洞,了解可以用来实施攻击的攻击向量。如果没有关于目标的情报,黑客在攻破潜在受害者时将会遇到困难。作为一个有志成为道德黑客的人,理解战术、技术和程序TTPs)是至关重要的,因为这些是实际黑客常用的手段,用来发现隐藏的安全漏洞,并运用这些 TTPs 帮助提升你所在组织的网络防御。

组织通常会在互联网上泄露过多的敏感数据,却没有意识到这些数据可能被威胁者用来规划未来的攻击。学习基于侦察的技术和程序可以帮助道德黑客识别组织是如何泄露数据的,评估如果攻击者利用这些泄露的数据发起网络攻击时可能对组织造成的影响和网络风险,并提出应对措施,改进公司网络防御。

多年来,我研究并开发了大量与网络安全相关的内容,作为一个道德黑客和渗透测试员,最重要的因素之一就是保持与不断变化的网络安全环境同步。行业中正在开发和使用新的工具、技术和程序,以确保他们至少比网络犯罪分子领先一步,并帮助保护其组织的资产。因此,道德黑客和渗透测试员需要具备最新的知识、技术、技能和工具,以便高效地执行基于侦察的攻击和开源情报OSINT)渗透测试,从而确定组织的攻击面。

在本书的写作过程中,我采用了以学生为中心且易于学习的方法,确保所有读者都能轻松理解最复杂的主题、术语,以及为什么需要识别组织、系统和网络中的安全漏洞。

本书首先介绍了侦察的重要性,以及网络安全专业人员和对手如何利用侦察来识别公司中的易受攻击的入口点。接下来,你将进入一个激动人心的旅程,学习如何应用对手常用的基于侦察的 TTP(战术、技术、程序),高效地收集和分析公开的数据,以构建目标系统和网络基础设施的档案。你将学习如何设置傀儡账户并匿名化你的网络流量,作为道德黑客在侦察评估期间隐藏身份,从而降低威胁水平。

此外,你将发现人们和组织如何泄露关于他们自己的数据,以及对手如何利用这些信息来提高他们的网络攻击和威胁。你还将学习如何利用 OSINT(开放源代码情报)和常见工具,识别组织内暴露的系统和网络,收集泄露的员工凭证,并进行无线信号情报分析,更好地了解潜在黑客如何破坏其目标。

此外,你将获得执行主动侦察的实践技能,以识别活动系统、开放端口、运行服务和操作系统,并进行漏洞评估,了解攻击者如何识别系统上的安全漏洞,以及组织可以采取什么措施来减轻这一威胁。你还将学习如何识别目标网站和基础设施的攻击面,并发现该目标拥有的其他资产。最后,你将学习如何利用 Wireshark 和流行的开源工具,作为网络安全专业人员,识别网络中的基于侦察的攻击和威胁。

完成本书后,你将从初学者成长为专家,学习、理解并发展基于侦察的道德黑客和渗透测试技能,成为行业中一名有抱负的网络安全专业人士。

本书适合的人群

本书面向道德黑客、渗透测试人员、执法人员以及网络安全专业人士,特别是那些希望建立坚实基础并更好理解基于侦察的攻击如何威胁组织及其资产的人。道德黑客和渗透测试人员在收集和分析情报时会发现本书非常有用,帮助他们深入了解真实威胁行为者如何破坏其目标。

此外,执法人员和道德黑客可以利用本书中的知识,找到感兴趣的人物,并理解组织如何泄露导致网络攻击的数据。此外,网络安全专业人员将发现本书在识别其组织的攻击面以及发现网络中暴露和易受攻击的资产方面非常有用,同时理解对手的行为。

本书内容概览

第一章侦察基础,介绍了进攻性安全中的侦察阶段,以及它如何帮助组织提高网络防御能力。

第二章搭建侦察实验室,重点介绍如何在虚拟化环境中搭建系统,以便实践主动侦察技术。

第三章理解被动侦察,帮助你理解对手如何利用开源情报(OSINT)提高攻击效果,同时在互联网上匿名化自己的身份。

第四章域名和 DNS 情报,教你如何高效地收集和分析目标组织的域名相关信息,以识别安全漏洞。

第五章组织基础设施情报,重点介绍如何收集和分析公开的可用数据,以描述组织的网络基础设施及其员工。

第六章图像、人员和信号情报,教你如何使用侦察技术寻找和定位人员、组织和无线网络基础设施。

第七章进行主动侦察,重点介绍如何发现网络上的主机、枚举易受攻击的系统以及对目标网络进行无线侦察。

第八章进行漏洞评估,教你如何使用行业常见工具来设置并执行漏洞评估。

第九章深入网站侦察,探讨了对手用于识别网站和域名攻击面的一些工具和技术。

第十章实施侦察监控和检测系统,重点介绍如何使用 Wireshark 和 Security Onion 识别可疑的网络流量。

为了最大程度地从本书中受益

为了从本书中获得最大收益,建议你具备扎实的网络基础,例如了解常见的 TCP/IP 网络和应用协议、IP 地址、路由和交换概念,以及网络设备和安全设备的角色和功能。了解虚拟化技术,如虚拟机监控程序及其组件,将是有益的,因为大多数实验都在虚拟化环境中进行,以减少购买额外系统的需求。

本书中涉及的软件/硬件
Kali Linux 2022.4 Oracle VM VirtualBox
Kali Linux ARM 2023.1 Oracle VirtualBox 扩展包
Trace Labs OSINT VM 2022.1 Vagrant 2.3.3
OWASP JuiceShop 7-Zip
Metasploitable 3 v0.1.0 VMware Workstation 17 Pro
Security Onion 2.3
TOR 和 TOR 浏览器
Recon-ng
Nessus Essentials
SpiderFoot
Sherlock
Sn1per
Amass
Raspberry Pi 3 B+
Alfa AWUS036NHA - 无线 B/G/N USB 适配器
VK-162 G-Mouse USB GPS 导航模块

所有实验和练习均在一台运行 Windows 11 Home 操作系统的计算机上构建,该计算机配备了启用虚拟化的多核处理器、16 GB 的内存和 400 GB 的虚拟机可用存储空间。选择 Oracle VM VirtualBox 作为虚拟化平台,因为它提供出色的虚拟网络功能并且是免费的,但 VMware Workstation Pro 也用于在书本末尾设置威胁检测系统。

如果你正在使用本书的数字版本,我们建议你亲自输入代码或通过本书的 GitHub 仓库访问代码(下一节中会提供链接)。这样做有助于避免与复制和粘贴代码相关的潜在错误

完成本书后,利用你的想象力和新学到的技能,尝试创建额外的实验场景,甚至通过增加虚拟机来扩展你的实验环境,从而进一步提高你的技能。这将帮助你在持续学习的同时,作为一个有抱负的道德黑客发展技能。

下载彩色图像

我们还提供了一份包含本书截图和图表的彩色图像 PDF 文件,你可以在这里下载:packt.link/E4kdf

使用的约定

本书中使用了若干文本约定。

文本中的代码:表示文本中的代码词汇、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟网址、用户输入和 Twitter 账户名。举个例子:“例如,cybersecurity** **filetype:pdf 将提供包含词汇 cybersecurity 和 PDF 文件的结果。”

代码块如下所示:

interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant

当我们希望引起你对某段代码块的注意时,相关行或项目会以粗体显示:

kali@kali:~$ sudo apt update
kali@kali:~$ git clone https://github.com/sherlock-project/sherlock

所有命令行输入或输出都如下所示:

kali@kali:~$ sudo apt update

粗体:表示新术语、重要词汇或您在屏幕上看到的词语。例如,菜单或对话框中的词汇会以粗体显示。以下是一个示例:“接下来,编辑有线连接 1窗口将出现;选择IPv6 设置选项卡,将方法更改为禁用,然后点击确定。”

提示或重要说明

将显示为这样。

免责声明

本书中的信息仅应以伦理的方式使用。如果您没有设备所有者的书面许可,请勿使用书中的任何信息。如果您进行非法行为,您可能会被逮捕并依法起诉。无论是 Packt 出版公司还是本书的作者都不对您滥用书中任何信息承担任何责任。书中的信息仅在经过适当负责人书面授权的测试环境中使用。

与我们联系

我们始终欢迎读者的反馈。

一般反馈:如果您对本书的任何部分有疑问,请通过电子邮件联系 customercare@packtpub.com,并在邮件主题中注明书名。

勘误:虽然我们已尽一切努力确保内容的准确性,但错误仍然会发生。如果您在本书中发现错误,我们将非常感激您能报告给我们。请访问www.packtpub.com/support/errata并填写表格。

盗版:如果您在互联网上遇到我们作品的任何非法复制品,我们将非常感激您能提供该位置地址或网站名称。请通过电子邮件联系版权@packt.com,并提供链接。

如果您有兴趣成为作者:如果您在某个领域有专业知识并且有意写书或为书籍做贡献,请访问authors.packtpub.com

分享您的想法

一旦您阅读了《道德黑客侦察》,我们很想听听您的想法!请点击这里直接进入亚马逊评论页面并分享您的反馈。

您的评论对我们和技术社区非常重要,能帮助我们确保提供优质的内容。

下载本书的免费 PDF 副本

感谢您购买本书!

您喜欢在外出时阅读,但又无法随身携带纸质书籍吗?

您的电子书购买无法在您选择的设备上使用吗?

不用担心,现在每本 Packt 书籍都可以免费获得该书的无 DRM PDF 版本。

随时随地,在任何设备上阅读。从您最喜欢的技术书籍中直接搜索、复制并粘贴代码到您的应用程序中。

福利不仅仅如此,您还可以独享折扣、新闻通讯及每天直接送达您的邮箱的精彩免费内容。

按照这些简单的步骤获取相关福利:

  1. 扫描二维码或访问以下链接

https://packt.link/free-ebook/9781837630639

  1. 提交您的购买凭证

  2. 就这样!我们将直接通过电子邮件发送您的免费 PDF 和其他福利

第一部分:侦察与足迹绘制

在本节中,您将学习侦察的重要性,以及道德黑客如何利用它来识别组织的攻击面、定位感兴趣的人员并执行无线信号情报。

本部分包含以下章节:

  • 第一章侦察基础

  • 第二章建立侦察实验室

  • 第三章理解被动侦察

  • 第四章域名和 DNS 情报

  • 第五章组织基础设施情报

  • 第六章图像学、人员和信号情报

第一章:侦察基础知识

作为一名有志成为道德黑客、渗透测试员或红队成员的人,侦察在帮助网络安全专业人士减少组织在互联网上的数字足迹方面起着重要作用。这些数字足迹使得像黑客这样的对抗方能够利用关于目标的公开可用信息来规划未来的行动和网络攻击。随着越来越多的组织和用户将其系统和网络连接到世界上最大的网络基础设施——互联网,信息的访问和资源的共享已经变得对每个人都触手可及。互联网为许多组织提供了一个平台,使其产品和服务超越传统边界,向世界各地的潜在新客户拓展。此外,人们还使用互联网报名参加在线课程、进行电子商务交易、运营在线业务,以及与他人沟通和分享想法。

如今,互联网的使用对许多人来说已经非常普遍。例如,如果一个组织正在寻找新员工来填补一个新的或现有的职位,招聘人员只需发布职位空缺,并提供所需的所有必要细节,供有兴趣的候选人查看。这使得任何有互联网接入的人都可以访问各种招聘论坛和招聘网站,寻找新的职业机会,并通过在线平台轻松提交申请。发布和在线可用的信息使得对抗方能够收集并利用有关目标组织的特定细节。这些细节有助于黑客在不入侵的情况下确定公司内部网络上运行的网络基础设施、系统和服务类型。本书将教您威胁行为者和道德黑客如何利用公开可用的信息来规划未来的行动,从而导致网络攻击。

在本章中,您将从对抗方和网络安全专业人士的角度深入理解侦察的重要性,以及为什么组织在将其系统和网络连接到互联网时需要保持警惕。此外,您将学习攻击面管理的基本知识,了解它为何对组织至关重要,以及网络安全专业人士如何利用它减少网络可能遭受的网络攻击风险。最后,您将了解在攻击的侦察阶段,威胁行为者、对抗方、道德黑客和渗透测试人员常用的策略、技巧和程序。

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

  • 什么是道德黑客?

  • 侦察的重要性

  • 了解攻击面管理

  • 侦察策略、技巧和程序

一起来深入了解吧!

什么是道德黑客?

黑客攻击这个术语通常用来描述具有恶意意图的人(如黑客)进行的一些技术手段和活动,以便未经授权访问系统或网络。从电话系统、计算机到互联网的早期发展开始,许多人对如何确定各种设备和技术的运作方式以及它们如何协同工作产生了浓厚的兴趣。令人着迷的是,一个人可以使用传统的固定电话拨打另一个人的电话号码,并建立连接进行语音通话。甚至使用计算机向他人发送电子邮件,邮件可以几乎即时送达预定收件人的邮箱,相较于传统邮政方式,这种方式效率非常高。

由于全球人们的好奇心,拆解一个系统以进一步了解其功能的想法为黑客攻击奠定了基础。早期的黑客一代试图理解系统和设备是如何工作的,是否存在可以利用的设计缺陷,从而改变系统的原始功能。例如,在 20 世纪 50 年代和 60 年代,美国的一个电话系统中发现了一个安全漏洞,使得用户能够操控/改变电话信号,从而实现免费长途电话。这种技术在电信行业中被称为电话黑客phreaking)。具体来说,一个人可以使用 2600 MHz 频率的口哨来重建电话路由信号,从而使得任何利用这个漏洞的人都能进行免费长途电话。然而,电信服务提供商已经实施了一种名为公共信道办公信令CCIS)的解决方案,将信号与语音频道分离。在这种情况下,人们发现了一个系统中的安全漏洞并加以利用,从而改变了系统的运作方式。然而,不同的人有不同的目的,可能是为了娱乐、实验,甚至是为了获取免费的长途电话服务。

重要提示

漏洞通常用来描述系统中的安全缺陷或弱点。利用是指任何可以用来利用安全漏洞的手段。威胁是指任何可能对系统造成损害的因素。威胁行为者对手是指对网络攻击或制造威胁负责的人。

一个非常常见的问题是,为什么有人会想要黑入另一个系统或网络。每个黑客背后都有不同的动机,例如,许多黑客出于娱乐、向他人证明某种观点、盗取组织数据、通过在暗网上出售被盗数据获取经济利益,甚至是作为个人挑战。无论动机是什么,黑客攻击在全球范围内都是非法的,因为它涉及使用计算机系统对另一个系统造成伤害或损害。

尽管黑客在主流媒体中似乎都是负面的,但它并非全是坏事,因为像道德黑客和渗透测试员这样的网络安全专业人士,使用类似的技术和工具,在合法许可和目的下模拟真实的网络攻击,以帮助组织发现并解决隐藏的安全漏洞,防止未来发生真正的网络攻击。道德黑客只是好人,他们通常被称为白帽黑客,在网络安全行业中,他们利用自己的知识和技能帮助组织在真正的网络攻击发生之前,找到并解决潜在的安全弱点和漏洞。虽然威胁行为者和道德黑客拥有相似的技能,但他们的道德观不同,威胁行为者利用他们的技能和能力进行恶意和非法活动,而道德黑客则利用这些技能帮助组织防御自己,并保护其资产免受恶意黑客的攻击。

以下是常见的威胁行为者及其动机:

  • 高级持续性威胁(APT)组织 – APT 组织的成员设计的攻击非常隐蔽,并且大多数威胁检测系统无法检测到目标网络或系统中的攻击。其目的是渗透目标组织并保持在其网络中,同时利用其他系统并窃取数据。

  • 内部威胁 – 这是指攻击者位于目标组织的网络基础设施内。这可能是公司内部的黑客,他能绕过组织的安全防御系统并直接访问易受攻击的机器。此外,内部威胁还可能是意图破坏公司网络基础设施的不满员工。

  • 国家行为者 – 这些是受雇于某国政府的网络安全专业人士,专注于国家安全,并对全球其他国家进行侦察。

  • 黑客行动主义者 – 这些人利用他们的黑客技能支持社会或政治议程,例如篡改网站和破坏对网络服务器的可用性或访问。

  • 脚本小子 – 这种黑客是新手,缺乏行业技术专长,但会遵循专家的教程或指令对目标系统进行网络攻击。然而,由于此人不完全理解攻击背后的技术细节,他们可能比真正的黑客造成更多的损害。

  • 犯罪集团 – 这是一个专注于经济利益的有组织犯罪团伙,每个成员都有专门的技能来提升攻击效果并增加成功的可能性。此外,这个团伙通常资金雄厚,确保他们能获得最好的工具。

  • 白帽 – 这些是网络安全专业人士,如道德黑客、渗透测试员和红队成员,他们运用自己的技能帮助组织防止网络攻击和威胁。

  • 灰帽 – 这些人利用自己的黑客技能进行善恶两用。例如,灰帽威胁行为者可能是一名网络安全专业人员,白天利用自己的技能帮助组织,晚上出于恶意目的使用技能。

  • 黑帽 – 这些是典型的利用技能进行恶意目的的威胁行为者。

道德黑客、渗透测试人员和红队操作员在模拟任何类型的真实世界网络攻击和威胁之前,始终需要从当局获得法律许可,并确保他们保持在范围内。例如,以下协议需要在网络安全服务提供商和客户之间签署:

  • 保密 协议(NDA)

  • 工作声明(SOW)

  • 主服务 协议(MSA)

  • 攻击许可

NDA 通常被称为 保密协议,其中规定道德黑客、渗透测试人员或红队成员不得披露、分享或保留在对客户系统和网络基础设施进行安全评估期间发现的任何私人、机密、敏感或专有信息。

然而,SOW 文档通常包含了道德黑客/服务提供商为客户执行的安全测试类型的所有细节,以及安全测试的范围,例如特定的 IP 地址和范围。对于法律原因,道德黑客不得超出安全测试范围是非常重要的。此外,SOW 将包含计费细节、安全测试持续时间、免责声明和责任细节以及交付给客户的成果。

MSA 是一份包含付款细节和条款、提供商的保密和工作标准、限制和约束以及交付要求的一般协议。这种类型的协议帮助网络安全服务提供商减少为新客户或现有客户提供类似工作所需的时间。此外,MSA 文件可以根据每个客户的需求进行定制,因为他们可能需要独特或专业化的服务。

攻击许可 对于道德黑客、渗透测试人员和红队成员来说是非常重要的协议,因为它包含了进行客户系统和网络基础设施安全测试所需的法律授权。将这份协议视为一份文件形式的 脱罪卡,由法律机构签署,表明授予服务提供商及其从业人员进行道德黑客和渗透测试服务的许可。

道德黑客的心态和技能

威胁行为者总是在寻求新的、先进的技术来破坏目标的系统和网络,以实现合法目的。例如,全球有不同类型的黑客和团体,每个团体都有自己的动机和理由进行网络攻击:

  • 个人成就/挑战,例如证明自己有能力和技能突破一个组织及其系统

  • 财务获利,例如窃取组织的机密数据并在各种暗网市场上出售

  • 支持某个社会或政治议程,例如篡改和破坏与社会/政治运动相关的网站

  • 网络战,例如破坏管理国家关键基础设施的工业控制系统ICS

虽然全球有许多网络安全公司正在开发和改进解决方案,以帮助组织抵御网络犯罪分子、攻击和威胁,但行业中对网络安全专业人员的需求也非常巨大。通过主流媒体平台已经可以明显看到,另一个组织成为威胁行为者目标的只是时间问题。根据世界经济论坛于 2015 年 1 月 21 日发布的在线文章《万物互联网对安全意味着什么?》,思科系统公司前执行主席兼首席执行官约翰·钱伯斯表示:“有两种类型的公司:一种是已经被黑的公司,另一种是还不知道自己已经被黑的公司。” 每天,这一说法变得越来越明显,越来越成为现实,因为许多公司正在报告数据泄露,一些报告表明,攻击者在安全事件被发现并控制之前,已经在网络中潜伏了多天甚至数月。

对于道德黑客技能和知识的需求在全球范围内不断增长,因为从小型到大型企业的领导团队已经意识到,他们的资产需要得到保护,而道德黑客和渗透测试人员可以帮助发现和修复隐藏的安全漏洞,减少攻击面,并提高公司在面对网络犯罪分子和威胁时的网络防御能力。道德黑客拥有与恶意攻击者(如威胁行为者)相同的技能和专业知识,但区别在于他们的意图。道德黑客拥有良好的道德指南针,并选择将自己的技能用于正当理由,而威胁行为者则将自己的技能和知识用于不正当的目的,例如非法破坏和伤害系统。

以下是道德黑客在网络安全行业中常见的技术技能:

  • 熟练掌握各种操作系统的管理技能,如 Windows 和 Linux

  • 扎实的网络基础知识,如路由和交换

  • 理解常见安全原则和最佳实践的基本知识

  • 熟练掌握诸如 Go 和 Python 之类的编程语言,以及像 Bash 和 PowerShell 这样的脚本语言

  • 熟悉虚拟化、容器化和云计算

尽管上述基本技能列表似乎有些令人生畏,但要记住网络安全领域和学习就像马拉松而非短跑。重要的不是你能学得多快,而是确保你花时间充分理解和掌握一个主题。

以下是伦理黑客的非技术技能:

  • 在技术和非技术人员之间进行口头和书面交流的熟练

  • 成为一个非常规思考者

  • 自我激励,并有动力学习新主题并扩展知识

  • 确保你理解使用知识进行善恶意图之间的区别

伦理黑客使用与真实威胁行为者相同的技术、工具和程序,以实现他们的目标,并发现系统中的隐藏安全漏洞。有一句谚语说,如果你想抓贼,你就需要像一个一样思考。这句谚语适用于伦理黑客 - 如果你想找到真正黑客能够发现和利用的安全漏洞,那么你需要调整你的思维方式,同时使用相同的技术、工具和程序,以帮助你做到这一点,并且具有合法的许可和良好的意图。

以下图表显示了 EC-Council 的伦理黑客五个阶段:

图 1.1 - 黑客阶段

图 1.1 - 黑客阶段

如上图所示,伦理黑客和威胁行为者从侦察他们的目标开始,然后转向扫描和枚举,然后进入获取访问权限和建立系统中的立足点,通过保持访问来掩盖痕迹,并删除任何攻击证据。由于本书基于“伦理黑客的侦查”概念,因此我们将在课程中专注于侦查、扫描和枚举。

侦察的重要性

伦理黑客的第一阶段是侦察 - 伦理黑客用来收集有关目标的尽可能多信息的技术和程序,以确定他们的网络基础设施、网络防御和可以被利用的安全漏洞,以获得未经授权的访问并相应地改进攻击操作。从军事角度来看,侦查在规划和对目标发动攻击中起着重要作用。收集有关目标的信息帮助攻击者确定入口点、基础设施类型、拥有的资产以及目标的优势和劣势。

简单来说,侦察有助于道德黑客在发起攻击之前,深入了解一个组织的系统和网络基础设施。收集到的信息可以用来识别可以被利用的安全漏洞,从而使道德黑客能够入侵并在目标系统中站稳脚跟。例如,使用侦察技术可以帮助道德黑客识别系统中正在运行的服务、开放的端口以及服务和软件的版本,所有这些信息都可以用来识别和确定潜在的攻击向量。

此外,使用像开源情报OSINT)这样的侦察技术,可以帮助道德黑客被动地收集互联网上公开的目标信息。这些信息可能包括目标组织员工的用户名、电子邮件地址和职位等。这些信息可以用来创建各种社会工程攻击和钓鱼邮件攻击,针对特定员工发送。

以下截图展示了互联网上公开的员工信息示例:

图 1.2 – 员工数据

图 1.2 – 员工数据

如前面的截图所示,这些是某一特定组织的不同员工。他们的姓名、电子邮件地址和职位在互联网上是公开可见的。攻击者可以通过观察他们的电子邮件地址寻找规律,以确定公司所有员工的邮箱格式。例如,假设有一位名为 John Doe 的员工,他的电子邮件地址是jdoe@companyname.com,另一位员工是 Jane Foster,她的电子邮件地址是jfoster@companyname.com。这些信息显示了同一组织内员工的邮箱格式和规律:{f}{lastname}@domain-name.com,其中f是该员工名字的首字母,后跟姓氏和公司的域名。这样的信息可以帮助道德黑客向目标组织的高层员工发送钓鱼邮件攻击。

侦察帮助组织降低被威胁行为者攻击的风险,并改善其网络防御。通过让道德黑客对组织的系统和网络基础设施进行侦察技术和流程,组织可以有效地识别安全漏洞,并在这些漏洞被对手发现并利用之前采取必要的补救和解决措施。此外,侦察帮助组织识别并跟踪潜在的威胁行为者,使公司能够更好地了解网络安全威胁态势,同时实施和改进积极的反制措施,以保护其资产、系统和网络。因此,侦察不仅对对手重要,网络安全专业人士也使用收集的信息来帮助组织。

侦察分为以下几种类型:

  • 被动侦察

  • 主动侦察

被动侦察使道德黑客能够利用开放源代码情报(OSINT)技术,从互联网上的各种公开来源收集信息,而无需直接与目标接触。

以下是一些开放源代码情报(OSINT)数据来源的示例:

  • 招聘网站

  • 在线论坛

  • 社交媒体平台

  • 公司注册网站

  • 公共域名系统DNS)服务器

对于道德黑客来说,在进行安全评估时使用与对手相似的技术和流程,以为客户提供真实世界的经验是非常重要的。此外,这也有助于组织确定其安全团队和解决方案是否能够检测到道德黑客所创建的任何安全入侵。如果安全团队无法检测到在道德黑客和渗透测试评估过程中执行的任何操作,那么对于道德黑客来说,这是一个好兆头,因为他们的技术足够隐秘,可以绕过并躲避网络上的任何威胁检测系统。然而,这意味着组织的安全团队需要改进其威胁监控和检测策略,并调整其传感器以捕捉任何与安全相关的异常。

主动侦察通过威胁行为者和道德黑客采取更直接的方法,收集关于目标的信息。在主动侦察中,道德黑客使用扫描和枚举技术与工具来获取有关目标系统和网络的具体细节。例如,要确定服务器上运行的服务和开放的端口,道德黑客可以使用网络和端口扫描工具,如Nmap,对网络进行主机发现。然而,主动侦察增加了触发安全传感器的风险,可能会向安全团队发出关于可能正在进行侦察攻击的警报。

在下一节中,您将了解网络安全专业人士,包括道德黑客,如何利用在侦察期间收集的信息,帮助组织提升其安全态势并管理其攻击面。

理解攻击面管理

攻击面简单来说就是能够被利用的潜在安全漏洞的数量,这些漏洞可以通过攻击向量被用来访问系统、网络和组织。如果组织无法识别其安全漏洞并实施对策,那么它们就等于把自己暴露于网络攻击和威胁之下。攻击面管理ASM)并不是网络安全行业中的新学科,而是全球网络安全专业人士和组织的新关注点。ASM 是一种策略,网络安全专业人士用它来专注于识别、分析并减少组织的攻击面。因此,通过减少组织的攻击面,可以降低被网络攻击和威胁入侵的风险,同时保护其资产、资源和敏感信息。

在组织中采用 ASM 可以帮助安全团队根据漏洞分数和潜在影响识别并优先处理安全漏洞。通用漏洞评分系统CVSS)通常在许多漏洞扫描工具中引用,用来提供从010之间的漏洞评分,其中0表示影响最小,10表示最严重。这些分数帮助网络安全专业人士将高优先级和资源分配给高严重性的安全漏洞修复工作。

例如,下面的截图展示了 CVSS 计算器的基础指标:

图 1.3 – CVSS 计算器

图 1.3 – CVSS 计算器

如前面的代码片段所示,基础分数中的指标会影响漏洞分数。例如,如果攻击者能够通过网络在目标系统上利用安全漏洞,并且攻击复杂度低,不需要任何用户交互或提升的权限,并且该漏洞对系统的机密性和完整性有极大影响,则 CVSS 计算器会给出 9.4 的漏洞分数。请记住,这些分数是根据漏洞对系统的关键性和影响来分配的。

提示

要了解更多关于 CVSS 计算器的信息,请参见www.first.org/cvss/calculator/3.1

以下代码片段显示了 Nessus 漏洞扫描的结果,展示了安全漏洞的数量及其分数:

图 1.4 – Nessus 扫描结果

图 1.4 – Nessus 扫描结果

如前面的代码片段所示,CVSS 分数是通过 CVSS 计算器引用的。

重要的是要认识到,网络安全专业人员可能会识别出一个对组织及其业务流程至关重要的安全漏洞,虽然该漏洞的潜在影响较低。有些安全漏洞对业务运营的关键性较低,但如果被威胁行为者利用,可能会带来更大的潜在影响。因此,ASM 帮助组织根据漏洞的影响程度优先处理安全漏洞,同时将资源分配给最关键的安全漏洞进行修复。

此外,实施 ASM 的组织能够更好地识别并跟踪其攻击面的变化。例如,如果组织对现有系统安装了新更新,这个新更新可能会引入新的安全漏洞,并可能改变攻击面,使得威胁行为者能够使用新的技术来攻破系统。类似地,如果组织在其网络基础设施上实施了新的系统或应用程序,可能会为攻击面带来新的安全缺陷。然而,ASM 使网络安全专业人员能够跟踪组织攻击面所做的变化,同时确保安全团队了解在此过程中引入的任何新安全漏洞。此外,组织可以采取必要的措施,在这些安全漏洞被威胁行为者利用之前进行修复。

ASM 的另一个好处是能够帮助组织高效监控其攻击面并识别任何可疑活动。这改善了公司内部的实时威胁检测与响应,使安全团队能够立即采取行动,防止、遏制或修复来自系统和网络的威胁。最后,当 ASM 得到正确实施时,它可以帮助安全团队识别是否有任何恶意活动或威胁成功避开安全解决方案而未被检测到。

以下是 ASM 在网络安全行业中的主要好处:

  • 降低风险 – 采用 ASM 的组织能够识别并减少自身的攻击面,从而降低潜在网络攻击和威胁的风险,保护其资产免受威胁行为者的侵害。因此,通过识别和修复安全漏洞,威胁行为者更难以攻破系统并占领立足点。

  • 优先级排序 – ASM 帮助公司优先分配资源修复比其他漏洞更为关键的安全漏洞。

  • 持续监控 – 组织为了确保攻击面尽可能小,需要进行持续的监控和维护。这有助于网络安全专家和组织时刻了解可能存在的任何新安全漏洞,无论是由于新实施的功能还是系统升级,因此可以在漏洞被利用之前采取必要的行动来减轻风险。

  • 改进事件响应 – ASM 帮助安全团队实时高效地识别和响应网络上的安全事件,从而减少威胁的影响和传播。

  • 合规性 – 在某些行业中,组织需要遵守特定的监管标准和框架。例如,在支付卡行业运营的组织需要确保其系统和网络符合支付卡行业数据安全标准PCI DSS)。合规意味着组织的系统和网络已经实施了特定的安全控制,确保数据得到保护。

  • 成本效益 – 由于 ASM 帮助组织改进安全漏洞的识别和修复,它降低了数据泄露的风险,并提高了对组织至关重要系统的可用性。

以下是组织和网络安全专家可以用来开始实施 ASM 的关键步骤:

  1. 资产管理 – 确保组织内的所有资产都得到妥善跟踪并录入库存。这些资产可能包括计算机、服务器、应用程序和移动设备。这样有助于组织更好地理解需要保护哪些资产,并识别它们的安全缺陷。

  2. 识别和绘制攻击面 – 在这一阶段,网络安全专家需要识别组织的安全漏洞并绘制攻击面。此阶段包括可能被用来执行攻击的潜在攻击向量,以及如开放端口和易受攻击的系统和网络服务等入侵点。

  3. 评估风险 – 这一阶段着重于评估每个安全漏洞的风险及其对组织的影响。此阶段有助于对最关键的安全漏洞进行优先处理,然后再处理次要漏洞。

  4. 实施安全控制 – 这一阶段着重于实施安全控制和解决方案,以修复和减轻前阶段已识别的安全漏洞。在此,安全团队将实施网络安全设备、威胁监控和预防解决方案、网络分段等。

  5. 监控与维护 – 为了使 ASM 有效,必须对所有资产、系统和设备进行持续监控。持续监控和维护那些负责防止网络攻击和威胁的安全控制措施非常重要,这些控制措施可以防止安全漏洞被利用。此外,持续的监控和维护有助于确保安全控制措施有效保护组织的资产。

  6. 持续进行侦察 – 为了识别攻击面上的新安全漏洞,组织需要持续对其资产、系统和网络基础设施进行侦察。一旦发现新的安全漏洞,ASM 生命周期将重新启动,并采取必要措施来缓解安全风险。

除了使用前述的关键步骤外,还有一些工具可以帮助网络安全专业人员和组织进行 ASM(攻击面管理):

  • 漏洞扫描器 – 这些是专门的自动化工具,帮助网络安全专业人员识别系统中的安全漏洞,并提供如何修复问题的建议。此外,这些工具还提供严重性评级、漏洞分数和潜在影响。

  • 网络扫描器和映射器 – 这类工具帮助网络安全和网络专业人员确定在线主机、开放的服务端口和主机设备上运行的应用程序。此外,它们帮助组织绘制整个网络基础设施的地图,并识别连接到公司网络的未经授权的设备。

  • 配置管理工具 – 这类工具帮助组织跟踪和管理其系统和网络上的配置。它还帮助网络安全专业人员识别新出现的安全漏洞,例如在设备上进行新更改后引入的配置错误。

  • 应用安全测试工具 – 这些是专门工具,通常由网络安全专业人员用于对应用程序和软件进行安全测试,以识别任何未知的安全漏洞。

  • 攻击面减少(ASR) 工具 – 这些工具旨在帮助组织减少其攻击面。它通过识别和拒绝恶意网络流量,以及禁用系统和协议上的不必要服务来工作。

  • 风险管理工具 – 风险管理工具使组织能够跟踪和管理与其攻击面相关的风险。此外,该工具帮助网络安全专业人员监控现有安全控制措施的有效性,以防止网络攻击和威胁。

  • 安全信息与事件管理(SIEM) – 这是一种安全解决方案,收集、汇总和分析来自组织内部系统和设备的安全相关日志信息,以实时识别潜在的网络攻击和威胁。

虽然这些工具只是建议,但需要记住,没有任何单一工具能够完全覆盖一个组织的攻击面。因此,需要结合使用不同的工具、技术和程序,以确保组织能够有效地管理其攻击面。此外,由于许多工具是基于软件的,因此它们需要定期更新,以确保能够检测到行业中最新的安全漏洞和威胁。

在下一部分,你将学习到对手在网络攻击侦察阶段使用的战术、技术和程序。

侦察战术、技术和程序

正如你迄今所学,在对手对一个组织发起攻击之前,他们需要进行侦察,尽可能多地收集有关目标的信息,以确定其攻击面(入口点)。虽然威胁行为者和道德黑客使用的技术有很多,但 MITRE 创建了著名的MITRE ATT&CK框架,概述了基于真实事件的对手的战术、技术和程序TTPs)。这些 TTPs 通常被网络安全专业人员、研究人员和组织用来开发和改进他们的威胁建模和网络防御。

MITRE ATT&CK 包含了侦察 TTPs,帮助我们更好地理解对手在发起攻击之前如何收集有关目标的信息。这些 TTPs 也被道德黑客用于高效地识别安全漏洞,以及威胁行为者如何利用攻击面来破坏客户的网络基础设施。

以下是对手常用的侦察战术、技术和程序(TTPs):

  • 主动扫描 – 在主动扫描过程中,对手使用各种扫描工具收集目标信息,以便在未来的操作中利用。这些扫描工具向目标系统和网络发送特殊探测信号,确定活跃主机、操作系统、开放端口和主机上运行的服务。主动扫描是一种主动侦察技术,涉及扫描 IP 网络块和目标的公共 IP 地址,进行漏洞扫描以识别可以被利用的安全弱点,以及使用字典扫描来获取可能的密码,以便对目标进行基于密码的攻击。

  • 收集受害者主机信息 – 该技术使攻击者能够收集有关目标设备的具体细节,如主机名、IP 地址、设备类型/角色、配置和操作系统。此外,攻击者还可以收集硬件、软件和客户端配置细节,这些信息可以用来改进攻击计划。此技术结合了主动和被动侦察,因为攻击者仅凭开放源代码情报(OSINT)就能获得大量情报,并且可以通过主动侦察来识别互联网上不容易获得的特定细节。

  • 收集受害者身份信息 – 该技术侧重于收集有关目标身份的详细信息——个人数据,如员工的姓名、电子邮件地址、职位和用户凭证。这类信息可以通过被动侦察收集,并用于未来的社交工程攻击和获取目标系统的访问权限。

  • 收集受害者网络信息 – 攻击者可以使用被动侦察技术收集目标的网络基础设施信息,如 IP 范围、域名、域名注册商详情(物理地址、电子邮件地址和电话号码)以及 DNS 记录。然而,主动侦察技术将帮助攻击者更好地识别目标的网络拓扑、网络设备和安全设备。这些信息有助于攻击者更好地理解目标的网络基础设施。

  • 收集受害者组织信息 – 该技术使攻击者能够收集关于目标组织的具体信息,如部门名称、业务操作和流程,以及员工的角色和职责。这些信息可以通过被动侦察收集。此外,攻击者使用此技术确定物理位置、商业关系和营业时间。

  • 信息钓鱼 – 攻击者向目标组织的员工发送钓鱼电子邮件,目的是欺骗受害者执行某些操作,如下载并安装恶意软件,或泄露敏感信息,如用户凭证。攻击者可以使用在线服务提供商的鱼叉式钓鱼服务,在电子邮件中插入恶意附件,并在电子邮件正文中插入模糊的链接。由于攻击者使用的是直接攻击方式,这是一种主动侦察技术。

  • 搜索封闭源 – 攻击者可能会尝试从封闭源收集目标信息,这些信息通常是通过付费订阅获得的(被动侦察)。此类信息包括来自威胁情报供应商的威胁情报,其中包含可以用来攻击目标的私密细节。此外,攻击者还可以通过暗网市场/黑市购买有关目标的信息。

  • 搜索开放技术数据库 – 许多公共在线资源允许任何人收集有关目标的信息。这项技术专注于利用公共信息来改善对组织的攻击计划。例如,攻击者可以利用公共的 DNS 记录、WHOIS 数据(域名注册信息)、数字证书(帮助识别子域名)以及包含目标 IP 地址、开放端口和服务器横幅信息的公共数据库。这是另一种被动侦察技术,用于收集有关目标的信息。

  • 搜索开放网站和域名 – 攻击者使用这项技术搜索各种在线网站和平台,如社交媒体、互联网搜索引擎和代码仓库(如 GitHub),以收集可用于攻击目标的信息。搜索开放网站和域名是另一种被动侦察技术,用于收集公共信息。

  • 搜索受害者拥有的网站 – 攻击者使用这项技术搜索目标网站,查找可以利用的任何信息,如组织信息、物理位置、员工的电子邮件地址、高级员工的信息,甚至员工的姓名和联系方式。这是一种主动侦察技术,因为攻击者与目标的资产建立了直接连接。

这些是威胁行为者常用的策略,它有助于道德黑客高效地识别组织中的安全漏洞。此外,请记住,侦察 TTP(战术、技术和程序)在不断扩展,因为攻击者正在开发新的技术和工具来攻击组织。然而,网络安全专业人员和组织可以利用侦察 TTP 来加强网络防御,识别并修复安全漏洞,减少攻击面以及降低网络攻击的风险。

总结

在本章中,你已经了解了道德黑客的重要性及其如何帮助组织提升安全态势。你还发现了为什么威胁行为者会花费大量时间收集关于目标的信息,以及如何利用这些信息来识别安全漏洞。此外,你还学到了为什么道德黑客使用类似的技术和策略,帮助组织在真正的网络攻击发生之前识别并修复安全漏洞。

此外,你还探讨了攻击面管理在网络安全行业中的必要性,以及它如何帮助组织提高对抗网络攻击和威胁的防御能力。最后,你也了解了侦察 TTP(战术、技术和程序),这些通常在全球范围内被观察到,它帮助安全专业人员和组织改善他们的威胁建模和策略,从而更好地保护资产免受网络犯罪分子的攻击。

我希望本章对你有所帮助,并在你进入网络安全行业的旅程中提供了有价值的信息。在下一章《搭建侦察实验室》中,你将学习如何构建一个安全的实验室环境,供你在个人电脑上进行主动侦察和漏洞评估。

进一步阅读

第二章:设置侦察实验室

学习各种网络安全话题总是令人兴奋,因为有许多新技术和内容相当有趣,特别是使用各种工具和技术来发现脆弱系统和应用程序中的敏感信息。然而,获取有关系统的敏感信息,如操作系统、已知漏洞、开放服务端口和运行服务,需要道德黑客向目标发送特别构造的探测。简单来说,道德黑客可以创建脚本或使用基于自动化的软件扫描工具来发送探测并分析响应,以确定目标是否存在安全漏洞。然而,扫描是非法的,未经相关权威机构的合法许可,不应对任何系统进行扫描。

作为一名有志或资深的道德黑客,设置自己的实验环境非常重要,因为它使你能够在自己的设备上进行侵入性安全测试,而不必担心对他人的系统造成损害。

在本章中,您将学习如何设置和构建个人实验环境,学习侦察技术并磨练作为网络安全专业人员的技能。您将学习如何部署虚拟机管理程序以创建虚拟机并实现虚拟网络。此外,您还将学习如何让 Kali Linux 和 Trace Labs OSINT 虚拟机启动并运行。最后,您将学习如何设置易受攻击的 Web 应用程序和服务器,在个人实验室中安全地进行主动侦察。主动侦察要求道德黑客对目标执行各种类型的扫描,这些扫描由于所收集的目标信息类型而被认为具有侵入性和非法。

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

  • 实验室概览与技术

  • 设置虚拟机管理程序和虚拟网络

  • 部署 Kali Linux

  • 部署一个 OSINT 虚拟机

  • 实施易受攻击的系统

让我们开始吧!

技术要求

为了跟上本章中的练习,请确保您已满足以下硬件和软件要求:

实验室概述与技术

构建个人实验室环境使您能够探索并提高技术技能,而无需购买昂贵的硬件或支付订阅费用。个人实验室环境提供了很大的可扩展性和灵活性选项,例如使您能够根据学习目标和需求,随时增加或删除系统。例如,借助虚拟化技术的强大功能,您可以在个人计算机上创建一个完整的虚拟网络,其中多个虚拟机同时运行,无需额外费用或物理硬件组件。

为了更好地理解构建实验室环境所需的组件,让我们来看看每个主要组件的作用和功能:

  • 虚拟机监控器 – 虚拟机监控器将使您能够创建虚拟化环境,在个人计算机上安装并同时运行多个操作系统。在实验室环境中,Oracle VM VirtualBox 将是首选虚拟机监控器,因为它是免费的,并且支持许多主机操作系统和硬件。

  • 虚拟网络 – 虚拟机监控器包含虚拟网络组件,如虚拟交换机vSwitch)和虚拟网络接口卡vNIC),这些组件使虚拟机能够与同一虚拟机监控器上的其他虚拟机以及物理网络上的系统进行互联通信。

  • 攻击者机器 – 攻击者机器将用于执行被动和主动侦察以及扫描技术。我们将使用Kali Linux 2022.4(非 Kali Linux Purple)和Trace Labs OSINT 虚拟机,因为它们是免费的,并且包含了您学习和执行侦察及扫描所需的所有工具。

  • 易受攻击的服务器 – 要对目标进行主动侦察和扫描,实验室环境中需要一台易受攻击的服务器。推荐选择Metasploitable 3 Windows 虚拟机,因为它专为学习伦理黑客和渗透测试而设计。

  • 易受攻击的 Web 应用 – 为了安全地对 Web 应用进行主动侦察,我们将设置OWASP Juice Shop,这是一个易受攻击的 Web 应用,旨在帮助网络安全专业人员更好地理解行业中的OWASP Top 10: 2021 Web 应用安全风险

以下图示展示了将在您的个人计算机上构建并运行的实验室拓扑结构:

图 2.1 – 实验室基础设施

图 2.1 – 实验室基础设施

虚拟化程序将安装在您的主机操作系统上,使您能够创建虚拟机。当需要时,Kali Linux、Trace Labs OSINT VM 和 Metasploitable 3 Windows VM 将作为虚拟机在虚拟化程序上运行。此外,虚拟化程序将为每个虚拟机分配虚拟网络接口卡(vNIC),通过虚拟交换机(vSwitch)连接虚拟和物理网络。PentestNet172.30.1.0/24)是 Kali Linux 和 Metasploitable 3 Windows VM 之间的一个虚拟隔离网络,将严格用于主动侦察。然而,Kali Linux 和 Trace Labs OSINT VM 将连接到互联网。

在下一部分,您将学习如何在计算机上设置虚拟化程序和虚拟网络环境。

设置虚拟化程序和虚拟网络

行业中有许多可用的虚拟化程序;然而,我们将使用 Oracle VM VirtualBox,因为它免费且易于使用,同时包含了我们实验环境所需的所有重要功能和组件。在本节中,您将学习如何设置虚拟化程序和虚拟网络。

在开始之前,请确保您的系统满足以下要求:

  • 确保您的处理器支持 VT-x**/**AMD-V 功能

  • 请确保通过 BIOS/UEFI 启用了处理器的虚拟化功能。

大多数现代处理器支持 VT-x(Intel)或 AMD-V(AMD),这是一种技术,允许主机操作系统和应用程序利用 中央处理单元CPU)的虚拟化功能。然而,一些计算机厂商没有启用操作系统利用处理器虚拟化功能的能力。因此,手动访问 BIOS/UEFI 并确保在处理器菜单下启用虚拟化是非常重要的,否则虚拟化程序可能无法正常工作。

第一部分 – 设置虚拟化程序

要开始在主机操作系统上设置虚拟化程序,请按照以下步骤进行:

  1. 首先,要下载 Oracle VM VirtualBox 应用程序,请访问 www.virtualbox.org/ 并点击 下载 VirtualBox,如图所示:

图 2.2 – VirtualBox 网站

图 2.2 – VirtualBox 网站

  1. 接下来,您将被重定向到 www.virtualbox.org/wiki/Downloads下载 页面。点击 Windows 主机 以下载 VirtualBox 7.0.4 平台包:

图 2.3 – VirtualBox 平台包

图 2.3 – VirtualBox 平台包

  1. 一旦下载了平台包,请在同一 下载 页面向下滚动,找到 VirtualBox 7.0.4 Oracle VM VirtualBox 扩展包 部分,并点击 所有支持的平台 来将扩展包下载到您的系统:

图 2.4 – VirtualBox 扩展包

图 2.4 – VirtualBox 扩展包

  1. 接下来,安装在 步骤 2 中下载的 Oracle VM VirtualBox 平台包。在安装过程中,使用安装程序的默认设置来完成此步骤。

  2. 接下来,安装 VirtualBox 7.0.4 Oracle VM VirtualBox 扩展包,右键单击该包并选择 用 VirtualBox 管理器打开。接受用户协议并继续安装。

此时,VirtualBox 管理器和 VirtualBox 扩展包已经安装在你计算机的主机操作系统上。接下来,你将使用 VirtualBox 的网络功能创建 PentestNet 虚拟网络。

第二部分 – 创建虚拟网络

PentestNet 虚拟网络将使 Kali Linux 能够在我们的实验环境中与 Metasploitable 3 Windows 虚拟机进行通信。要开始此练习,请按照以下步骤操作:

  1. 在你的 Windows 主机操作系统上,打开命令提示符。

  2. 接下来,使用以下命令将工作目录更改为 VirtualBox 的安装位置,并在 VirtualBox 管理器中创建 动态主机配置协议(DHCP) 服务器:

    C:\Users\Glen> cd C:\Program Files\Oracle\VirtualBox
    
    C:\Program Files\Oracle\VirtualBox> vboxmanage dhcpserver add --network=PentestNet --server-ip=172.30.1.1 --lower-ip=172.30.1.20 --upper-ip=172.30.1.50 --netmask=255.255.255.0 --enable
    

以下代码片段显示了在 Windows 命令提示符中执行前述命令的结果:

图 2.5 – 配置虚拟网络

图 2.5 – 配置虚拟网络

一旦命令正确执行,PentestNet 虚拟网络将自动创建,VirtualBox 管理器将允许我们连接任何虚拟机,并从虚拟 DHCP 服务器获取 IP 地址。

提示

要了解更多关于 VirtualBox 网络命令的信息,请访问 www.virtualbox.org/manual/ch06.html

完成本部分后,你已经学会如何设置一个虚拟化程序并使用 Oracle VM VirtualBox 创建一个虚拟网络。接下来,你将学习如何部署并运行 Kali Linux 作为虚拟机。

部署 Kali Linux

Kali Linux 是网络安全行业中最流行的基于 Linux 的渗透测试操作系统。它包含所有道德黑客和渗透测试人员在发现和利用系统、网络和应用程序中的安全漏洞时所需的基本工具。

第一部分 – 将 Kali Linux 设置为虚拟机

要开始将 Kali Linux 部署为虚拟机,请按照以下步骤操作:

  1. 首先,访问官方的 Kali Linux 网站 www.kali.org/get-kali/,然后点击 虚拟机,如下所示的截图:

图 2.6 – Kali Linux 下载页面

图 2.6 – Kali Linux 下载页面

  1. 接下来,点击 VirtualBox 64 以下载 Kali Linux VirtualBox 文件,如下所示的截图:

图 2.7 – Kali Linux 虚拟文件

图 2.7 – Kali Linux 虚拟文件

这将是一个压缩(ZIP)文件,包含 Kali Linux 虚拟硬盘和设置配置,使我们能够轻松地将其导入到 VirtualBox 管理器中。

  1. 下载完 Kali Linux VirtualBox 文件后,你需要使用如 7-Zip 之类的解压应用程序来提取下载文件的内容。你可以从 www.7-zip.org/ 下载并安装它。

  2. 接下来,右击 Kali Linux 压缩文件并选择 显示更多选项,如下图所示:

图 2.8 – 显示更多选项

图 2.8 – 显示更多选项

  1. 接下来,选择 7-Zip** > 在此提取** 来提取当前工作目录中的内容:

图 2.9 – 7-Zip 提取选项

图 2.9 – 7-Zip 提取选项

提取过程开始后,以下窗口将显示状态,直到完成:

图 2.10 – 提取状态窗口

图 2.10 – 提取状态窗口

提取完成后,内容将出现在相同目录下。

  1. 接下来,打开 VirtualBox 管理器 应用程序,并点击 机器 > 添加…,如下图所示:

图 2.11 – 添加新虚拟机

图 2.11 – 添加新虚拟机

  1. 将会出现一个新窗口。导航到提取的文件夹位置,选择 kali-linux-2022.4-virtualbox-amd64 文件,并点击 打开,如下图所示:

图 2.12 – 选择虚拟机文件

图 2.12 – 选择虚拟机文件

点击 打开 后,Kali Linux 虚拟机将自动导入到 VirtualBox 管理器中。

  1. 接下来,我们需要为 Kali Linux 虚拟机分配一个网络适配器用于互联网连接,另一个用于访问 PentestNet 虚拟网络。选择 Kali Linux 虚拟机并点击 设置,如下图所示:

图 2.13 – 虚拟机设置

图 2.13 – 虚拟机设置

  1. 接下来,选择 网络 类别,并为 适配器 1 使用以下配置:

    • 启用网络适配器: 勾选框以启用

    • 附加到: 桥接适配器

    • 名称: 选择连接到互联网的物理网络适配器

    • 电缆连接: 是 – 勾选框

以下代码片段展示了 适配器 1 的配置:

图 2.14 – 网络适配器 1 设置

图 2.14 – 网络适配器 1 设置

  1. 接下来,选择 适配器 2 并使用以下配置:

    • 启用网络适配器: 勾选框以启用

    • 附加到: 内部网络

    • 名称: 手动输入 PentestNet 到字段中

    • 电缆连接: 是 – 勾选框

    • 混杂模式: 允许所有

以下代码片段显示了适配器 2的配置:

图 2.15 – 配置适配器 2

图 2.15 – 配置适配器 2

  1. 最后,点击确定以保存虚拟机的配置。

第二部分 – 开始使用 Kali Linux

根据我多年的经验,在将 Kali Linux 部署为虚拟机时,有时当同时连接 IPv4 和 IPv6 网络时,无法连接互联网。因此,我们需要在 Kali Linux 中禁用 IPv6,以绕过这个问题,方便后续的练习。此外,改变默认用户凭据并验证域名系统DNS)是否按预期工作,确保虚拟机能够连接互联网也是一种好习惯。

要开始此练习,请按照以下步骤操作:

  1. 让我们启动 Kali Linux 虚拟机;选择Kali Linux并点击启动,如图所示:

图 2.16 – 启动 Kali Linux

图 2.16 – 启动 Kali Linux

  1. 接下来,登录 Kali Linux 时,使用默认的用户名和密码kali,如图所示:

图 2.17 – 登录界面

图 2.17 – 登录界面

  1. 登录后,来宾操作系统(Kali Linux)的显示可能不会自动调整以适应您的显示器分辨率。要自动调整显示,请选择视图并切换自动调整来宾显示,如下图所示:

图 2.18 – 调整显示

图 2.18 – 调整显示

在切换了自动调整来宾显示选项后,显示将自动调整以适应您的显示器分辨率,即使在重新启动后也是如此。

  1. 接下来,禁用 Kali Linux 上的 IPv6,点击左上角的 Kali Linux 图标以打开菜单,选择设置图标,如下图所示:

图 2.19 – Kali Linux 菜单

图 2.19 – Kali Linux 菜单

如前面的代码片段所示,预安装的工具根据伦理黑客和渗透测试的阶段进行分类。

  1. 设置菜单出现时,点击高级网络配置,如图所示:

图 2.20 – 设置菜单

图 2.20 – 设置菜单

  1. 接下来,网络连接窗口将出现;选择有线连接 1并点击如图所示的齿轮图标:

图 2.21 – 网络连接窗口

图 2.21 – 网络连接窗口

如果你记得 Kali Linux 虚拟机的设置,适配器 1已连接到具有互联网连接的物理网络,因此我们选择了有线连接 1,因为它们是相同的网络接口。

  1. 接下来,将显示 编辑有线连接 1 窗口;选择 IPv6 设置 标签,将 方法 更改为 禁用,然后点击 保存,如下所示:

图 2.22 – 禁用 IPv6

图 2.22 – 禁用 IPv6

  1. 接下来,关闭 网络连接设置 窗口。

  2. 最后,重启 Kali Linux 以使更改生效。电源选项位于 Kali Linux 用户界面的右上角。

第三部分 – 更改密码并测试连接性

要开始更改默认密码并测试网络连接,请按照以下步骤操作:

  1. 首先,使用默认用户凭据(kali**/kali**)登录 Kali Linux。

  2. 接下来,点击 Kali Linux 左上角的图标,展开 Kali Linux 菜单并选择 终端仿真器,如下所示:

图 2.23 – 定位终端

图 2.23 – 定位终端

  1. 接下来,使用以下命令更改 kali 用户账户的默认密码:

    kali@kali:~$ passwd
    

在 Linux 终端界面输入密码时,由于安全原因,密码不可见,如下所示:

图 2.24 – 更改密码

图 2.24 – 更改密码

  1. 接下来,使用以下命令显示 Kali Linux 上网络适配器的 IP 地址、媒体访问控制MAC)地址和状态:

    kali@kali:~$ ip address
    

以下代码片段显示 Kali Linux 上的两个网络适配器——eth0,它连接到互联网,和 eth1,它连接到 172.30.1.0/24 子网上的 PentestNet 网络:

图 2.25 – 检查网络适配器

图 2.25 – 检查网络适配器

eth0 网络适配器应具有来自个人网络的 IP 地址,而 eth1 被分配了来自 PentestNet 虚拟网络的 IP 地址。

  1. 接下来,为了测试 Kali Linux 上的 DNS 解析和互联网连接性,请使用以下命令向 Google 的网页服务器发送四个 互联网控制消息协议ICMP回显请求消息:

    kali@kali:~$ ping www.google.com -c 4
    

以下代码片段显示 Kali Linux 成功将主机名解析为 IP 地址,并成功连接到 Google 的网页服务器:

图 2.26 – 测试互联网连接

图 2.26 – 测试互联网连接

  1. 接下来,使用以下命令更新 Kali Linux 上的软件包仓库列表:

    kali@kali:~$ sudo apt update
    

以下代码片段显示了前面命令的执行:

图 2.27 – 更新软件包仓库

图 2.27 – 更新软件包仓库

更新 Kali Linux 上的软件包仓库列表可确保它从官方源下载最新的软件包和更新。

完成此部分后,您已学习如何将 Kali Linux 部署并设置为虚拟机。在下一部分,您将学习如何为收集开放源代码****情报OSINT)设置专用虚拟机。

部署 OSINT 虚拟机

Trace Labs OSINT 虚拟机是定制版的 Kali Linux,专为学习和执行侦察任务设计。它包含了道德黑客收集目标信息所需的所有必备软件工具。此外,Trace Labs OSINT 虚拟机是免费的,任何人都可以下载并将其设置为超管上的虚拟机。

第一部分 – 设置 OSINT 虚拟机

要开始设置 Trace Labs OSINT 虚拟机,请按照以下步骤操作:

  1. 首先,访问 www.tracelabs.org/initiatives/osint-vm 并点击下载 OVA按钮,如以下截图所示:

图 2.28 – Trace Labs 下载页面

图 2.28 – Trace Labs 下载页面

  1. 接下来,选择TL OSINT VM 2022.1 OVA发行版文件进行下载:

图 2.29 – OSINT VM OVA 文件

图 2.29 – OSINT VM OVA 文件

  1. 下载完 OVA 文件后,打开VirtualBox 管理器,选择工具,然后点击导入,如以下截图所示:

图 2.30 – VirtualBox 管理器

图 2.30 – VirtualBox 管理器

  1. 接下来,将弹出一个新窗口;只需导航到存储OSINT VM OVA文件的位置,选择该文件并点击打开,如以下截图所示:

图 2.31 – OSINT VM OVA 文件

图 2.31 – OSINT VM OVA 文件

  1. 接下来,将出现导入虚拟设备窗口;点击下一步

图 2.32 – 导入虚拟设备

图 2.32 – 导入虚拟设备

  1. 接下来,将出现配置窗口;点击导入

图 2.33 – 设备设置窗口

图 2.33 – 设备设置窗口

一旦导入过程开始,以下状态窗口将出现:

图 2.34 – 导入状态窗口

图 2.34 – 导入状态窗口

导入过程完成后,OSINT 虚拟机将出现在 VirtualBox 管理器中。

  1. 接下来,让我们通过将虚拟机的 vNIC 桥接到计算机的物理 NIC,将 OSINT 虚拟机连接到物理网络。选择 OSINT 虚拟机并点击设置

图 2.35 – VirtualBox 管理器

图 2.35 – VirtualBox 管理器

提示

在 OSINT 虚拟机设置中,您可以增加虚拟机分配的内存。在虚拟机内,转到 设置 > 系统 > 主板 > 基本内存。如果您的主机计算机有额外的内存,请考虑将内存分配增加到 4,096 MB(4GB)。

  1. 接下来,点击 网络 并为 适配器 1 使用以下设置:

    • 启用网络适配器:勾选该框以启用

    • 附加到桥接适配器

    • 名称:选择连接到互联网的物理网络适配器

    • 已连接电缆:是 – 勾选该框

以下代码段显示了配置:

图 2.36 – 网络适配器配置

图 2.36 – 网络适配器配置

  1. 接下来,点击 确定 保存 OSINT 虚拟机的配置。

第二部分 – 开始并测试连接性

要开始使用 OSINT 虚拟机,请按照以下步骤操作:

  1. 打开 VirtualBox 管理器,选择 TL OSINT 虚拟机,然后点击 启动 以启动虚拟机。

  2. 一旦 OSINT 虚拟机启动,使用 osint 作为 用户名密码 登录,如下截图所示:

图 2.37 – OSINT 虚拟机

图 2.37 – OSINT 虚拟机

  1. 登录后,请按照上一节中的步骤禁用 OSINT 虚拟机上的 IPv6,并重启以使更改生效。

  2. (可选)要更改 osint 用户账户的默认密码,请打开终端并使用 passwd 命令。

  3. 接下来,打开终端并使用以下命令识别网络适配器及其 IP 地址,并测试与互联网的连接:

    osint@osint:~$ ip address
    
    osint@osint:~$ ping www.google.com -c 4
    

以下代码段显示了预期的结果:

图 2.38 – OSINT 虚拟机连接测试

图 2.38 – OSINT 虚拟机连接测试

如前面的代码段所示,eth0 网络适配器从物理网络中的 DHCP 服务器获取 IP 地址。根据您的网络设置,该 IP 地址会有所不同。此外,OSINT 虚拟机能够成功执行 DNS 解析,并能够连接到互联网上 Google 的 Web 服务器。

提示

在 Kali Linux 和 OSINT 虚拟机上执行某些命令时,需要使用 sudo 后跟命令以调用根权限,例如 sudo ip address。要使用 root 账户,请在终端中使用 sudo su - 命令。

完成本节后,您已经将 OSINT 虚拟机部署为虚拟机。在下一节中,您将学习如何在实验室环境中设置一个易受攻击的 Web 应用程序和服务器。

实现易受攻击的系统

在本节中,您将学习如何在 Kali Linux 上设置 OWASP Juice Shop 漏洞应用程序,以安全地学习如何执行 Web 应用程序的主动侦察。此外,您还将学习如何将 Metasploitable 3 Windows 虚拟机设置为我们的实验室环境中的虚拟机。

设置易受攻击的 Web 应用程序

要开始在 Kali Linux 上设置 OWASP Juice Shop,请使用以下步骤:

  1. 首先,在 VirtualBox 管理器 中启动 Kali Linux 虚拟机。

  2. 打开终端并使用以下命令更新软件包仓库列表:

    kali@kali:~$ sudo apt update
    

以下代码片段显示了命令成功执行的情况:

图 2.39 – 更新软件包列表

图 2.39 – 更新软件包列表

  1. 接下来,使用以下命令在 Kali Linux 上安装 Docker 仓库:

    kali@kali:~$ printf '%s\n' "deb https://download.docker.com/linux/debian bullseye stable" |
    
      sudo tee /etc/apt/sources.list.d/docker-ce.list
    

以下代码片段显示了在终端中执行前述命令的情况:

图 2.40 – 添加 Docker 仓库

图 2.40 – 添加 Docker 仓库

  1. 接下来,使用以下命令在 Kali Linux 上导入 GNU 隐私保护GPG)密钥:

    kali@kali:~$ curl -fsSL https://download.docker.com/linux/debian/gpg |
    
      sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-ce-archive-keyring.gpg
    

以下代码片段显示了前述命令的执行情况:

图 2.41 – 导入 GPG 密钥

图 2.41 – 导入 GPG 密钥

  1. 接下来,重新更新 Kali Linux 上的软件包仓库列表:

    kali@kali:~$ sudo apt update
    

以下代码片段显示了软件包列表再次更新:

图 2.42 – 软件包列表已更新

图 2.42 – 软件包列表已更新

  1. 接下来,使用以下命令安装 docker-ce

    kali@kali:~$ sudo apt install -y docker-ce docker-ce-cli containerd.io
    

以下代码片段显示了安装过程:

图 2.43 – 安装 docker-ce

图 2.43 – 安装 docker-ce

  1. 接下来,使用以下命令拉取 OWASP Juice Shop Docker 容器并将其安装在 Kali Linux 上:

    kali@kali:~$ sudo docker pull bkimminich/juice-shop
    

以下代码片段显示了 OWASP Juice Shop 的下载和设置过程:

图 2.44 – 设置 OWASP Juice Shop

图 2.44 – 设置 OWASP Juice Shop

  1. 接下来,使用以下命令运行 OWASP Juice Shop Docker 容器:

    kali@kali:~$ sudo docker run --rm -p 3000:3000 bkimminich/juice-shop
    

以下代码片段显示了前述命令的执行情况:

图 2.45 – 运行 OWASP Juice Shop

图 2.45 – 运行 OWASP Juice Shop

  1. 最后,打开 Kali Linux 上的网页浏览器,访问 localhost:3000/ 查看 OWASP Juice Shop 网页应用,如下所示:

图 2.46 – OWASP Juice Shop 网页界面

图 2.46 – OWASP Juice Shop 网页界面

重要提示

在 Kali Linux 上设置 Docker 的官方说明可以在以下网址找到:www.kali.org/docs/containers/installing-docker-on-kali/

完成本次练习后,你已学会如何在 Kali Linux 上设置 Docker 和 OWASP Juice Shop。接下来,你将学习如何在我们的实验环境中设置 Metasploitable 3 Windows 虚拟机。

设置易受攻击的机器

要开始设置 Metasploitable 3 Windows 虚拟机,请按照以下步骤操作:

  1. 首先,你需要下载并安装 Vagrant,这是一个开源应用程序,可以让用户构建和维护虚拟机和应用程序。在主机计算机上打开网页浏览器,访问developer.hashicorp.com/vagrant/downloads,然后下载Vagrant** **2.3.3 AMD64版本:

图 2.47 – Vagrant 下载页面

图 2.47 – Vagrant 下载页面

  1. 下载 Vagrant 后,双击安装包,在主机计算机上安装应用程序。安装完成后,你将被提示重启计算机,以使更改生效。

  2. 重启计算机后,打开 Windows 命令提示符,并使用以下命令重新加载并安装其他 Vagrant 插件:

    C:\Users\Glen> vagrant plugin install vagrant-reload
    
    C:\Users\Glen> vagrant plugin install vagrant-vbguest
    

以下代码段显示了执行前述命令后的结果:

图 2.48 – 安装 Vagrant 插件

图 2.48 – 安装 Vagrant 插件

  1. 接下来,使用以下命令从 Vagrant 仓库下载 Metasploitable 3 Windows 虚拟机文件:

    C:\Users\Glen> vagrant box add rapid7/metasploitable3-win2k8
    

确保输入1来指定 VirtualBox 作为提供程序,如下所示:

图 2.49 – 选择提供程序类型

图 2.49 – 选择提供程序类型

Vagrant 将开始下载 Metasploitable 3 Windows 虚拟机文件,如下所示:

图 2.50 – 下载状态

图 2.50 – 下载状态

  1. 接下来,打开Windows 资源管理器,导航到C:\Users\yourusername\.vagrant.d\boxes,在该位置你将找到rapid7-VAGRANTSLASH-metasploitable3-win2k8文件夹。将rapid7-VAGRANTSLASH-metasploitable3-win2k8文件夹重命名为metasploitable3-win2k8

  2. 接下来,在 Windows 命令提示符中,使用以下命令更改工作目录并初始化 Metasploitable 3 Windows 虚拟机的构建配置:

    C:\Users\Glen> cd .vagrant.d\boxes
    
    C:\Users\Glen\.vagrant.d\boxes> vagrant init metasploitable3-win2k8
    
  3. 接下来,使用以下命令启动虚拟机的构建过程:

    C:\Users\Glen\.vagrant.d\boxes> vagrant up
    

以下代码段显示了构建过程:

图 2.51 – Vagrant 构建过程

图 2.51 – Vagrant 构建过程

重要提示

如果vagrant up命令出现错误,请再次执行该命令。

该过程通常需要几分钟才能完成。

  1. 一旦过程完成,打开VirtualBox 管理器,你将看到 Metasploitable 3 Windows 虚拟机在后台运行。选择虚拟机并点击显示

图 2.52 – Metasploitable 3 Windows 虚拟机

图 2.52 – Metasploitable 3 Windows 虚拟机

  1. 一旦虚拟机窗口出现,点击输入 > 键盘 > 插入 Ctrl-Alt-Del,如截图所示:

图 2.53 – 启动屏幕

图 2.53 – 启动屏幕

  1. 接下来,选择Administrator账户,并使用默认密码(vagrant)登录,如下图所示:

图 2.54 – 登录窗口

图 2.54 – 登录窗口

登录后,简单地关闭所有弹出的窗口,并且不要启动操作系统。

  1. 接下来,点击左下角的 Windows 图标,关闭虚拟机,如下图所示:

图 2.55 – 关闭虚拟机电源

图 2.55 – 关闭虚拟机电源

  1. 一旦虚拟机关闭电源,选择它并点击设置

图 2.56 – VirtualBox 管理器

图 2.56 – VirtualBox 管理器

  1. 接下来,选择网络,并在适配器 1上使用以下配置:

    • 启用网络适配器:勾选框以启用

    • 附加到内部网络

    • 名称:手动输入PentestNet到字段中

    • 电缆连接:是 – 勾选框

    • 混杂模式允许所有

以下代码片段展示了适配器 1的配置:

图 2.57 – 网络适配器设置

图 2.57 – 网络适配器设置

  1. 接下来,点击OK保存配置。

  2. 最后,打开虚拟机并登录到 Metasploitable 3 Windows 虚拟机的Administrator用户账户,打开命令提示符,使用ipconfig命令来验证虚拟机是否从172.30.1.0/24网络获得了 IP 地址,如下所示:

图 2.58 – 验证网络连接

图 2.58 – 验证网络连接

  1. 最后,关闭虚拟机电源。

完成本节后,您已经学会了如何将 Metasploitable 3 Windows 虚拟机设置为实验环境中的一个脆弱服务器。

总结

在本章过程中,您已经发现了建立个人实验环境在学习和获取实践经验中的重要性和好处,特别是在学习各种网络安全话题时。此外,您还学会了如何设置虚拟化环境和网络,如何部署 Kali Linux 和 OSINT 虚拟机,以及如何设置脆弱系统以进行安全测试。

希望本章对您有所帮助,并在您进入网络安全行业的旅程中提供了有价值的信息。在下一章,理解被动侦察中,您将学习使用被动侦察技术的基础知识及其在发现互联网上公开的组织资产中的重要性。

进一步阅读

第三章:理解被动侦察

随着越来越多的人和组织连接到全球最大的网络——互联网,它正成为一个巨大的存储媒介。许多人正在各种网站和在线平台上上传各种类型的数据。虽然互联网被称为信息高速公路,使得全球人民能够共享信息和协作,但它也已成为存储有关个人、组织、系统和网络数据的媒介。这些信息可能被恶意对手利用,计划未来对目标的网络攻击。作为一名有志成为道德黑客的人,理解对手如何发现并利用公开信息来建立目标的个人资料,从而提升其网络行动策略和技术,是非常重要的。

在本章的学习过程中,你将了解被动侦察的基本原理和重要性,以及行业专家如道德黑客和渗透测试人员使用的最佳实践,并了解这些技术如何与对手的行为相对接。此外,你还将探索开源情报OSINT)的基础知识,了解它如何帮助组织减少攻击面。此外,你还将学习作为道德黑客如何在执行被动侦察时有效地隐藏你的在线身份,并如何匿名化你的互联网流量。

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

  • 探索被动侦察

  • 开源情报(OSINT)基础

  • 隐藏你的在线身份

  • 匿名化你的网络流量

让我们开始吧!

技术要求

为了配合本章的练习,请确保你已经满足以下硬件和软件要求:

探索被动侦察

随着时间的推移,互联网正变得对许多人和组织来说越来越有价值,帮助每个人跨越传统边界与他人合作和分享想法。互联网最初被称为信息高速公路,允许拥有互联网连接和计算机的用户轻松访问网站、参与在线论坛和社区,以及进行电子商务交易,而无需访问传统的实体店铺

在今天的世界中,配有数据计划的智能手机使用户能够在几秒钟内轻松访问互联网及其资源。例如,假设你想在网络安全行业提升自己的职业生涯,并希望找出你所在地区正在招聘专业人员的组织。使用智能手机上的网页浏览器和 Google 搜索,你可以快速研究所在地区的顶级网络安全组织,查看它们的招聘门户,并探索它们的招聘流程。此外,你还可以进一步了解这些组织的使命、愿景、核心价值观、面试流程和小组,以及合适候选人的职位职责和要求。然而,一些组织在招聘信息中泄露了过多数据,这些数据被攻击者利用来策划未来的网络攻击。

每天,世界各地的许多人使用互联网并上传文档、音频、视频和其他文件类型。当用户决定删除内容时,这些数据并不会自动从互联网上消失。例如,互联网档案馆是一个公共数字图书馆,它索引并记录过去 20 年间互联网上的所有信息。简单来说,如果你在互联网上上传或创建了某些内容并删除它,它并不会真正从互联网上消失,因为可以通过互联网档案馆的网络时光机检索,查看互联网上的历史数据。因此,攻击者利用从互联网档案馆收集的目标数据来增强他们的攻击。

下图展示了网络时光机,任何人都可以在搜索框中输入统一资源定位符URL):

图 3.1 – 网络时光机

图 3.1 – 网络时光机

一旦输入有效的 URL,网络时光机会检查其档案记录,查找网站的快照并提供时间线,允许用户选择可用的日期以查看该时间点的网页。

重要提示

要了解更多关于互联网档案馆、网络时光机及其资源的信息,请访问 archive.org/

数据隐私是全球关注的一个主要问题,越来越多的人、组织和政府意识到机密数据对拥有恶意意图的任何人,如对手和其他威胁行为者的影响。访问网站时存在许多数据隐私问题,例如用户的数据是否被收集以及网站所有者将如何使用这些数据。例如,一些网站没有为其用户提供任何安全保护,并会在网页服务器和用户的网络浏览器之间以明文传输数据,使对手能够拦截和捕获任何敏感数据。例如,网站将 cookie 插入访问者的网络浏览器中,这使网站能够跟踪访问者的活动和用户信息,同时改善用户体验。如果威胁行为者捕获并分析 cookie 中的数据,对手将能够检索会话 ID并确定用户的网络活动。如果用户在网站上进行了身份验证,会话 ID 使威胁行为者能够在不知道受害者用户凭据的情况下未经授权地访问受害者在同一网站上的帐户。

随着互联网的发展,许多社交媒体网站应运而生,使人们能够通过在线数字平台与家人、朋友和同事进行数字连接并分享更新。在过去的十年里,社交媒体平台已经发展壮大,许多人和组织利用这些平台创建在线社区,宣传他们的产品和服务,并分享新闻和更新。虽然社交媒体网站鼓励每个人互相连接,但重要的是要理解这些网站创建了一个人际网络,这些人通过共同的联系相互联系在一起。例如,当您以登录用户的身份访问社交媒体平台上的某人个人资料时,平台会显示您的共同联系或朋友。如果您点击一个共同联系,您将被重定向到该人的个人资料,您可能会看到其他共同联系或朋友,这样就创建了一个以某种方式相互连接的人际网络。

尽管社交媒体平台帮助人们保持数字连接,但有些人的在线个人资料可能比其他人更不安全,可能会泄露您的数据给威胁行为者。例如,如果您不使用社交媒体而其他人使用,您可能会出现在由您的家人、朋友或同事发布的照片中,这些人可能拥有不太安全的个人资料。这为威胁行为者提供了使用面部识别确定照片中人物身份,并使用 Google Images 进行反向图像搜索以确定包含类似照片的任何网站以确定某人或某物的身份或位置的机会。

提示

要了解更多关于高级谷歌搜索的信息,请参考第四章**,域和 DNS 情报。要了解更多关于反向图像搜索的信息,请参考第六章**,图像、人员和 信号情报

以下图显示了谷歌图片上的按图搜索功能:

图 3.2 – 谷歌图片

图 3.2 – 谷歌图片

重要提示

谷歌图片利用Google Lens,一种先进的图像识别技术,帮助识别位置、文本和物体。

威胁行为者和道德黑客使用许多数据源收集有关组织和个人的信息。数据经纪人是一些组织,它们在未获得许可的情况下购买、收集、分析和出售有关人员和组织的数据。数据经纪人通常向全球的广告机构、人员搜索引擎、金融机构和营销公司等任何人出售数据。数据经纪人从许多来源收集数据,包括在用户网络浏览器上放置的网站 cookie 中找到的跟踪信息、从安装在智能手机和平板电脑上的移动应用程序收集的使用信息,以及在互联网上找到的公共信息。

数据经纪人分析和处理收集到的数据,创建关于全球数百万人的档案和档案,包括他们的活动、偏好和厌恶、旅行和健康状况以及居住地点。这些公共信息的可用性可以被针对用户、一群人或组织的威胁行为者利用。

到目前为止,您已经了解到互联网目前被用作各种类型数据的大规模存储介质,任何拥有互联网连接的人都可以访问公共数据。这意味着威胁行为者可以花费大量时间调整他们的互联网搜索,从各种在线来源收集特定数据,目的是创建一个档案并了解他们目标的攻击面。

侦察是威胁行为者和道德黑客用来收集可用于发现和利用目标安全漏洞的信息的策略和技术。以下是侦察的两个类别:

  • 被动侦察

  • 主动侦察

被动侦察是指威胁行为者或道德黑客不直接与目标互动或连接,而是严重依赖公开可用信息来收集可用于破坏目标的情报。

进行被动侦察的关键优势如下:

  • 增加隐蔽性:被动侦察中使用的技术确保威胁行为者或道德黑客不会直接与目标交互。这减少了被安全系统检测到的可能性。

  • 更多数据来源:互联网包含了大量的信息,这些信息可以在网站、社交媒体平台和互联网搜索引擎上找到,并可供道德黑客进行被动侦察。

  • 减少法律风险:由于被动信息收集涉及从公开来源收集数据,这一过程不像主动侦察那样具有相同的风险,通常是合法的。

  • 降低成本:由于道德黑客从互联网收集公开可用的信息以创建目标的资料,因此与主动侦察相比,被动侦察通常成本较低,并且不需要相同的资源。

  • 提高安全性:由于道德黑客收集的是互联网中的公开信息,因此他们遭到检测的风险较低。因此,与主动侦察相比,使用被动侦察是一种更安全的选择。

虽然被动信息收集被威胁行为者和道德黑客普遍使用,但也存在一些缺点,例如:

  • 数据有限:由于被动侦察利用的是公开可用的信息,因此找到的数据可能已经过时或不准确,并且访问可能受到限制。

  • 不准确的数据:使用被动侦察收集信息可能导致收集到关于目标的不准确或误导性数据,这可能进一步导致发现虚假网站并做出不准确的结论。因此,道德黑客依赖于从互联网收集的信息的可用性和准确性。

  • 耗时:互联网包含大量数据。道德黑客可能需要花费大量时间来从各种数据源中定位和收集关于目标的特定数据。

然而,主动侦察使威胁行为者或道德黑客能够直接与目标系统进行交互或连接,以获取在被动侦察中不太可能收集到的特定细节。它通常涉及道德黑客使用专门的工具和技术发送探针,来确定系统的技术架构、操作系统、运行的服务和开放端口,以及安全漏洞。与被动侦察不同,主动侦察技术更加侵入性,且被检测到并触发安全系统警报的风险较高。

重要说明

由于主动信息收集技术是侵入性的,因为它们会收集关于系统的敏感细节,所以通常在未获得合法许可之前,不允许对系统进行扫描。

道德黑客和渗透测试员使用与真实黑客相同的技术,高效地确定攻击面并识别组织中的安全漏洞及其相关的安全风险。那么,使用相同的技术来危害属于组织的系统和网络,不是违法的吗?简单的回答是,是的,因为黑客攻击通常是非法的。然而,道德黑客和渗透测试员在开始任何客户系统和网络的工作之前,必须从相关当局那里获得合法许可。

以下是道德黑客使用与真实黑客相同技术的几个好处:

  • 高效测试系统安全性:使用与威胁行为者相同的技术,道德黑客能够高效测试系统的安全性是否按预期工作,或是否存在潜在的安全漏洞。

  • 高效发现安全漏洞:通过对组织的系统进行真实世界网络攻击的模拟,道德黑客能够高效发现隐藏的安全漏洞,并提出应对措施,防止或缓解真实网络攻击的发生。

  • 提高安全意识:许多组织并未完全理解网络攻击对其系统和网络的影响。通过模拟真实的网络攻击,伦理黑客能够展示如果发生真实网络攻击时的影响和严重性。总体而言,它提高了网络安全对组织决策者的重要性。

  • 提供证据:由于道德黑客使用与真实黑客相同的技术来测试系统的安全性并发现隐藏的安全漏洞,伦理黑客可以收集关于安全漏洞的有力证据,并了解它们的严重性风险级别,这些证据可以帮助组织的安全团队优先分配资源,以提升其安全防护能力。

  • 保持更新:由于每天都有新的网络攻击和威胁,道德黑客和渗透测试员始终需要保持对真实黑客使用的最新技术的了解,以高效测试系统中的隐藏安全漏洞。

  • 发现数据泄露:许多组织泄露了关于自身的数据,这些信息可能被真实黑客用来策划未来针对目标的网络攻击。

为了更好地理解应该收集哪种类型的数据以及如何处理这些数据以创建有意义的信息,让我们先了解一下足迹分析的概念。

理解足迹分析

使用互联网查找和收集有关个人或组织的敏感数据,对许多人来说都很吸引人,尤其是那些有志成为道德黑客和渗透测试员的人。然而,如果我们不了解自己要寻找的是什么,以及如何处理和转换这些数据,将其转化为对我们开发目标档案有意义的信息,那么收集大量数据是没有意义的。

信息收集是威胁行为者和道德黑客用于收集目标特定细节的技术,例如主机操作系统、开放端口和运行的服务。通过信息收集收集到的信息可以被道德黑客用来识别可以被利用的安全漏洞,从而未经授权访问系统、网络或组织。此外,信息收集有助于道德黑客更好地了解组织的安全态势及其基础设施。

以下图展示了信息收集与侦察之间的联系:

图 3.3 – 信息收集

图 3.3 – 信息收集

在信息收集过程中收集的数据通常分为以下几类:

  • 系统信息

  • 网络信息

  • 组织信息

系统信息帮助道德黑客确定设备上运行的内容,例如主机操作系统、运行的服务和应用程序,以及用户名和密码。道德黑客可以利用操作系统信息来研究和识别操作系统是否存在漏洞并且可以被利用。在许多组织中,存在过时且容易受到攻击的应用程序和服务,这为道德黑客提供了识别和利用运行服务中的安全漏洞,以未经授权的方式访问目标的机会。此外,道德黑客还可能能够获取有效的用户凭证,这些凭证可以用于未经授权地远程访问目标系统。

网络信息帮助道德黑客识别网络中系统之间是否存在易受攻击的网络协议和服务。许多常见的网络协议在设计时并未考虑到安全性,因此使得威胁行为者能够利用它们的安全漏洞进行网络攻击。攻击者可以拦截并识别敏感的网络信息,如域名系统DNS)、链路本地多播名称解析LLMNR)、地址解析协议ARP)、域名、子域名以及防火墙规则。例如,如果威胁行为者捕获 DNS 查询和回应,攻击者可能能够识别出组织的 DNS 服务器,并尝试获取内部主机名和 IP 地址。

重要提示

DNS是一个应用层协议,它使系统能够将主机名解析为 IP 地址。LLMNR是一个二层协议,使得系统能够在局域网LAN)上解析主机名。ARP是一个网络协议,允许系统将 IP 地址解析为媒体访问控制MAC)地址。

脆弱的网络协议,如 LLMNR 和 ARP,容易受到各种基于二层的攻击,这使得攻击者能够拦截并向网络中的主机注入未请求的数据包。此外,识别一个组织的域名可以集中精力列举子域名。一些组织可能对其主域名实施额外的安全控制,但忽视了某些子域名。攻击者可以识别是否通过攻破一个脆弱的子域名,能够获得未授权访问组织网络的权限。

组织信息有助于道德黑客识别公司的员工,员工的联系信息,如电话号码和电子邮件地址,以及展示具有高级权限用户账户的高层员工的组织结构图。组织信息可以在规划各种社会工程攻击时发挥作用,例如针对组织员工的鱼叉式钓鱼电子邮件攻击。

虽然道德黑客和威胁行为者使用的方法各不相同,但以下是一套常见的指南,用于开始对目标进行足迹分析:

  • 使用互联网搜索引擎

  • 执行高级 Google 搜索(Google 黑客/Google Dorking

  • 从社交媒体网站收集信息

  • 从目标网站收集信息

  • 对来自目标的电子邮件消息进行足迹分析

  • 使用在线域名注册表检索域名信息

  • 执行 DNS 信息收集

  • 执行网络足迹分析

  • 执行社会工程学攻击

提示

道德黑客可以使用 Google Dork "login" site:microsoft.com 查找与 microsoft.com 域名相关的登录页面,或者使用 site:microsoft.com AND intitle:"login" 查找包含 login 关键字的页面。

你将在下一章探索上述技术,该章聚焦于高级情报收集,旨在帮助发展道德黑客和渗透测试人员所需的行业技能。完成这一部分后,你已经掌握了被动信息收集的基础知识,并学会了如何利用互联网收集目标数据。在下一部分,你将学习 OSINT 的基础知识,以及它如何帮助道德黑客对目标进行分析。

OSINT 基础知识

OSINT(开放源情报)仅仅是道德黑客用来搜索、收集和分析互联网上公开资源中数据的过程和技术。虽然每天有很多人上传各种类型的数据到互联网,伦理黑客可以利用这些数据创建个人资料,从而更好地了解他们的目标。虽然 OSINT 看起来可能只是像使用谷歌搜索引擎那样简单,来寻找问题的答案,但很多人通常只会使用搜索结果第一页显示的信息和资源,因为这些内容通常最符合搜索条件。然而,并不是很多人会查看搜索结果的后续页面,比如第 2 到第 10 页,以判断搜索条件的答案是否准确,并且是否为用户提供了全面的细节。

伦理黑客花费大量时间从各种公开来源收集数据,以确保足够的数据被收集到关于他们的目标;然而,这些数据并不总是提供有意义的背景和上下文,需要通过彻底分析来创造意义,使伦理黑客能更好地理解系统细节以及网络和组织信息。因此,在使用互联网搜索引擎查找数据时,超越第一页以收集更多关于目标的数据是至关重要的。关键是收集所有数据,然后分析所收集的数据,创造意义并提供与目标相关的上下文。

以下是可以从公开来源找到的常见数据类型:

  • 媒体:包括上传到互联网的音频、视频和图片。

  • 文本:这些是在线发布的文档、文章和博客。

  • 地图:关于个人或组织的地理位置数据。

这些常见的数据类型通常是目标本人或其他人关于目标发布的,包含了有助于更好地理解和分析目标的有用数据。例如,如果目标在社交媒体上发布了关于度假的照片,一名伦理黑客可以观察照片的细节,如发布时间和背景。发布时间有助于伦理黑客确定目标何时以及多久去过该地点,目标在度假时的具体时间,是否有其他可利用的模式来追踪目标的行动。此外,每张照片的背景透露了照片拍摄地点的身份信息,允许伦理黑客使用在线搜索引擎,如谷歌图片,进行反向图像查找,从而确定目标的地理位置。

此外,如果伦理黑客被指派对目标的无线网络基础设施进行渗透测试,识别地理位置有助于伦理黑客确定目标场所的实际位置。此外,在线发布的视频和博客包含有关目标环境的信息,如他们的办公室位置和空间、他们去过的地方以及他们访问某地的频率。

从文档、文章和博客中收集数据,可以帮助伦理黑客识别目标完成的技术、项目和工作。例如,许多人在 LinkedIn 上发布他们在组织内实施的技术项目和系统的具体细节。这些信息帮助攻击者或伦理黑客确定公司内部的基础设施类型和安全控制措施。

因此,组织需要意识到数据在线泄露的风险,这可能会导致潜在的网络攻击,以及这些数据如何被网络犯罪分子获取和利用。作为伦理黑客,关于目标的最有价值数据,往往是目标及其他人直接发布的数据。

下图展示了执行 OSINT 操作时的各种数据来源:

图 3.4 – OSINT 数据源

图 3.4 – OSINT 数据源

如上图所示,任何人都可以使用各种在线资源收集关于目标的数据,然后分析收集到的数据以提供意义和背景。使用多个互联网搜索引擎进行目标研究是必需的,因为一个搜索引擎可能会提供比另一个更多的额外数据。许多组织和个人通过社交媒体与他人建立联系,并分享关于他们自己及其公司的信息。有时,人们在不意识到其影响的情况下泄露敏感数据,若这些数据被利用,后果严重。许多组织会在招聘新员工的职位描述中发布技术细节和技术信息,其中包含一些具体细节,例如他们服务器的操作系统、服务器类型与架构、云计算服务,甚至是网络设备。

OSINT 生命周期

OSINT 生命周期帮助伦理黑客更好地理解在伦理黑客和渗透测试的侦察阶段,收集、分析和报告数据所涉及的各个阶段。

OSINT 生命周期通常包括以下几个阶段:

  1. 理解信息收集的需求

  2. 执行数据收集与检索

  3. 执行收集数据的分析

  4. 进行数据分析和报告分析

下图展示了执行 OSINT 时的持续过程:

图 3.5 – OSINT 生命周期

图 3.5 – OSINT 生命周期

在第 1 阶段,信息收集要求,道德黑客需要清楚了解组织的需求。因此,以下是一些应该向客户提出的问题,以便获得更明确的理解:

  • OSINT 渗透测试结束时的交付成果是什么?

  • 组织是否希望确定他们的数据是否已被泄露到网上?

  • 攻击者如何识别其组织的入侵点(攻击面)和安全漏洞?

  • 如果攻击者利用 OSINT 攻破组织的系统和网络,风险等级和影响会是什么?

在第 2 阶段,数据收集与检索,道德黑客使用与真实黑客类似的战术、技术和程序TTPs)从公开可用的来源收集关于目标的数据。在此阶段,重要的是收集所有足够的数据,如照片、视频、文档和其他类型的媒体,从互联网上的各种数据源中收集与目标组织相关的上下文信息。然而,道德黑客必须明确识别哪些数据被认为是相关信息,以及在何时收集的数据已足够。

在第 3 阶段,收集数据分析,道德黑客仔细分析收集到的数据,以更好地理解如何将其应用于满足客户的需求,同时将数据分类为有意义且有用的类别。在此阶段,道德黑客有时会发现一些有趣的内容,并决定深入收集更多数据。例如,如果道德黑客发现目标组织正在招聘一名 IT 专业人员来管理他们的自托管服务器,道德黑客可能会尝试从当前和过去的招聘信息中获取任何可能透露目标内部服务器操作系统的技术细节。深入挖掘时,道德黑客还可能利用社交媒体,如 LinkedIn,收集有关目标公司当前和过去员工所实施的 IT 系统的情报。

收集的数据经过处理并转化为有意义的信息,具体通过以下方式来确定:

  • 收集的数据是否准确?

  • 收集的数据来自可信来源吗?

  • 收集的数据是事实性的还是主观的?

  • 是否需要更多的数据来更好地理解目标的某个特定领域?

在第 4 阶段,数据转向与报告分析,道德黑客可能会转向收集目标在不同领域的额外数据。例如,如果关于目标组织的结构已经收集并分析了足够的数据,转向收集每个员工社交媒体的相关数据可能有助于发现更多关于目标的数据泄露。例如,转向可以揭示目标组织 IT 专业人员的社交媒体账户,从而帮助你识别公司内部使用的技术,如果它们已在线发布。

一旦分析了足够/充分的目标数据,道德黑客就进入报告阶段,其中包含相关数据、信息以及执行的分析。重要的是要通知客户/顾客在 OSINT 过程中收集的证据,以及为什么这些证据对他们来说很重要。因此,要提供关于数据是如何被员工泄露的,并解释它如何被真正的黑客利用来计划对公司可能的未来网络攻击。

在收集关于目标的数据时,有时过程会变得有些压倒性,决定是否转向另一个方向可能会带来不确定性。为了帮助提供清晰的视觉地图和 OSINT 数据的相互关系,您的 OSINT 图形分析器YOGA)是一个免费的在线资源,帮助网络安全专业人员轻松可视化他们如何继续访问另一个数据点并在 OSINT 过程中收集更多数据。

以下图示显示了 YOGA 用户界面和数据点:

图 3.6 – YOGA 数据点与地图

图 3.6 – YOGA 数据点与地图

如前图所示,YOGA 展示了一个数据点如何与另一个数据点相互关联,这使得道德黑客能够轻松地跟随地图到达另一个数据点,以收集关于目标的额外情报。

重要提示

要了解更多关于 YOGA 交互式地图和 OSINT 数据点的信息,请访问 yoga.myosint.training/

接下来,你将发现 OSINT 如何帮助执法部门发现新的犯罪活动并提高警觉,以及它如何被道德黑客利用。

使用 OSINT 的好处

拥有正确使用 OSINT 的知识和理解使一个人变得非常强大。类似地,互联网上有大量公开的数据,但理解如何收集和分析这些数据,以便为某个话题创造意义和背景,可以出于好坏不同的动机和意图加以使用。作为道德黑客和渗透测试人员,我们将专注于以良好的意图使用 OSINT,例如帮助组织减少攻击面并提高其安全态势。

OSINT 通常用于合法且正当的目的。例如,执法机关利用 OSINT 收集的数据来确定“关注人物”和通缉人员的位置及其他详细信息。一个通缉人员可能会利用社交媒体炫耀自己成功逃脱了当地执法机关的抓捕,并发布在线帖子显示他们在派对上玩得很开心。执法专业人员可以监控目标以及任何关于目标的帖子,以确定他们的位置和活动。社交媒体上发布的照片和视频有助于执法机关发现新的犯罪行为。此外,也有一些违法者在社交媒体上过度分享自己的活动,导致自我暴露,进而帮助执法机关察觉到违法行为。

如前所述,社交媒体平台的创建目的是帮助人们保持联系并分享彼此的动态。然而,执法机关常常将社交媒体平台用作现代版的“通缉令”,通过这些平台帮助提高对嫌疑人和犯罪活动的认识,目的是覆盖更广泛的受众。

全球有很多失踪人口。使用 OSINT 可以帮助你和执法机关通过利用互联网上关于失踪人员的信息找到失踪的人。例如,失踪的人可能有社交媒体账户,里面包含他们日常生活和活动、朋友及群组的数据。日常活动可以用来识别失踪人的常见模式,以及是否最近发生了不寻常的事情。受害人的好友列表可以帮助执法机关确定谁能查看受害人事件发生前的活动、帖子、照片和视频,且这些人是否有动机做出违法行为。如果一个跟踪者在受害人的好友列表中,伪装成守法公民,却秘密监视他们的日常活动,并利用这些信息来策划犯罪活动,那会怎样?总的来说,与执法机关合作的网络安全专业人员可以利用 OSINT 来寻找失踪人员并抓捕违法分子。

作为一名道德黑客,在对目标进行 OSINT 操作时,隐匿身份非常重要。在接下来的部分,你将了解在收集目标信息时隐藏自己在线身份的重要性。

隐藏你的在线身份

为了更好地理解在进行 OSINT 时作为道德黑客隐藏身份的重要性,我们来设想一下:假如你的组织被威胁行为者入侵,黑客向公司的一名高管发送了一个钓鱼电子邮件,成功诱使该员工点击了一个看似安全但被混淆的链接。点击该链接后,恶意软件被下载并在受害者的系统上执行,使得黑客获得了未经授权的访问权限,并从公司的服务器及其他设备中窃取了机密数据。之后,黑客向组织发送了一封电子邮件,表明从服务器中窃取的数据类型,并要求公司在 24 小时内支付加密货币,否则黑客将把数据卖给暗网的最高出价者。

在公司内部,Bob 是负责管理和监督公司安全操作的安全专业人员,是处理与安全相关问题的主要联系人。由于领导团队担心他们的知识产权和其他机密数据可能被出售给其他黑客,因此安全漏洞很快引起了 Bob 的注意。Bob 决定检查由威胁行为者发送的电子邮件消息的源代码,以找出任何可能用于追踪发送者和攻击者位置的信息。例如,原始 IP 地址可以用来确定发送者的地理位置和网络服务提供商。

重要提示

在电子邮件消息的头部,有时会泄露发送者的原始 IP 地址,这使得收件人能够识别发送者的真实 IP 地址。然而,许多电子邮件服务提供商会在外发邮件时隐藏发送者的真实 IP 地址,从而增加了追踪电子邮件来源的复杂性。不过,你可以尝试通过创建并通过电子邮件发送canary token来社交工程攻击黑客。Canary tokens(canarytokens.org/generate)用于帮助网络安全专业人员确定他们的系统或网络是否被入侵,并诱使对手自我暴露并揭示其地理位置。

然而,Bob 无法从电子邮件头部找到威胁行为者的真实 IP 地址,决定使用邮件中找到的发件人姓名和别名进行在线搜索。通过威胁行为者的别名进行 Google 搜索可能会提供一些结果,也可能没有任何结果。在 LinkedIn 等社交媒体网站上搜索任何包含发件人姓名的个人资料,会触发对该个人资料所有者的警报,因此网络安全专业人员需要注意不要引起目标的警觉。例如,如果你使用个人账户搜索并查看某人的 LinkedIn 资料,目标将会收到通知,并得知是谁查看了他们的资料。试想一下,如果 Bob 使用个人账户来查找攻击者,而攻击者可能在 LinkedIn 上使用虚假资料。那么,威胁行为者就会被通知到,有人正在对该受害者组织的网络攻击者进行调查。简而言之,Bob 应该使用一个无法追溯到他或他的公司的不同账户,以防目标意识到调查的存在。

垃圾娃娃的基本概念

无论你是在对网络犯罪分子进行 OSINT 调查,还是作为道德黑客为某个组织工作,隐藏你的真实身份以避免目标识别出谁在收集信息并追溯到你,都是非常重要的。因此,始终建议不要使用个人账户来进行工作。

道德黑客使用垃圾娃娃来隐瞒或隐藏其身份,以便在对目标进行调查和 OSINT 操作时保护自己。垃圾娃娃是一个或多个由道德黑客设置和操作的备用社交媒体账户,目的是执行 OSINT,例如从各种在线数据源收集情报。使用垃圾娃娃的概念是伪匿名的,绝不能追溯到你,即道德黑客本人。它在收集情报时提供隐私保护。

此外,垃圾娃娃使道德黑客能够创建多个定制的社交媒体账户,用于收集有关目标的情报。然而,垃圾娃娃账户应该具有现实的人设,使得任何人,包括目标,都会相信该账户是真实的而不是虚假的。垃圾娃娃账户应当具备一个能够吸引追随者并鼓励他人连接的在线个性,使得道德黑客能够与目标建立联系并收集更多信息。此外,垃圾娃娃完全符合操作安全OPSEC)实践,因为该账户无法追溯到你。记住,当你执行 OSINT 操作或调查目标时,确保目标不知道你正在进行调查或收集关于他们的情报是非常重要的。

设置垃圾娃娃

在设置假人之前,伦理黑客必须确定是否需要匿名性和/或持久性。如果需要匿名性,这意味着你不希望目标发现或追踪到你是谁,在对其进行情报收集时。为了确保匿名性,设置假人时需要做更多的工作。如果假人需要持久性,这意味着伦理黑客希望确保虚假身份会在社交媒体上与他人互动、关注并与他人连接,并且定期发布新的状态和更新,以确保假人具有真实的身份,而不是被识别为假账户。持久性还意味着伦理黑客需要渗透社交网络,如群组,持续数周、数月或数年,以建立一个受信任的在线形象。然而,如果你不需要持久性,那么设置和维护一个假人账户将比持久账户更容易。

重要提醒

永远不要使用个人账户进行工作相关活动,如开放源信息(OSINT)操作、调查、道德黑客或渗透测试。

以下是创建假人的指导原则和建议:

  • 在创建假人时,你的来源细节很重要。创建和设置社交媒体账户时不要使用你自己的 IP 地址。可以考虑访问一个有免费无线网络的本地咖啡店。

  • 请勿使用虚拟私人网络VPN)或 TOR 服务,因为社交媒体平台能够检测到来源流量是否通过代理或 VPN 发送,并且会要求你进一步验证身份。

  • 确保你在社交媒体上的在线形象看起来像一个普通、常规的人,以避免被标记为虚假用户账户。

  • 注册社交媒体账户时请使用临时电子邮件地址。可以考虑使用Proton Mail (proton.me/),因为它提供额外的隐私保护和数据加密。但是,你也可以使用常见的电子邮件服务,如 Gmail、Yahoo Mail 或 Hotmail。确保电子邮件地址非常简单(基础)。

  • 使用 Facebook 时,请使用网站的移动版本 (m.facebook.com/),因为与桌面版本相比,移动版本进行的安全检查和验证较少。

  • 确保定期分享内容,如状态更新、照片和视频,并与社交媒体平台上的人互动和联系。

  • 请勿使用他人的照片。进行反向图片搜索非常容易,能够判断一张照片是否为假。

以下是创建假人时有用的资源:

假名生成器使道德黑客能够快速生成一个假身份,用于创建虚假账户。该网站允许你自定义身份信息,如性别、姓名集和国家,以创建一个可信的虚拟人物。这个人不存在是一个使用人工智能AI)创建虚假照片的网站,这些照片是虚构的,不存在的人的面貌。隐私卡是一个网站,允许你为真实的信用卡创建一个代理,这样你就无需在电子商务网站上输入真实的信用卡信息进行购买;会创建一个代理信用卡来代替使用。因此,电子商务商家无法获知你的真实信用卡号码和详细信息。WEBGAP提供远程浏览器隔离服务,允许任何人通过远程浏览器上网,以增强安全性和隐私性。

以下是可能在 OSINT 操作中需要的额外资源:

  • 一种来自服务提供商的临时电话号码,这些服务商每月不回收号码。这个临时电话号码可以用于账户验证。

  • 如果需要,代理信用卡可以用于购买临时手机和其他物品。

  • 用于执行 OSINT 操作和调查的虚拟机。

  • 如有需要,使用 VPN 服务。

  • 执行 OSINT 操作时,始终使用专用计算机,因为你不希望目标将任何事情追溯到你。考虑使用廉价的微型计算机,如 Raspberry Pi。

完成本节内容后,你已经了解了在执行 OSINT 操作时如何使用虚假账户来隐藏你的在线身份,并知道了如何开始这一过程。接下来,你将学习如何匿名化你的互联网流量。

匿名化你的网络流量

作为一名执行 OSINT 操作的道德黑客,确保目标无法追踪到谁在收集关于他们的数据是非常重要的。熟练的网络安全和网络专业人员能够捕获并分析网络包和日志中的数据,以确定流量的来源;因此,建议在上网时匿名化你的网络流量,以隐藏你的真实地理位置和公共 IP 地址。

以下是一些常用的匿名化互联网流量的技术:

  • VPNs

  • ProxyChains

  • TOR

以下小节将描述前述技术的优势,以及每种技术如何工作以匿名化你基于互联网的流量。

VPNs

VPN 使用户能够在不安全的网络上建立安全的通信通道,从而提供保密性并减少网络监听攻击。VPN 通常被组织用于在远程办公室和总部之间建立安全的远程连接,而无需电信服务提供商提供的广域网WAN)。这些通常被称为站点到站点 VPN。还有远程访问 VPN,这些 VPN 是组织为其远程员工提供安全连接并访问企业网络资源而实现的。

道德黑客可以自行在云端搭建远程访问 VPN 服务器,或者订阅商业 VPN 服务。自行在云端搭建远程访问 VPN 需要一些技术技能,比如知道如何在所选云服务提供商环境中搭建虚拟机,以及一些网络技能。拥有 VPN 服务器的好处是,只有你自己能查看 VPN 流量日志,因此可以增加隐私保护。然而,确保云服务器操作系统的安全非常重要,以防止攻击者未经授权访问服务器。此外,在设置云端虚拟机时,你需要选择一个托管位置。这个位置将成为所有通过你的 VPN 通道的流量的出口点。因此,如果你位于美国US),而你的 VPN 服务器托管在英国UK),那么所有通过 VPN 路由的基于互联网的流量将在英国出口,源公网 IP 地址将显示为英国的地址。

下图展示了使用 VPN 来匿名化流量的概念:

图 3.7 – VPN 概念

图 3.7 – VPN 概念

如前图所示,攻击者机器由道德黑客使用,并连接到云上的 VPN 服务器。所有基于互联网的流量都会通过 VPN 隧道发送,并在托管位置(国家)出口,然后发送到目标。因此,如果目标捕获并分析网络数据包,它将追踪到出口节点(VPN 服务器),而不是道德黑客的机器。

提示

OpenVPN提供了一个自托管的访问服务器选项,使你可以免费连接最多两台设备。这使你能够在自己的设备或云端设置 OpenVPN 访问服务器。请参考以下链接了解更多信息:openvpn.net/access-server/

一些伦理黑客可能更倾向于使用商业 VPN 服务提供商,这样可以减少在云上配置和设置虚拟服务器的需要。使用基于订阅的 VPN 服务的一个主要好处是,它使订阅者可以连接到全球各国多个 VPN 服务器,这些服务器都由同一个商业 VPN 提供商管理。因此,你可以轻松切换不同国家,并选择负责将流量路由到互联网的出口节点位置。

以下是使用 VPN 时需要考虑的因素:

  • 无论是托管 VPN 服务器在云端,还是使用商业 VPN 服务,都需要付费。

  • 确保你选择的 VPN 服务提供商不会记录你的流量日志。

  • 确保你选择的 VPN 服务提供商不会出售你的数据。

  • 确保你选择的 VPN 服务提供商有无限流量使用。

  • 确保 VPN 客户端与你计算机的操作系统兼容。

  • 许多云服务提供商,如 Microsoft Azure 和 Amazon AWS,都提供预配置的 OpenVPN 访问服务器,便于快速部署。

  • 使用 VPN 时,确保你的 DNS 流量不会泄露到 VPN 外部,否则你的真实地理位置将会被揭示。可以通过使用DNS 泄漏测试来检查 DNS 泄漏,网址为 www.dnsleaktest.com/

  • 如果你的 VPN 服务不支持 IPv6,确保在你的设备上禁用 IPv6,以防止地理位置泄漏。

虽然有许多商业 VPN 服务提供商,但根据它们的服务、功能、性能和评价,排名前列的 VPN 服务提供商会随时变化。花些时间研究哪家商业 VPN 提供商最适合你的需求,或者是否自托管的解决方案更好。接下来,你将了解 Proxychains 及其设置方法。

Proxychains

Proxychains 是伦理黑客常用的技术和工具,用于掩盖其网络流量的来源,同时提高隐私性和安全性。Proxychains 允许网络流量通过多个代理服务器进行路由,形成链式效果,当使用多个代理服务器时,可以提高所需的匿名性和安全性。

以下是使用代理服务器和 Proxychains 进行 OSINT 操作的优势:

  • 提供匿名性:Proxychains 允许你的互联网流量通过多个代理服务器进行路由。这使得伦理黑客在进行 OSINT 操作时能够隐藏其真实的源 IP 地址和身份。

  • 绕过地域限制:许多网络和组织限制访问特定的网站和服务。使用代理链技术可以让伦理黑客绕过这些地理位置限制,访问目标网站。

  • 绕过安全措施:一些组织实施了安全系统,用来基于源地址和地理位置检测并防止恶意流量。使用代理链可以使这些安全系统更难检测和限制黑客的流量。

Proxychains 工具使道德黑客能够配置一个代理服务器列表,通过链式格式路由网络流量。当道德黑客向目标发送流量时,数据包首先通过链中的第一个代理服务器,然后依次传递到其他代理服务器,直到数据包到达目标。目标响应时,返回的数据包将逆序经过代理链,回到道德黑客的计算机。

下图展示了代理服务器的链式连接:

图 3.8 – 代理链

图 3.8 – 代理链

代理链中的每一个代理服务器都作为一个中继,转发数据包到链中的下一个代理服务器,直到数据包到达目标。这种技术使得道德黑客能够隐藏其身份、真实公共 IP 地址和位置。目标只会看到来自代理链中的出口节点或最后一个代理服务器的流量。

提示

互联网上有许多网站提供免费代理服务器的列表。你可以查看 spys.one/en/

Kali Linux 上的 proxychains4.conf 文件使你能够配置 Proxychains 工具,并将特定的服务器添加到首选代理服务器列表中,以创建代理链效果。此外,Proxychains 支持以下类型的代理服务器:

  • HTTP

  • HTTPS

  • SOCKS4

  • SOCKS5

这些特定类型的代理服务器各自拥有一套独特的安全功能。使用 HTTP 转发流量的代理服务器不提供数据加密,而使用 HTTPS 的代理服务器则会加密流量。在进行 OSINT 操作之前,了解适合你需求的代理服务器类型是非常重要的。

要开始设置 Proxychains,请按照以下说明操作:

  1. 打开 VirtualBox 管理器并启动 Kali Linux 虚拟机。

  2. 一旦 Kali Linux 虚拟机启动,登录并打开终端,使用以下命令更新文件名数据库并搜索 Proxychains 配置文件:

    kali@kali:~$ sudo updatedb
    
    kali@kali:~$ locate proxychain
    

如下图所示,proxychains4.conf 文件 位置是:

图 3.9 – 定位 Proxychains 配置文件

图 3.9 – 定位 Proxychains 配置文件

  1. 接下来,打开你的网页浏览器,访问spys.one/en/查看各种代理服务器的列表。

  2. 在上一步选择了一些代理服务器后,你需要配置 proxychains4.conf 文件以使用这些选择的代理服务器。使用以下命令通过命令行文本编辑器打开 proxychains4.conf 文件:

    kali@kali:~$ sudo nano /etc/proxychains4.conf
    
  3. 接下来,当 proxychains4.conf 文件在终端中打开时,向下滚动到包含 dynamic_chain 的那一行,取消注释该行,方法是删除行首的 # 字符。同时,在包含 strict_chain 的行首插入 # 字符,将其注释掉,如下所示:

图 3.10 – 启用动态链式连接

图 3.10 – 启用动态链式连接

如前图所示,取消注释一行代码仅仅是启用了某个功能,例如动态链式连接多个代理服务器,而注释掉一行则禁用了严格的链式连接功能。

  1. 接下来,滚动到 proxychains4.conf 文件的末尾,在 socks4 127.0.0.1 9050 行的开头插入 # 字符将其注释掉,并在列表底部插入你的附加代理,如下所示:

图 3.11 – 添加代理

图 3.11 – 添加代理

  1. 接下来,保存配置文件时,按下 Ctrl + X,然后按 Y 确认文件名,再按 Enter 键退出并返回终端。

  2. 要使用 Proxychains,使用以下命令启动一个 Firefox 浏览实例,将互联网流量通过代理服务器链路进行路由:

    kali@kali:~$ proxychains4 firefox
    

如下图所示,Firefox 正通过配置文件中的代理服务器列表来路由出站流量:

图 3.12 – 使用 Proxychains

图 3.12 – 使用 Proxychains

  1. 接下来,为了确认你是否通过 Firefox 匿名化了网络流量,可以使用相同的网页浏览器,访问whatismyipaddress.com/验证你的公共 IP 地址,如下图所示:

图 3.13 – 验证公共 IP 地址以确保匿名性

图 3.13 – 验证公共 IP 地址以确保匿名性

如前图所示,公共 IP 地址被识别为出口节点,即 proxychains4.conf 文件中的最后一个代理服务器,而不是实际的源 IP 地址。

  1. 最后,请记住,每次使用 Proxychains 时,只需确保代理服务器在线,并在终端启动时输入 proxychains4 命令,如 步骤 8 所示。

接下来,你将学习如何通过 TOR 在暗网上匿名化你的互联网流量。

TOR

TOR 是一个开源项目,使任何人都能够匿名浏览互联网。TOR 网络通过多个节点路由用户的网络流量,这使得用户在使用互联网时能够隐藏其身份和地理位置。这对道德黑客非常有用。当用户通过 TOR 网络发送流量时,它会加密网络流量,并将其包装在多个加密层中。当加密流量传递到另一个节点时,接收节点会去除一层加密,揭示下一个节点以继续转发流量,直到流量到达目标。在这一过程中,目标接收加密数据,并且无法追踪数据包的真实来源。

下图展示了使用 TOR 的一般概念:

图 3.14 – 使用 TOR 路由

图 3.14 – 使用 TOR 路由

在 TOR 网络中,每个节点只知道前一个和下一个节点,从而形成类似代理链的效果。然而,节点并不知道流量的发送方(源)或最终目的地(目标)。这使得任何在 TOR 网络中的节点或任何人都很难确定通过 TOR 网络路由的流量的真实来源和目的地。作为额外的安全层,流量会被多次加密、解密和重新加密,以防止任何截取流量的人识别原始数据或流量的源头。使用 TOR 使用户能够浏览互联网,并访问使用 .onion 域的暗网网站。

以下是连接到 TOR 网络时发生的过程:

  1. 道德黑客将连接到 TOR 并打开 TOR 浏览器。

  2. TOR 浏览器将加密外发流量,发送到 TOR 网络中的第一个中继节点。

  3. 第一个节点将接收流量,解密第一层加密以确定下一个节点,并将流量转发到下一个节点。

  4. 这一过程会沿途重复,因为每个节点会解密流量的一层加密,然后将流量转发到下一个节点,直到它到达 TOR 网络中的最终(出口)节点。

  5. TOR 中的最终或出口节点将把请求转发到目标。

  6. 当目标响应时,返回的流量将通过 TOR 网络返回,沿相同路径反向传输。每个节点在转发流量之前都会加密流量。这个过程会重复,直到流量以反向顺序到达最终(出口)节点。

  7. 最终(出口)节点将加密流量返回到您的 TOR 浏览器,浏览器将解密并显示从目标返回的数据。

要开始设置 TOR 和 TOR 浏览器,请使用以下说明:

  1. 打开 VirtualBox 管理器并启动 Kali Linux 虚拟机。

  2. 一旦 Kali Linux 虚拟机启动,打开终端并使用以下命令更新软件包仓库列表:

    kali@kali:~$ sudo apt update
    

下图显示了前述命令的完整执行:

图 3.15 – 更新软件包仓库

图 3.15 – 更新软件包仓库

  1. 接下来,使用以下命令在 Kali Linux 上下载并安装 TOR 和 TOR 浏览器:

    kali@kali:~$ sudo apt install -y tor torbrowser-launcher
    

下图显示了执行前述命令时的预期输出:

图 3.16 – 设置 TOR

图 3.16 – 设置 TOR

  1. 接下来,使用以下命令启动 TOR 浏览器:

    kali@kali:~$ torbrowser-launcher
    

下图显示了启动前 TOR 浏览器的设置:

图 3.17 – Tor 浏览器服务

图 3.17 – Tor 浏览器服务

  1. 接下来,TOR 浏览器将自动出现。点击 连接 来建立 TOR 浏览器与 TOR 网络的连接,如下图所示:

图 3.18 – TOR 浏览器

图 3.18 – TOR 浏览器

然后,你会看到正在与 TOR 网络建立连接,如下图所示:

图 3.19 – 连接到暗网

图 3.19 – 连接到暗网

  1. 一旦连接建立,前往 whatismyipaddress.com/ 验证你的真实地址和地理位置是否已被匿名化,如下图所示:

图 3.20 – 验证匿名性

图 3.20 – 验证匿名性

如前图所示,真实的源地址和地理位置未被揭示。然而,只有来自 TOR 浏览器的网络流量会通过 TOR 网络匿名化。

重要提示

如果你想访问任何暗网上的 .onion 地址的网站,确保只使用 TOR 和 TOR 浏览器。不要下载任何内容,不要信任任何人,也不要信任任何东西。只有在自担风险的情况下访问。请注意。

  1. 接下来,关闭 TOR 浏览器以终止与 TOR 网络的连接。

要将 Kali Linux 中的其他应用程序和工具的流量通过 TOR 网络路由,你需要使用以下指令修改 proxychains4.conf 文件:

  1. 在 Kali Linux 上,打开终端并使用以下命令通过 nano 命令行文本编辑器打开 proxychains4.conf 文件:

    kali@kali:~$ sudo nano /etc/proxychains4.conf
    
  2. 接下来,当 proxychains4.conf 文件出现时,滚动到文件末尾,取消注释 socks4 127.0.0.1 9050,并在每行包含代理服务器的开头插入注释(#),如下图所示:

图 3.21 – 修改 Proxychains 文件

图 3.21 – 修改 Proxychains 文件

  1. 接下来,为了保存配置文件,请在键盘上按 Ctrl + X,然后按 Y 使用当前文件名,再按 Enter 确认并返回终端。

  2. 接下来,在终端中使用以下命令启动 TOR 服务并验证其状态:

    kali@kali:~$ sudo systemctl start tor
    
    kali@kali:~$ sudo systemctl status tor
    
  3. 接下来,使用以下命令连接到 ifconfig.co/ 并验证你的基于互联网的流量是否已匿名化:

    kali@kali:~$ proxychains4 curl ifconfig.co
    

下图显示了网站检测到的公共 IP 地址。由于基于互联网的流量通过 TOR 网络路由,它已被匿名化,因为显示的地址是 TOR 网络出口节点的 IP 地址,而不是实际地址:

图 3.22 – 通过 TOR 验证匿名性

图 3.22 – 通过 TOR 验证匿名性

  1. 接下来,由于 TOR 服务正在 Kali Linux 上运行,我们可以使用 proxychains4 命令来启动任何应用程序,同时通过 TOR 网络路由其流量:

    kali@kali:~$ proxychains4 firefox
    

下图显示了 Firefox 正在建立一个 TOR 电路:

图 3.23 – 通过 TOR 路由应用流量

图 3.23 – 通过 TOR 路由应用流量

  1. 接下来,当 Firefox 出现在桌面上时,访问 whatismyipaddress.com/ 验证基于互联网的流量和地理位置是否已匿名化,如下图所示:

图 3.24 – 使用 TOR 匿名化流量

图 3.24 – 使用 TOR 匿名化流量

如前图所示,IP 检测网站能够识别出 TOR 电路的出口节点,而无法识别出真实的 IP 地址或地理位置。

  1. 接下来,使用以下命令停止 TOR 服务并终止 TOR 电路:

    kali@kali:~$ sudo systemctl stop tor
    
    kali@kali:~$ sudo systemctl status tor
    

下图显示了执行前述命令的预期结果:

图 3.25 – 禁用 TOR 服务

图 3.25 – 禁用 TOR 服务

如前图所示,TOR 服务现在处于非活动状态。

完成本节后,你已学会如何匿名化你的互联网流量,防止你的目标追溯到你的 OSINT 操作。

总结

在本章的学习过程中,你了解了道德黑客如何使用被动信息收集技术和 OSINT 来收集、汇总和分析来自互联网的公开数据,以更好地理解目标和安全漏洞。此外,你还学会了作为道德黑客如何使用 VPN、Proxychains 和 TOR 来隐藏身份并匿名化你的互联网流量。

我希望本章对你有所帮助,并在你进入网络安全行业的过程中提供了有价值的知识。在下一章,第四章域名与 DNS 情报,你将获得在行业中高效执行 OSINT 操作所需的实践技能,作为一名道德黑客,你将学习如何针对目标进行操作。

进一步阅读

第四章:域名和 DNS 情报

随着互联网的不断发展,获取信息的途径越来越多。开源情报OSINT)可以从任何公开可用的来源收集,比如互联网。黑客收集目标的 OSINT,以帮助改进他们的战术、技术和程序TTPs)用于网络攻击和行动。因此,像道德黑客和渗透测试人员这样的网络安全专家,必须深入理解对手如何收集并利用 OSINT,而道德黑客则应使用相同的 TTPs 来帮助降低网络攻击或威胁的风险,并提高组织的网络防御。

在本章的学习过程中,您将了解并掌握道德黑客和渗透测试人员常用的技能,这些技能可以帮助您从各种在线资源中收集公开可用的信息,并使用流行的技术和工具高效地对组织进行概况分析。您将学习如何利用从互联网搜索引擎收集的数据,获取域名情报,识别组织的子域名,并执行域名系统DNS)侦察。

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

  • 利用搜索引擎收集 OSINT

  • 域名情报

  • 发现子域名

  • DNS 侦察

让我们深入了解吧!

技术要求

为了跟上本章的练习,请确保您已满足以下硬件和软件要求:

利用搜索引擎收集 OSINT

互联网是世界上最大的网络,浏览和寻找资源有时会很具挑战性,特别是当我们不知道特定网站的域名或统一资源定位符URL)时。为了帮助我们快速找到网站的正确域名,我们可以使用互联网搜索引擎。互联网搜索引擎会抓取并索引互联网上的一切,使得用户可以通过关键字进行互联网搜索,从而找到所有相关资源,同时提供安全的搜索结果。

如果没有互联网搜索引擎,一个人需要知道他们想访问的网页的正确域名、主机名或网址。例如,设想一个没有互联网搜索引擎的世界;每个人都需要保持一个最新的记录,包含每个新网站及其 IP 地址。如果一个组织更改了其域名,可能是因为重新品牌化,那么这些信息需要与所有互联网用户共享。然而,由于世界非常大,更新可能不会立即到达每个人,有些人可能会尝试连接到旧域名,而该域名可能无法解析到新域名或网站。

因此,互联网搜索引擎在互联网上扮演着重要角色,通过使用网页抓取工具(Web crawlers)抓取数十亿个域名、网站及其页面。网页抓取工具(也称为机器人或蜘蛛)使得互联网搜索引擎提供商能够浏览互联网、下载每个网页,并跟踪网页链接,以高效地发现互联网中新的可访问网站和页面。因此,互联网搜索引擎是帮助我们寻找和收集有关某个组织情报的工具。作为道德黑客,我们可以使用各种互联网搜索引擎来查找并收集有关目标组织的信息,并确定公司通过数据泄露所暴露的内容。

以下是常见的互联网搜索引擎:

重要提示

DuckDuckGo 搜索引擎注重隐私,不存储用户的互联网搜索记录,也不跟踪用户的浏览器。Yandex 是一个以俄罗斯为基础的搜索引擎,专注于亚洲和欧洲地区的内容。

一个典型的人可能会选择前述的某个互联网搜索引擎,使用关键词进行搜索,并很可能会点击搜索结果第一页上的链接。作为一名道德黑客,理解搜索结果的第一页通常基于搜索条件提供最准确的数据是非常重要的;然而,查看第二页及之后的页面会提供一些额外的信息,这些信息可能对我们了解目标非常有意义。由于互联网搜索引擎会收集和记录数据,因此检查所有搜索结果,找出与目标组织的任何关联是至关重要的。

此外,每个互联网搜索引擎都有自己独特的算法,决定它们如何抓取和索引互联网上的网站。作为一名道德黑客,仅使用一个互联网搜索引擎可能无法获得另一个搜索引擎所提供的相同结果。例如,如果你在寻找有关目标的特定数据,某个搜索引擎可能由于其算法的不同而无法提供这些数据,而另一个搜索引擎可能会提供。因此,建议始终使用多个互联网搜索引擎,收集并分析每个搜索引擎前 10 页的搜索结果。

在许多网站上,你会发现一个robots.txt文件,其中包含一个目录列表。网站管理员通常使用这个文件来允许或禁止互联网爬虫索引网站的特定目录。例如,如果网站管理员希望阻止互联网搜索引擎在搜索到组织的域名时索引和显示管理员门户网站,他们可以在robots.txt文件中插入一个disallow /administrator/的语句。

以下截图展示了一个示例robots.txt文件的内容:

图 4.1 – robots.txt 文件

图 4.1 – robots.txt 文件

如前面的截图所示,robots.txt文件似乎包含了一个敏感目录列表,这些目录不应出现在互联网搜索结果中。由于robots.txt文件在网站上是公开可见的,伦理黑客可以收集并分析其中的数据,从而发现目标的隐藏目录,这些目录可以用来规划未来的行动。此外,访问每个隐藏目录可能会导致发现组织暴露的额外数据泄露和资源。

然而,由于你将直接访问目标网站上的robots.txt文件,这属于一种主动侦察,目标将知道你已经接触到它。因此,强烈建议你在侦察阶段通过匿名化互联网流量来帮助隐藏你的在线身份,从而降低威胁等级。

Google 黑客技术

Google 黑客dorking)是伦理黑客常用的一种技术,利用 Google 的互联网搜索算法查找关于人、地点、组织以及互联网上其他事物的敏感信息。Google 黑客这一术语并不意味着我们实际上在以任何方式攻击 Google 的基础设施或系统;它仅仅是用来描述我们如何利用 Google 搜索引擎的强大功能,通过合法方式查找关于目标的具体细节。

例如,基于单一关键词搜索一个组织会得到数十亿条结果,如下截图所示:

图 4.2 – Google 搜索

图 4.2 – Google 搜索

作为一名伦理黑客,收集和分析在搜索结果第一页以及其他页面上找到的数据是非常重要的,这有助于建立更好的目标档案。然而,和 Google 上的任何典型互联网搜索一样,它提供的结果通常是与关键词相关的通用信息。

提示

确保在收集目标信息时,你没有登录到你的 Google 账号或 Chrome 浏览器中。

要执行 Google 黑客技术,了解如何使用高级 Google 搜索操作符来帮助我们过滤特定的结果是至关重要的。以下是常见的 Google 高级搜索操作符:

  • -(减号)—此符号用于从搜索结果中排除某个术语。例如,cybersecurity -Cisco 将提供包含 cybersecurity 的结果,但排除所有包含 Cisco 的条目。

  • OR—这是一个条件操作符,用于提供包含其中一个术语或另一个术语的结果。例如,cybersecurity OR networking 将提供包含 cybersecuritynetworking 的结果。

  • AND—此条件操作符用于提供包含两个术语的结果。例如,football AND england 将返回同时包含这两个关键字的结果。

  • intitle:—此操作符用于搜索包含特定术语的标题页面。例如,intitle: administrator 将搜索所有在标题中包含 administrator 的网站,并返回这些结果。

  • inurl:—此操作符用于搜索包含特定关键字的 URL。例如,inurl:security 将提供所有包含 security 关键字的 URL。

  • intext:—此操作符使 Google 可以检查特定关键字是否出现在网站的正文中,并仅提供这些网站的结果。例如,intext:cryptocurrency 提供包含 cryptocurrency 这个词的网页结果。

  • ext:** / **filetype:—这些操作符用于指定文件扩展名。例如,cybersecurity filetype:pdf 将提供包含 cybersecurity 且为 PDF 文件的结果。

  • site:—此操作符用于提供特定域名的结果。例如,site:microsoft.com 将仅提供 microsoft.com 的结果。

  • before:** **yyyy-mm-dd—此操作符用于筛选特定时间之前的结果。如果你有兴趣查找某个时间之前发布的结果或数据,这是非常有用的。

  • after:** **yyyy-mm-dd—此操作符用于筛选特定时间之后的结果。如果你有兴趣查找某个时间之后发布的结果或数据,这是非常有用的。

  • *(星号)—此操作符作为通配符,用于匹配任何关键字。例如,cyber * 将显示以 cyber 开头的任何内容。

  • Keyword1 keyword2—此搜索格式用于提供包含特定关键字的结果。例如,cybersecurity microsoft 提供这些相关术语的结果。

  • " "(引号)—引号用于包含特定的搜索词,例如 "****John Doe"

以下是使用 Google 高级搜索操作符收集目标情报的常见场景:

  • 假设你想筛选仅针对特定域名的 Google 结果。使用 site:domain-name 语法将提供以下结果:

图 4.3 – 筛选特定域名

图 4.3 – 筛选特定域名

  • 假设你有兴趣在特定域名(如微软网站)上搜索特定的安全漏洞。使用printnightmare site:microsoft.com语法会提供微软网站上PrintNightmare的相关结果:

图 4.4 – 结合关键词与站点操作符

图 4.4 – 结合关键词与站点操作符

  • 如果你有兴趣在目标网站上查找客户门户,使用customer AND login site:domain-name语法可以过滤搜索结果,在特定域名上查找客户和登录信息,如下图所示:

图 4.5 – 在域名上查找客户门户

图 4.5 – 在域名上查找客户门户

  • 如果你在查找特定域名上的登录门户,使用"login" site:domain-name语法会过滤带有关键词login的结果,如下图所示:

图 4.6 – 查找登录门户

图 4.6 – 查找登录门户

  • 假设你有兴趣查找特定域名上的文件类型。使用site:domain-name filetype:txtsite:domain-name filetype:pdf可以过滤 Google 搜索结果,如下图所示:

图 4.7 – 在域名上搜索文件类型

图 4.7 – 在域名上搜索文件类型

  • 假设你有兴趣查找包含login一词的所有网站标题,针对特定域名,可以使用site:domain-name intitle:login语法,如下图所示:

图 4.8 – 查找登录门户

图 4.8 – 查找登录门户

  • 要查找组织的子域名,可以使用site:domain-name -www语法来排除www参数,如下图所示:

图 4.9 – 查找子域名

图 4.9 – 查找子域名

提示

此外,你可以使用site:*.domain.com -site:www.domain.com的 Google dork 语法来查找目标的子域名。例如,如果你想查找microsoft.com的子域名,使用site:*.microsoft.com -site:www.microsoft.com语法会过滤 Google 搜索结果。

谷歌高级搜索操作符的多种组合可以为我们提供独特的结果。为了帮助用户更容易地掌握谷歌的高级搜索操作符,谷歌在其主要搜索页面上提供了一个高级搜索功能,减少了使用特定高级搜索操作符的需求。

要访问谷歌的高级搜索功能,请按照以下说明操作:

  1. 访问谷歌首页 www.google.com/ 并点击设置,如图所示:

图 4.10 – 谷歌首页

图 4.10 – 谷歌首页

  1. 接下来,点击高级搜索,如图所示:

图 4.11 – 高级搜索

图 4.11 – 高级搜索

  1. 最后,你将访问高级搜索菜单,该菜单提供了许多字段,帮助你执行高级 Google 搜索,以下截图展示了这一点:

图 4.12 – Google 高级搜索菜单

图 4.12 – Google 高级搜索菜单

此外,Exploit Database (www.exploit-db.com/) 管理着Google Hacking 数据库GHDB),这是一个公开的高级 Google 搜索运算符和组合的存储库,旨在查找互联网上暴露的系统和资源。GHDB 可以在 www.exploit-db.com/google-hacking-database 找到。

以下截图展示了 GHDB 中找到的一些 Google dork 示例:

图 4.13 – GHDB

图 4.13 – GHDB

如前面的截图所示,每个 Google dork 都可以用来查找互联网上暴露的敏感系统和文件。在使用 Google 黑客技术时,请务必小心谨慎。请勿将你找到的信息用于恶意目的或对系统或网络造成伤害。

重要提示

作为一名道德黑客,Google dork 可以帮助你找到公开暴露的包含用户名结构元数据的文档,这让你能进一步了解目标组织是如何创建用户名的。

完成本节后,你已经学会了如何使用互联网搜索引擎收集目标情报。在接下来的章节中,你将学习如何收集域名情报。

域名情报

域名情报主要关注收集和分析目标组织的域名注册详情和 DNS 记录,以识别它们的系统、网络基础设施和攻击面。随着互联网的不断扩展,注册的域名数量也在增加,因为越来越多的组织创建在线存在,旨在将市场拓展到全球新客户。此外,任何人都可以轻松地在互联网上注册一个公共域名,并将该命名空间用于个人用途。域名已经存在了相当长的时间,它们帮助我们轻松访问互联网上的网站。例如,想象一下如果每个人都需要知道并记录他们想访问的每个网站的 IP 地址,那会是多么具有挑战性。如果 IP 地址未知,用户将不知道如何连接到目标网站。类似于邮政服务,如果目的地地址未知,那么快递员将无法递送信件。

域名是易记地址,在互联网上唯一,帮助我们访问像google.comamazon.com这样的网站。然而,域名是通常映射到网络设备的 IP 地址的唯一字符串。域名通常以顶级域TLD)结尾,如.com.net.org等等。不同的根 DNS 服务器由互联网数字分配机构IANA)管理。例如,.com根 DNS 服务器将包含所有具有.comTLD 的域名及其相关 IP 地址的记录。因此,如果用户想要检索www.google.com的 IP 地址,他们将需要查询.com根 DNS 服务器,该服务器会搜索其数据库中关于google.com的所有记录。一旦在 DNS 服务器中找到google.com域名,服务器然后搜索www记录及其相关 IP 地址,并响应给用户的计算机。你可以将 DNS 服务器视为包含许多主机名及其相关 IP 地址记录的非常大的目录,这有助于全球许多人轻松连接到他们的目标网站和服务器。

重要提示

DNS 是一种常见的网络协议,允许设备将主机名解析为 IP 地址。DNS 在用户数据报协议UDP)端口53上运行,用于处理客户端和 DNS 服务器之间的 DNS 查询和响应。然而,DNS 服务器还使用传输控制协议TCP)端口53用于记录的区域传输,从一个 DNS 服务器到另一个 DNS 服务器。

下图展示了根 DNS 服务器的概念:

图 4.14 – 根 DNS 服务器结构

图 4.14 – 根 DNS 服务器结构

在使用 DNS 服务器解析域名之前,每台计算机都使用一个包含主机名及其相关 IP 地址列表的Hosts文件。这个Hosts文件需要频繁更新以确保拥有最新的记录。然而,在所有客户端计算机上管理此文件变得非常具有挑战性,因此使用 DNS 服务器来克服这个问题。然而,在基于 Windows 的操作系统上,Hosts文件可以在C:\Windows\System32\drivers\etc文件夹目录中找到。然而,当计算机连接到网络时,动态主机配置协议DHCP)服务器通常会为客户端提供网络的 DNS 服务器 IP 地址。因此,客户端设备的主机操作系统不再查询Hosts文件,而是将所有 DNS 查询发送到 DNS 服务器。

下图显示了 Windows 11 操作系统的Hosts文件内容:

图 4.15 – Hosts 文件

图 4.15 – Hosts 文件

如上图所示,该文件最初创建是为了将主机名映射到 IP 地址。然而,所有的行默认都被注释掉,以防止操作系统访问其内容,包括默认条目。

以下是在执行 DNS 查询以获取主机名时的一般步骤:

  1. 当用户在其网页浏览器的地址栏中输入域名或主机名时,客户端设备会检查其本地 DNS 缓存,查找是否有匹配的先前条目。如果未找到任何匹配的条目,客户端设备将向首选 DNS 服务器发送 DNS 查询,如下图所示:

图 4.16 – DNS 查询

图 4.16 – DNS 查询

提示

ipconfig /displaydns 命令将在基于 Windows 的操作系统上显示本地 DNS 缓存。

  1. DNS 服务器将检查其本地数据库中的请求记录,并向客户端设备返回 DNS 响应,包含该主机名的 IP 地址,如下图所示:

图 4.17 – DNS 响应

图 4.17 – DNS 响应

  1. 当客户端设备收到 IP 地址时,它会将其作为目标 IP 地址插入到 IP 数据包的第 3 层头部,并通过网络发送出去,建立与目标 Web 服务器的连接,如下图所示:

图 4.18 – 连接到目标服务器

图 4.18 – 连接到目标服务器

域名所有者和 DNS 服务器管理员可以为一个域创建各种类型的 DNS 记录,例如以下几种:

  • A:此记录将主机名映射到 IPv4 地址

  • AAAA:此记录将主机名映射到 IPv6 地址

  • MX:此记录用于指定域的(电子)邮件交换服务器

  • NS:包含该域的名称服务器

  • CNAME:指定域名或子域的规范名称(别名)

  • PTR:用于将 IP 地址解析为主机名

  • RP:用于指定域名的责任人

  • TXT:此记录允许域名所有者指定文本记录,通常用于验证域名所有权

  • SRV:用于指定服务端口

  • SOA:此记录用于存储有关域的管理信息

公共 DNS 服务器对互联网用户开放,通常包含许多注册域名的 DNS 记录副本。作为一名道德黑客或渗透测试员,你可以利用域名注册信息和 DNS 记录帮助你更好地了解目标的网络基础设施、公开可用的服务器以及目标所拥有的其他资产。

下图展示了用于收集域名情报的关键领域的视觉思维导图:

图 4.19 – 域名情报思维导图

图 4.19 – 域名情报思维导图

如上图所示,伦理黑客可以从公共 WHOIS 数据库收集域名注册详情,使用各种工具和互联网搜索引擎识别子域名,并从公共 DNS 服务器检索 DNS 记录。

使用 WHOIS 数据库

在互联网上注册一个域名是一个相当简单的过程。用户访问在线域名注册商,检查所选域名是否可用,并注册该域名数年。在注册过程中,域名注册商会收集大量关于新域名所有者的个人可识别信息PII),例如以下内容:

  • 全名

  • 物理地址

  • 电子邮件地址

  • 电话号码

  • 手机号码

  • 组织名称

通过在互联网上注册一个域名,注册信息默认是公开的,任何人都可以识别域名的所有者及其他敏感信息。然而,许多域名注册商提供附加的付费服务,以在租期内保持注册信息的私密性。此外,在注册过程中,许多人和组织会选择支付额外费用来保护隐私,确保域名注册信息保持私密。然而,并非每个人都会选择支付额外的隐私保护费用,这导致他们的注册信息暴露在互联网上。

作为伦理黑客,你可以利用在 WHOIS 数据库中找到的信息来创建目标的个人资料,识别他们的联系信息和实际位置。以下是一些公共的 WHOIS 数据库:

上述列表只是众多公共 WHOIS 在线数据库中的一部分。在进行 WHOIS 查询时,重要的是要在多个 WHOIS 数据库中查询目标域名,以确保信息的准确性和可用性。

要开始进行 WHOIS 查询并获取域名注册信息,请按以下说明操作:

  1. 首先,启动你的Kali Linux虚拟机,并验证其是否能够连接互联网。

  2. 接下来,打开 Kali Linux 上的终端,使用whois命令,如下所示:

    kali@kali:~$ whois apple.com
    

以下截图显示了目标域名的whois响应:

图 4.20 – whois 响应

图 4.20 – whois 响应

如上截图所示,whois工具尝试检索所有域名注册详情,如域名注册周期、名称服务器、所有者的个人信息以及他们的联系信息。然而,域名所有者启用了域名隐私保护,防止其注册信息暴露在互联网上。

  1. 接下来,在 Kali Linux 中打开 Web 浏览器,转到mxtoolbox.com/Whois.aspx,并输入一个目标域名,如下面的屏幕截图所示:

图 4.21 – MXToolbox Whois 查询

图 4.21 – MXToolbox Whois 查询

如下面的屏幕截图所示,MXToolbox WHOIS 数据库提供了该域的名称服务器和注册详细信息:

图 4.22 – WHOIS 结果

图 4.22 – WHOIS 结果

大多数组织会选择支付额外费用,以确保其注册详细信息对互联网用户保持私密。然而,进行 WHOIS 查询是一个很好的做法,因为您可能会发现一些有趣的内容,帮助您规划未来的道德黑客操作。

用于侦察的 nslookup

nslookup工具是一个流行的网络管理工具,内置在许多操作系统中,如 Windows 和 Linux,并使 IT 专业人员能够在网络上解决 DNS 问题。作为一名道德黑客,您可以利用nslookup从目标 DNS 服务器和互联网上其他公开可用的 DNS 服务器中检索域信息的功能。

要开始学习如何使用nslookup,请使用以下说明:

  1. 首先,启动Kali Linux虚拟机,并确保它具有互联网连接。

  2. 接下来,在 Kali Linux 上打开终端并执行nslookup命令。执行命令后,终端提示符将更改,并且终端上的所有查询将发送到 Kali Linux 上配置的 DNS 服务器的 IP 地址。

  3. 要将当前服务器更改为谷歌的 DNS 服务器,请使用server 8.8.8.8命令。此命令将把终端上执行的所有 DNS 查询发送到谷歌的 DNS 服务器。

  4. 接下来,输入一个域名,如amazon.com进行查询,如下面的屏幕截图所示:

图 4.23 – nslookup 工具

图 4.23 – nslookup 工具

如前面的屏幕截图所示,nslookup将 DNS 查询发送到8.8.8.8(谷歌的 DNS 服务器),检索域名的 DNS A记录,并显示其 Web 服务器的公共 IPv4 地址。

重要提示

非权威答案意味着信息是从原始 DNS 记录的服务器之外的 DNS 服务器检索的。非权威 DNS 服务器通常具有原始 DNS 记录的缓存副本。

  1. 接下来,使用set type=mx命令更改查询类型,并再次输入目标域以检索电子邮件服务器信息:

图 4.24 – 检索电子邮件服务器信息

图 4.24 – 检索电子邮件服务器信息

如前面的屏幕截图所示,找到了电子邮件服务器的主机名。

  1. 要将电子邮件服务器主机名解析为 IP 地址,请使用 set type=a 命令,然后输入电子邮件服务器的主机名,如下图所示:

图 4.25 – 将主机名解析为 IP 地址

图 4.25 – 将主机名解析为 IP 地址

如前面的截图所示,电子邮件服务器的公共 IPv4 地址是从公共 DNS 服务器检索到的。因此,了解在 DNS 服务器上创建的记录类型以及道德黑客如何收集和分析此类信息以创建有关目标的概要是很重要的。

发现子域名

子域名用于组织和开发域名的分层结构,例如将父域名分成可以由 IT 专业人员轻松管理的较小部分。此外,通过向现有父域名添加前缀值,可以轻松创建子域名。例如,谷歌拥有 google.com 域名,并创建了 mail.google.com 作为指向其在线电子邮件平台的子域名。这意味着子域名可以拥有自己的 IP 地址、内容和托管服务器,并可以与父域名分开管理。

作为一名道德黑客,发现目标的子域名很重要,因为它们在侦察阶段可以提供有价值的信息。它们可以帮助您识别额外的系统和网络基础设施,并确定目标的安全状况。此外,您可以扩大攻击面,发现可能导致攻击目标并获得立足点的安全漏洞。此外,道德黑客可以伪造看起来合法的子域名,出现在社会工程攻击中的目标域名中,欺骗员工透露诸如用户凭据甚至在公司拥有的系统上下载恶意软件等敏感细节。

证书搜索

证书搜索是一个在线数据库,收集来自公开可用且在互联网上找到的数字证书的信息。数字证书使用户能够验证不受信任网络(如互联网)上系统的真实性。例如,黑客可以轻松在互联网上建立虚假网站,对受害者进行社会工程攻击,比如诱使某人透露其在线账户的用户凭据。数字证书用于帮助用户验证网站或设备的身份,同时识别证书颁发者、组织及其位置。

请记住,数字证书在电子商务中扮演重要角色,因为它们用于帮助提高在线交易和通信的安全性,以确保用户的网络浏览器和服务器之间传输的所有数据都是加密的,从而确保加密数据只能被预期的接收者解密。

数字证书通常由互联网上的第三方可信组织证书颁发机构CA)颁发。CA 负责验证证书持有者的身份;因此,颁发的证书包含以下数据:

  • 主题名称—此字段包含将使用证书的实体名称。该实体可以是个人、网站、服务器或组织。

  • 公钥—此字段包含将与实体一起使用的公钥,用于在客户端和服务器之间执行数据加密。

  • 颁发者名称—此字段包含颁发证书的 CA 的名称。

  • 有效期日期—此字段表示证书的有效期,超过该期限后,若证书未被实体/证书持有者续订,则证书将过期并变得不可信。

  • 证书序列号—序列号是由 CA 分配的唯一值,用于识别证书。

  • 签名算法—此字段包含 CA 用来对证书进行数字签名的加密算法。

  • 指纹—此字段包含用于验证的唯一标识符UID)值。

以下截图显示了www.amazon.com数字证书的一般信息:

图 4.26 – 证书详情

图 4.26 – 证书详情

如前述截图所示,任何人都可以识别 CA 为 DigiCert Global Root CA,中间 CA 为 DigiCert Global CA GA,证书持有者为www.amazon.com,以及其详细信息。此外,主题备用名称字段表示此数字证书可以与此字段中列出的附加子域一起使用。作为一名道德黑客,这个字段帮助我们轻松发现目标组织的其他子域,这可能为我们提供更多的潜在攻击入口。

证书搜索可以帮助我们通过被动侦察有效地发现组织的数字证书。要开始使用证书搜索作为在线 OSINT 工具来发现组织的子域,请按以下说明操作:

  1. 在你的计算机或 Kali Linux 虚拟机上打开浏览器,访问证书搜索的官方网站crt.sh/

  2. 网站加载完成后,输入公共域名并点击搜索按钮,如下图所示:

图 4.27 – 证书搜索

图 4.27 – 证书搜索

如前述截图所示,证书搜索允许任何人输入身份信息,如域名、组织名称或证书指纹。

  1. 接下来,证书搜索将从其数据库中返回所有结果,显示所有包含apple.com作为域名及其子域的数字证书:

图 4.28 – 证书结果

图 4.28 – 证书结果

如前面的截图所示,结果包含crt.sh ID、日志日期、有效期、通用名称CN)、匹配的身份信息及其他详细信息。匹配身份信息字段显示了组织的子域名;这些主机名可以使用 DNS 协议轻松解析为 IP 地址。

  1. 接下来,点击任意crt.sh ID 以查看数字证书的详细信息:

图 4.29 – 证书详情

图 4.29 – 证书详情

如前面的截图所示,数字证书包含有关组织的位置信息,可以用来找到公司所在地的物理位置。在进行黑箱渗透测试时,这类信息尤其重要,特别是当道德黑客或渗透测试人员仅知道组织名称的情况下。道德黑客需要找到公司的准确物理位置,以便识别公司的无线网络和物理安全设施。

如前所示,证书搜索是一个有价值的资源,帮助我们发现与目标相关的数字证书,并显示它们的位置信息和子域名信息,这有助于道德黑客为目标创建一个详细的资料。接下来,您将学习如何使用 Kali Linux 上的 OSINT 工具发现子域名。

使用 Recon-ng

Recon-ng 是一个流行的开源侦察工具,帮助道德黑客和渗透测试人员收集和分析来自互联网上的 OSINT。该工具可用于识别组织是否泄露了敏感数据,这些数据可能被潜在威胁者在规划未来的网络攻击时加以利用。Recon-ng 提供了命令行界面,并包含多个模块,专为特定任务而设计,能够从各种数据源收集 OSINT。

以下是使用 Recon-ng 收集和分析 OSINT 的一些优势:

  • 自动化—Recon-ng 可以自动化地从在线数据源收集 OSINT。

  • 模块—有许多内置模块可以定制,以提供额外的功能和能力。

  • 数据管理—Recon-ng 具备工具,帮助用户在侦查过程中高效地组织和管理收集的数据。

  • 报告—有多个报告模块和功能,用户可以生成超文本标记语言HTML)、可扩展标记语言XML)和逗号分隔值CSV)文件等格式的报告。

要开始使用 Recon-ng 发现和收集目标的子域名,请按照以下说明操作:

  1. 首先,启动Kali Linux虚拟机,并确保它已连接到互联网。

  2. 接下来,打开终端并执行以下命令启动 Recon-ng:

    kali@kali:~$ recon-ng
    
  3. 接下来,Recon-ng 提供了一个在线市场,可以下载并安装额外的模块。要从市场安装所有模块,请使用以下命令:

    [recon-ng][default] > marketplace install all
    

以下截图显示了额外模块正在下载并安装到 Recon-ng 上:

图 4.30 – 安装模块

图 4.30 – 安装模块

模块安装完成后,Recon-ng 会重新加载所有模块,并且你会看到类似于以下的许多警告信息:

图 4.31 – 缺少应用程序编程接口(API)密钥

图 4.31 – 缺少应用程序编程接口(API)密钥

如前面的截图所示,许多 Recon-ng 模块需要有效的 API 密钥才能与在线数据源通信,以查询和获取关于目标的数据。在稍后的步骤中,你将学习如何为各种 Recon-ng 模块添加 API 密钥。

  1. 接下来,使用以下命令来显示 API 密钥及其关联的模块列表:

    [recon-ng][default] > keys list
    

如下图所示,默认情况下没有任何模块分配 API 密钥:

图 4.32 – 检查 API 密钥

图 4.32 – 检查 API 密钥

  1. 接下来,要获取 BuiltWith 的 API 密钥,请访问 builtwith.com/ 并创建一个免费账户。创建账户后,登录并点击 Tools** > **API** **Access 来获取你的 API 密钥。

  2. 接下来,要获取 HunterIO 的 API 密钥,请访问 hunter.io/ 并创建一个免费账户。登录后,点击你的个人资料并选择 </> API 来查看该平台的 API 密钥。

  3. 重复前面的步骤,从VirusTotal获取 API 密钥,网址为 www.virustotal.com/,从Censys获取 API 密钥,网址为 search.censys.io/,以及从Shodan获取 API 密钥,网址为 www.shodan.io/。你可以根据需要为 Recon-ng 上支持的模块获取额外的 API 密钥。

  4. 接下来,要将 API 密钥添加到支持 API 的模块,请在 Recon-ng 上使用 keys add <API 模块名称> <API 密钥值> 命令——例如,keys add** **builtwith_api 12345

  5. 接下来,使用 keys list 命令验证 API 密钥是否已成功添加,如下图所示:

图 4.33 – 验证 API 密钥

图 4.33 – 验证 API 密钥

  1. 接下来,在收集目标数据时,保持你的物理和数字工作区的有序性是一个好习惯,这样在需要时可以轻松找到信息。因此,请使用以下命令在 Recon-ng 上创建一个数字工作区:

    [recon-ng][default] > workspaces create target1_recon
    
  2. 接下来,使用以下命令查看 Recon-ng 中所有已创建工作区的列表:

    [recon-ng][target1_recon] > workspaces list
    

如下图所示,新的工作区已经创建,并且我们当前正在其中操作:

图 4.34 – 查看工作区

图 4.34 – 查看工作区

  1. 接下来,让我们使用 modules search 命令来查找 bing_domain 模块,该模块将帮助我们识别目标的地理位置和子域:

    [recon-ng][target1_recon] > modules search bing_domain
    

以下截图显示识别并返回了两个模块:

图 4.35 – 搜索结果

图 4.35 – 搜索结果

  1. 接下来,让我们使用 recon/domains-hosts/bing_domain_web 模块并显示其描述:

    [recon-ng][target1_recon] > modules load recon/domains-hosts/bing_domain_web
    
    [recon-ng][target1_recon][bing_domain_web] > info
    

下图展示了模块的描述以及使用该模块所需的选项:

图 4.36 – 显示模块描述

图 4.36 – 显示模块描述

如上图所示,必须在使用模块收集互联网 OSINT 之前设置 SOURCE 值。

  1. 接下来,让我们将 microsoft.com 设置为目标,并使用以下命令执行模块:

    [recon-ng][target1_recon][bing_domain_web] > options set SOURCE microsoft.com
    
    [recon-ng][target1_recon][bing_domain_web] > run
    

提示

要在模块中取消设置一个值,使用 options unset <****parameter/value> 命令。

以下截图显示模块已经开始收集有关目标域名的 OSINT:

图 4.37 – 运行模块

图 4.37 – 运行模块

  1. 一旦模块完成目标的 OSINT 收集,执行 show hosts 命令以查看收集的数据:

图 4.38 – 查看收集的数据

图 4.38 – 查看收集的数据

  1. 要退出当前模块,输入 back 并按 Enter 键。

重要提示

show 命令可以与 show** **[companies]** **[credentials] [hosts]** **[locations]** **[ports]** **[pushpins]** **[vulnerabilities] [contacts]** **[domains]** **[leaks]** **[netblocks]** **[profiles] [repositories] 一起使用,以查看 Recon-ng 收集的特定信息。

  1. 接下来,显示 Recon-ng 收集的所有 OSINT 的摘要:

    [recon-ng][target1_recon] > dashboard
    
  2. 以下截图展示了 Recon-ng 执行并收集的活动摘要:

图 4.39 – Recon-ng 活动总结

图 4.39 – Recon-ng 活动总结

  1. 接下来,要使用 HTML 报告模块生成报告,请使用以下命令:

    [recon-ng][target1_recon] > modules load reporting/html
    
    [recon-ng][target1_recon][html] > info
    
    [recon-ng][target1_recon][html] > options set CREATOR Glen
    
    [recon-ng][target1_recon][html] > options set CUSTOMER NewCustomer1
    
    [recon-ng][target1_recon][html] > options set FILENAME /home/kali/Recon-Report1.html
    
    [recon-ng][target1_recon][html] > run
    

以下截图展示了前面命令的执行结果:

图 4.40 – 使用报告模块

图 4.40 – 使用报告模块

如上图所示,生成的报告已存储在 /****home/kali/ 目录中。

  1. 要使用 Web 浏览器查看报告,打开一个新的终端并使用以下命令:

    kali@kali:~$ firefox /home/kali/Recon-Report1.html
    

以下截图展示了 HTML 版本的报告,其中包含有关目标域名的收集数据:

图 4.41 – HTML 报告

图 4.41 – HTML 报告

  1. 最后,要访问 Recon-ng 的 Web 界面,打开一个新的终端并执行 recon-web 命令,然后打开 Web 浏览器并访问 http://127.0.0.1:5000/,如以下截图所示:

图 4.42 – Recon-ng Web 界面

图 4.42 – Recon-ng 网络界面

完成此练习后,你已经掌握了使用 Recon-ng 收集和分析 OSINT 的基础知识。接下来,你将学习如何对目标进行 DNS 侦察。

DNS 侦察

DNS 侦察是道德黑客和威胁行为者常用的一种技术,通过从互联网上的 DNS 服务器收集公开可用的信息来获取目标的相关资料。如果你记得的话,DNS 是一种网络协议,它允许系统将主机名解析为 IP 地址,互联网上有许多 DNS 服务器保存着关于各种注册域名的公共 DNS 记录。

作为一名道德黑客,DNS 侦察的重点是向目标拥有的 DNS 服务器或公共 DNS 服务器发送 DNS 查询,获取有关目标域名、IP 地址和子域名的 DNS 记录。收集到的响应将被分析,以识别关于目标的有价值信息,如其系统和网络架构、潜在的安全漏洞以及应用平台等。

在这一部分中,你将学习如何使用各种工具和技术来高效地收集和分析 DNS 信息,以创建目标的资料。

使用 DNSenum

DNSenum 是一个常用的 DNS 枚举工具,用于收集有关域名的开源情报(OSINT)。它通过向 DNS 服务器发送各种查询,获取目标域名、IP 地址、邮件服务器、名称服务器和子域名等信息。

要开始使用 DNSenum 收集目标域名的 DNS 信息,请按照以下说明操作:

  1. 首先,启动 Kali Linux 虚拟机,并确保其能够连接到互联网。

  2. 接下来,打开终端并使用以下命令查询 Google 的 DNS 服务器,获取属于 apple.com 的 DNS 记录:

    kali@kali:~$ dnsenum --dnsserver 8.8.8.8 apple.com
    

如下图所示,DNSenum 正在尝试检索目标域名的所有 DNS 记录类型和名称服务器:

图 4.43 – DNSenum 输出

图 4.43 – DNSenum 输出

如前图所示,DNSenum 成功检索到了目标网站服务器、名称服务器和邮件服务器的公共 IP 地址。

  1. 一旦 DNSenum 收集到一般的 DNS 记录细节,它将自动尝试使用默认的字典列表进行子域名枚举,以识别目标的常见子域名,如下图所示:

图 4.44 – 子域名枚举

图 4.44 – 子域名枚举

如前图所示,DNSenum 通过对 Google 的 DNS 服务器进行暴力破解查询,成功枚举出目标的多个子域名。

完成此练习后,你已经学会了如何从公共 DNS 服务器自动化收集目标的 DNS 记录。接下来,你将学习如何使用 DNSRecon 进行 DNS 侦察。

使用 DNSRecon

DNSRecon是另一种常见的 DNS 侦察工具,使伦理黑客和渗透测试人员能够发现目标域名的 DNS 记录。该工具帮助自动化从公共 DNS 服务器检索关于特定域名的各种 DNS 记录的过程。

要开始使用 DNSRecon,请按照以下说明操作:

  1. 首先,启动Kali Linux虚拟机,并确保其具有互联网连接。

  2. 接下来,打开终端,使用以下命令查询 Google 的 DNS 服务器以获取apple.com的 DNS 记录:

    kali@kali:~$ dnsrecon -d apple.com -n 8.8.8.8
    

如下图所示,DNSRecon 能够检索目标的公共 DNS 记录:

图 4.45 – DNSRecon 输出

图 4.45 – DNSRecon 输出

如前面的截图所示,DNSRecon 能够检索各种类型的 DNS 记录,例如AAAAAMXTXTNS等。

  1. 最后,DNSRecon 尝试自动枚举目标域名的SRV记录,如下图所示:

图 4.46 – 枚举 SRV 记录

图 4.46 – 枚举 SRV 记录

完成此练习后,你已学习如何使用 DNSRecon 工具枚举 DNS 记录,以查找目标的子域名和 IP 地址。接下来,你将学习如何在配置错误的 DNS 服务器上执行 DNS 区域传输。

执行 DNS 区域传输

如你所学,DNS 服务器在内部网络和互联网上都扮演着重要角色。DNS 区域传输是将 DNS 区域的记录或整个内容从主 DNS 服务器复制到另一个 DNS 服务器的过程。DNS 区域传输用于确保主 DNS 服务器与次级 DNS 服务器之间的 DNS 数据同步。然而,主(主控)DNS 服务器保存主区域记录,而次级 DNS 服务器保存相同区域记录文件的副本。每当主 DNS 服务器上的主区域记录发生变化时,次级 DNS 服务器也需要更新其区域记录副本,因此需要在 DNS 服务器之间进行 DNS 区域传输。

然而,如果 DNS 服务器在网络或互联网上配置错误,伦理黑客可以尝试复制一个组织的主区域记录,以识别目标资产上的安全漏洞。想象一下,如果一个目标组织在其 DNS 服务器上没有分隔内部和外部命名空间。如果 DNS 区域传输是可能的,伦理黑客将能够检索关于组织内部系统和外部系统的信息。请记住,在尝试对客户的 DNS 服务器执行 DNS 区域传输之前,确保伦理黑客已获得明确许可是非常重要的。

重要提示

DigiNinjadigi.ninja)的团队创建了一个易受攻击的 DNS 服务器环境,用于学习 DNS 区域传输如何影响组织,并创建了 zonetransfer.me 域,该域包含一个 DNS 区域传输安全漏洞。

要开始学习如何在易受攻击的 DNS 服务器上执行 DNS 区域传输,请使用以下说明:

  1. 首先,启动 Kali Linux 虚拟机,并确保其可以连接到互联网。

  2. 接下来,在 Kali Linux 上打开终端并执行以下命令,以发现 zonetransfer.me 域的 DNS 记录:

    kali@kali:~$ host zonetransfer.me
    

以下截图显示了目标域名的 DNS A 记录和 MX 记录:

图 4.47 – 查找 DNS 记录

图 4.47 – 查找 DNS 记录

  1. 接下来,使用以下命令来获取目标域名的名称服务器:

    kali@kali:~$ host -t ns zonetransfer.me
    

以下截图显示了目标域的名称服务器已找到:

图 4.48 – 获取名称服务器

图 4.48 – 获取名称服务器

如前所示的截图,以下是该域的两个名称服务器:

  • nsztm2.digi.ninja

  • nsztm1.digi.ninja

作为道德黑客,我们可以使用这两个名称服务器来确定目标域是否泄露了区域记录。

  1. 接下来,让我们使用新发现的名称服务器之一查询目标域名:

    kali@kali:~$ host -l zonetransfer.me nsztm1.digi.ninja
    

以下截图显示了从 nsztm1.digi.ninja 名称服务器为 zonetransfer.me 域名检索的 DNS 记录:

图 4.49 – DNS 记录

图 4.49 – DNS 记录

如前所示的截图,结果中发现了许多敏感和有趣的主机名。这些主机名和 IP 地址可能并非组织故意公开;然而,这些信息可以被道德黑客利用,以扩展攻击面。

重要提示

在进行 DNS 侦察和区域传输时,确保查询目标域的所有名称服务器,因为某个服务器可能与其他服务器相比缺乏适当的安全配置。

  1. 接下来,让我们使用 DNSenum 自动化目标域名的 DNS 区域传输过程:

    kali@kali:~$ dnsenum zonetransfer.me
    

以下截图显示 DNSenum 成功从目标的易受攻击 nsztm2.digi.ninja 名称服务器执行了 DNS 区域传输:

图 4.50 – DNS 区域传输

图 4.50 – DNS 区域传输

此外,DNSenum 能够从易受攻击的 DNS 服务器中检索到更多有趣的记录:

图 4.51 – 区域记录

图 4.51 – 区域记录

从区域传输收集到的信息可以帮助道德黑客识别目标组织的网络基础设施,例如系统的主机名及其 IP 地址。完成此练习后,您已经学习了如何在易受攻击的 DNS 服务器上执行 DNS 区域传输。接下来,您将了解 SpiderFoot 如何在渗透测试的侦察阶段帮助道德黑客。

探索 SpiderFoot

SpiderFoot是一款流行的 OSINT 工具,广泛应用于网络安全专业人士的侦察、威胁情报TI)和调查工作。SpiderFoot 可以帮助道德黑客自动化从互联网各类数据源收集 OSINT。例如,SpiderFoot 通过收集来自各种互联网搜索引擎、社交媒体平台、DNS 记录、WHOIS 数据库和其他公开可用的来源的数据来运作。然后,SpiderFoot 将整理收集到的数据,并以帮助道德黑客轻松分析的方式呈现信息。

重要提示

要了解更多关于 SpiderFoot 项目的信息,请访问github.com/smicallef/spiderfoot

要开始使用 SpiderFoot 进行侦察,请按照以下说明操作:

  1. 首先,打开Kali Linux虚拟机并确保它可以连接到互联网。

  2. 接下来,在 Kali Linux 中打开终端并执行以下命令以启动 SpiderFoot 网页界面:

    kali@kali:~$ spiderfoot -l 0.0.0.0:1234
    

以下截图显示了 SpiderFoot 的网页界面已启动:

图 4.52 – 启动 SpiderFoot 的网页界面

图 4.52 – 启动 SpiderFoot 的网页界面

  1. 接下来,在 Kali Linux 中的网页浏览器中访问http://127.0.0.1:1234以进入网页界面。

  2. 接下来,点击新扫描,设置扫描名称,设置扫描目标,选择被动,然后点击立即开始扫描,如以下截图所示:

图 4.53 – 设置新扫描

图 4.53 – 设置新扫描

  1. 接下来,扫描将开始,SpiderFoot 将自动用收集到的 OSINT 填充扫描进度,如以下截图所示:

图 4.54 – 汇总数据

图 4.54 – 汇总数据

  1. 接下来,选择当前扫描中的浏览子标签,将显示每种工件类型收集的数据元素数量:

图 4.55 – 查看工件数据

图 4.55 – 查看工件数据

  1. 接下来,选择互联网名称工件,以查看目标域名的子域名列表:

图 4.56 – 查看子域名

图 4.56 – 查看子域名

  1. 接下来,点击浏览 > 物理位置以查看目标的地理位置数据列表:

图 4.57 – 地理位置

图 4.57 – 地理位置

扫描完成后,确保访问所有文物类别,查看所有收集的关于目标的开放源情报(OSINT),以改进目标资料,并识别任何可以利用的安全漏洞,以便获取立足点。

完成本节内容后,您已学习如何使用各种工具和技术高效地发现目标的敏感信息,如其主机名、IP 地址,甚至地理位置。

总结

在本章中,您已学习如何利用互联网搜索引擎发现关于组织的敏感信息。此外,您还获得了实际操作技能,能够使用 Google 黑客技巧来查找公司的有趣域名和子域名。您还探索了如何使用各种技术和工具来发现和收集域名、子域名和 DNS 信息的开放源情报(OSINT)。

希望本章内容对您有所帮助,并对您在网络安全行业的旅程有所启发。在下一章《组织基础设施情报》中,您将获得识别目标组织网络和基础设施的实践技能。

深入阅读

)

第五章:组织基础设施情报

随着越来越多的系统和网络连接到互联网,全球范围内有更多的数据和信息公开可用。有时,组织会无意间泄露关于其资产和网络基础设施的数据,这使得威胁行为者能够有策略地收集并分析这些数据泄漏,以规划他们未来对目标的攻击。作为一名有抱负的伦理黑客,了解威胁行为者常用的战术、技术和程序TTPs)非常重要,了解这些知识可以帮助组织保护其基础设施,减少攻击面,从而防止真实的黑客入侵他们的系统和网络。

在本章中,你将学习如何使用各种在线和离线工具,利用开放源代码情报OSINT)技术从互联网上收集数据,以识别组织的基础设施。此外,你还将发现伦理黑客和威胁行为者是如何发现互联网中暴露的脆弱系统和设备,并更好地理解攻击者是如何进入目标网络并取得立足点的。

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

  • 从互联网上收集数据

  • 发现暴露的系统

  • 收集社交媒体上的 OSINT

让我们深入了解吧!

技术要求

要跟随本章的练习,请确保你已满足以下硬件和软件要求:

从互联网上收集数据

互联网包含了大量的网站、开放数据库和存储有关人员、网络和组织数据的服务器。在对目标发起网络攻击之前,攻击者会花费足够的时间进行目标研究,以更好地了解其基础设施,并识别任何可以被利用的安全漏洞,从而获得立足点。攻击者从多个数据源收集并分析开放源代码情报OSINT),以创建目标的档案,这有助于识别目标主机、服务器、操作系统、网络信息、IP 地址、地理位置、子域名等。这些信息在规划网络攻击时非常有用,因为它使攻击者能够确定目标组织的攻击面。

作为一名具有良好道德指南针和意图的伦理黑客,使用与对手相同的 TTP(战术、技术和程序),有助于组织识别它们如何有意或无意地泄露有关其基础设施的敏感数据,以及攻击者如何利用从数据泄露中收集的相同信息来破坏其系统和网络。

以下是一些流行的网站和开放数据库,用于收集信息:

上述搜索引擎列表将在你作为伦理黑客执行被动信息收集时,成为你工具和资源库中的重要组成部分。确保花时间访问这些网站,以更好地理解它们的工作原理以及它们提供的有关目标的数据类型。

在接下来的几个子章节中,你将学习如何使用 Netcraft 和 Maltego 来收集和分析关于一个组织的开源情报(OSINT)。

Netcraft

Netcraft 提供多种互联网安全服务,收集并分析互联网上各类系统和网络的数据。网络安全专业人士如伦理黑客和渗透测试人员常用的最受欢迎的服务之一是Web Server Survey 工具,有时在 Netcraft 网站上被称为站点报告工具。此工具使任何人都能识别网站服务器的技术和使用情况、其 Web 应用程序、主机操作系统、软件版本、托管服务提供商以及网络块。

Netcraft 提供关于目标域名及其 Web 服务器的以下数据:

  • Background: 提供有关网站标题、排名、描述以及其首次出现在互联网上的时间的信息

  • Network: 提供有关 IPv4 和 IPv6 地址、网络块所有者、托管服务提供商和国家、名称服务器以及域名注册商的详细信息

  • IP delegation: 包含有关域名的 IP 地址分配的信息

  • IP Geolocation: 提供有关域名及其关联 IP 地址的地理位置详细信息,如城市和国家

  • SSL/TLS:提供有关域名数字证书的信息

  • 站点技术:提供有关 Web 服务器上 Web 技术的信息

  • 主机历史:提供有关网络块所有者、Web 应用程序的名称、主机操作系统以及 Web 服务器的 IP 地址的信息

虽然 Netcraft 提供的数据旨在帮助 IT 和网络安全专业人员改善组织的安全态势,但威胁行为者也可以利用这些信息进行恶意活动并策划对目标的未来攻击。然而,作为一名道德黑客,你也可以利用 Netcraft 提供的信息帮助你更好地了解有关你组织 Web 服务器和基础设施泄露的数据类型,以及它们是否存在已知的安全漏洞。

要开始使用 Netcraft 对 Web 服务器进行分析,请按照以下说明操作:

  1. 打开你的 Web 浏览器并访问 sitereport.netcraft.com/,然后在 URL 输入框中输入目标域名,例如 microsoft.com,点击 查询,如以下截图所示:

图 5.1 – Netcraft 查找

图 5.1 – Netcraft 查找

  1. Netcraft 将花费几秒钟来分析目标域名及其技术,并呈现信息,如下图所示:

图 5.2 – Netcraft 数据

图 5.2 – Netcraft 数据

  1. 接下来,滚动到 SSL/TLS 部分,识别公司和子域名的地理位置以及数字证书中的信息:

图 5.3 – 识别有趣的数据

图 5.3 – 识别有趣的数据

如前面的片段所示,数字证书指示了组织的国家和州。此外,主题备用名称 字段指示了与该数字证书相关联的各种子域名。

  1. 接下来,滚动到 主机历史 部分,识别目标 Web 服务器的主机操作系统、运行的 Web 应用程序和 IP 地址:

图 5.4 – 主机历史

图 5.4 – 主机历史

确定主机操作系统和运行的 Web 应用程序帮助道德黑客改进其计划,并识别可以被利用的已知安全漏洞,以便访问目标的网络基础设施。

  1. 最后,Netcraft 可以用于提供父域名的子域名列表;请访问 searchdns.netcraft.com/,在搜索框中输入 .microsoft.com 并点击 搜索,如以下截图所示:

图 5.5 – 子域名查找

图 5.5 – 子域名查找

几秒钟后,Netcraft 将提供结果,显示子域名列表、它们的网络块、主机操作系统以及首次出现的日期,如下图所示:

图 5.6 – 查找子域名

图 5.6 – 查找子域名

如前面的片段所示,Netcraft 可以用来收集并识别目标组织的子域名。

完成此练习后,您已经学会了如何使用 Netcraft 来识别一个组织的公共基础设施。接下来,您将学习如何使用 Maltego 从多个数据源收集并分析开源情报(OSINT),以提升目标的资料。

Maltego

Maltego 是一个强大的数据收集、可视化和分析工具,用于对人员、网络和组织进行被动侦察。此工具旨在帮助网络安全调查员和分析师高效地收集和分析来自各种数据源(如在线数据库、网站,甚至社交媒体平台)的大量开源情报(OSINT)。

Maltego 帮助网络安全专业人员,如道德黑客和渗透测试员,通过展示不同收集数据之间的模式和关联,帮助他们更好地理解复杂数据集之间的关系,这有助于发现有趣的模式。此工具通常在道德黑客的侦察阶段使用,用于收集和分析有关目标的数据。

要开始使用 Maltego 进行侦察,请按照以下说明操作。

第一部分 – 设置 Maltego

设置 Maltego,请按照以下步骤操作:

  1. 首先,打开您的网页浏览器并访问 www.maltego.com/ce-registration/ 在官方网站上注册一个 Maltego CE 账户。

  2. 接下来,打开 VirtualBox 管理器 应用程序,启动 Trace Labs 虚拟机(TL OSINT VM 2022.1),并使用 osint**/**osint 作为用户名和密码登录。

  3. 一旦您登录到 Trace Labs 虚拟机,点击桌面左上角的 Kali Linux 图标,选择 开源情报 | **框架 | **maltego,如以下截图所示:

图 5.7 – OSINT 框架

图 5.7 – OSINT 框架

  1. 接下来,Maltego 应用程序将在桌面上加载并显示 产品选择 窗口;选择 Maltego CE (免费版) 并点击 运行,如下图所示:

图 5.8 – 产品选择

图 5.8 – 产品选择

  1. 接下来,配置 Maltego 设置菜单将出现;确保勾选 接受 并点击 下一步 > 继续:

图 5.9 – 许可协议

图 5.9 – 许可协议

  1. 接下来,登录 窗口将出现;确保使用在 步骤 1 中创建的凭证并点击 下一步 > 继续:

图 5.10 – 登录 Maltego

图 5.10 – 登录 Maltego

  1. 登录结果 页面,您的登录结果将显示;只需点击 下一步 >

  2. 安装转换 页面,转换集将自动安装;然后点击 下一步 >

  3. Web 浏览器选项 页面,选择 Firefox 作为首选的网页浏览器,然后点击 完成

第二部分 – 使用 Maltego

要使用 Maltego,请按照以下步骤操作:

  1. 一旦 Maltego CE 应用加载完成,点击应用窗口左上角的 Maltego 图标,然后选择 新建 来创建一个新案件文件(项目),如以下屏幕截图所示:

图 5.11 – 创建新案件文件

图 5.11 – 创建新案件文件

  1. 接下来,为了开始识别目标组织的基础设施,从 实体调色板 中搜索 域名 实体,然后将 域名 实体拖放到图形面板上的任意位置,如以下屏幕截图所示:

图 5.12 – 域名实体

图 5.12 – 域名实体

如前面的代码片段所示,实体调色板 包含各种对象,允许我们基于身份、社交媒体、组织甚至网络收集和分析目标的数据。

  1. 接下来,双击 域名 实体以打开其 详细信息 面板,然后将 域名 更改为 microsoft.com 并点击 确定

图 5.13 – 设置目标域名

图 5.13 – 设置目标域名

  1. 要发现域名的 域名系统(DNS) 记录,右键单击 域名 实体 | 所有转换 | 转为 DNS 名称 – NS(名称服务器),结果如以下屏幕截图所示:

图 5.14 – 识别名称服务器

图 5.14 – 识别名称服务器

如前面代码片段所示,Maltego 成功地检索了目标域名的名称服务器。名称服务器用于将域名的主机名映射到 IP 地址。

  1. 要发现域名的电子邮件交换服务器,右键单击 域名 实体 | 所有转换 | 转为 DNS 名称 – MX(邮件服务器),结果如以下屏幕截图所示:

图 5.15 – 识别电子邮件服务器

图 5.15 – 识别电子邮件服务器

  1. 要识别电子邮件服务器的 IP 地址,右键单击 电子邮件服务器 实体 | 所有转换 | **转为 IP 地址 [**DNS],结果如 图 5.16 所示:

图 5.16 – 识别 IP 地址

图 5.16 – 识别 IP 地址

  1. 要查找与域名相关联的网站,右键单击 域名 实体 | 所有转换 | 转为 网站 [快速查找]。

  2. 接下来,要识别网站的 IP 地址,右键单击网站实体 | **到 IP 地址 [**DNS],结果如下所示:

图 5.17 – 与网站关联的 IP 地址

图 5.17 – 与网站关联的 IP 地址

如前面的代码片段所示,Maltego 能够检索目标网站的 IPv4 和 IPv6 地址。

  1. 若要获取与域名关联的电子邮件地址,请右键单击域名实体 | 从域名获取电子邮件地址 | **到电子邮件地址 [**PGP],结果如下所示:

图 5.18 – 电子邮件地址采集

图 5.18 – 电子邮件地址采集

如前面的代码片段所示,Maltego 能够收集与该域名关联的用户电子邮件地址。电子邮件采集可以作为社交工程攻击的一种攻击方式,用于获取目标系统和网络的访问权限。

完成本节后,您已经学会了如何从互联网上收集 OSINT,并使用 Netcraft 和 Maltego 识别组织的基础设施。在下一节中,您将学习如何发现互联网上无意间暴露的系统和网络。

发现暴露的系统

在侦察阶段,伦理黑客和渗透测试员必须识别目标的内部和外部网络基础设施,因为这些信息对于识别攻击面、攻击途径以及为未来操作开发漏洞非常有用。组织通常将其系统和网络连接到互联网,而没有对自身的基础设施进行侦察或 OSINT 渗透测试,以确定是否有任何资产无意间暴露在互联网上。伦理黑客和渗透测试员被组织聘用,目的是识别其系统和网络基础设施的暴露情况,以及如何减少攻击面,防止未来的网络攻击和威胁。

在本节中,您将学习威胁行为者和网络安全专业人员如何利用专门的搜索引擎收集 OSINT,识别组织的基础设施以及服务器上暴露的服务端口。此外,您还将学习招聘人员如何在招聘网站上泄露有关其组织系统和网络基础设施的敏感数据,这使得攻击者能够改进他们的规划和操作。

Shodan

Shodan 是一个专业的互联网搜索引擎,使得像道德黑客这样的网络安全专业人员能够发现暴露的系统,例如服务器、物联网设备、调制解调器、视频监控系统以及工业控制系统ICSes)。Shodan 帮助网络安全专业人员确定其组织的系统是否暴露在互联网上,以及敌方可能收集到哪些类型的数据。例如,许多组织在没有意识到的情况下将其网络基础设施连接到互联网,导致其内部服务器和系统无意中暴露给互联网上的所有人和所有事物,如黑客和恶意软件。

对于道德黑客来说,从 Shodan 收集的数据可以帮助识别暴露的服务器、开放的服务端口、正在运行的服务和技术以及已知的安全漏洞。此类信息可以被真正的对手在规划攻击时利用。然而,道德黑客利用相同的技术和信息模拟真实的网络攻击,以识别隐藏的安全漏洞,并提供如何减少攻击面的信息。需要记住的是,并非所有组织都具备相同的安全意识培训、专门的安全团队以及保护其资产的技术。因此,道德黑客和渗透测试员是白帽黑客,他们利用自己的技能帮助公司提高网络防御和安全态势,以防止未来发生真实的网络攻击。

要开始使用 Shodan,请按照以下说明操作:

  1. 在你的计算机上,打开网页浏览器,访问 www.shodan.io/,并注册一个免费用户账户。

  2. 一旦你的用户账户创建完成,登录 Shodan 网站,如图 5.19所示:

图 5.19 – Shodan 网站

图 5.19 – Shodan 网站

  1. 使用 Shodan 搜索栏,执行 windows server 2008 的搜索,查找所有运行 Microsoft Windows Server 2008 的互联网系统,如下图所示:

图 5.20 – 识别 Windows 服务器

图 5.20 – 识别 Windows 服务器

  1. 接下来,要根据特定国家过滤搜索结果,可以将 country:"国家代码" 语法附加到搜索中,例如 windows server 2008 country:"US",如下图所示:

图 5.21 – 根据位置识别设备

图 5.21 – 根据位置识别设备

如前面的代码片段所示,国家语法使我们能够过滤特定国家或地理位置的结果。这个语法对于识别位于特定位置的公司服务器非常有用。

提示

要了解更多关于 Shodan 过滤器的信息,请参见 www.shodan.io/search/filters

  1. 要识别运行特定服务或开放端口的服务器和设备,请在搜索框中添加 port:端口号 语法,例如 windows server 2008 country:"US" port:3389,如下图所示:

图 5.22 – 识别具有特定运行服务的设备

图 5.22 – 识别具有特定运行服务的设备

如前面的代码片段所示,Shodan 能够识别位于美国的 Microsoft Windows Server 2008 系统,该系统开放了服务端口 3389 并运行 远程桌面协议RDP)。此外,Shodan 还能够在登录窗口上执行屏幕截图并显示用户账户。

  1. 接下来,点击搜索结果页面中的任意系统以查看服务器的详细信息,如开放的服务端口、运行的服务,以及是否存在已知的安全漏洞:

图 5.23 – 地理位置数据

图 5.23 – 地理位置数据

如前面的代码片段所示,Shodan 收集地理位置详细信息,这些信息可以被道德黑客在渗透测试评估中用来识别目标的物理位置。

以下代码片段显示了服务器上开放的服务端口号和运行的服务:

图 5.24 – 识别开放端口和服务

图 5.24 – 识别开放端口和服务

每当服务器上运行某个服务时,都会开放一个服务端口来监听传入的消息。道德黑客可以通过识别开放的服务端口,分析服务并确定正在运行的服务数量,如 超文本传输协议HTTP)– 端口 80远程过程调用RPC)– 端口 135NetBIOS – 端口 137139安全超文本传输协议HTTPS)– 端口 443服务器消息块SMB)– 端口 445,以及 RDP – 端口 3389。然后,道德黑客可以识别每个运行的服务中的安全漏洞,这些漏洞可以被利用来获得对目标系统的访问权限。

重要提示

要了解每个服务端口号的详细信息,请查看 www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml 上的服务名称和端口号注册表。

最后,Shodan 能够识别服务器和设备上的已知安全漏洞,列出它们的 常见漏洞和暴露CVE)标识符和描述,如下图所示:

图 5.25 – 服务器上的漏洞

图 5.25 – 服务器上的漏洞

如前面的步骤所示,道德黑客可以收集 Shodan 上找到的数据,创建目标系统和网络基础设施的概况,识别主机操作系统和运行服务、开放服务端口号、漏洞,甚至远程服务的用户名。

重要提示

若要获取有关报告的漏洞的更多信息,请访问 cve.mitre.org/,这是一个开放数据库,安全专家可以记录和跟踪安全漏洞。此外,每个 CVE 记录提供有关漏洞的详细信息,例如如何被利用以及解决问题的建议。

完成本次练习后,你已经学会如何使用 Shodan 来发现互联网中存在漏洞和暴露的系统。接下来,你将学习如何利用 Censys 的数据来识别一个组织拥有的系统。

Censys

Censys 是一个搜索引擎,使道德黑客能够收集有关服务器的信息并识别其攻击面。它通过索引来自域名、IP 地址、数字证书以及互联网上其他元素的数据来运行。数据被收集、分析并以用户友好的格式呈现,从而使道德黑客能够在侦察阶段轻松找到有关目标的特定数据。

若要开始使用 Censys 来识别一个组织的攻击面,请按照以下说明操作:

  1. 在你的计算机上,打开浏览器并访问 search.censys.io/。注册账户并登录:

图 5.26 – Censys 搜索

图 5.26 – Censys 搜索

  1. 接下来,在 Search 字段中输入目标的 IP 地址或域名,并点击 Search 进行查询,如 图 5.27 所示:

图 5.27 – IP 查询

图 5.27 – IP 查询

如前面代码片段所示,Censys 能够获取有关 IP 地址的网络数据,如服务器上的开放端口和运行服务、地理位置以及数字证书的详细信息。

  1. 接下来,点击 Explore 标签查看相关的 IP 地址、域名和服务器:

图 5.28 – 查看关联的系统

图 5.28 – 查看关联的系统

如果你右键点击 Explore 标签上显示的任何系统,可以进一步收集该系统的情报,例如其主机名和证书详细信息。这对于进行外部网络渗透测试和识别目标拥有的其他资产非常有用。

  1. 点击 History 标签查看目标系统的变化列表。历史数据对于道德黑客来说非常有价值,因为它能够显示软件或配置的变更。

  2. 最后,点击 WHOIS 标签,收集目标的网络、托管和注册商的详细信息,如下图所示:

图 5.29 – WHOIS 数据

图 5.29 – WHOIS 数据

Censys 提供的信息可以用来提升目标的资料,例如识别额外的资产、开放端口以及服务器上运行的服务。这些信息对于确定组织系统和网络的攻击面及安全漏洞非常有用。此外,道德黑客还可以提供关于他们的组织如何在互联网上泄露关于资产的技术数据的见解,以及这些数据如何被对手利用。

招聘网站

在全球的劳动力市场中,人们通常根据自己的偏好在不同公司和职位之间流动,公司也在扩展,创造了更多的招聘机会。因此,每当一名员工因升职或离开公司而离开当前的职位时,人力资源HR)部门就会启动离职流程,并开始寻找新的候选人来填补空缺的职位。为此,HR 招聘人员会在一个或多个招聘网站上发布关于空缺职位的详细信息,任何人都可以查看该职位的描述和候选人的要求。

然而,组织在发布技术职位的招聘信息时,有时会泄露过多关于其系统和网络基础设施的敏感数据。从 HR 的角度来看,他们列出了所有潜在候选人申请该职位前应了解的必要细节。例如,职位描述中包含了总结、职位角色、职责(工作内容)和所需资格等信息,帮助候选人更好地判断该职位是否适合他们。

从对手的角度来看,招聘信息中发现的技术细节可以作为开放源信息(OSINT)加以利用,因为它们能识别出公司内部网络的技术、操作系统、供应商设备、系统和网络基础设施。攻击者可以利用这些信息研究 IT 基础设施中的安全漏洞,制作漏洞利用工具和恶意软件,并确定适合将有效载荷传递到目标的攻击向量。作为一名道德黑客或渗透测试员,招聘网站是收集目标组织 OSINT 的宝贵数据来源,因为招聘人员或 HR 可能在不自觉的情况下泄露大量敏感数据。

为了更好地理解对手和道德黑客如何利用招聘信息中的数据,我们来分析以下内容:

图 5.30 – 招聘信息中的数据泄露

图 5.30 – 招聘信息中的数据泄露

如前面片段所示,招聘人员列出了理想候选人所需的主要资格和经验/知识,例如 Microsoft 365、Azure Active Directory** (AD)、无线网络、路由和交换、防火墙、虚拟专用网络(VPNs**)、Windows 服务器、灾难恢复系统等等。

从前面片段中找到的技术列表中可以得出以下内容:

  • 组织正在使用云计算提供商托管部分服务和资源。因此,如果他们的 IT 团队错误配置了云服务,道德黑客可能会获得立足点,并访问目标拥有的云资源。

  • 公司正在使用 Microsoft 365 应用程序和服务,可能包括 SharePoint 和基于云的电子邮件服务。这意味着道德黑客可以利用社会工程技术欺骗员工,以获取他们的用户凭据,从而访问用户的账户。

  • 公司的物理位置有无线网络基础设施。因此,道德黑客可以确定公司的物理位置,并利用无线网络获取内部网络的立足点。

  • 企业有有线网络基础设施,包括路由器和交换机。具备网络基础知识,并理解主要网络供应商设备的配置和运作方式,非常重要。

  • 组织拥有一个或多个防火墙设备,用于过滤网络之间的流量。

  • 公司在分支办公室之间使用站点到站点 VPN 和/或远程访问 VPN 供各种员工使用。因此,如果分支办公室的安全性较弱,道德黑客可以从一个分支办公室向另一个分支办公室进行攻击。此外,如果能够获取 VPN 用户的账户,道德黑客可以伪装成授权用户远程连接到目标网络基础设施。

  • 组织有本地的 Windows 服务器,并且正在使用 Microsoft Azure AD 服务进行复制和冗余。因此,道德黑客可以创建或获取 Microsoft Windows Server 操作系统的漏洞利用,并研究 Microsoft AD 角色和服务中的漏洞。

此外,当组织在招聘网站上发布职位空缺时,建议访问公司的社交媒体页面和官方网站,以识别可以改善目标分析的任何额外数据泄漏。有时,目标可能会在社交媒体上发布关于最近在其网络中实施新技术的信息。然而,道德黑客可以利用这些信息研究系统中的安全漏洞,以更好地规划他们的攻击方法论。

完成本节内容后,您已经了解了威胁行为者和道德黑客常用的各种战术和技巧,这些方法用于收集和分析 OSINT,从而建立目标的个人档案。

收集社交媒体上的 OSINT

社交网络平台提供了一种媒介,使人们能够超越传统边界,数字化地与朋友和家人连接,分享经历和生活瞬间。通过社交媒体平台,个人可以创建账户,并在生活发生变化时更新自己的资料,与他人分享具体时刻的照片和视频,加入针对共同话题的讨论组。通过社交媒体平台,人们不再需要在特定地点亲自出席一个论坛;他们可以简单地加入一个在线小组,发布自己的意见并评论其他讨论。

人们使用社交媒体的目的各不相同,从与朋友和家人保持联系,到从家里创业并宣传在线业务。社交媒体改变了人类彼此连接和共享信息的方式。例如,新闻公司利用社交媒体实时发布事件,以便与在线关注者分享信息,从而帮助公司扩大其受众范围。全球许多组织每天都使用社交媒体平台来向新客户和现有客户推广产品和服务,并收集消费者的反馈,以便改进他们的服务。

简单来说,社交媒体平台帮助许多人和组织分享信息,并与世界各地的人们建立联系。然而,攻击者也利用社交平台收集关于其目标(如个人和组织)的信息。组织通常会在其社交媒体页面上发布新产品、服务和职位空缺。黑客可以利用公司社交媒体页面上的关注者名单来识别目标组织的员工。这些信息可以被用来对员工进行社交工程攻击,意图是欺骗员工透露其用户凭证或将恶意软件安装到公司的系统中。有时,某个组织可能会宣传一个新的职位空缺,并泄露大量关于其内部基础设施的技术细节,这些信息可能被攻击者利用。

作为一名收集目标信息的道德黑客,社交媒体平台包含了大量关于个人和组织的数据。例如,以下类型的数据可以在个人的社交媒体资料中找到并被收集:

  • 联系方式:电子邮件地址和电话号码可能会被用作未来的社交工程攻击目标。

  • 照片和视频:这些媒体类型可能包含员工徽章、工作空间、计算机、办公室位置以及背景中的敏感物品。例如,员工徽章的照片可以帮助攻击者制作伪造的徽章,从而获得进入大楼的物理访问权限。照片和视频还可能泄露写在纸上的密码、计算机上运行的应用程序以及拍摄地点。

  • 他们喜欢的午餐地点:这些信息可以用来判断这个人在午餐时间是否有可能去某个特定餐馆。这为在餐馆地点设置 watering hole 攻击 提供了思路。watering hole 攻击 使攻击者能够通过在常见访问的网站上植入恶意软件,或甚至通过入侵餐馆的无线网络,来针对特定人群。攻击者希望员工连接他们的移动设备到无线网络,并通过恶意软件感染他们的设备。

  • 查看喜好和不喜欢:这些信息对于确定一个人的偏好以及是否为不满的员工非常有用。

  • 朋友和联系:朋友和联系人列表可能包含目标组织的其他员工,而他们的个人资料可能泄露关于公司的敏感信息。

  • 用户名:社交媒体平台允许用户在其个人资料上列出其他社交媒体账号。这些账号是他们在线账户的用户名。

各种在线工具通常用于帮助伦理黑客快速找到个人和组织的社交媒体账户。例如,社交搜索器 (www.social-searcher.com) 使你能够基于提及(标签)、用户和趋势来查找社交媒体账户。

以下代码片段显示了我在社交搜索器上搜索我的名字时的结果:

图 5.31 – 社交搜索器

图 5.31 – 社交搜索器

上面的代码片段是一个概念验证示例,我通过使用我的名字进行查询,结果显示了我过去在社交媒体上发布的各种个人资料和帖子。同样,伦理黑客可以利用这个在线工具快速发现目标的社交媒体资料和账户,无论目标是个人还是组织。

在接下来的几个小节中,你将学习如何利用各种工具和技术收集社交媒体账户的数据。

Sherlock

Sherlock 是一款流行的 OSINT 工具,使伦理黑客能够高效地在多个社交媒体网站上执行用户名查询,以识别目标的账户。这个工具可以迅速在 200 多个社交媒体平台上搜索目标的用户名,自动化地在每个网站上检查,并在完成后提供报告。

要开始使用 Sherlock 在互联网上发现目标用户名的位置,请使用以下说明:

  1. 首先,启动您的 Kali Linux 虚拟机。

  2. 接下来,打开终端并执行以下命令,更新软件包存储库源列表并从其官方 GitHub 存储库下载 Sherlock:

    kali@kali:~$ sudo apt update
    
    kali@kali:~$ git clone https://github.com/sherlock-project/sherlock
    
  3. 接下来,请使用以下命令将工作目录更改为 Sherlock 文件夹,并安装其要求和依赖项:

    kali@kali:~$ cd sherlock
    
    kali@kali:~/sherlock$ python3 -m pip install -r requirements.txt
    
  4. 安装完成后,使用python3 sherlock <username>语法在各种社交媒体平台上执行用户名查找,如下所示:

    kali@kali:~/sherlock$ python3 sherlock microsoft --timeout 5
    

以下片段显示了使用--timeout参数执行前述命令,指示 Sherlock 在任何社交媒体网站上最多花费 5 秒钟的时间:

图 5.32 – Sherlock

图 5.32 – Sherlock

  1. 当 Sherlock 完成查找后,它会自动在当前目录下创建一个文本文件,列出用户名在哪些社交媒体网站上找到:

图 5.33 – 显示收集的数据

图 5.33 – 显示收集的数据

正如前面片段所示,Sherlock 已提取结果并将其插入到一个文本文件中。这使得道德黑客在执行多个用户名查找时能够半自动化其数据收集过程。但请确保手动检查结果中的每个 URL 以确保其有效。

提示

要了解更多关于 Sherlock 及其功能的信息,请访问其官方 GitHub 存储库:github.com/sherlock-project/sherlock

作为道德黑客,从 Sherlock 收集的数据可以进一步用于发现敏感信息的用户名和数据泄露,找到员工和联系方式,以便计划未来的操作,如社会工程攻击。

Facebook IDs

Facebook 是一个流行的在线社交网络平台,使人们和组织能够通过数字方式互相连接和分享信息。用户注册帐户后,会自动创建一个用户资料,使其能够更新其个人资料详细信息,分享媒体并与他人连接。帐户创建后,用户可以加入或创建 Facebook 上的群组和页面。群组是一些具有相似兴趣或讨论的大量人群,而页面则类似于数字场所,使组织、专业人士和艺术家能够与其客户和支持者连接。

当创建一个帐户(个人资料)、页面或群组时,Facebook 会自动为其分配一个唯一的标识符。如果有两个或多个帐户具有相同的名称,则标识符是一个唯一的数字,可以用来区分不同的帐户。作为一名道德黑客,当你收集使用 Facebook 作为社交媒体平台的目标的信息时,可以获取这些标识符。这些信息可以用来识别目标帐户,并过滤他们的帖子,以查找关于帐户持有人的敏感细节。

当你以用户身份登录到 Facebook 后,你可以使用搜索框查找人、群组和页面。如果你想查找目标曾经访问过的常见地点,你需要调整 Facebook 搜索过滤器,直到找到你想要的内容。然而,我们可以利用 Intelligence X 平台帮助我们查找有关 Facebook 上帐户、群组或页面的特定数据。Intelligence X 是一个搜索引擎和数据存档平台,帮助道德黑客从多个数据源中找到有关目标的特定数据。

要开始使用 Intelligence X 收集社交媒体情报,请使用以下说明:

  1. 首先,确保你已使用 sock** **puppet 帐户登录 Facebook www.facebook.com

  2. 接下来,使用 Facebook 搜索框找到你的目标帐户或页面。例如,我们可以使用一个公众人物页面来进行这个练习:

图 5.34 – Facebook 页面

图 5.34 – Facebook 页面

在帐户或页面上,你可以看到很多信息,比如最近访问的地方、包含敏感细节的照片、视频等等。

  1. 当你在目标的个人资料或页面上时,右键点击页面的任意位置,选择 查看页面源代码 来查看网页编码。

  2. 接下来,使用网页浏览器的 查找 功能,搜索 userID,如下截图所示:

图 5.35 – 查找 userID 值

图 5.35 – 查找 userID 值

如前所示,个人资料或页面的 userID 值为 4。确保记录此值,因为稍后的步骤中会用到它。

重要提示

Facebook 帐户(个人资料)、群组和页面包含一个可以在其源代码中找到的唯一标识符。通过在源代码中搜索 userIDentity_idpage_idgroup_id,可以找到这些标识符。

  1. 接下来,在相同的网页浏览器中打开一个新标签页,访问 Intelligence X 工具页面 intelx.io/tools。在 社交媒体工具 类别中,点击 Facebook 打开 Facebook** **Graph Searcher

  2. 接下来,在 ID of the user 字段中输入 userID 值(4),在 Talking about 字段中输入一个关键字以过滤搜索结果,然后点击 Search,如下截图所示:

图 5.36 – Facebook 图谱搜索器

图 5.36 – Facebook 图谱搜索器

  1. 接下来,新的标签页会自动打开,并加载通过关键词过滤目标资料或页面的搜索结果,如屏幕截图所示:

图 5.37 – 过滤社交媒体帖子

图 5.37 – 过滤社交媒体帖子

如前面的代码片段所示,结果通过关键词New York进行了过滤。

作为一名道德黑客,Intelligence X 提供了快速过滤目标发布的帖子、图片和视频搜索结果的能力。此外,关键词帮助过滤搜索结果,使我们能够找到特定类型的数据。

Instagram

Instagram 是一个社交媒体平台,允许人们与他们的粉丝分享照片和视频。作为一名道德黑客,你通常会注意到人们分享自己的照片以及其他物品,而不考虑这些照片或视频中的背景内容。

以下是收集 Instagram 信息时需要考虑的关键细节:

  • 照片中的人是谁?这些人之间有联系吗?如果有,他们是如何关联的?

  • 背景中的物体是什么?

  • 你能根据背景中的物体识别照片的地理位置吗?

  • 照片是何时何地拍摄的?

有时,个人或组织员工会上传自己的照片,但在照片中透露出他们计算机桌面上的图标或文件。一个威胁行为者,如果瞄准了某个组织,可以通过员工上传的照片,寻找照片中的任何线索,帮助提升网络攻击的利用阶段。例如,计算机桌面图标可以揭示员工常用的应用程序和软件,攻击者也可以通过桌面界面和桌上写着的任何用户凭证来识别主机操作系统。

随着近年来安全和隐私功能的不断改进,收集社交媒体平台上的数据变得更加具有挑战性。然而,通过访问 Instagram 用户的个人资料或页面,你仍然可以收集以下数据:

  • 用户名

  • 电子邮件地址

  • 电话号码

  • 地址

  • 话题标签

每个个人资料或页面都会显示账户的用户名作为其标识符;因此,道德黑客可以对目标账户进行用户名采集。许多企业会在其 Instagram 个人资料或页面上列出联系信息和地址,以帮助潜在客户与他们沟通。然而,这些联系信息和地址也可以用来规划社会工程攻击,并确定公司的地理位置。有时,个人和组织使用话题标签(Hashtags)来创造潮流。因此,监控话题标签使你能够追踪,并在目标或任何人使用该话题标签发布内容时收到通知。

作为概念验证,以下代码片段显示了我个人的 Instagram 页面以及一些情报数据:

图 5.38 – Instagram 页面

图 5.38 – Instagram 页面

如前面的代码片段所示,以下是关于账户持有人的一些信息:

  • 用户名

  • 身份

  • 职业

  • 个人资料的目的

  • 网站

  • 图片

访问一个更受欢迎的 Instagram 账户将包含数百张图片、视频和故事(短片),而分析这些大量数据可能变得具有挑战性。Instaloader 使道德黑客能够高效地从公开资料中收集各种类型的数据,如照片、视频、位置、故事等。

若要开始使用 Instaloader 收集个人或组织的 Instagram 数据,请使用以下说明:

  1. 首先,启动 Trace Labs OSINT 虚拟机,并使用 osint**/**osint 作为用户名和密码登录。

  2. 打开浏览器,找到目标并记录其资料上的用户名。

  3. 接下来,打开终端并执行 instaloader --help 命令查看各种命令及其用法。

  4. 接下来,使用 instaloader profile <username> 语法下载该账户上所有公开可用的数据,如下所示:

    osint@osint:~$ instaloader profile zuck
    

上述命令将下载图片、视频、位置、故事和动态数据,并将其保存在/home/osint/目录中,如下图所示:

图 5.39 – 下载文件

图 5.39 – 下载文件

如前面的代码片段所示,Instaloader 离线下载了图片、视频、地理位置和动态数据,供后续分析使用。

作为一名道德黑客,确保在分析阶段检查每个下载的文件,确定它是否有助于建立目标的资料或未来的攻击操作。

LinkedIn

LinkedIn 是一个社交网络平台,旨在为学者、行业专业人士、学生和研究人员提供一个连接、合作和分享想法的空间。作为一名道德黑客,你可以从 LinkedIn 上收集大量关于目标的信息,无论目标是个人还是组织。以下是从个人 LinkedIn 资料中可以收集的常见数据类型:

  • 姓名

  • 位置

  • 当前和过去的工作

  • 教育经历

  • 员工证件和工作场所的照片

  • 过去的项目

LinkedIn 个人资料就像每个用户的简历和履历表,以网页形式呈现,允许他人基于共同兴趣查看并建立联系。虽然 LinkedIn 拥有许多隐私功能,允许用户限制他人访问其个人资料,但威胁行为者可以创建假账户,并欺骗目标与其建立联系,从而使攻击者能够查看其 LinkedIn 资料的详细信息。

假设每次一个人换工作时,他们都会更新自己的工作经历以反映变化。这可能包括在新公司添加一个新的职位名称,并包括对其角色和职责的描述。虽然这些信息对人力资源专业人员和招聘人员有用,但攻击者可以在职位描述中寻找任何技术细节,以识别组织的网络基础设施和系统。此外,如果用户参与了一个技术项目,员工可能会在 LinkedIn 个人资料中加入技术细节,这为组织的基础设施、技术以及是否存在安全漏洞提供了更好的洞察。

另一种技术是将员工获得的 IT 认证列表与他们的工作历史进行映射,信息来自他们的 LinkedIn 个人资料。许多员工获得 IT 认证,以便在工作中变得更加熟练,并更好地理解组织内使用的技术。例如,如果一名 LinkedIn 用户在过去 4 年里一直在目标组织工作,并在这段时间内获得了特定的 Microsoft 认证,这表明该公司可能正在使用(或已实现)这些特定的技术。因此,这些信息可以从 LinkedIn 上收集,用于从用户的在线简历中分析并描绘组织的情况。作为道德黑客,这些技术可以帮助你更好地分析并深入了解目标使用的技术。

作为一名道德黑客,拥有 LinkedIn 上的假身份可以帮助你检查目标和他们员工之间的关系。使用以下 Google Dork 语法,你可以通过指定某个人的姓名来查找 LinkedIn 个人资料:

site:linkedin.com NAME intitle:professional

以下代码片段展示了使用我名字的概念验证:

图 5.40 – Google Dorking

图 5.40 – Google Dorking

正如你可能已经意识到的,人们在 LinkedIn 上分享了大量信息,这些信息可以被收集和分析。因此,分享过多信息可能被用于好与坏的行为。

Twitter

Twitter 是另一个流行的社交平台,允许人们发布简短的消息、图片和视频片段,并允许他们关注其他用户并在他们发布新内容时收到通知。在过去的几年里,人们几乎在平台上发布了关于自己思想和日常活动的一切。作为一名道德黑客,你可以使用假身份从目标的 Twitter 账户中收集以下类型的数据:

  • 个人资料处理:可用于识别其他在其帖子中标记目标的用户

  • 个人资料描述:可用于更好地理解你的目标

  • 位置:可用于识别目标的实际位置

  • 网站:帮助你识别他们的网站并收集数据用于其他类型的攻击

  • 加入日期: 表示档案的年龄,有助于确定目标发布新文章的频率,并识别用于在平台上发布的设备类型

  • 媒体: 允许您查看可能包含敏感细节和地理位置数据的任何照片和视频

  • 喜欢: 帮助您确定目标的偏好和兴趣

  • 推文: 查看您的目标发布的实际内容

  • 关注者: 帮助识别公司员工

完成本节后,您已了解伦理黑客如何从社交媒体平台收集敏感数据,以更好地描述他们的目标。

概要

在本章的过程中,您学习了如何从各种数据源收集和分析开源情报(OSINT),以识别组织的网络基础设施。此外,您还了解了如何利用各种在线网站,如 Shodan、Censys、社交媒体平台,甚至招聘网站,来查找数据泄漏,洞察威胁行为者如何利用数据来描述组织并确定其攻击面。

希望本章对您有所帮助,并在您在网络安全行业的旅程中有所帮助。在下一章节 图像、人员和信号情报 中,您将学习如何分析图像并使用地图应用程序来识别目标的物理位置,从在线数据库收集用户凭据,并识别区域内的无线设备。

进一步阅读

第六章:图像、人物与信号情报

照片能告诉你很多信息,威胁行为者会收集他们目标的图像情报,以识别其地理位置以及图片背景中可能包含的敏感数据,这些数据可以用来改善他们的操作。世界各地的人们总是在社交媒体平台上发布自己、家人及其位置的照片,却没有完全意识到对手是如何追踪他们的位置的。

在本章中,您将学习如何分析图像和地图以识别目标的物理位置,并从公共数据库中收集和分析数据,以识别有效的用户名和密码。此外,您将学习如何进行无线信号情报分析,识别区域内的无线设备,并分析目标无线网络基础设施。

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

  • 图像和元数据分析

  • 人物和用户情报

  • 无线信号情报

让我们深入了解!

技术要求

要跟随本章的练习,请确保您已满足以下硬件和软件要求:

图像和元数据分析

可交换图像文件(EXIF) 是一种标准,指定了在图像处理设备(如扫描仪和数码相机)中常用的声音和图像的格式。简单来说,EXIF 是嵌入在数码相机拍摄的照片文件中的元数据,包括相机数据,如地理位置、时间和日期、制造商、分辨率等。带有 EXIF 数据的图像可以被道德黑客用来进行侦察和社会工程攻击。

作为一名道德黑客,你可以收集目标的公开图像并分析其中的 EXIF 数据。收集到的 EXIF 数据可能会揭示目标的地理位置、拍摄照片的设备类型以及拍摄照片的时间。例如,如果一张照片是在一个组织的服务器室内用数码相机拍摄的,那么被聘请模拟现实世界网络攻击的道德黑客可以识别是否有地理位置数据,并利用它确定服务器室的实际位置和目标公司的位置。此外,EXIF 数据还可以被道德黑客用来提升他们的社会工程攻击,通过识别照片的地理位置并发送看似来自目标相同物理位置的网络钓鱼邮件,从而试图欺骗目标,认为邮件来自可信来源。

然而,许多智能手机和移动操作系统厂商已加强了其设备的安全性,并实施了安全机制,以防止敏感的 EXIF 数据附加到使用其设备拍摄的照片和视频中。试想,如果所有上传到互联网的照片都包含 EXIF 数据,网络犯罪分子将能够比以前更容易地通过智能手机或计算机追踪潜在的受害者。因此,EXIF 位置数据多年来已变得更加安全,减少了有人从照片中收集全球定位系统GPS)数据的风险,一些社交媒体平台也实施了安全机制,在照片发布到在线平台之前删除 EXIF 数据。

重要提示

数字取证调查员可以使用照片中的 EXIF 数据来确定照片拍摄的时间和地点。这些信息在调查中非常有用,因为它有助于识别潜在的嫌疑人并专注于攻击的时间线。

EXIF 提供了大量数据,经过道德黑客的正确利用,可以用来确定目标的所在位置、用于拍摄照片的设备、目标所面向的方向、设备设置等更多信息。

EXIF 数据分析

在本练习中,你将学习如何识别和分析照片中的 EXIF 数据,并确定拍摄地点的地理位置。要开始此练习,请按照以下说明操作:

  1. 打开Trace Labs OSINT 虚拟机并使用osint**/**osint作为用户名和密码登录。

  2. 一旦你登录到 Trace Labs OSINT 虚拟机,打开网页浏览器并访问osint.tools进行练习文件操作。在左侧栏的菜单中,你将看到一个资源列表–点击Exif 示例 1,如图所示:

图 6.1 – EXIF 文件

图 6.1 – EXIF 文件

  1. 接下来,网页上会加载一张图片。右键点击图片,选择保存图片为...将图片下载并保存到Trace Labs 虚拟机中,如下所示:

图 6.2 – EXIF 图片

图 6.2 – EXIF 图片

默认情况下,所有下载的文件都会自动保存在 Trace Labs 虚拟机上的/home/osint/Downloads目录中。

  1. 接下来,使用exiftool从图片文件中提取 EXIF 数据。打开Terminal并执行以下命令:

    osint@osint:~$ exiftool Downloads/exif1.jpg
    

以下截图显示了执行前述命令后的输出结果:

图 6.3 – EXIF 数据

图 6.3 – EXIF 数据

如前截图所示,我们能够查看图片的 EXIF 数据。可以收集和分析时间和日期、地理位置、设备类型和型号以及分辨率等信息。

  1. 接下来,我们使用exifprobe工具从同一张图片中提取 EXIF 数据:

    osint@osint:~$ exifprobe Downloads/exif1.jpg
    

如下截图所示,exifprobe 工具从图片中提取了 EXIF 和地理位置数据:

图 6.4 – exifprobe 工具

图 6.4 – exifprobe 工具

  1. 接下来,再次打开浏览器,访问fotoforensics.com/,在该网站上你可以上传图片以提取 EXIF 数据。只需点击Browse...附加文件,然后选择Upload进行提取和分析,如下所示:

图 6.5 – Fotoforensics 网站

图 6.5 – Fotoforensics 网站

几秒钟或几分钟后,网站会显示所有的 EXIF 数据,并提供多个特定的数据类别供查看。

  1. 接下来,选择Analysis** | **Metadata查看 EXIF 数据:

图 6.6 – 查看元数据

图 6.6 – 查看元数据

以下截图显示了文件中找到的所有 EXIF 数据:

图 6.7 – 从上传的图片提取的 EXIF 数据

图 6.7 – 从上传的图片提取的 EXIF 数据

  1. 接下来,向下滚动 EXIF 结果页面的底部,查看图片的地理位置:

图 6.8 – 地理位置数据

图 6.8 – 地理位置数据

如前截图所示,找到了 GPS 数据,并将其应用于映射系统,以识别拍摄照片的大致位置。

  1. 最后,你可以复制前一步骤中的 GPS 坐标,并将其输入到maps.google.com(Google Maps)中,获取关于该位置的第二次意见,如下所示:

图 6.9 – Google Maps

图 6.9 – Google Maps

如前截图所示,GPS 坐标可以用于 Google Maps,帮助更好地了解该位置的周围环境和街景。

反向图像搜索

反向图像搜索允许任何人通过上传照片或提供指向图像的 URL 来进行互联网搜索。就像大多数人熟悉使用互联网搜索引擎根据关键词查找网站和域名一样,反向图像搜索使我们能够找到不同尺寸和分辨率的相似图片、相同图片的不同版本,甚至找到包含相同物体的图片。

反向图像搜索对道德黑客非常有用,因为它使他们能够识别图片的来源和位置,并确定图片在互联网上的使用情况。如果你试图识别目标拍摄照片的地点,这项技术能帮助你找到该位置。

以下是进行反向图像搜索的流行搜索引擎:

为了更好地理解反向图像搜索如何帮助道德黑客识别目标的地理位置,让我们考虑以下场景:

  1. 你得到了一张照片,并需要识别照片拍摄的地点。在这个练习中,我们使用了由摄影师 Mauro Lima 拍摄的公开可用照片,照片来源于 unsplash.com,如下所示:

图 6.10 – 示例照片

图 6.10 – 示例照片

如前图所示,这是一张由摄影师拍摄的宗教场所的美丽照片。有时,在进行反向图像搜索之前,建议先移除照片中的物体或主体,以确保搜索引擎能够更好地识别互联网上的相似图片。

提示

能够识别特定的建筑风格、标识、植物和动物可以帮助你确定照片拍摄的具体地区。例如,某些类型的树木只能在特定国家找到。

  1. 我们可以使用 Cleanup.pictures (cleanup.pictures) 来从图片中移除特定的物体,比如人物和车辆。以下截图显示了 Cleanup.pictures 网站以及上传字段,在此上传你的图片:

图 6.11 – Cleanup.pictures 网站

图 6.11 – Cleanup.pictures 网站

  1. 接下来,使用橡皮擦刷选择你想要移除的物体和人物,并启用 人工智能(AI) 来自动填充高亮区域:

图 6.12 – 物体与人物

图 6.12 – 物体与人物

  1. 接下来,确保你下载并保存 AI 修改后的图像:

图 6.13 – 人工智能修改的图像

图 6.13 – 人工智能修改的图像

提示

你可以在 www.remove.bg 使用 Remote Background 来去除图片的背景。

  1. 接下来,要执行反向图像搜索,请访问 Google Images images.google.com,并上传修改后的图像以查看搜索结果,如下所示:

图 6.14 – 反向图像搜索结果

图 6.14 – 反向图像搜索结果

如前所示的屏幕截图,已找到该位置及类似图像。

重要提示

Google Images 已集成 Google Lens 来改进图像搜索。这项技术使你能够选择图像的特定区域,或者选择整个图像。

  1. 接下来,在 Google Maps maps.google.com 中输入 Convento de Santo Domingo, Cartagena 位置,如下所示:

图 6.15 – 谷歌地图

图 6.15 – 谷歌地图

  1. 最后,使用谷歌地图上的 街景 功能,你可以虚拟地浏览该位置,收集更多的情报:

图 6.16 – 谷歌地图街景

图 6.16 – 谷歌地图街景

如前所示的屏幕截图,我们找到了摄影师拍摄照片的位置。

如你现在所了解的,反向图像搜索帮助道德黑客识别目标的地理位置及所在位置,并使用全球地图系统查看该位置周围的环境。这些知识在进行物理渗透测试评估时也非常有用,能够识别进入建筑或院落的最少阻力的入口点。

地理位置分析

地图系统是道德黑客识别目标组织及其周边环境物理位置的优秀数据源。假设你需要在黑盒评估期间对目标组织进行无线渗透测试,你可以通过搜索组织的名称,查找其网站,并查看地址是否列出。此外,你还可以使用像 Google Maps 这样的公开在线地图来识别组织的物理位置。

例如,我们可以使用谷歌地图查找 Twitter 总部的物理位置(红色图钉),并更好地了解其周围环境,如下所示:

图 6.17 – 定位公司

图 6.17 – 定位公司

如前所示的屏幕截图,谷歌地图为我们提供了该建筑的图片,帮助更好地识别目标、其街道地址、营业时间及联系信息,这些信息可以在未来的操作中使用,如社会工程攻击。

切换到谷歌地图的卫星视图可以帮助我们更好地了解公司布局及周围区域,比如识别作为道德黑客进行无线攻击的地方:

图 6.18 – 卫星视图

图 6.18 – 卫星视图

此外,我们可以观察到附近有员工经常访问的餐厅,并可能将他们的移动设备连接到餐厅的无线网络。作为一名道德黑客,您可以设置一个伪造的无线网络,诱使您的目标员工连接并将其流量重定向到钓鱼网站,并执行域名系统DNS)投毒攻击。

谷歌地图提供了街景功能,使道德黑客可以与街道的全景视图进行交互,让您查看目标建筑物周围的环境,并寻找停车场、入口点和安全检查点。

以下截图向您展示了不离开电脑就能看到 Twitter 总部的街景:

图 6.19 – 街景

图 6.19 – 街景

作为一名道德黑客,您可以利用街景查看侧面和其他可能便利且安全性较低的路径,用于进行物理渗透测试和无线网络评估。

以下截图显示了 Twitter 大楼的侧视图,其中有一家小餐厅:

图 6.20 – 侧视图

图 6.20 – 侧视图

虽然道德黑客使用这些策略和技术来帮助组织,但威胁行为者也在利用它们进行恶意目的。因此,组织确保他们进行 OSINT 渗透测试以确保他们的网络防御得到改善并减少攻击面是非常重要的。

在本节中,您将学会收集和分析图像和地理位置情报的实际技能,并进一步了解威胁行为者如何利用公开可用信息来对其目标进行画像。在下一节中,您将学习如何收集有关组织中人员和用户的情报。

人员和用户情报

人员 OSINT 侧重于收集有关个人姓名、地址、电话号码、用户名甚至其社交媒体账户的信息。当识别目标组织的员工并改进社会工程攻击以在目标网络中获得立足点时,这些信息是有用的。人们经常在社交媒体上创建账户并添加他们的公司、职位和联系方式,这有助于威胁行为者在计划攻击时轻松地收集这些数据。例如,员工有时会在 LinkedIn 和 Facebook 等社交媒体平台的联系信息中包含他们公司的电子邮件地址。

组织使用各种格式的员工电子邮件地址,例如以下格式:

  • firstname @ domain .** **com

  • firstnameinitial + lastname @ domain .** **com

  • firstname.lastnameinitial @ domain .** **com

  • firstname + lastnameinitial @ domain .** **com

  • fullname @ domain .** **com

因此,如果攻击者正在收集有关目标组织的 OSINT,从社交媒体上找到的当前员工的电子邮件地址可以帮助他们确定组织内使用的电子邮件格式。一些公司甚至会在他们的网站上公开发布组织结构图,概述各种知名员工及其部门。这些信息可以用来识别特定人员,并确定他们的电子邮件地址格式,以计划针对性的网络钓鱼攻击。

此外,有许多在线论坛,学生、专业人士和研究人员可以在其中获取有关技术问题的帮助,例如Stack Overflow (stackoverflow.com)。攻击者可以利用 Stack Overflow 上的信息来识别目标组织内存在的技术和安全漏洞。例如,想象一下技术团队遇到某个应用程序问题并决定在 Stack Overflow 上使用他们的真实姓名、职位和组织名称创建一个帐户。然后,他们继续发布包含其基础设施的技术细节、主机操作系统、应用程序名称和服务版本的帖子。尽管这些信息对于出于善意提供帮助的任何人都是有用的,但这些信息对于威胁行为者来说揭示了关于他们目标的许多信息,并使其更容易识别攻击面。

作为一名道德黑客,全面了解威胁行为者常用的策略和技术来收集和分析来自互联网的数据泄漏是非常重要的。有时,找到人员可能是一项具有挑战性的任务,无论您是在帮助执法部门还是识别目标组织的员工。有许多基于人员的搜索引擎可用于收集个人的姓名、地址、电话号码、社交媒体账号和用户名。以下是一些免费和商业人员搜索引擎的列表:

在渗透测试期间,道德黑客通常会执行一种称为密码喷洒的技术,即在同一应用程序或系统上使用常见密码与多个用户名。使用密码喷洒的目的是识别已将其帐户配置为弱密码或与组织内其他人使用相同密码的用户。有时,电子邮件地址的名称(用户)部分是员工用于访问公司拥有的系统或应用程序的用户名。在某些情况下,整个电子邮件地址被用作员工的用户名。

在从互联网上的各种数据源收集电子邮件地址时,识别一个地址是否有效或被列入黑名单,以及是否与某个社交媒体账户相关联是至关重要的。可以通过使用目标的电子邮件地址在社交媒体网站上进行搜索,以确定该电子邮件地址是否与某个社交媒体账户相关联。

以下网站可以用来判断电子邮件地址的声誉和有效性:

此外,Hunter (hunter.io) 使道德黑客能够发现员工、他们的职位以及与目标域名相关的电子邮件地址。Hunter 允许你使用目标的域名进行查询,然后在其数据库和互联网上的多个数据源中搜索与该域名相关的个人联系信息。

以下截图显示了对 microsoft.com 域名进行的查询:

图 6.21 – Hunter 域名查询

图 6.21 – Hunter 域名查询

如前面的截图所示,Hunter 是一个对道德黑客非常有用的工具,帮助你从互联网上收集组织和个人的情报。通过 Hunter 收集的数据可以用来策划针对目标组织的社会工程攻击。

人员与地理位置

互联网上有许多平台允许人们上传并分享自己和他们去过的地方的照片。社交媒体和照片共享平台是道德黑客寻找目标和其位置的宝贵资源。例如,假设你接受了一个任务,需要确定目标组织中的高级员工,了解他们的位置,并识别与目标相关的任何兴趣地点。

你可以使用 LinkedIn、Facebook 和 Twitter 等社交媒体平台,通过输入组织名称进行查找/搜索,并根据需要筛选结果。在员工的个人资料中,他们可能会包括目标组织和位置。一些人常常使用社交媒体的签到功能,这为威胁行为者提供了有用的数据,包括一个人访问特定位置的频率、工作出差的情况,以及他们什么时候和去哪里度假。

为了更好地理解数据如何被对手收集并利用,我们来看一下当今著名人物的 Twitter 个人资料:

图 6.22 – Twitter 个人资料

图 6.22 – Twitter 个人资料

上述截图显示了他们的公开资料,其中包含大量数据。例如,如果你在寻找目标的照片,他们的社交媒体资料很可能会有他们的最新照片。此外,公开资料的照片可以通过反向图像搜索来识别其他可能在互联网上包含相同或类似图片的数据源。上述截图还显示了个人的位置、他们的网站以及资料的年龄。如前所述,位置帮助你识别目标的大致位置或城市。资料中的网站可以用来获取更多情报。最后,你可以查看目标上传的所有帖子和媒体;其中包含的敏感信息可以帮助你识别目标组织的基础设施。

智能手机上的社交媒体应用允许用户在帖子中添加地理位置数据,让他们的关注者、朋友和联系人知道他们发帖时的位置。假设你想识别一个目标组织的所有员工,但你只有该公司的地址。作为一名道德黑客,你可以使用Google Maps来查找该组织的具体位置并获取 GPS 坐标。

要更好地理解如何根据 GPS 数据定位人员,请按照以下说明操作:

  1. 打开网页浏览器,访问Google Mapsmaps.google.com

  2. 接下来,左键单击地图上的任意位置,放置一个标记点,如下所示:

图 6.23 – 收集 GPS 数据

图 6.23 – 收集 GPS 数据

如上图所示,时尚广场(Times Square)作为示例。当你在 Google Maps 上点击一个特定位置时,一个标针会插入,且 URL 会更新为包含 GPS 坐标数据:40.757791,-73.9854071

  1. 接下来,为了找到所有从该位置发布的人员,前往twitter.com并在搜索框中输入以下语法:

    geocode:40.757791,-73.9854071,1km
    

上述语法将显示所有在 1 公里范围内发布的个人资料结果,结果如下所示:

图 6.24 – 根据 GPS 数据过滤帖子

图 6.24 – 根据 GPS 数据过滤帖子

上述练习是一个概念验证,旨在获取目标组织的 GPS 坐标,并过滤出来自该位置的帖子。一些找到的帖子很可能是由员工发布的,因此,分析所有收集的数据非常重要,以确保它对你的 OSINT 操作以及未来攻击的计划有帮助。

在对某个人或员工进行画像时,确保你没有收集到假资料或对假个人资料图片进行反向图片查找是非常重要的。像WhatsMyName (whatsmyname.app)这样的网站对道德黑客和渗透测试人员非常有用,可以用来在互联网上多个数据源和网站上搜索用户名,识别某个特定用户名在哪里注册。结果帮助你确定目标可能在互联网上发布更多有用信息的其他地方。

以下截图展示了 WhatsMyName 网站的查找字段:

图 6.25 – WhatsMyName 查找

图 6.25 – WhatsMyName 查找

最后,你可以使用像TinEye (tineye.com)和PimEyes (pimeyes.com)这样的工具,进行反向图片搜索,识别某张人物图片在互联网上的相似图像或相同图像。这些工具对于执法部门寻找失踪人员并追踪其活动非常有用。

以下截图展示了 TinEye 上关于一张虚构人物的假图片的搜索结果:

图 6.26 – TinEye 结果

图 6.26 – TinEye 结果

如前面的截图所示,TinEye 能够通过其数据源、网址、文件名和首次出现的日期,识别互联网上的相似图片。

PimEyes 使用人脸识别技术,更好地识别图片中的人物。以下截图展示了 PimEyes 对一张假图片的识别结果:

图 6.27 – PimEyes 结果

图 6.27 – PimEyes 结果

如前面的截图所示,PimEyes 能够识别出面部特征非常相似的人,并提供数据来源等信息。

用户凭证 OSINT

许多人常常配置弱密码,或者经历过账户被黑客入侵的情况。当账户被侵入时,泄露的数据通常会被对方用来扩展其活动并进行未来攻击,还可能被转售到暗网上牟利。作为一名道德黑客,获取泄露的数据非常有利,因为它为我们提供了目标组织的用户凭证。

例如,假设你正在对一个网络进行渗透测试,并试图获取连接到域的基于 Windows 的系统的立足点。如果公司在渗透测试之前就已经遭到数据泄露,那么泄露的数据可能已经出现在暗网或在线数据库中。在这些泄露的数据中,你可能会找到用户的域账户凭证。有些用户在泄露后会更改密码,而有些则不会。对于那些在账户被泄露后没有更改密码的用户,你可以利用泄露数据中的用户凭证来进入网络并执行各种基于密码的攻击,以识别其他安全漏洞。

以下是一些免费的和商业的仓库和数据库,帮助道德黑客和渗透测试员识别目标的用户凭证:

道德黑客可以使用 Have I Been Pwned? 来识别电子邮件地址和电话号码是否出现在批量泄露数据中。例如,道德黑客可以对目标的电子邮件地址进行查找,如下所示:

图 6.28 – Have I Been Pwned?

图 6.28 – Have I Been Pwned?

Have I Been Pwned? 提供了结果,显示哪些数据泄露包含了该电子邮件地址,如下所示:

图 6.29 – 搜索结果

图 6.29 – 搜索结果

之前的数据可以通过道德黑客进行分析,以进一步确定电子邮件地址及其持有者的有效性,以及目标使用该电子邮件地址在哪些网站上注册了账户。此外,黑客通常会在互联网上暴露被泄露的账户数据,如用户名和密码。如果没有一些额外的研究,你可能能够找到该电子邮件账户的密码。有时,用户并未意识到数据泄露,也不总是经常更改密码。你可能会幸运地找到目标的有效用户凭证,并利用这些凭证进入他们的账户、系统或网络。

此外,如果你一直滚动到 Have I Been Pwned? 结果页面的底部,你将获得所有包含给定电子邮件地址的数据泄露源(粘贴),如下面的截图所示:

图 6.30 – 泄露数据源

图 6.30 – 泄露数据源

此外,Intelligence X 帮助道德黑客从泄露的数据中找到用户凭证。例如,你可以执行电子邮件查找,以识别与电子邮件地址相关的所有相关数据,如下所示:

图 6.31 – Intelligence X 邮件查找

图 6.31 – Intelligence X 邮件查找

以下截图显示了 Intelligence X 提供的数据:

图 6.32 – Intelligence X 结果

图 6.32 – Intelligence X 结果

如前所示的截图,Intelligence X 提供了一些免费结果,而其他结果则包含编辑过的数据。需要付费账户/订阅才能查看 Intelligence X 中的编辑数据。

作为伦理黑客,你可以点击数据收集项来查看其所有内容,如以下截图所示:

图 6.33 – 数据收集

图 6.33 – 数据收集

如前所示的截图,一些数据收集项包含大量条目,因此使用搜索字段可以帮助你在数据集中找到特定的结果。

最后,Dehashed是一个在线数据库,允许伦理黑客从数据泄露中购买用户凭证。这个网站是伦理黑客和渗透测试人员在对目标组织的账户和系统进行基于密码的攻击时的一个有价值工具。它允许你对电子邮件地址、用户名、IP 地址、姓名、地址、电话号码和域名进行查找。

完成本节后,你已经学会了如何收集和分析关于个人及其地理位置的开源情报(OSINT),并且能够定位包含用户凭证的数据泄露。在下一节中,你将学习如何收集和分析无线信号的数据。

无线信号情报

无线信号情报SIGINT)是一种常见技术,伦理黑客、渗透测试人员和红队成员使用它来拦截和分析无线流量,以发现并利用无线电和无线传输中存在的安全漏洞。SIGINT 通常在军事行动中被政府用来监控其他国家的通信渠道并识别潜在威胁。然而,网络安全专业人员可以利用各种工具和技术,通过 SIGINT 来识别目标的无线网络基础设施(如接入点和相关客户端)、拦截和监控无线局域网WLAN)帧,然后利用这些信息来获取网络访问密码,并定位附近的设备。

组织通过对其无线基础设施执行 SIGINT 技术,可以获得以下好处:

  • 识别安全漏洞:伦理黑客可以捕获并分析目标网络上的 WLAN 流量,以识别任何安全漏洞,如弱无线安全标准、弱加密算法和不安全的身份验证协议。

  • 侦察:伦理黑客可以执行无线 SIGINT,以了解目标无线网络基础设施、无线设备类型及其使用情况,以及可以实施哪些安全防护措施来减少攻击面。

  • 测试安全控制:在实施网络防御和安全控制后,测试这些对策的有效性是一个好习惯,以确保它们能按预期工作,减少潜在网络攻击或威胁的风险。

  • 改进事件响应和处理:如果攻击者通过无线基础设施成功渗透到组织的网络中,网络安全专业人员可以执行无线 SIGINT(信号情报)来识别攻击工具、技术及来源,从而提升网络威胁 情报CTI)。

通常,无线 SIGINT 帮助组织从敌方的角度更好地理解其无线网络基础设施的攻击面及可能被用于入侵网络的技术。SIGINT 收集的数据有助于道德黑客向客户和组织提供改进安全防御、提升态势感知和优化事件响应与处理的建议。然而,请记住,道德黑客必须在执行无线 SIGINT 前,获得相关当局的合法许可。

接下来,你将学习如何构建一个便携/移动的无线 SIGINT 基础设施。

构建 SIGINT 基础设施

许多道德黑客和渗透测试人员使用带有外部无线网络适配器的笔记本电脑,该适配器支持监控模式和数据包注入,来收集和分析周围的无线信号。然而,如果你想创建一个更紧凑的设置,可以放进背包里进行战步,或者安装在无人机上进行战飞,那么笔记本电脑就不是最好的选择,因其体积和重量较大。我们可以利用如树莓派这类微型计算机的强大功能,运行Kali Linux ARM,对目标的无线网络进行侦察。

以下是建立门户无线信号基础设施所需的材料清单:

  • 树莓派 3 B+

  • 一张 32GB 的三星 EVO+ microSD 卡

  • 一个 micro-USB 数据线

  • 一个 Alfa AWUS036NHA 无线 B/G/N USB 适配器

  • 一个 VK-162 G-Mouse USB GPS 接收器导航模块

  • 一个便携式移动电源

树莓派(Raspberry Pi)是一款具有足够计算能力的微型计算机,能够运行Kismet,这是一款用于监控 IEEE 802.11、蓝牙和射频信号的无线信号情报工具,可以检测无线网络入侵。microSD 卡将用于存储 Kali Linux ARM 操作系统和所有收集的数据。Alfa AWUS036NHA 无线网络适配器支持监控模式和数据包注入,并能连接到树莓派。VK-162 G-Mouse USB GPS 接收器用于在找到无线站点(客户端)和接入点时,收集其 GPS 坐标。便携式移动电源将为树莓派提供电力,支持战步、战车或战机。

以下图示展示了组装后的信号情报基础设施:

图 6.34 – 信号情报基础设施

图 6.34 – 信号情报基础设施

此外,我们将配置 Raspberry Pi 作为一个接入点,设置动态主机配置协议DHCP)服务器,向连接到其wlan0接口的任何设备提供 IP 地址和子网掩码。这使我们能够轻松连接笔记本电脑,并使用安全外壳SSH)安全访问运行在 Raspberry Pi 上的 Kali Linux ARM 操作系统,用于我们的无线渗透测试评估。

要开始设置 Raspberry Pi 进行信号情报工作,请按照以下说明操作:

第一部分 – 安装 Kali Linux ARM

  1. 首先,从www.raspberrypi.com/software/下载并安装Raspberry Pi Imager

  2. 接下来,从www.kali.org/get-kali/下载适用于您的 Raspberry Pi 版本的官方Kali Linux ARM操作系统:

图 6.35 – Kali Linux ARM

图 6.35 – Kali Linux ARM

  1. 接下来,使用 SD 卡读卡器将 microSD 卡连接到主机电脑。

  2. 要将 Kali Linux ARM 操作系统加载到 microSD 卡中,启动Raspberry Pi Imager并点击选择操作系统,如图所示:

图 6.36 – Raspberry Pi Imager

图 6.36 – Raspberry Pi Imager

  1. 接下来,将出现操作系统窗口。点击使用自定义,如所示:

图 6.37 – 操作系统菜单

图 6.37 – 操作系统菜单

  1. 接下来,选择Kali Linux ARM文件并点击打开将其加载到Raspberry Pi Imager中:

图 6.38 – Kali Linux ARM 文件

图 6.38 – Kali Linux ARM 文件

  1. 接下来,返回Raspberry Pi Imager的主菜单,点击选择存储,并选择 microSD 卡作为存储设备。然后,点击齿轮图标打开高级选项:

图 6.39 – 写入操作系统

图 6.39 – 写入操作系统

  1. 接下来,将出现高级选项菜单。勾选启用 SSH框,设置用户名和密码(kali**/kali),然后点击保存**,如以下截图所示:

图 6.40 – 启用 SSH

图 6.40 – 启用 SSH

  1. 接下来,您将自动返回到Raspberry Pi Imager主窗口。点击写入开始将 Kali Linux ARM 操作系统镜像写入 microSD 卡:

图 6.41 – 写入按钮

图 6.41 – 写入按钮

此过程通常需要几分钟来写入和验证。

  1. 写入过程完成后,将 microSD 卡插入 Raspberry Pi,连接 GPS 加密狗和无线网卡,并通过将其连接到电源来启动设备。

  2. 接下来,使用网线将 Raspberry Pi 连接到你的有线网络。

  3. 登录到你的调制解调器、路由器或 DHCP 服务器,以确定分配给 Raspberry Pi 的 IP 地址。下一步需要用到这个 IP 地址。

第二部分 – 配置 Kismet 与 GPS

  1. 如果你正在使用Windows 10计算机,请打开命令提示符并执行powershell命令,然后继续下一步。

  2. 如果你正在使用Windows 11或基于 Linux 的操作系统,请打开终端并使用ssh kali@ip-address语法,其中ip-address是你网络中 Raspberry Pi 的 IP 地址。使用默认的用户凭证kali**/**kali作为用户名和密码登录,如下所示:

图 6.42 – 连接到 Raspberry Pi

图 6.42 – 连接到 Raspberry Pi

如前面的截图所示,我们正在使用 SSH 通过网络安全地访问 Raspberry Pi,以执行其他配置并继续设置过程。

提示

Ctrl + P更改终端提示符的布局。

  1. 接下来,使用以下命令更新软件包仓库文件:

    kali@kali-raspberry-pi:~$ sudo apt update
    
  2. 接下来,使用以下命令在 Raspberry Pi 上安装 Kismet 和 GPS 软件包的最新版本:

    kali@kali-raspberry-pi:~$ sudo apt install kismet gpsd gpsd-clients
    

提示

你可以使用dmesg | grep tty命令显示与电传打字机tty)子系统相关的内核消息。这个命令帮助你确定操作系统是否检测到并识别了附加的 USB 设备。

  1. 接下来,你需要修改 Kismet 的配置,以确保gpsd软件包能够连接到 GPS 加密狗并将数据发送到 Kismet。为此,使用以下命令在nano命令行文本编辑器中打开kismet.conf文件:

    kali@kali-raspberry-pi:~$ sudo nano /etc/kismet/kismet.conf
    
  2. 接下来,使用键盘上的下箭头滚动文本文件,直到找到 GPS 设置。然后,在新的一行插入以下内容:

    gps=gpsd:host=localhost,port=2947,reconnect=true
    

结果应该如下所示:

图 6.43 – 在 Kismet 中修改 GPS 设置

图 6.43 – 在 Kismet 中修改 GPS 设置

  1. 接下来,按Ctrl + X保存对kismet.conf文件的修改,然后按Y,并按Enter键确认。

  2. 接下来,使用以下命令配置gpsd与 USB0 上的 GPS 接收器配合使用:

    kali@kali-raspberry-pi:~$ sudo gpsd -b /dev/ttyUSB0
    
  3. 使用sudo reboot命令重启 Raspberry Pi 并重新登录。

  4. 接下来,确保 GPS 加密狗能够清晰地垂直看到天空,使用cgps –sgpsmon命令接收来自轨道卫星的 GPS 数据,如下所示的截图所示:

图 6.44 – cgps 数据

图 6.44 – cgps 数据

如前面的截图所示,GPS 软件和加密狗能够识别并连接到一些卫星(右栏)。此外,Raspberry Pi 能够获取其当前的 GPS 坐标(为保护隐私已模糊处理)以及用于定位和跟踪的其他数据。按Ctrl + C停止cgps运行。

第三部分 – 在 Raspberry Pi 上设置接入点

将 Raspberry Pi 设置为工作为接入点,使我们能够通过移动设备(如笔记本电脑或智能手机)无线连接到它,从而无需有线连接。这使得 Raspberry Pi 在进行战车、步行或飞行的测试时,变得完全自主和移动。我们按如下方式操作:

  1. 在 Raspberry Pi 上,下载并安装dnsmasqhostapd软件包,用于配置无线和 IP 服务:

    kali@kali-raspberry-pi:~$ sudo apt install dnsmasq hostapd
    
  2. 接下来,使用以下命令停止dnsmasqhostapd服务,直到稍后需要它们:

    kali@kali-raspberry-pi:~$ sudo systemctl stop dnsmasq
    
    kali@kali-raspberry-pi:~$ sudo systemctl stop hostapd
    
  3. 接下来,我们需要为将从wlan0接口广播的无线网络设置参数。使用以下命令编辑hostapd.conf文件:

    kali@kali-raspberry-pi:~$ sudo nano /etc/hostapd/hostapd.conf
    

然后,将以下配置插入到hostapd.conf文件中:

interface=wlan0
driver=nl80211
ssid=MyNetwork
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Password123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

请记住,您可以将MyNetwork更改为您选择的任何无线网络名称,将Password123更改为更强的密码。以下截图显示了hostapd.conf文件中的前述配置:

图 6.45 – Hostapd 配置

图 6.45 – Hostapd 配置

Ctrl + X,然后按Y,最后按Enter保存文件。

  1. 接下来,安装dhcpcd软件包,我们将用它来配置 Raspberry Pi 上wlan0接口的静态 IP 地址:

    kali@kali-raspberry-pi:~$ sudo apt install dhcpcd
    
  2. 接下来,修改dhcpcd配置文件,使用以下命令将192.168.4.1地址分配给wlan0无线适配器:

    kali@kali-raspberry-pi:~$ sudo nano /etc/dhcpcd.conf
    

将以下参数插入到dhcpcd.conf文件的末尾:

interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant

下图显示了在文件末尾插入的前述参数:

图 6.46 – dhcpcd 文件

图 6.46 – dhcpcd 文件

Ctrl + X,然后按Y,最后按Enter保存文件。

  1. 接下来,重启dhcpcd服务,并使其在系统启动时自动启动:

    kali@kali-raspberry-pi:~$ sudo service dhcpcd restart
    
    kali@kali-raspberry-pi:~$ sudo systemctl enable dhcpcd
    
  2. 接下来,备份dnsmasq配置文件并使用以下命令创建一个新文件:

    kali@kali-raspberry-pi:~$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
    
    kali@kali-raspberry-pi:~$ sudo nano /etc/dnsmasq.conf
    

然后,将以下参数插入新的dnsmasq配置文件中:

interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

以下截图显示了dnsmasq配置文件中的前述参数:

图 6.47 – DNSmasq 配置

图 6.47 – DNSmasq 配置

上述截图中显示的配置用于为任何连接到 Raspberry Pi 上wlan0接口生成的无线网络的客户端提供 IP 地址和子网掩码。

  1. 接下来,使用以下命令启用并重启dnsmasqhostapd服务:

    kali@kali-raspberry-pi:~$ sudo systemctl enable dnsmasq
    
    kali@kali-raspberry-pi:~$ sudo systemctl restart dnsmasq
    
    kali@kali-raspberry-pi:~$ sudo systemctl unmask hostapd
    
    kali@kali-raspberry-pi:~$ sudo systemctl enable hostapd
    
    kali@kali-raspberry-pi:~$ sudo systemctl restart hostapd
    
  2. 最后,使用 sudo reboot 命令重启 Raspberry Pi。设备重启后,你将看到 MyNetwork 无线网络可用。现在,你可以通过无线网络连接到 Raspberry Pi,设备将获得 192.168.4.2192.168.4.20 范围内的 IP 地址。然后,你可以通过其 wlan0 接口上静态配置的 192.168.4.1 地址通过 SSH 访问 Raspberry Pi。

第四部分 – 监控与数据收集

  1. 你需要将外部无线网络适配器的操作模式从管理模式更改为监视模式。使用 iwconfig 命令查看 Raspberry Pi 上的无线适配器列表,如下所示:

图 6.48 – 无线网络适配器

图 6.48 – 无线网络适配器

如前所示,wlan0 是用于 Raspberry Pi 接入点的嵌入式无线适配器,wlan1 是外部适配器。

  1. 接下来,使用 airmon-ng 命令在 wlan1 适配器上启用监视模式:

    kali@kali-raspberry-pi:~$ sudo airmon-ng start wlan1
    

以下截图显示了创建 wlan1mon(具有监视模式的适配器)时预期的结果:

图 6.49 – 启用监视模式

图 6.49 – 启用监视模式

  1. 接下来,使用 iwconfig 命令验证 wlan1mon 是否已创建,并且它是否以监视模式运行,如下所示:

图 6.50 – 验证适配器

图 6.50 – 验证适配器

  1. 接下来,创建一个名为 wardrive 的新目录来存储收集到的数据:

    kali@kali-raspberry-pi:~$ mkdir wardrive
    
    kali@kali-raspberry-pi:~$ cd wardrive
    

提示

当 Kismet 运行时,你需要保持与 Kismet 终端的连接。任何连接中断都会停止 Kismet。为了防止这个问题,我们将使用 Tmux,它是一个多路复用终端,可以让我们将终端窗口发送到后台而不会丢失会话。因此,我们可以启动一个 Tmux 会话,断开与 Raspberry Pi 的连接,然后重新连接并恢复访问 Tmux 会话。要了解更多关于 Tmux 的信息,请访问 github.com/tmux/tmux

  1. 接下来,使用以下命令启动 Tmux 会话:

    kali@kali-raspberry-pi:~/wardrive$ tmux
    
  2. 一旦新 Tmux 会话启动,使用以下命令运行 Kismet 并将监视模式无线适配器连接到它:

    kali@kali-raspberry-pi:~/wardrive$ kismet -c wlan1mon
    

以下截图显示了运行中的 Kismet,并且 GPS 守护进程已连接,我们的信号情报监控已开始:

图 6.51 – 启动 Kismet

图 6.51 – 启动 Kismet

如前所示,你可以通过访问 ip-address-rasp-pi:2501 来访问 Kismet 的 Web 界面。

  1. 接下来,将当前的 Tmux 会话发送到后台,按下 Ctrl + B,然后按下 D

此时,如果你的 Raspberry Pi 已连接到便携式电源银行,你还可以终止 SSH 会话并开始进行战争驾驶、战争步行或战争飞行,以在某一地区收集信号情报。

第五部分 – 使用 Kismet 网页界面

  1. 在你仍然连接到树莓派的接入点时,打开你的网页浏览器并访问 ip-address-rasp-pi:2501 来访问 Kismet 网页界面。

  2. 接下来,设置你的首选登录凭证以访问 Kismet 并登录。以下截图显示了 Kismet 的主控制面板:

图 6.52 – Kismet 网页界面

图 6.52 – Kismet 网页界面

如前所示的截图所示,Kismet 捕获并分析了信标和探测帧。信标是接入点发送的 WLAN 帧,探测帧则是客户端发送的。此外,在右上角,你会看到显示了你的 GPS 坐标。

  1. 接下来,点击设备 | Wi-Fi 接入点以显示附近所有接入点,如下所示:

图 6.53 – 过滤接入点

图 6.53 – 过滤接入点

  1. 现在,仪表板只会显示接入点。通过界面,你可以识别其信号强度、查看传输的数据量、查看无线安全特性等。点击任意无线接入点以查看具体数据,如下图所示:

图 6.54 – 接入点智能

图 6.54 – 接入点智能

如前所示的截图所示,我们能够识别目标使用的特定 2.4 GHz 信道及其频率,此外还可以查看接入点的信号强度、MAC 地址和制造商。这些信息有助于你更好地分析目标设备,并确定操作信道以及设备与目标接入点之间的大致距离。

  1. 接下来,展开Wi-Fi(802.11)选项卡以查看无线网络设置,如下所示:

图 6.55 – 无线设置

图 6.55 – 无线设置

如前所示的截图所示,Kismet 能够识别通过目标接入点传输的 WLAN 帧(流量)数量、广告的服务集标识符SSID)以及是否有多个 SSID 从同一接入点广播。

  1. 接下来,在相同的Wi-Fi(802.11)选项卡中,你可以看到与接入点关联的站点(客户端)列表:

图 6.56 – 站点

图 6.56 – 站点

这些站点通过其 MAC 地址表示。点击某个站点可以提供更多详细信息,如传输的数据量、连接状态以及首次和最后连接的时间。如果接入点配置了 MAC 地址过滤功能,在无线网络渗透测试评估期间,获取已授权的 MAC 地址列表将非常有用。

  1. 若要查看站点的更多详细信息,点击查看客户端详情,打开一个新窗口,如下图所示:

图 6.57 – 查看站点详情

图 6.57 – 查看站点详情

如前所示,Kismet 帮助我们确定客户端的关联无线网络,以及客户端是否在发送额外无线网络的探测请求。作为一名道德黑客,您可以设置一个流氓接入点,以宣传探测中发现的 SSID。此技术可以用来诱使目标连接到假网络,并捕获 WPA 或 WPA2 握手数据,进而用于密码破解。

第六部分 – 将数据映射到 Google Earth

  1. 收集数据后,使用 tmux ls 命令查看后台会话的 Tmux 会话 ID:

    kali@kali-raspberry-pi:~/wardrive$ tmux ls
    
    0: 1 windows (created Fri Mar 31 16:09:42 2023)
    

如此处所示,会话 ID 0 是正在运行 Kismet 的后台会话。

  1. 要重新将后台会话附加到 Tmux,使用以下命令:

    kali@kali-raspberry-pi:~/wardrive$ tmux attach –t 0
    

以下截图显示了重新附加并按预期运行的 Kismet 会话:

图 6.58 – Kismet

图 6.58 – Kismet

  1. 要优雅地停止 Kismet 并保存收集的数据,按 Ctrl + C 停止进程:

图 6.59 – 停止 Kismet

图 6.59 – 停止 Kismet

一旦停止 Kismet,系统会自动创建一个 .kismet 文件,其中包含所有收集到的数据:

图 6.60 – Kismet 文件

图 6.60 – Kismet 文件

  1. 接下来,输入 exit 以退出 Tmux 终端并返回到 Linux 终端的默认 shell:

    kali@kali-raspberry-pi:~/wardrive$ exit
    
  2. 接下来,使用以下命令将 .kismet 文件转换为 .****kml 文件:

    kali@kali-raspberry-pi:~/wardrive$ sudo kismetdb_to_kml --in Kismet-20230302-16-15-13-1.kismet --out wardrive1.kml
    

以下截图显示了转换过程中的输出:

图 6.61 – 创建 KML 文件

图 6.61 – 创建 KML 文件

重要提示

Keyhole Markup Language** (KML**) 是一种用于表示地理数据以及在 2D 和 3D 映射系统中可视化数据的数据格式,如 Google Earth

  1. 接下来,将树莓派重新连接到您的网络,并使用如 WinSCP 这样的工具安全连接并将 .kml 文件下载到主机计算机上。

  2. 接下来,从 www.google.com/earth/versions/ 下载并安装 Google Earth Pro

  3. 接下来,在您的计算机上启动 Google Earth Pro 应用程序,并点击 文件 | 打开... 来附加 .kml 文件,如所示:

图 6.62 – Google Earth Pro 文件菜单

图 6.62 – Google Earth Pro 文件菜单

加载 .kml 文件后,Google Earth Pro 会显示代表无线设备(如接入点和使用 Kismet 发现的站点)位置的黄色图钉,如下截图所示:

图 6.63 – 映射无线设备

图 6.63 – 映射无线设备

作为一名道德黑客,信号情报帮助你更好地理解目标周围的无线环境,这对于寻找目标的无线网络和客户端特别有用。完成本部分后,你已经学会了如何执行无线信号情报。

总结

在本章中,你学习了图像中包含大量数据,这些数据可以被对手利用来识别目标的位置和动向。此外,你还获得了从图像中提取 EXIF 数据的技能,并能够结合全球地图系统来识别拍摄时目标的地理位置。此外,你还学习了如何收集并分析有关个人的情报,并搜索数据泄露,识别用户凭证,从而访问目标的账户、系统或网络。

最后,你了解了作为一名道德黑客,执行无线信号情报(SIGINT)的重要性,并获得了构建移动无线 SIGINT 基础设施的实践技能,进行战争驾驶、战争步行和战争飞行。

希望本章对你在网络安全行业的学习之旅有所帮助。在下一章中,使用主动侦察,你将学习如何确定开放端口和运行的服务,分析操作系统,并枚举主机上的资源。

进一步阅读

第二部分:扫描与枚举

在本节中,你将学习如何执行高级扫描技术,发现主机,识别系统中的安全漏洞,枚举常见的网络服务,收集网站情报,并识别网络中的侦察活动。

本部分包括以下章节:

  • 第七章使用主动侦察

  • 第八章进行漏洞评估

  • 第九章深入网站侦察

  • 第十章实施侦察监控与检测系统

第七章:使用主动侦察

了解目标的信息越多,道德黑客就越能够识别安全漏洞,这些漏洞可以被利用来获取未经授权的访问权限。主动侦察帮助道德黑客和渗透测试人员收集和分析在被动侦察期间无法访问或获取的信息。由于被动侦察依赖于开放源情报OSINT)和来自多个在线来源的公开信息,因此信息可能不是最新的,且不准确会影响未来操作的规划,如武器化和利用目标。通过主动侦察,道德黑客实时收集数据,更好地识别安全漏洞。

本章将介绍如何使用自动化工具和技术高效扫描网络上的主机,以识别其操作系统、开放端口和运行的服务。此外,你还将获得实践经验,学习如何伪装身份并避开威胁检测系统,如防火墙和入侵检测系统IDSes),同时执行网络主机发现。最后,你将学习如何从易受攻击的系统中枚举敏感数据,并进行无线侦察。

本章将涵盖以下主题:

  • 自动化侦察

  • 在网络上伪装身份

  • 在网络上发现存活主机

  • 使用规避技术

  • 枚举网络服务

  • 无线侦察

让我们开始吧!

技术要求

为了跟随本章中的练习,请确保你已经满足以下硬件和软件要求:

主动侦察

与依赖 OSINT(开放源信息)的被动侦察不同,主动侦察通过向目标系统和网络发送探测来收集敏感和具体的细节,采取更加直接的方法。举例来说,在被动侦察过程中,攻击者依赖从多个在线来源收集的准确数据。如果数据过时或不准确,可能会影响武器化和利用阶段,并且阻碍道德黑客访问目标。主动侦察则是实时收集数据,帮助道德黑客收集并分析当前数据,从而改善未来的操作。

重要提示

扫描在许多国家是具有侵入性且非法的,因此在扫描任何你不拥有的系统或网络之前,确保从相关当局获得合法许可。

主动侦察在伦理黑客和渗透测试中发挥着重要作用,因为它帮助网络安全专家收集有关网络上在线系统的数据,而这些数据可以用来识别攻击面,即可以被利用来获取目标系统入口的脆弱点。以下是可以收集的各种数据类型,有助于更好地分析目标或目标系统:

  • 网络上的在线主机数量

  • 系统上的开放服务端口

  • 运行的服务(横幅抓取)

  • 主机设备的操作系统

  • 识别安全漏洞

  • 网络拓扑

  • 网络设备的位置

  • 识别安全设备

为了识别在线主机,伦理黑客会在网络上发送特别设计的探测数据包。这有助于伦理黑客在尝试任何未来的操作(如枚举和漏洞分析)之前,确定目标主机是否在线。这通常被称为网络扫描主机发现

在目标主机(们)在网络上被发现后,下一步是识别设备上任何开放的服务端口。这些端口是操作系统内的入口和出口点,它们与传输控制协议/互联网协议TCP/IP)网络模型中的应用层协议相关联。在客户端将数据包发送到网络之前,它会为出站流量打开一个临时/动态端口。当服务器运行如 Apache HTTP 服务器之类的应用程序时,它会打开端口80443来监听传入的数据包。

下图显示了从客户端到 Web 服务器通过网络发送的数据包中将包含的源地址和目标地址信息:

图 7.1 – HTTP 请求消息

图 7.1 – HTTP 请求消息

下图显示了如何利用来自客户端的源信息发送服务器响应:

图 7.2 – HTTP 响应

图 7.2 – HTTP 响应

作为一名伦理黑客,识别开放端口有助于我们确定目标系统上运行的服务。此外,您还可以尝试执行横幅抓取(banner grabbing),以识别所有运行服务的版本。服务版本可以用来查找已知的安全漏洞及其在目标系统上特定服务的严重性。

下表显示了端口号的分类:

图 7.3 – 端口号范围

图 7.3 – 端口号范围

如前表所示,端口11023通常被称为知名端口,因为这些端口与常见的应用层协议相关联,如安全超文本传输协议HTTPS)、域名系统DNS)和简单邮件传输协议SMTP)。注册端口是专门分配给特定应用层协议或服务的网络服务端口,而私有/动态端口则是暂时开放的,用于从客户端向网络中的其他系统发送数据包。

接下来,识别目标主机的操作系统非常重要,因为这有助于道德黑客识别可能的安全漏洞,从而利用这些漏洞在目标上建立立足点。此外,不同的操作系统具有不同的安全控制和机制,以及架构,这些都会使它们在面对各种类型的网络攻击和威胁时更加或不那么安全。因此,道德黑客可以利用这些信息,为特定操作系统上的安全漏洞定制攻击和有效负载。

例如,如果您的目标运行的是过时的操作系统版本,如微软 Windows 7,您可以研究已知的安全漏洞以及如何利用它们。例如,微软安全公告 MS17-010 描述了在微软 Windows 7 至 Windows Server 2016 操作系统中存在的已知安全漏洞,攻击者可以通过利用主机上的微软服务器消息块SMB)版本 1 服务,执行远程代码执行RCE)。这些信息在执行漏洞分析和为利用阶段开发有效负载时非常有用。

在扫描网络时,道德黑客可以确定网络拓扑结构的布局,例如识别网络交换机和路由器的位置,以及防火墙等安全设备。这些信息有助于您了解攻击者机器与目标主机之间存在哪些设备。如果网络中存在路由器,这些路由器可能会配置有包过滤功能,如访问控制列表ACLs),以过滤源与目标之间的特定第三层和第四层流量。如果网络中存在防火墙,它们可能配置为执行深度包检查DPI),以检查应用层流量中的恶意代码,并在网络之间进行高级过滤。因此,了解网络拓扑有助于您更好地规划攻击和未来的操作。

完成本节内容后,您已经学习了主动侦察的重要性以及它如何帮助道德黑客在安全评估过程中发挥作用。接下来,您将学习如何在网络上伪造设备的身份。

在网络上伪造身份

道德黑客通常使用与真实对手和威胁行为者相同的战术、技术和程序TTPs),目的是在真实黑客能够发现并利用安全漏洞之前,高效地发现目标系统和网络中的隐藏安全漏洞。在道德黑客、渗透测试和红队演练过程中,常用的技术之一是通过伪装设备的 IP 地址和媒体访问控制MAC)地址来隐藏自己的身份。

设备可以通过网络中的动态主机配置协议DHCP)服务器分配 IP 地址,或者由用户静态分配。无论哪种方式,都允许将 IP 地址分配给设备的网络接口卡NIC)。每个设备都有一个独特的 48 位十六进制 MAC 地址,该地址由网络适配器的制造商嵌入在固件中。每当设备在网络上发送数据帧(消息)时,发送方的源 MAC 地址和目标方的目的 MAC 地址都会被插入到数据帧的头部。MAC 地址的前 24 位是制造商唯一的,这部分称为组织唯一标识符OUI),任何人都可以通过各种在线数据库查询任何 MAC 地址,以确定设备的制造商和类型。网络安全和网络专业人员可以捕获并分析网络中的数据包,通过设备的 IP 和 MAC 地址识别未授权设备。

以下是用于执行 MAC 厂商查询的在线数据库:

作为一个道德黑客,可以考虑将攻击者机器的 MAC 地址更改为组织内常见的设备,如 IP 电话、网络打印机或流行品牌的设备。这样做的目的是确保你的设备不会引起安全团队的注意,从而在道德黑客和渗透测试过程中不会显得过于突出。如果你的设备被分配了网络打印机或 IP 电话的 MAC 地址,那么一个经验不足的安全专业人员可能不会注意到你的设备在网络上向其他系统发送探测信息来收集数据。

要开始伪装攻击者机器的身份,请按照以下说明操作:

  1. 首先,启动你的Kali Linux虚拟机并登录。

  2. 接下来,打开终端并使用以下命令验证连接到我们实验室内172.30.1.0/24PentestNet)网络的eth1网络适配器的 MAC 地址:

    kali@kali:~$ ip address show eth1
    

以下代码片段显示了eth1网络适配器被分配了08:00:27:7d:98:8e的 MAC 地址:

图 7.4 – 验证 MAC 地址

图 7.4 – 验证 MAC 地址

  1. 接下来,将 eth1 网络适配器的状态更改为 down

    kali@kali:~$ sudo ifconfig eth1 down
    
  2. 接下来,我们可以使用预安装的 macchanger 工具查看网络适配器上更改 MAC 地址的不同选项:

    kali@kali:~$ sudo macchanger -h
    

以下代码片段显示了更改网络适配器 MAC 地址的各种选项,例如随机生成一个地址、静态设置你偏好的 MAC 地址,以及基于厂商分配地址:

图 7.5 – MAC 地址更改菜单

图 7.5 – MAC 地址更改菜单

  1. 接下来,将一个随机生成的 MAC 地址分配给 eth1 网络适配器:

    kali@kali:~$ sudo macchanger -A eth1
    

以下代码片段显示了网络适配器上当前(原始)MAC 地址和新的随机生成的地址:

图 7.6 – 伪造的 MAC 地址

图 7.6 – 伪造的 MAC 地址

  1. 接下来,使用以下命令重新启用 eth1 网络适配器:

    kali@kali:~$ sudo ifconfig eth1 up
    
  2. 接下来,使用 ip address show eth1ifconfig eth1 命令验证 eth1 网络适配器是否处于活动状态,并已分配伪造的 MAC 地址,如下所示:

图 7.7 – 验证接口状态

图 7.7 – 验证接口状态

任何来自你 Kali Linux 机器 eth1 网络适配器的帧,都将被分配伪造的 MAC 地址作为新的源 MAC 地址。

完成本节内容后,你已经学会了如何伪造网络适配器的 MAC 地址,从而伪装设备的身份。在下一节中,你将学习如何发现和分析网络上的主机。

在网络上发现在线主机

主机发现是道德黑客和渗透测试中的一个重要部分,它使道德黑客能够识别组织内网络上哪些系统是可发现且在线的。如果你目标的主机处于离线状态,你将无法识别其安全漏洞并向其发送攻击代码。

有多种技术和工具可以帮助道德黑客高效地发现网络中的在线主机,识别开放端口和正在运行的服务。本节将帮助你发展作为道德黑客进行主机发现的技能和知识。

使用 Netdiscover 执行被动扫描

Netdiscover 是 Kali Linux 中预安装的工具,能够帮助道德黑客主动扫描网络范围或被动监听和分析网络数据包以发现在线主机。主动扫描会向网络中的每个设备发送探测信号,以确定哪些主机是在线的。而在被动模式下,攻击者的机器捕获到的网络数据包将被分析,从中识别其他设备的 IP 和 MAC 地址。然而,Netdiscover 的被动模式会降低你在网络上的威胁检测等级,除非安全团队主动扫描其网络基础设施以识别未经授权的设备。

要开始使用 Netdiscover 的被动模式,请按照以下说明操作:

  1. 首先,启动 Kali Linux 虚拟机并登录。

  2. 接下来,启动 Metasploitable 3 虚拟机。该机器将用于在 PentestNet 网络上生成流量。

  3. 接下来,在 Kali Linux 上打开终端,使用以下命令验证 eth1 网络适配器的 IP 地址和子网掩码:

    kali@kali:~$ ip addr show eth1
    

如下代码片段所示,eth1 连接到 172.30.1.0/24 网络(PentestNet):

图 7.8 – 检查接口状态

图 7.8 – 检查接口状态

确认攻击者机器上哪个网络适配器连接到了目标网络非常重要。如果你开始扫描错误的网络或 IP 地址范围,可能会陷入法律麻烦,因为扫描行为被视为非法,而且你会违反合法渗透测试协议。

  1. 接下来,启用 Netdiscover 在被动模式下运行,并监听 eth1 接口的网络流量:

    kali@kali:~$ sudo netdiscover -p -i eth1
    

以下代码片段展示了 Netdiscover 成功识别了在 172.30.1.0/24 网络上发送消息的设备的 MAC 和 IP 地址:

图 7.9 – 被动扫描

图 7.9 – 被动扫描

Netdiscover 的被动模式只能在 Kali Linux 虚拟机的 eth1 网络适配器上分析网络流量。如果你没有看到任何结果,只需使用 Administrator**/**vagrant 用户凭据登录 Metasploitable 3 虚拟机,并向 Kali Linux 虚拟机发送 ping 消息。

尽管被动扫描可能会减少目标方对你的威胁检测,但它可能无法提供继续进行伦理黑客攻击和渗透测试方法所需的预期结果。接下来,你将学习如何在整个网络中执行 Ping 扫描。

执行 Ping 扫描

Ping 扫描是 IT 和安全专业人员常用的一种技术,用于轻松识别网络上的存活主机。它通过向网络上的每个主机发送 ICMP ECHO 请求消息;当存活主机收到 ICMP ECHO 请求消息时,它会通过发送 ICMP ECHO 回复消息响应发送者,表示该主机在线。在客户端和服务器操作系统中,有一个 Ping 工具,它利用 互联网控制消息协议ICMP),这一网络协议帮助网络专业人员识别常见的网络问题。

以下代码片段展示了客户端与谷歌 DNS 服务器之间的 ICMP 消息 Wireshark 数据包捕获:

图 7.10 – Ping 消息

图 7.10 – Ping 消息

如果你想在我们实验室环境中的 PentestNet 网络上执行 ping 扫描,你需要对 172.30.1.0/24 网络中的每个主机进行 ping,这些主机的范围是从 172.30.1.1172.30.1.254。这通常是一个手动、枯燥且耗时的任务。然而,作为一名有抱负的道德黑客,你可以使用各种编程语言,甚至是 Linux 操作系统中原生的 Bourne Again ShellBASH),来自动化 ping 扫描过程。

要在 Kali Linux 上使用 BASH 自动化 ping 扫描过程,请按照以下说明操作:

  1. 首先,启动 Kali LinuxMetasploitable 3 Windows 虚拟机。

  2. 接下来,登录到 Kali Linux,并在终端中使用以下命令创建一个新的 BASH 脚本文件,使用 nano 命令行文本编辑器:

    kali@kali:~$ sudo nano ping-sweep.sh
    
  3. 接下来,当 Nano 在终端中打开时,键入以下代码来创建脚本:

    #!/bin/bash
    
    echo "Enter the network ID you want to scan (e.g. 192.168.1.0):"
    
    read network
    
    echo "Enter the subnet mask in CIDR notation (e.g. 24):"
    
    read mask
    
    if [[ $mask =~ ^[0-9]+$ ]] && [ $mask -le 32 ]; then
    
      wildcard=$(( 2**(32-$mask) - 1 ))
    
      network_address=$(echo $network | awk -F'.' '{print $1"."$2"."$3"."0}')
    
      for host in $(seq 1 254); do
    
        ip=$(echo $network_address | awk -F'.' '{print $1"."$2"."$3"."'$host'}')
    
        ping -c1 -W1 $ip > /dev/null
    
        if [ $? -eq 0 ]; then
    
          echo "$ip is up"
    
        fi
    
      done
    
    else
    
      echo "Invalid subnet mask"
    
    fi
    

当前面的代码执行时,它将提示用户输入目标网络的网络 ID 和子网掩码。然后,它将计算主机 IP 地址的范围,并向每个主机 IP 地址发送一个 ICMP ECHO 请求消息。

  1. 要保存文件,请按 Ctrl + X 键,然后按 Y,按 Enter 确认并退出。

  2. 接下来,给 ping-sweep.sh 文件添加执行权限:

    kali@kali:~$ sudo chmod +x ping-sweep.sh
    
  3. 接下来,使用以下命令执行脚本:

    kali@kali:~$ ./ping-sweep.sh
    

以下代码片段显示脚本提示用户输入网络 ID 和子网掩码,然后检查主机是否在线:

图 7.11 – 一个 ping 扫描

图 7.11 – 一个 ping 扫描

如下截图所示,Ping 工具和前述脚本使用 ICMP 网络协议在 172.30.1.0/24 网络上执行 ping 扫描:

图 7.12 – Wireshark 数据包捕获

图 7.12 – Wireshark 数据包捕获

尽管前述方法在发现网络中的活动主机时似乎很高效,但系统管理员和安全专家通常会禁用关键资产(如服务器和防火墙)的 ICMP 响应,以减少新手黑客发现这些系统的可能性。此外,在网络上发送过多的 ICMP 消息会产生大量的噪音,这会提高道德黑客在网络上的被检测级别。接下来,你将学习如何使用强大的网络扫描器自动化并改进扫描技术,同时降低被检测的风险。

使用 Nmap 进行主机发现

网络映射器Nmap)是一个功能强大的网络扫描工具,拥有许多高级功能,能够帮助道德黑客和渗透测试人员高效地分析目标。Nmap 使道德黑客能够发现活动主机,并识别开放的传输控制协议TCP)和用户数据报协议UDP)端口,运行的服务及其版本,以及目标的操作系统。

要开始使用 Nmap 进行主机发现,请按照以下步骤操作:

  1. 首先,启动 Kali LinuxMetasploitable 3 虚拟机。和往常一样,攻击者机器是 Kali Linux,目标是 Metasploitable 3。

  2. Kali Linux 上,打开终端并使用 ip addressifconfig 命令来识别分配给 eth1 接口的 IP 地址,该接口连接到 172.30.1.0/24 网络(PentestNet)。

如果需要识别攻击者机器(Kali Linux)的 IP 地址,以避免在安全评估期间扫描到自己的设备;否则,您需要从结果中删除其详细信息。

  1. 接下来,使用以下命令对整个 172.30.1.0/24 网络进行 ping 扫描,同时排除 Kali Linux 机器的 IP 地址:

    kali@kali:~$ nmap -sn 172.30.1.0/24 --exclude 172.30.1.49
    

如以下片段所示,-sn 语法指定对目标进行 ping 扫描,而 --exclude 允许我们在扫描期间排除一个主机、一组地址或一个网络:

图 7.13 – 使用 Nmap 进行的 ping 扫描

图 7.13 – 使用 Nmap 进行的 ping 扫描

如前面的片段所示,ping 扫描成功识别了 172.30.1.45 主机是在线的。

Nmap 在进行 ping 扫描时不会向目标发送典型的 ICMP 消息。如果目标设备被配置为不响应 ICMP 消息,那么传统的 ping 扫描将无法识别主机在网络上的状态。相反,Nmap 会向目标主机发送精心构造的 TCP 同步SYN)数据包,目的是触发来自在线主机的 TCP 确认ACK)响应。

以下片段展示了 Wireshark 中对 Nmap ping 扫描的一个数据包捕获:

图 7.14 – Wireshark 数据包捕获

图 7.14 – Wireshark 数据包捕获

如前面的片段所示,Kali Linux (172.30.1.49) 向目标 (172.30.1.45) 的服务端口 443(HTTPS)发送了 TCP SYN 消息,目标则通过 TCP ACK/RST 数据包响应以确认并重置连接。这个响应表示端口 443 是开放的,且目标设备在线。虽然设备可能配置为不响应 ICMP 消息,但 TCP/IP 设计上会响应在开放服务端口上的 TCP SYN 数据包,而 Nmap 就利用这一技术来更好地判断目标是否在线。

提示

要了解更多关于 TCP 如何通过三次握手建立连接的内容,请参阅 hub.packtpub.com/understanding-network-port-numbers-tcp-udp-and-icmp-on-an-operating-system/

  1. 接下来,进行端口扫描以识别 Metasploitable 3 上开放的前 1,000 个服务端口:

    kali@kali:~$ nmap 172.30.1.45
    

如下所示,Nmap 成功识别了目标上开放的前 1,000 个服务端口,并确定了其服务:

图 7.15 – 识别前 1,000 个服务端口

图 7.15 – 识别前 1,000 个服务端口

如前面的代码片段所示,Nmap 帮助我们更好地识别哪些端口是开放的,以及每个开放端口对应的服务。这些信息可以用来识别网络上目标设备的角色、功能及攻击面。例如,前面的代码片段显示端口22是开放的,且运行安全外壳SSH),这是一种远程访问服务,黑客可以通过它获取系统的立足点。研究每个开放端口的服务,识别其安全漏洞,以及攻击者如何入侵目标系统,非常重要。

重要提示

默认情况下,Nmap 仅扫描 TCP 端口。

  1. 接下来,使用 -p- 语法指定所有 65,535 个端口,并使用 -T4 语法提高扫描速度,如下所示:

    kali@kali:~$ nmap -T4 -p- 172.30.1.45
    

以下代码片段显示 Nmap 已识别目标系统上额外开放的服务端口:

图 7.16 – 扫描所有端口

图 7.16 – 扫描所有端口

作为一名道德黑客,扫描目标设备上的所有服务端口,以识别是否有其他运行中的服务,并确定它们是否容易受到网络攻击和威胁,是非常重要的。此外,如果您的目标是进入目标系统,您可能能够利用运行中服务中的安全漏洞。

提示

Nmap 可以通过使用 nmap 172.30.1.10-100 语法扫描网络上的一系列主机地址。此外,您可以通过使用 nmap 172.30.1.10,172.30.1.20,172.30.1.40-50 命令扫描特定的主机。-T<0-5> 允许您为 Nmap 扫描设置时间模板;数值越高,扫描越快。请记住,较快的扫描会增加网络上的噪声,并可能引起安全团队的怀疑。

  1. 默认情况下,Nmap 会对目标主机进行 Ping 扫描,以确定主机是否在线,然后继续扫描。然而,如果目标主机被配置为阻止 Nmap 的 Ping 探测,我们可以使用以下命令进行不进行 Ping 的扫描:

    kali@kali:~$ nmap -PN 172.30.1.45
    

以下代码片段显示了前述命令的执行过程:

图 7.17 – 不进行 Ping 扫描

图 7.17 – 不进行 Ping 扫描

  1. 要扫描目标系统上开放的前 1,000 个 UDP 服务端口,可以使用以下命令:

    kali@kali:~$ sudo nmap -sU 172.30.1.45
    

以下代码片段显示 Nmap 能够识别目标系统上开放的 UDP 端口:

图 7.18 – UDP 端口扫描

图 7.18 – UDP 端口扫描

由于 Nmap 默认扫描前 1,000 个端口,你可以使用 nmap -sU -p- 172.30.1.45 命令扫描目标的所有 65,535 个 UDP 端口。此外,你可以使用 -p 语法来指定特定端口或端口范围——例如,-p22-p1-65535–U 语法允许你使用 -p** **U:53 语法来指定 UDP 端口扫描。

重要提示

被过滤的端口表示是否存在防火墙或其他安全机制阻止端口访问,Nmap 无法确定目标端口是开放还是关闭。

  1. 要识别目标设备上运行服务的服务版本,请使用以下命令:

    kali@kali:~$ sudo nmap -sV 172.30.1.45
    

以下代码片段显示了 Nmap 能够识别每个运行服务的服务版本:

图 7.19 – 识别服务版本

图 7.19 – 识别服务版本

识别服务版本有助于我们确定运行的应用程序或服务是否过时,以及是否存在已知的安全漏洞,这些漏洞可能被利用来获得授权访问。如果你还记得,进行侦察的原因之一是确定目标的攻击面,例如发现安全漏洞和入侵点。

  1. 要对目标主机执行操作系统检测,请使用 -O 语法,如下所示:

    kali@kali:~$ sudo nmap -O 172.30.1.45
    

以下代码片段显示了 Nmap 能够识别目标主机正在运行 Microsoft Windows 7、8 或 Server 2008:

图 7.20 – 识别操作系统

图 7.20 – 识别操作系统

如前面代码片段所示,识别操作系统架构和构建号有助于我们在进行道德黑客和渗透测试时更好地规划未来的攻击。例如,在进入利用阶段之前,你可以研究已知的安全漏洞,并为这个特定操作系统版本开发和测试利用工具。

  1. 最后,Nmap 使我们能够通过使用 -A 语法执行操作系统检测、服务版本检测、脚本扫描和 traceroute,如下所示:

    kali@kali:~$ sudo nmap -A 172.30.1.45
    

如以下代码片段所示,-A 语法使 Nmap 能够同时执行多种扫描技术:

图 7.21 – 多次扫描

图 7.21 – 多次扫描

如前面代码片段所示,-A 语法进一步使 Nmap 能够对每个运行中的服务执行 banner grabbing。Banner grabbing 可以帮助我们收集有关服务的更多信息,例如 Microsoft IIS 服务的头部详情。

此外,以下是扫描的其余部分,显示了 SMB 版本、操作系统版本、计算机名/主机名以及工作组或域:

图 7.22 – 操作系统与 SMB 检测

图 7.22 – 操作系统与 SMB 检测

如您所见,Nmap 是一个强大的网络扫描工具,拥有许多功能和能力,能够帮助道德黑客和渗透测试员在目标的主动侦察中收集敏感信息。

提示

要了解更多关于 Nmap 及其扫描功能的信息,请参见 nmap.org/book/man.html。此外,您可以在终端使用man nmap命令查看 Nmap 手册页面。

完成本节后,您已学会如何在主动侦察中执行主机发现。接下来,您将学习如何在网络扫描过程中使用规避技术。

使用规避技术

当像计算机这样的设备向网络发送数据包时,发送方的 IP 和 MAC 地址会被插入到数据包头中。因此,当道德黑客在网络上执行主机发现时,他们的 IP 和 MAC 地址也会被包含在从其机器到目标主机的每个数据包中。道德黑客和渗透测试员在进行安全评估时总是尽量保持隐蔽,模拟对组织网络基础设施的真实网络攻击。

在主机发现过程中,有多种规避技术可以用来减少被威胁检测系统和目标安全团队发现和追踪的风险。要开始,请使用以下指令:

  1. 打开 Kali LinuxMetasploitable 3 虚拟机。确保您已登录到 Kali Linux。

  2. 确保识别 Metasploitable 3 的 IP 地址,因为这个虚拟机将作为本次练习的目标。

  3. Nmap 使我们能够通过使用诱饵来执行扫描,欺骗目标认为扫描源来自多个不同的源,而不是来自单一设备。-D 语法允许您指定任意数量的诱饵地址,如下所示:

    kali@kali:~$ nmap 172.30.1.45 -D 172.30.1.20, 172.30.1.21,172.30.1.22
    

在 Nmap 执行目标扫描之前,它会检查网络上每个诱饵地址,以确保这些系统在线。如果 Nmap 无法访问某个诱饵地址,它将会将其排除在扫描之外。因此,我建议在执行扫描之前对诱饵系统进行状态检查。

  1. Nmap 使您可以通过使用 --spoof-mac 语法,在扫描目标时自动伪造您的 MAC 地址,如下所示:

    kali@kali:~$ sudo nmap -sT -PN --spoof-mac 0 172.30.1.45
    

-ST 语法指定通过建立 TCP 三次握手来执行 TCP Connect 扫描,-PN 指定不对主机进行 ping 操作,--spoof-mac 0 表示伪造一个随机的 MAC 地址。以下代码片段展示了扫描过程中伪造的随机 MAC 地址:

图 7.23 – 伪造随机 MAC 地址

图 7.23 – 伪造随机 MAC 地址

  1. 如果您想伪造特定厂商的 MAC 地址,Nmap 允许您插入厂商的名称,如以下命令所示:

    kali@kali:~$ sudo nmap -sT -PN --spoof-mac dell 172.30.1.45
    

以下代码片段显示了 Nmap 使用来自 Dell 的伪造 MAC 地址:

图 7.24 – 伪造供应商地址

图 7.24 – 伪造供应商地址

  1. 如果你想要伪造特定的 MAC 地址,可以将其包括在内,示例如下:

    kali@kali:~$ sudo nmap -sT -PN --spoof-mac 12:34:56:78:9A:BC 172.30.1.45
    

以下片段展示了在 Nmap 扫描过程中,使用了自定义的 MAC 地址作为伪造地址:

图 7.25 – 使用特定的伪造地址

图 7.25 – 使用特定的伪造地址

  1. 最后,Nmap 提供了将探测信息作为更小的分片发送到网络上的功能,从而减少被网络安全系统检测到的可能性。以下命令为示例:

    kali@kali:~$ sudo nmap -f 172.30.1.45
    

以下片段展示了 Wireshark 捕获的 Kali Linux(172.30.1.44)向 Metasploitable 3(172.30.1.45)发送多个 42 字节的分片 IP 数据包:

图 7.26 – 分片数据包

图 7.26 – 分片数据包

重要提示

使用-sS语法可以让 Nmap 对目标执行隐匿扫描(有时称为半开扫描)。隐匿扫描不会与目标建立完整的 TCP 三次握手。然而,Nmap 隐匿扫描可以被经验丰富的网络安全专家轻易检测到。欲了解更多关于 Nmap 隐匿扫描的信息,请参阅nmap.org/book/synscan.html

正如你在本节中学到的那样,道德黑客使用多种技术来在主机发现过程中避免被检测到。在下一节中,你将探索各种枚举技术。

枚举网络服务

在道德黑客的主机发现阶段,可以发现许多开放的端口和运行的服务。在主机发现阶段收集的信息将用于进一步研究,以查找那些正在运行的服务中的已知安全漏洞,并了解这些漏洞如何被利用来获得对目标的未经授权的访问。对目标系统上的网络服务进行枚举,帮助道德黑客和渗透测试人员更好地理解目标的网络基础设施和攻击面,以及可以用于向目标投递有效载荷的攻击向量。

NetBIOS 和 SMB 枚举

网络基本输入输出系统NetBIOS)是一种较老的遗留网络协议,常用于基于 Windows 的环境中进行文件和打印共享,以及在局域网LAN)中提供名称解析服务。SMB 是一个较新的网络协议,也广泛用于基于 Windows 的环境中进行文件和打印共享服务。作为一名道德黑客,执行 NetBIOS 和 SMB 枚举有助于你识别网络中哪些系统拥有网络共享。配置错误的系统可能使道德黑客能够通过网络访问敏感的目录和文件。

要开始 NetBIOS 和 SMB 枚举,请按照以下说明进行操作:

  1. 首先,启动 Kali LinuxMetasploitable 3 虚拟机。Kali Linux 将作为攻击机,Metasploitable 3 将作为目标。

  2. 接下来,使用 nbtscan 获取 Metasploitable 3 的 NetBIOS 名称和 MAC 地址:

    kali@kali:~$ nbtscan -r 172.30.1.45
    

-r 语法用于指定网络上的远程主机,如下所示:

图 7.27 – 一个 NetBIOS 扫描

图 7.27 – 一个 NetBIOS 扫描

如果目标主机上有任何已登录的用户,他们的用户名将出现在用户字段中。

  1. 接下来,使用 Nmap 通过扫描端口 445 来识别是否在 Metasploitable 3 上运行 SMB,使用以下命令:

    kali@kali:~$ nmap -A -T4 -Pn -n -p 445 172.30.1.45
    

如下片段所示,端口 445 是开放的,Nmap 能够获取主机的操作系统信息:

图 7.28 – 识别目标上的 SMB

图 7.28 – 识别目标上的 SMB

  1. 接下来,使用 Nmap 执行 Metasploitable 3 的 NetBIOS 扫描,命令如下:

    kali@kali:~$ sudo nmap -sV --script nbstat.nse 172.30.1.45
    

如下片段所示,Nmap 能够验证主机的操作系统:

图 7.29 – 识别目标操作系统

图 7.29 – 识别目标操作系统

  1. 由于在 Metasploitable 3 上发现 SMB 运行,使用 smbclient 工具来枚举目标上的网络扫描;-U 用于指定用户名:

    kali@kali:~$ smbclient -L //172.30.1.45 -U vagrant
    

在提示输入密码时,使用 vagrant 允许 smbclient 枚举共享,如下所示:

图 7.30 – 网络共享

图 7.30 – 网络共享

如前片段所示,目标上有多个网络共享。

提示

要访问网络共享,请使用 smbclient -L //172.30.1.45/sharename -U vagrant 命令。确保根据目标调整 IP 地址、共享名称和用户名。

  1. 接下来,使用 smbmap 工具来识别每个网络共享的权限:

    kali@kali:~$ smbmap -H 172.30.1.45 -u vagrant -p vagrant
    

-u-p 语法允许我们指定用户名和密码以访问目标,如下所示:

图 7.31 – 共享权限

图 7.31 – 共享权限

如前面的片段所示,某些共享使网络用户能够对目录进行读写。对敏感目录的访问在伦理黑客和渗透测试中非常有用。

  1. 接下来,使用以下命令通过 Nmap 执行 SMB 共享枚举:

    kali@kali:~$ sudo nmap -p139,445 --script=smb-enum-shares.nse 172.30.1.45
    

以下片段显示 Nmap 尝试查找并枚举目标上的共享:

图 7.32 – Nmap SMB 枚举脚本

图 7.32 – Nmap SMB 枚举脚本

  1. 最后,我们可以使用 Nmap 来识别目标上的 SMB 漏洞,使用以下命令:

    kali@kali:~$ sudo nmap -p139,445 --script=smb-vuln-* 172.30.1.45
    

如下片段所示,Nmap 能够识别目标系统上的安全漏洞,并为我们提供参考信息:

图 7.33 – SMB 漏洞发现

图 7.33 – SMB 漏洞发现

完成本部分后,您已学会如何使用各种工具和技术进行服务枚举。在下一部分,您将学习如何进行无线侦察。

无线侦察

无线侦察使道德黑客和渗透测试人员能够识别目标的无线网络,并确定相关客户端、网络设置、工作频率和频道,以及您与接入点之间的大致距离。

当接入点开启时,它会发送信标,将其存在和网络信息广告给附近的无线客户端。在这些信标中,接入点会插入网络名称或服务集标识符SSID),帮助客户端从多个无线网络中识别一个网络。一旦客户端连接(关联)到无线网络,它会自动将网络信息和密码保存在其首选网络列表PNL)中。从此,当客户端启用无线功能时,它会发送探测信号来寻找任何已保存的网络;一旦发现网络并在有效范围内,客户端将尝试自动建立关联。作为道德黑客,捕获和分析来自无线网络和客户端的信标和探测数据帮助我们识别目标无线网络是否容易受到无线攻击。

提示

您可以使用Wigle.net查找全球的无线网络。该网站还允许用户上传 Kismet 数据,帮助道德黑客定位目标网络。

要开始无线侦察,请按照以下说明操作。

第一部分 – 连接无线网卡

要连接无线网卡,请按照以下步骤操作。

  1. 将 Alfa AWUS036NHA – 无线 B/G/N USB 适配器连接到您的主机电脑。

  2. 接下来,打开VirtualBox 管理器,选择Kali Linux虚拟机,并点击设置,如图所示:

图 7.34 – VirtualBox 管理器

图 7.34 – VirtualBox 管理器

  1. 接下来,从左侧菜单中选择USB类别,然后选择 USB 2.0 或 3.0 控制器,具体取决于主机电脑上的 USB 接口类型,再点击添加 USB 设备图标,如图所示:

图 7.35 – 设置菜单

图 7.35 – 设置菜单

  1. 点击添加 USB 设备图标后,会出现一个侧边菜单,显示所有已连接的 USB 设备。选择无线网卡,如下所示:

图 7.36 – 选择无线网卡

图 7.36 – 选择无线网卡

  1. 接下来,您将自动返回到主设置菜单。点击确定以保存:

图 7.37 – 无线网卡

图 7.37 – 无线网卡

如前面的代码片段所示,无线网络适配器现在已作为 USB 设备连接到 Kali Linux 虚拟机。

第二部分 – 启用监控模式

要启用监控模式,请按照以下步骤操作:

  1. 打开Kali Linux虚拟机并登录。

  2. 接下来,打开终端并使用iwconfig命令识别无线网络适配器,如下所示:

图 7.38 – 验证网络适配器

图 7.38 – 验证网络适配器

如前面的代码片段所示,无线网络适配器显示为wlan0接口。

  1. 接下来,使用sudo airmon-ng check kill命令终止可能阻止将wlan0接口切换为监控模式的冲突进程:

图 7.39 – 杀死进程

图 7.39 – 杀死进程

  1. 接下来,使用sudo airmon-ng start wlan0命令在wlan0接口上启用监控模式:

图 7.40 – 启用监控模式

图 7.40 – 启用监控模式

  1. 接下来,使用iwconfig命令验证新创建的接口。wlan0mon已经在 Kali Linux 上创建并可用,如下所示:

图 7.41 – 验证接口状态

图 7.41 – 验证接口状态

如前面的代码片段所示,wlan0mon处于监控模式,这使我们能够捕获无线网络中的信标和探针。

第三部分 – 执行无线侦察

要执行无线侦察,请按照以下步骤操作:

  1. 使用Airodump-ng工具,通过以下命令监控(捕获并分析)几乎所有的信标和探针:

    kali@kali:~$ sudo airodump-ng wlan0mon
    

如下面的代码片段所示,airodump-ng 能够识别无线网络、接入点和客户端(站点):

图 7.42 – 无线网络和客户端

图 7.42 – 无线网络和客户端

以下是前面代码片段中显示的每个字段的描述:

  • BSSID:这是基本服务集标识符BSSID)或接入点的 MAC 地址。

  • PWR:功率水平帮助道德黑客确定他们与接入点或客户端(站点)之间的距离。降低功率水平意味着你离目标更远。

  • 信标:此字段包含从接入点发送的信标数量。

  • #Data:此字段指示捕获到的网络数据包数量。

  • #/s:此字段帮助我们确定 10 秒间隔内的数据包数量。

  • CH:此字段指示接入点上无线网络的工作频道。

  • MB:此字段帮助我们确定无线网络的最大速度。

  • ENC:此字段指定无线网络的无线安全标准。

  • AUTH:此字段指示无线网络的认证类型或协议。

  • ESSID:这是扩展服务集标识符ESSID),相当于 SSID 或网络名称。

  • STATION:此字段包含几乎所有无线客户端的 MAC 地址,不论它们是否连接到无线网络。

  • Probes:此字段显示每个客户端的保存网络,来自它们的 PNL。

以下代码片段通过观察BSSIDSTATION字段,展示了站点与接入点的关联:

图 7.43 – 识别无线客户端

图 7.43 – 识别无线客户端

  1. 如果目标无线网络工作在特定频道上,可以使用-c语法在特定频道上监听,如下所示:

    kali@kali:~$ sudo airodump-ng -c 6 wlan0mon
    

如下代码片段所示,Airodump-ng 仅监听频道6

图 7.44 – 在特定频道上监听

图 7.44 – 在特定频道上监听

这种技术帮助道德黑客筛选出不需要的输出,专注于目标。

  1. 若要将焦点集中在特定目标上,可以使用--essid语法通过以下命令指定目标 ESSID 网络名称:

    kali@kali:~$ sudo airodump-ng -c 6 --essid Corp_Wi-Fi wlan0mon
    

如下代码片段所示,仅显示Corp_Wi-Fi网络及其关联的客户端:

图 7.45 – 筛选网络

图 7.45 – 筛选网络

  1. 传输数据的关联站点将在STATION字段下显示。然而,也可能存在空闲的站点,这些站点已与目标网络关联,但在 Airodump-ng 中不会显示。

作为道德黑客,你可以对目标网络执行去关联攻击,强制所有关联的客户端断开连接并重新连接。这项技术使我们能够识别特定网络的所有关联客户端。要执行此操作,打开一个新的终端并使用Aireplay-ng发送 100 个去认证的无线帧到目标:

kali@kali:~$ sudo aireplay-ng -0 100 -e Corp_Wi-Fi wlan0mon

以下代码片段显示了 aireplay-ng 向目标发送去认证攻击:

图 7.46 – 去认证攻击

图 7.46 – 去认证攻击

  1. 最后,通过检查Airodump-ng窗口,你将看到所有其他关联的站点及其 PNL,如下所示:

图 7.47 – 观察站点

图 7.47 – 观察站点

完成本节内容后,你已经学会如何对无线网络进行主动侦察。

总结

在本章中,你了解了主动侦察的重要性以及它如何帮助道德黑客发现活跃的主机,识别开放端口和运行的服务。此外,你还获得了在无线网络基础设施上进行侦察的技能,以识别目标接入点和客户端,以及网络设置。

希望本章对您有所启发,并在您在网络安全行业的旅程中有所帮助。在下一章节中,执行漏洞评估,您将学习如何设置和使用漏洞评估工具。

进一步阅读

第八章:执行漏洞评估

作为网络安全专业人员和威胁行为者之间的竞赛是一个永无止境的马拉松,因为黑客们总是在开发新技术来发现和利用目标系统的安全弱点,安全团队则在不断努力查找隐藏的漏洞,并实施对策来保护其资产,以防真正的网络攻击发生。虽然软件和产品供应商经常推送安全更新和补丁到他们的应用程序中,但没有一个系统是完全安全免受威胁和攻击。因此,组织定期进行道德黑客和渗透测试评估其系统和网络,以查找任何隐藏的安全缺陷,并确定其安全控制是否有效防止真实的攻击和威胁至关重要。

在本章中,您将学习漏洞管理如何帮助组织改善其安全姿态以及网络安全专业人士(如道德黑客)通常使用的技术,以有效地发现其目标系统上的各种安全缺陷。此外,您还将学习如何安装和设置常见的漏洞管理工具,以帮助您作为道德黑客识别和分析系统中的安全漏洞。

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

  • 漏洞管理的重要性

  • 使用 Nessus 工作

  • 使用 Greenbone 漏洞管理器

  • 使用 Nmap 进行漏洞发现

让我们开始吧!

技术要求

要跟随本章的练习,请确保您已满足以下硬件和软件要求:

漏洞管理的重要性

漏洞是指存在于系统上的安全弱点,任何人都可以利用它来威胁和破坏目标系统的机密性、完整性和/或可用性,如威胁行为者所示。组织通常会聘请道德黑客和渗透测试人员模拟其系统和网络上的真实网络攻击,以识别公司内部 IT 团队难以发现的隐藏安全缺陷。道德黑客通常使用与真实对手相同的战术、技术和过程TTPs),以有效地发现隐藏的安全弱点。通过识别组织内部的安全漏洞,安全团队可以更好地理解真实攻击者如何未经授权访问其网络。此外,组织可以改善其威胁检测、实施对策以预防威胁,并改进其事件响应计划。

作为一名道德黑客,你将使用各种工具和技术来发现安全漏洞,确定目标主机被攻破时的严重性和影响,并提供建议以解决安全缺陷,改善组织的整体安全态势。

以下是网络安全专业人士和研究人员用来收集有关互联网新兴威胁和漏洞信息的常见数据源:

  • 厂商网站:产品的厂商网站通常包含有关已知安全问题的信息,这些问题直接影响其产品、设备和应用程序。

  • 漏洞信息源:这些通常是新闻信息源,提供全球社区发现的新安全漏洞的信息。

  • 会议:这些是以安全为重点的会议,网络安全专业人士和研究人员讨论新漏洞、恶意软件和黑客技术。

  • 学术期刊:学术界的安全研究人员提供他们关于各种网络攻击和威胁的研究成果。

  • 威胁信息源:这些是提供实时信息给公众的数据源。

  • MITRE ATT&CK:MITRE ATT&CK 框架提供了有关对手用于攻击目标的 TTP(技术、战术和程序)信息。

此外,道德黑客和渗透测试人员可以利用以下公开漏洞数据库中找到的信息,以提高漏洞检测和分类能力:

以下是系统中可能发现的安全漏洞类型和分类:

  • 默认设置:这些是由厂商实施并交付给客户的系统和设备配置。默认配置是设备上的基本设置,帮助客户轻松访问设备并进行额外的设备配置。

  • 弱加密:一些系统包含弱加密协议和算法,攻击者可以利用这些弱加密来访问机密信息并未经授权进入目标设备。

  • 不安全协议:许多不安全的网络协议以明文传输数据。这些不安全的协议在将数据包放入网络之前不对任何数据进行加密。

  • 开放权限:许多文件、文件夹、网络共享和设备为任何人提供完全访问权限。这种类型的漏洞可能导致恶意用户获得系统或网络共享的完全控制。

  • 不安全的 root 账户:如果基于 Linux 的操作系统上的 root 账户没有使用复杂的密码策略和多因素认证MFA)进行保护,攻击者可以获得系统的完全管理权限。同样,基于 Windows 的操作系统上的管理员账户也应该得到保护。

  • 开放端口和服务:有时候,系统可能会运行许多不必要的服务。当某些应用程序运行时,它会作为操作系统上的服务进行操作。目标主机上的一些应用程序可能没有完全打补丁,可能包含可以通过网络利用的安全漏洞。此外,一些服务可能会打开网络端口,允许来自远程系统的传入连接。攻击者可以通过网络发起远程利用,利用目标系统上的易受攻击的服务。

  • 零日漏洞:这些是黑客在供应商未意识到安全问题并且尚未有时间发布安全更新来缓解威胁之前发现并利用的漏洞。零日漏洞被认为是安全团队的噩梦,因为在供应商提供问题信息披露之前,没有已知的安全修复。

  • 遗留系统:遗留系统通常运行已经达到生命周期终结EoL)的操作系统、固件、应用程序和硬件组件,这些组件不再受到供应商的支持。因此,运行遗留系统的网络最容易受到现代网络攻击和威胁的影响。

漏洞管理生命周期

漏洞管理是一个持续的生命周期,涉及识别系统中的新安全缺陷,并实施缓解和对策措施,以减少攻击面并提高组织的安全态势。

以下图示展示了漏洞管理的一般生命周期:

图 8.1 – 漏洞管理生命周期

图 8.1 – 漏洞管理生命周期

让我们详细探讨这些阶段。

预评估阶段

预评估阶段侧重于识别组织拥有的所有资产。如果一个组织在其网络上安装了新设备而没有跟踪该系统,IT 团队可能不会管理或监控该设备的安全漏洞,这就增加了网络攻击的风险。此外,应该在所有关键资产(如交换机、路由器、服务器和防火墙)上创建正常操作的基线。基线用于衡量系统或网络的正常和异常行为。

在此阶段,重要的是要深入了解组织及其业务流程。有时,组织的业务流程可能会带来安全风险,并增加黑客攻破公司系统和网络的机会。识别业务流程中的安全漏洞有助于领导团队更好地理解特定行动所带来的风险。

此外,预评估阶段帮助道德黑客确定是否存在任何安全控制措施,以防止黑客的潜在攻击和威胁。此类信息有助于更好地了解公司的攻击面、安全态势以及网络防御。在此阶段,重要的是要确认组织是否已在其运营行业中实施了任何监管标准和框架,并且这些框架是否得到了执行。

最后,预评估阶段用于更好地理解漏洞评估的范围和目标,并获得当局的法律许可,因为漏洞扫描有时可能具有侵入性。

漏洞评估阶段

漏洞评估阶段的重点是对目标系统进行不同类型的自动化和手动测试,以识别安全漏洞,并确定其被攻击时的严重性和影响。此外,重要的是,道德黑客要检查每个漏洞,以确定在自动扫描过程中它是否是误报或漏报。

误报是漏洞扫描器上的警报,表示系统存在漏洞,但经过手动测试后实际上并不存在。漏报则是指漏洞扫描器未能检测到目标系统上已知或隐藏的漏洞,但经过手动测试后发现了安全漏洞。因此,验证每个系统上的安全漏洞的真实性是非常重要的,手动测试是必不可少的。最后,在每次漏洞评估中,道德黑客将收集足够的数据,用于分析和报告。

评估后阶段

在评估后阶段,道德黑客使用漏洞评估阶段收集的信息,对资产和组织进行风险评估,并根据风险的严重程度和对组织的影响对每个风险进行分类。此外,分析后的数据还将用于确定组织的威胁级别以及被真正的威胁行为者入侵的风险。

道德黑客还会提供建议,说明如何通过实施对策和安全控制来减轻每个风险。考虑优先解决高风险漏洞并分配资源以快速解决它们是非常重要的,因为这些漏洞通常会比其他漏洞产生更大的影响。

当发现安全漏洞时,最好进行根本原因分析,以确定目标上安全风险和漏洞的根本原因。这个过程通常帮助伦理黑客更好地识别出适当的解决方案,从而防止这一问题在未来再次发生。

根据建议,组织的内部安全或 IT 团队应实施任何修复、更新和补丁,以及安全控制措施,以防止实际攻击的发生并提高安全防护水平。此外,必须记录每次漏洞评估中所学到的所有经验教训,因为这些经验教训可能在未来发挥作用。

最后,需要持续的监控和验证,以确定推荐的措施是否得到了执行,并且有效地防止了未来来自对手的网络攻击和威胁。这意味着需要定期进行漏洞扫描和使用安全解决方案如入侵检测系统IDSs)、入侵防御系统IPSs)和安全信息和事件管理SIEM)来监控日志。

我们不能忘记,伦理黑客将在漏洞评估过程中分析所有收集的数据,并为组织生成执行报告和技术报告。执行报告侧重于评估的高层次概述,通常呈现给公司高层或领导团队,他们通常是非技术员工。因此,执行报告不应包含任何行话或过多的技术术语,以免让非技术人员感到困惑。技术报告则包含有关漏洞评估的详细信息,如用于识别和验证每个漏洞有效性的工具和技术。

使用 Nessus

Nessus 是网络安全行业中最受欢迎的漏洞扫描器之一。它使系统管理员、网络安全专家和合规审计员能够识别目标系统是否包含已知的安全弱点,并且是否符合行业中的各种监管标准。此外,Nessus 可以部署在集中式服务器上,并配置为利用其自动化功能定期对目标系统进行漏洞扫描,从而使伦理黑客能够轻松执行漏洞评估之间的差距分析,以确定组织的安全团队是否实施了应对措施来缓解和防止潜在的网络攻击。

作为一名有志成为伦理黑客和渗透测试员的人,获得实践经验至关重要,尤其是在设置 Nessus 并对目标系统执行漏洞扫描和评估时。要开始设置 Nessus,请参考以下说明。

重要说明

在使用 M1 Mac(ARM64)芯片的 Parallels 上设置 Kali Linux 的 Nessus 时遇到了一些挑战。但在基于 Windows 的机器上,设置过程一切正常。

第一部分 – 设置 Nessus

在本次练习中,您将学习如何在 Kali Linux 上安装 Nessus Essentials,并对我们的目标系统 Metasploitable 3 进行漏洞发现:

  1. 首先,启动 Kali Linux 和 Metasploitable 3 虚拟机。

  2. 然后,打开网页浏览器,访问 www.tenable.com/products/nessus/nessus-essentials,并注册一个免费的 Nessus Essentials 许可证密钥。注册后,Tenable 将通过您提供的电子邮件地址发送唯一的 Nessus Essentials 许可证密钥。

  3. 在 Kali Linux 上,打开终端并使用以下命令更新软件包仓库列表:

    kali@kali:~$ sudo apt update
    
  4. 接下来,使用以下命令将 Nessus 软件下载到 Kali Linux 上:

    kali@kali:~$ curl --request GET \
    
      --url 'https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.5.1-debian10_amd64.deb' \
    
      --output 'Nessus-10.5.1-debian10_amd64.deb'
    

以下图示展示了执行前述命令的过程:

图 8.2 – 下载 Nessus

图 8.2 – 下载 Nessus

或者,您可以从 www.tenable.com/downloads/nessus 下载 Nessus 软件(Linux - Debian - AMD64,适用于 Kali Linux)。

  1. 接下来,使用以下命令安装 Nessus 软件包:

    kali@kali:~$ sudo dpkg -i Nessus-10.5.1-debian10_amd64.deb
    

以下图示展示了安装过程的开始:

图 8.3 – 安装过程

图 8.3 – 安装过程

  1. 接下来,在 Kali Linux 上启动并重新启动 Nessus 服务:

    kali@kali:~$ sudo /bin/systemctl start nessusd.service
    
    kali@kali:~$ sudo /bin/systemctl restart nessusd.service
    
  2. 一旦 Nessus 服务启动,打开 Kali Linux 内的网页浏览器,访问 https://kali:8834/ 以进入 Nessus 网页界面,并确保您已接受安全警告,如下所示:

图 8.4 – 安全警告

图 8.4 – 安全警告

  1. 接下来,您将看到 Nessus 初始化页面。点击 继续

图 8.5 – Nessus 初始化页面

图 8.5 – Nessus 初始化页面

  1. 接下来,选择 注册 Nessus Essentials 并点击 继续

图 8.6 – Nessus 部署

图 8.6 – Nessus 部署

  1. 由于您已经在 步骤 2 中注册了 Nessus Essentials 许可证密钥,点击此处注册窗口中的 跳过

图 8.7 – Nessus 注册窗口

图 8.7 – Nessus 注册窗口

  1. 接下来,从您的电子邮件中复制许可证密钥,并将其粘贴到 激活码 字段中,然后点击 继续,如图所示:

图 8.8 – 激活码

图 8.8 – 激活码

  1. 接下来,Nessus 将显示激活码/许可证信息。点击 继续

图 8.9 – 许可证信息

图 8.9 – 许可证信息

  1. 接下来,创建您的用户账户并点击 提交

图 8.10 – 创建用户账户

图 8.10 – 创建用户账户

  1. 接下来,Nessus 将开始其初始化过程并下载额外的更新插件。根据你的互联网服务,通常这个过程需要几分钟。初始化完成后,Nessus 会自动登录到用户仪表板。

  2. 第一次登录时,Nessus 需要一些时间来编译所有插件,之后才能执行任何扫描。

第二部分 – 使用 Nessus 进行扫描

  1. 要开始使用 Nessus Essentials 进行第一次漏洞扫描,请点击新建扫描

图 8.11 – 启动新扫描

图 8.11 – 启动新扫描

  1. 接下来,你将看到各种扫描模板,用于发现目标系统上的常见安全漏洞,如 PrintNightmare、WannaCry 和 Log4Shell。点击基础 网络扫描

图 8.12 – 扫描模板

图 8.12 – 扫描模板

  1. 设置页面,填写必填字段,例如为扫描设置名称,并将 Metasploitable 3 虚拟机的 IP 地址设置为目标系统,然后点击启动

图 8.13 – 第一次扫描

图 8.13 – 第一次扫描

  1. 接下来,扫描进度将在我的扫描摘要窗口中显示,如下所示:

图 8.14 – 扫描进度

图 8.14 – 扫描进度

扫描完成后,扫描状态将自动更新,如下图所示:

图 8.15 – 扫描完成

图 8.15 – 扫描完成

作为一名道德黑客,你经常需要对多个资产进行定期漏洞评估。Nessus 使你能够自动化不同类型的扫描,配置资产和漏洞发现技术、评估类型以及报告。

第三部分 – 漏洞分析

  1. 要查看扫描结果,请点击我的扫描 | 我的第一次扫描来显示摘要:

图 8.16 – 扫描结果

图 8.16 – 扫描结果

如前图所示,柱状图显示了根据漏洞严重性等级找到的安全漏洞数量,甜甜圈图则展示了漏洞的概览。

  1. 接下来,点击柱状图查看目标主机上所有安全漏洞的列表:

图 8.17 – 漏洞列表

图 8.17 – 漏洞列表

如前图所示,多个安全漏洞按严重性等级分组。

  1. 接下来,点击严重严重性等级以查看主机上所有严重安全漏洞的列表:

图 8.18 – 严重安全漏洞

图 8.18 – 严重安全漏洞

如前面的图示所示,Nessus 能够使用 CVSS 评估每个漏洞的严重性评分,CVSS 是一个开放的评分计算工具,广泛用于网络安全专业人员和研究人员,以确定漏洞的严重性级别和风险。与 CVSS 类似,Tenable 使用他们的漏洞优先级评分VPR)评分系统来确定安全风险。

重要说明

严重性评分帮助网络安全专业人员在决策过程中,将资源优先分配给那些更严重、会造成更高影响的风险和漏洞。因此,始终确定每个安全漏洞的严重性评分非常重要。

  1. 接下来,点击任何一个关键的安全漏洞,查看更多详细信息:

图 8.19 – 安全漏洞详细信息

图 8.19 – 安全漏洞详细信息

如前面的图示所示,Nessus 提供了安全漏洞的完整描述,并提出了如何缓解或解决该问题的建议。

  1. 此外,漏洞详细信息页面还显示了用于确定 CVSS 得分的指标,如图所示:

图 8.20 – CVSS 指标

图 8.20 – CVSS 指标

如前面的图示所示,Nessus 使用了多个不同版本的 CVSS 进行计算。

  1. 让我们使用以下 CVSS 3.0 向量来确定黑客如何能够攻破目标。复制以下代码:

    CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    
  2. 接下来,将 CVSS 向量附加到以下 URL 的末尾:

www.first.org/cvss/calculator/3.0#

这会生成以下带有 CVSS 向量的最终 URL:

www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

  1. 接下来,使用您的网页浏览器访问最终网址,查看用于确定漏洞评分的实际指标,如下所示:

图 8.21 – CVSS 基本评分

图 8.21 – CVSS 基本评分

根据前面的图示,黑客需要设计一个能够通过网络传输、并对目标具有低(L)复杂度的漏洞利用程序。该漏洞利用程序不需要更高的权限,也不需要用户交互即可在主机上执行。漏洞利用过程中,作用范围将保持不变(U),且对主机的机密性、完整性和可用性产生高(H)影响。

提示

要了解更多有关 CVSS 的信息,请访问www.first.org/cvss/

  1. 要从 Nessus 生成漏洞报告,请在右上角点击报告

  2. 接下来,会出现一个弹出窗口。选择报告格式和模板,然后点击生成报告,如图所示:

图 8.22 – 生成报告

图 8.22 – 生成报告

一旦报告生成后,保存到桌面并使用 PDF 阅读器打开,如下所示:

图 8.23 – Nessus PDF 报告

图 8.23 – Nessus PDF 报告

完成这一部分后,你已经学会了如何设置和使用 Nessus 进行漏洞发现。在接下来的部分,你将学习如何使用开源漏洞管理工具发现目标系统中的安全漏洞。

使用 Greenbone 漏洞管理器

Greenbone 漏洞管理器(GVM) 是一款开源漏洞管理工具,使得道德黑客能够利用 网络威胁情报(CTI) 高效地发现目标系统中的安全弱点。

若要开始设置 GVM,请使用以下说明。

第一部分 – 设置 GVM

  1. 首先,启动 Kali Linux 和 Metasploitable 3 虚拟机。

  2. 接下来,在 Kali Linux 上打开终端,使用以下命令更新软件包仓库列表并安装 GVM:

    kali@kali:~$ sudo apt update
    
    kali@kali:~$ sudo apt install gvm
    
  3. 安装完成后,使用以下命令启动 GVM 设置过程:

    kali@kali:~$ sudo gvm-setup
    

这个设置过程通常需要几分钟完成,因为它会下载额外的插件和更新。一旦设置完成,admin 账户将会创建,并且生成一个随机密码,如下所示:

图 8.24 – GVM 设置

图 8.24 – GVM 设置

  1. 接下来,执行 sudo gvm-check-setup 命令以确保 GVM 设置正确。

  2. 一旦一切配置正确,在 Kali Linux 上打开 Web 浏览器,访问 127.0.0.1:9392,并接受安全风险以访问 GVM Web 界面。

  3. 确保使用默认的用户名(admin)和设置过程结束时生成的密码,然后点击 登录,如图所示:

图 8.25 – GVM 登录页面

图 8.25 – GVM 登录页面

  1. 登录到 GVM 后,点击 管理 | 源状态,如图所示:

图 8.26 – GVM Web 界面

图 8.26 – GVM Web 界面

GVM 将继续从各种数据源下载并安装额外的 CTI,以确保 GVM 能够利用最新的 CTI 数据识别目标系统中的安全漏洞:

图 8.27 – 源状态

图 8.27 – 源状态

下载过程通常需要相当长的时间才能完成。在继续执行任何漏洞扫描之前,确保所有源状态都是最新和最新的:

图 8.28 – 当前源状态

图 8.28 – 当前源状态

第二部分 – 使用 GVM 扫描

  1. 要使用 GVM 执行漏洞扫描,首先点击 配置 | 目标 以添加目标:

图 8.29 – 目标选项

图 8.29 – 目标选项

  1. 接下来,点击左上角的 新建目标 图标。

  2. 新目标窗口将出现。确保为目标设置名称,并在主机字段中插入 Metasploitable 3 的 IP 地址。然后,点击保存

图 8.30 – 添加新目标

图 8.30 – 添加新目标

如前图所示,新目标菜单提供了额外的选项,可以从文本文件扫描一组 IP 地址,排除单个或多个主机,扫描目标服务端口,并选择是否对目标执行身份验证扫描或非身份验证扫描。

  1. 接下来,要在 GVM 中创建扫描任务,请点击扫描 | 任务,如图所示:

图 8.31 – 访问任务菜单

图 8.31 – 访问任务菜单

  1. 接下来,点击魔术纸图标(左上角),然后选择新任务,如图所示:

图 8.32 – 创建新任务

图 8.32 – 创建新任务

  1. 新任务窗口将出现。确保为任务设置名称,并从下拉菜单中选择扫描目标。然后,点击保存,如图所示:

图 8.33 – 创建新任务

图 8.33 – 创建新任务

  1. 新创建的扫描任务将出现在同一窗口的下部。点击播放按钮以启动任务:

图 8.34 – 启动扫描

图 8.34 – 启动扫描

扫描状态会随着扫描进度的变化而变化。一旦扫描完成,状态会变为完成,并显示整体漏洞严重性,如图所示:

图 8.35 – 扫描完成

图 8.35 – 扫描完成

第三部分 – 漏洞分析

  1. 要查看 GVM 的漏洞分析,请点击扫描 | 报告,如图所示:

图 8.36 – 漏洞摘要

图 8.36 – 漏洞摘要

如前图所示,GVM 将安全漏洞的数量分类为日志,甚至假阳性。这些严重性评级帮助网络安全专业人员优先分配资源,解决更关键的问题。

  1. 接下来,点击任务名称以查看其详细信息,如所有发现的安全漏洞:

图 8.37 – 查看安全漏洞

图 8.37 – 查看安全漏洞

如前图所示,GVM 提供了安全漏洞的名称、严重性评级和检测质量QoD)、位置(端口号)。QoD 值由 Greenbone 用于显示 GVM 漏洞检测的可靠性。

  1. 要查看漏洞的详细信息,只需点击一个漏洞以查看其描述,如图所示:

图 8.38 – 漏洞详情

图 8.38 – 漏洞详情

此外,详情页面提供了关于如何检测安全漏洞、受影响的软件和操作系统、以及漏洞的影响和解决方案的信息,如下所示:

图 8.39 – 解决方案和建议

图 8.39 – 解决方案和建议

提示

欲了解更多关于 GVM 的信息,请访问github.com/greenbone/gvmd

在本节中,你已经学习了如何安装、设置和使用 GVM 进行漏洞扫描。在下一节中,你将学习如何使用 Nmap 识别目标系统的常见安全漏洞。

使用 Nmap 进行漏洞发现

正如你在前一章中学到的,Nmap 是网络安全行业中常用的网络扫描工具,它可以发现主机系统、识别开放端口、检测服务版本,并对目标系统进行操作系统分析。此外,还有Nmap 脚本引擎NSE),它集成在 Nmap 中,提供通过自定义 Nmap 脚本执行高级扫描的能力,用于检测目标系统的常见安全漏洞。然而,NSE 组件使用的 Nmap 脚本可能会很激进,甚至有可能导致系统崩溃和数据丢失。因此,作为道德黑客,在进行安全评估时,考虑使用 NSE 可能带来的风险和影响是非常重要的。

有很多预先构建好的 NSE 脚本,这些脚本已经预安装在 Kali Linux 中。以下是 NSE 脚本的各个类别:

  • Auth:这个类别的 NSE 脚本对于检测目标系统的身份验证机制是否能够被绕过非常有用。这些信息对于那些寻求突破目标系统防御的道德黑客非常有帮助。

  • Broadcast:这个类别的脚本对于发现网络中的主机系统非常有用。

  • Brute:这个类别的脚本帮助道德黑客确定目标是否容易受到各种类型的暴力破解攻击。

  • Default:这个类别包含在网络扫描过程中与 NSE 一起使用的默认脚本。

  • Discover:Discover 类别包含在主动侦察期间用于收集网络中在线系统的敏感信息的脚本。

  • DoS拒绝服务DoS)类别包含专门设计的脚本,用于检查目标系统是否容易受到黑客发起的 DoS 攻击。

  • Exploit:这个类别的脚本通常用于确定目标系统是否存在已知的安全漏洞。

  • External:这个类别的脚本用于将 Nmap 收集到的数据发送到外部资源,以进行额外的数据处理。

  • Fuzzer:这个类别包含设计用来向应用程序发送格式错误的数据的脚本,以确定是否存在软件漏洞和缺陷。

  • 侵入性:该类别中的脚本被认为是高风险的,因为它们有可能使系统崩溃。

  • 恶意软件:基于恶意软件的脚本用于检测网络中被恶意软件感染的主机。

  • 安全:这些脚本被认为是非侵入性且安全的,用于扫描目标。

  • 版本:此类别的脚本用于收集目标上运行应用程序的服务版本。

  • 漏洞:这些脚本用于检查目标是否存在已知的安全漏洞。

提示

要查看每个 NSE 脚本的列表和描述,请参考 nmap.org/nsedoc/scripts/

要在 Kali Linux 上开始使用 NSE,请按照以下说明进行操作:

  1. 首先,启动 Kali Linux 和 Metasploitable 3 虚拟机。

  2. 在 Kali Linux 上打开终端,使用以下命令查看目录和 Nmap 脚本列表:

    kali@kali:~$ ls -l /usr/share/nmap/scripts
    

以下图示显示了前述命令的执行以及 NSE 脚本的列出:

图 8.40 – 查看 NSE 脚本

图 8.40 – 查看 NSE 脚本

  1. 接下来,使用带有通配符(*****)的以下命令查看 HTTP 漏洞检测脚本列表:

    kali@kali:~$ ls -l /usr/share/nmap/scripts/http-vuln*
    

如下图所示,前面的命令使您能够过滤 HTTP 漏洞 NSE 脚本:

图 8.41 – 过滤 NSE 脚本

图 8.41 – 过滤 NSE 脚本

  1. 接下来,使用以下命令过滤所有 NSE Server Message Block** (SMB**) 漏洞脚本:

    kali@kali:~$ ls -l /usr/share/nmap/scripts/smb-vuln*
    

以下图示展示了 SMB 漏洞脚本列表:

图 8.42 – SMB 脚本

图 8.42 – SMB 脚本

  1. 接下来,让我们使用以下命令执行所有 SMB 漏洞脚本,以扫描 Metasploitable 3 虚拟机:

    kali@kali:~$ sudo nmap --script smb-vuln* 172.30.1.45
    

以下图示显示了 smb-vuln-ms17-010 脚本在目标上发现了已知的安全漏洞:

图 8.43 – 发现安全漏洞

图 8.43 – 发现安全漏洞

如前图所示,NSE 脚本能够识别目标主机上存在 EternalBlue 漏洞。此外,脚本还提供了参考资料,以帮助更好地理解如果一个真实的攻击者利用该安全漏洞,可能会造成的严重性和影响。作为道德黑客,这些信息可以用来开发或获取能够利用该安全漏洞的攻击工具,以在目标系统上建立立足点。

有许多 Nmap 脚本可以帮助您识别系统中的漏洞。根据您的安全评估,您可以使用关键字帮助过滤适合的 Nmap 脚本,以识别目标上的特定安全漏洞。然而,重要的是要记住,在进行安全评估时永远不要仅依赖一个漏洞扫描器,因为它们有时可能会提供假阴性结果。

在本节中,你学习了如何使用 Nmap 中的 NSE 组件来识别系统中的安全漏洞。

总结

在本章过程中,你了解了漏洞管理的重要性以及它如何帮助组织识别和解决其资产中的安全弱点。此外,你还学习了如何设置和使用 Nessus、GVM 和 NSE 来识别目标上的安全漏洞。

一旦发现安全漏洞,伦理黑客应该进行额外的研究,确定如何利用该漏洞并获得对目标的未经授权的访问。这意味着伦理黑客可以自行开发利用工具,或者从公开来源获取利用工具,并在模拟环境中进行测试,以确定该利用工具成功利用目标漏洞的可能性。

希望本章内容对你有所启发,并在你进入网络安全行业的旅程中提供帮助。在下一章中,第九章深入网站侦察,你将学习如何分析网站技术和应用程序。

进一步阅读

第九章:深入网站侦察

随着互联网的不断发展,组织每天几乎都会创建许多网站,以帮助他们超越传统边界,接触到新的潜在客户。威胁行为者通常会进行大量侦察,以尽可能多地收集信息并获取目标网站和域名的情报。这些信息对威胁行为者在规划未来网络攻击时非常有价值。作为一名伦理黑客,识别攻击面并确定网络侦察如何被真实攻击者用于规划网络攻击至关重要。

在本章中,您将学习如何使用常见的工具和技术来高效地收集有关目标的信息,例如其 IP 地址和子域,发现隐藏的目录,并识别攻击面。此外,您将学习如何使用 web 漏洞扫描器来识别 web 应用程序的弱点,并使用 web 侦察框架来自动化数据的收集和分析。

本章将涵盖以下主题:

  • 收集域名信息

  • 子域枚举

  • 执行目录枚举

  • Web 应用程序漏洞

  • 网站侦察框架

让我们深入了解!

技术要求

要跟随本章中的练习进行,请确保您的硬件和软件符合以下要求:

收集域名信息

作为一名伦理黑客,收集 域名系统DNS)信息和 IP 地址,并确定后端基础设施,有助于您更好地了解目标的攻击面和攻击向量。例如,如果您正在进行外部网络渗透测试或 开放源代码情报OSINT)渗透测试,查找目标的域名和网站是一个不错的起点。域名可以帮助您发现目标的网页、子域以及分配给目标所拥有服务器的 IP 地址。

本节重点介绍使用各种战术和技术来检索 IP 地址、发现基础设施细节,并在目标的 web 服务器和域名上运行 web 技术。

检索 IP 地址

通过检索目标域及其子域的 IP 地址,伦理黑客可以映射外部网络拓扑并识别潜在的安全漏洞,攻击者可以利用这些漏洞获得未授权的访问权限。此外,如果没有识别目标的 IP 地址,伦理黑客将无法模拟现实世界中的网络攻击,进而确定组织的安全态势。

要开始识别域名的 IP 地址,请使用以下说明:

  1. 首先,启动 Kali Linux 虚拟机,并确保它具有互联网连接。

  2. 接下来,打开终端并使用 host <domain-name> 命令检索目标的 IPv4 和 IPv6 地址,如下所示:

图 9.1 – host 命令

图 9.1 – host 命令

域名仅仅是网络(如互联网)上的一个命名空间;然而,关联到域名或主机的 IP 地址指示了目标的网络位置。如前面的代码片段所示,执行对这些地址的 IP 查询可以揭示托管服务器或目标的地理位置。

提示

要识别网络地址的地理位置,请访问 whatismyipaddress.com/ip-lookup,对任何公共 IP 地址执行 IP 查询。

  1. 接下来,nslookup 工具用于排查 DNS 问题并检索主机名的 IP 地址。要获取域名的 IP 地址,请使用 nslookup <domain-name> <DNS-server> 命令,如下所示:

图 9.2 – nslookup 工具

图 9.2 – nslookup 工具

如前面的代码片段所示,nslookup 将 DNS 查询发送到 Google 的 DNS 服务器 8.8.8.8,并且响应提供了输出中显示的 IP 地址。

重要提示

有不同类型的 DNS 记录,例如 A,将主机名解析为 IPv4 地址;AAAA,将主机名解析为 IPv6 地址;MX,指定邮件交换服务器;CNAME,指定域名的规范名称或别名;PTR,将 IP 地址解析为主机名;TXT,指定文本记录;RP,指定负责该域名的人;NS,指定该域名的权威名称服务器。

  1. 在基于 Linux 的系统中,dig 工具允许你使用 @ 语法查询特定的 DNS 服务器,后面跟上域名。要检索域名的 DNS 记录,请使用 dig @<dns-server> <target-domain> 命令,如下所示:

图 9.3 – dig 命令

图 9.3 – dig 命令

要检索特定的 DNS 记录类型,只需在命令的末尾添加 AAAAAMXNSPTRCNAMERP 记录类型,如下所示:

图 9.4 – 获取特定的 DNS 记录

图 9.4 – 获取特定的 DNS 记录

如前面的代码片段所示,dig 成功检索了域名的名称服务器。

重要提示

如果攻击者能够破坏一个域名的名称服务器,黑客可以操控存储在服务器上的 DNS 记录。这使得攻击者能够执行各种基于 DNS 的攻击和欺骗攻击。

  1. 接下来,dnsrecon 工具允许你自动化地检索域名的公共 DNS 记录;使用 dnsrecon -d <domain-name> -n <dns-server> 命令,如下所示:

图 9.5 – dnsrecon 工具

图 9.5 – dnsrecon 工具

完成此练习后,你已学会如何检索目标域名的 IP 地址和 DNS 记录。接下来,你将学习如何识别目标的域名基础设施。

识别域名基础设施

识别域名基础设施有助于道德黑客绘制目标的攻击面。这使道德黑客能够确定正在使用哪些系统和应用程序,这些数据可以用来识别安全漏洞和攻击路径,以便将漏洞利用传递给目标。

要开始识别域名基础设施,请按照以下说明操作:

  1. 始终建议在 Web 应用程序服务器前面实现 Web 应用防火墙(WAF) 来防止 Web 应用程序攻击。WAFW00F 工具帮助道德黑客确定目标网站是否位于 WAF 后面,因此使用 wafw00f <target> 命令,如下所示:

图 9.6 – 检测 WAF

图 9.6 – 检测 WAF

如果目标位于 WAF 后面,你将无法检索到目标的真实公共 IP 地址;相反,由于反向代理功能,你将获得 WAF 应用程序的地址。此外,WAF 会分析所有访问目标网站的 web 流量,并阻止任何可能的恶意流量。

  1. WHOIS 工具允许你检索目标域名的公共注册商记录;使用 whois <domain> 命令,如下所示:

图 9.7 – 收集域名注册详情

图 9.7 – 收集域名注册详情

有时,组织在注册域名时可能不会支付额外的隐私保护费用,因此其敏感信息将公开可用,威胁行为者可以利用这些信息规划未来的攻击,例如社会工程学攻击。

  1. 接下来,Netcraft 的站点报告工具帮助道德黑客对互联网上的一个网站的基础设施和技术进行分析。访问 sitereport.netcraft.com/ 并输入一个域名,如下所示:

图 9.8 – Netcraft

图 9.8 – Netcraft

几秒钟后,Netcraft 会提供网络和托管详细信息,如下所示:

图 9.9 – 网络基础设施详情

图 9.9 – 网络基础设施详情

此外,Netcraft 提供了可以用来进行地理位置定位的 IP 阻塞信息,从而确定托管域名和网站的物理服务器,如下所示:

图 9.10 – 网络块详情

图 9.10 – 网络块详情

  1. 接下来,DNS 垃圾桶是一个在线工具,可以对目标域名进行广泛的 DNS 勘探、研究和分析。访问 dnsdumpster.com/ 并输入一个域名,如下所示:

图 9.11 – DNS 垃圾桶

图 9.11 – DNS 垃圾桶

几秒钟后,DNS Dumpster 会提供该域名的所有 DNS 记录和名称服务器,如下所示:

图 9.12 – DNS 信息

图 9.12 – DNS 信息

此外,DNS Dumpster 会自动创建一个域名地图,提供有关可用 DNS 记录、IP 地址和名称服务器的洞察,如下所示:

图 9.13 – 域名映射

图 9.13 – 域名映射

此外,DNS Dumpster 提供了一个图形化表示,展示了后端基础设施以及域名中记录如何相互映射:

图 9.14 – DNS 基础设施图

图 9.14 – DNS 基础设施图

如前面的代码片段所示,视觉地图帮助道德黑客更好地理解域名的 DNS 记录如何与 IP 地址关联,并且是否有任何意外暴露的系统,这些系统是目标所有的。

识别 web 技术

作为一名道德黑客,重要的是要识别一个网站是否存在可以被真实攻击者利用的安全漏洞。有时候,底层的 web 应用程序或内容管理系统CMS)可能已经过时或包含易受攻击的插件,这些漏洞可能被利用来获取未经授权的访问、窃取数据或操控后端数据库。此外,这还帮助道德黑客更好地了解目标上运行的 web 技术,并改进攻击计划,确保使用最佳的战术和技术来实施攻击。

尽管行业中有许多 web 技术,但道德黑客可以利用知识、经验和研究来寻找 web 应用程序中已知的安全漏洞,就像真实的攻击者一样。然而,目的是在真实的网络攻击发生之前发现安全漏洞,并提供缓解措施和对策,以防止未来的攻击和威胁。

要开始识别一个网站的技术,请使用以下步骤:

  1. 首先,启动Kali Linux 虚拟机。

  2. WhatWeb 工具帮助道德黑客分析目标网站上发现的 web 技术。要识别 web 技术,请在终端中使用 whatweb <domain> 命令,如下所示:

图 9.15 – 识别 web 技术

图 9.15 – 识别 web 技术

如前面的代码片段所示,WhatWeb 能够获取特定的 web 应用程序和技术版本信息,这些信息可以用来识别目标上的安全漏洞。

  1. 接下来,Wappalyzer 是用于识别网站上的 Web 技术的浏览器插件。打开 Mozilla Firefox 浏览器,访问 addons.mozilla.org/en-US/firefox/addon/wappalyzer/,点击 Add to Firefox 安装插件,如图所示:

图 9.16 – Wappalyzer

图 9.16 – Wappalyzer

安装了 Wappalyzer 插件后,它的图标将自动出现在浏览器工具栏上。

Wappalyzer 将分析您访问的任何网站上的 Web 应用程序,以识别其 Web 技术;只需点击浏览器工具栏上的 Wappalyzer 图标即可查看网站详细信息,如图所示:

图 9.17 – Wappalyzer 详细信息

图 9.17 – Wappalyzer 详细信息

  1. 接下来,BuiltWith 是另一个 Mozilla Firefox 插件,用于分析网站的 Web 技术。访问 addons.mozilla.org/en-US/firefox/addon/builtwith/,点击 Add to Firefox 安装插件,如图所示:

图 9.18 – BuiltWith 插件页面

图 9.18 – BuiltWith 插件页面

安装了 BuiltWith 插件后,其图标将自动出现在 Firefox 的浏览器工具栏上。只需访问任何网站,点击 BuiltWith 图标即可查看网站的 Web 技术,如图所示:

图 9.19 – BuiltWith 详细信息

图 9.19 – BuiltWith 详细信息

这些插件非常有用,可以快速方便地识别您访问的任何 Web 应用程序或服务器上运行的技术,并应该是您工具库中的一部分。

完成本节后,您将学会如何使用各种工具和技术收集有关目标域名和网站的信息。接下来,您将学习如何枚举目标的子域名。

子域名枚举

威胁行为者如黑客使用被动和主动侦察技术来识别目标的子域名。通常,一个组织会注册一个域名(父域名)并创建额外的子域名,其中每个子域名指向目标拥有的不同服务器。例如,domain.local 指向网页服务器的 IP 地址,mail.domain.local 指向电子邮件服务器的 IP 地址。因此,列举子域名并解析其 IP 地址帮助攻击者识别安全漏洞和目标拥有的额外系统的攻击面。

有时,子域被用来托管用户的测试环境,这些环境配置错误,运行着易受攻击或安全性较差的应用程序,并且连接到内部公司网络。如果攻击者能够入侵此系统,他们就能够通过已被攻陷的系统转向目标的内部网络进行进一步攻击。此外,目标的子域往往并没有配置相同的安全策略和防护措施,这可能会导致存在不同的安全漏洞,攻击者可通过多种方式利用这些漏洞来获得未经授权的访问权限。作为一名伦理黑客,识别一个组织的子域对于更好地了解其安全状况并识别潜在漏洞非常重要。

使用 Sublist3r 发现子域

Sublist3r 是一个流行的工具,用于收集和分析 OSINT,以识别目标的子域。

要开始使用 Sublist3r 进行子域枚举,请使用以下说明:

  1. 首先,启动 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令更新软件包仓库列表:

    kali@kali:~$ sudo apt update
    
  3. 接下来,使用以下命令下载 Sublist3r 安装文件:

    kali@kali:~$ git clone https://github.com/huntergregal/Sublist3r.git
    

上述 GitHub 仓库是来自 github.com/aboul3la/Sublist3r 官方仓库的一个工作分支。不幸的是,官方 GitHub 仓库中的软件包在写作时已无法使用。

  1. 接下来,使用以下命令将当前工作目录切换到 Sublist3r 文件夹,并安装其依赖:

    kali@kali:~$ cd Sublist3r
    
    kali@kali:~/Sublist3r$ sudo pip install -r requirements.txt
    

以下代码片段展示了执行前述命令的结果:

图 9.20 – 安装需求

图 9.20 – 安装需求

  1. 接下来,使用以下命令对一个域进行子域枚举:

    kali@kali:~/Sublist3r$ python ./sublist3r.py -d <domain-name>
    

以下代码片段展示了 Sublist3r 已通过多个数据源进行搜索并发现目标的子域:

图 9.21 – 发现子域

图 9.21 – 发现子域

完成此练习后,你已学会如何设置并使用 Sublist3r 对目标的子域进行枚举。接下来,你将学习如何使用 theHarvester 查找更多的子域。

使用 theHarvester 查找子域

theHarvester 是一个广泛使用的工具,伦理黑客在被动侦察过程中使用它来收集目标的电子邮件地址、主机名、IP 地址和子域,来源于多个在线数据源。

要开始使用 theHarvester 查找子域,请使用以下说明:

  1. 首先,启动 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令查看 theHarvester 的可用选项和语法:

    kali@kali:~$ theHarvester -h
    

以下代码片段展示了各种语法形式及其用法:

图 9.22 – theHarvester 选项

图 9.22 – theHarvester 选项

  1. 要收集子域名,使用 theHarvester -d <target> -b <source> 命令,格式如下:

    kali@kali:~$ theHarvester -d microsoft.com -b dnsdumpster
    

source 指定收集目标信息时使用的数据源。以下代码片段显示 theHarvester 已经能够为目标收集子域名及其 IP 地址:

图 9.23 – 子域名

图 9.23 – 子域名

作为一名道德黑客,确保在收集目标情报时使用不同的数据源,因为有些数据源提供的信息比其他数据源更多。完成此练习后,你已经学会了如何使用 theHarvester 收集子域名及其 IP 地址。接下来,你将学习如何使用 Knockpy 进行积极的子域名枚举。

使用 Knockpy 收集子域名

Knockpy 是一个被动的子域名枚举工具,利用开放源情报(OSINT)并执行字典扫描,以识别目标的子域名。

要开始使用 Knockpy 进行子域名枚举,请按照以下说明操作:

  1. 首先,启动 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令更新软件包仓库列表并安装 Knockpy

    kali@kali:~$ sudo apt update
    
    kali@kali:~$ sudo apt-get install knockpy
    
  3. 接下来,要对目标执行子域名枚举,请使用以下命令:

    kali@kali:~$ knockpy <domain>
    

以下代码片段显示了在使用公共域名测试时 Knockpy 的结果:

图 9.24 – Knockpy 结果

图 9.24 – Knockpy 结果

如前所示,Knockpy 能够检索每个子域名的 IP 地址、主机名和服务器信息。此外,HTTP 状态码指示资源是否被找到(200)或未找到。

完成本节内容后,你已经学会了如何设置和使用各种工具来高效地识别目标的子域名。在下一节中,你将学习如何发现 web 应用程序中的隐藏目录。

执行目录枚举

有时,网络管理员和 IT 专业人员无意中在其网络应用程序和服务器上暴露了敏感和受限的目录与文件。如果攻击者能够在目标的 web 服务器上找到隐藏目录中的机密数据,他们可能会利用这些数据来策划并执行针对目标的未来攻击。

本节重点介绍如何作为道德黑客,使用各种工具和技术来发现隐藏的目录和文件。

使用 GoBuster 查找隐藏目录

GoBuster 是一个暴力破解工具,用于识别目标的子域名、目录、文件和主机名。

要开始使用 GoBuster 查找域名的隐藏目录和文件,请按照以下说明操作:

  1. 首先,启动 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令更新软件包仓库列表并安装 GoBuster

    kali@kali:~$ sudo apt update
    
    kali@kali:~$ sudo apt install gobuster
    
  3. 要对目标进行 DNS 子域名枚举,请使用以下命令:

    kali@kali:~$ gobuster dns -d microsoft.com -w /usr/share/wordlists/dirb/common.txt
    

dns 是一种特定语法的 DNS 暴力破解模式,-w 用于指定离线字典文件。

提示

在 Kali Linux 中,/usr/share/wordlists/ 目录中有许多离线字典文件,这些字典文件通常用于暴力破解攻击和目录枚举。此外,你还可以从 github.com/danielmiessler/SecLists 下载其他字典文件。

以下代码段显示了 GoBuster 对目标进行子域名枚举:

图 9.25 – 子域名枚举

图 9.25 – 子域名枚举

  1. 接下来,要发现域名/网站的隐藏目录,请使用以下命令:

    kali@kali:~$ gobuster dir -u https://github.com/ -w /usr/share/wordlists/dirb/common.txt
    

以下代码段显示了找到的各种目录及其相关的 HTTP 状态码:

图 9.26 – 目录

图 9.26 – 目录

HTTP 状态码 301 表示资源的位置已永久改变,新的 统一资源定位符(URL) 会在 Web 服务器的响应中给出。此外,HTTP 状态码 200 表示资源已找到,对道德黑客而言是一个好消息。

提示

要了解更多关于 HTTP 状态码及其含义的信息,请参见 developer.mozilla.org/en-US/docs/Web/HTTP/Status

正如你在前面的代码段中看到的,GoBuster 对目标进行了激进的目录和文件枚举。这个工具可以帮助道德黑客识别 Web 服务器上敏感和无意暴露的资源。

重要提示

要了解更多关于 GoBuster 的信息,请参见 github.com/OJ/gobuster

完成此练习后,你已经学会了如何使用 GoBuster 发现目标的子域名和隐藏目录。接下来,你将学习如何使用 Dirb 进行目录枚举。

使用 DIRB 进行目录枚举

DIRB 是一个流行的 Web 应用程序扫描器,用于查找 Web 服务器上的隐藏目录和文件。DIRB 使用一个单词列表对目标进行字典式攻击,查询列表中的每个单词来识别 Web 资源。

要开始使用 DIRB 识别隐藏的 Web 目录和文件,请按照以下说明操作:

  1. 首先,启动 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令运行 OWASP JuiceShop Docker 容器:

    kali@kali:~$ sudo docker run --rm -p 3000:3000 bkimminich/juice-shop
    
  3. 接下来,打开一个新的终端窗口,并使用以下命令对 开放 Web 应用程序安全项目(OWASP) JuiceShop Web 应用程序进行基于目录的暴力破解:

    kali@kali:~$ dirb http://127.0.0.1:3000/
    

以下代码段显示了使用 DIRB 在目标上找到的隐藏目录:

图 9.27 – 目录枚举

图 9.27 – 目录枚举

手动访问每个 URL 以确定隐藏资源是否有价值并在未来攻击目标时加以利用非常重要。例如,/assets目录可能包含敏感信息,如目标拥有的其他系统的 IP 地址,/robots.txt资源可能包含其他子目录。

提示

要了解更多关于 DIRB 的信息,请查看www.kali.org/tools/dirb/

完成本节内容后,你已学习如何使用各种工具来帮助发现目标 Web 服务器上的隐藏目录和文件。在下一节中,你将学习如何开始发现 Web 漏洞。

Web 应用程序漏洞

作为道德黑客,理解 Web 应用程序安全和 OWASP 的Top 10 Web 应用程序安全风险至关重要。Web 应用程序是运行在服务器上的特殊软件,用于托管网站,并且可以通过标准 Web 浏览器轻松访问。例如,当你访问你喜欢的搜索引擎时,你的 Web 浏览器会发送一个超文本传输协议HTTP)或安全 HTTPHTTPSGET消息,以请求目标 Web 服务器(互联网搜索引擎)上的资源。一旦 Web 应用程序收到 HTTP GET消息(请求),它会处理并返回请求的数据响应给 Web 浏览器:

以下图示展示了浏览器与 Web 应用程序之间的通信:

图 9.28 – Web 通信

图 9.28 – Web 通信

Web 应用程序是由开发者使用大量代码创建的。然而,互联网上的许多 Web 服务器运行的是过时且不安全的 Web 应用程序,这些应用程序可能被潜在黑客利用。与任何软件一样,Web 应用程序需要开发者和道德黑客定期进行测试,以识别任何隐藏的安全漏洞,并实施安全的编码实践来解决这些问题。OWASP 定期更新其 Top 10 Web 应用程序安全风险,以帮助网络安全专业人员、研究人员和软件开发人员更好地理解如何通过全面的安全测试找到安全弱点,并建议如何在黑客真正发现并利用这些漏洞之前解决这些安全问题。

重要提示

本书重点关注道德黑客的侦察,不涉及漏洞利用。如果你有兴趣了解更多关于 Web 应用程序安全风险的信息,请访问 OWASP 官网:owasp.org/www-project-top-ten/

行业内有许多商业 Web 应用程序扫描器表现良好。然而,Nikto是一个免费的 Web 应用程序扫描器,旨在对目标 Web 应用程序或服务器进行快速的安全检查,我们将在这里使用它。

要开始使用 Nikto 发现网络应用程序漏洞,请使用以下说明:

  1. 首先,启动Kali Linux虚拟机。

  2. 接下来,打开终端并执行以下命令以运行OWASP JuiceShop Docker 容器:

    kali@kali:~$ sudo docker run --rm -p 3000:3000 bkimminich/juice-shop
    
  3. 接下来,打开另一个终端,并使用以下命令对 OWASP JuiceShop 网络应用程序执行网络漏洞扫描:

    kali@kali:~$ nikto -h http://127.0.0.1:3000
    

如下片段所示,Nikto 能够识别目标中的常见网络应用安全漏洞:

图 9.29 – Nikto

图 9.29 – Nikto

彻底研究 Nikto 结果中列出的每个要点(+)非常重要,因为它将提供潜在安全问题的简要细节。此外,Nikto 还提供了开源漏洞数据库OSVDB)的已知安全漏洞参考。

提示

有关网络漏洞扫描工具的列表,请参见 owasp.org/www-community/Vulnerability_Scanning_Tools

完成本节内容后,您已经学会了如何使用免费的网络应用程序漏洞扫描器 Nikto 来识别网络应用程序中的常见安全缺陷。接下来,您将学习如何使用侦察框架自动化您的网络侦察技术。

网络侦察框架

网络侦察框架帮助道德黑客和渗透测试人员简化自动化许多手动任务,例如依次运行多个工具,随后收集并整合结果以改进分析阶段。通过侦察框架,道德黑客可以设置目标域名,让框架使用多种数据源的被动和主动技术,全面收集信息并生成便于人类阅读的报告,供后续分析使用。

在本节中,您将学习如何设置和使用以下网络侦察框架:

  • Sn1per

  • Amass

希望你已经迫不及待了——让我们开始吧。

使用 Sn1per 自动化侦察

Sn1per 是一个全能的网络侦察框架,旨在执行广泛的信息收集工作,帮助发现目标上隐藏的资产和安全漏洞,从而协助网络安全专业人员和组织进行攻击面管理ASM)。与其使用多个侦察工具从不同来源收集和分析数据,不如使用 Sn1per 框架来自动化整个数据收集过程,从分析到最终提供可供人类阅读的报告。因此,它帮助道德黑客自动化那些耗时且单调的任务,提升侦察阶段的效率,并通过高效的数据分析来创建目标情报。

要开始使用 Sn1per 进行侦察,请使用以下说明:

  1. 首先,启动Kali Linux虚拟机。

  2. 接下来,打开终端并使用以下命令更新软件包仓库列表:

    kali@kali:~$ sudo apt update
    
  3. 接下来,从 Sn1per 的官方 GitHub 仓库下载文件:

    kali@kali:~$ git clone https://github.com/1N3/Sn1per
    
  4. 接下来,使用以下命令将当前工作目录更改为 Sn1per 文件夹,并执行安装脚本:

    kali@kali:~$ cd Sn1per
    
    kali@kali:~/Sn1per$ sudo bash install.sh
    

安装过程通常需要几分钟才能完成。

  1. 使用 Sn1per 执行主动侦察(正常扫描),请使用以下命令:

    kali@kali:~$ sudo sniper -t <domain-name>
    

在正常扫描过程中,Sn1per 会尝试执行 DNS 枚举,进行子域发现,执行多个 Nmap 扫描,扫描 HTTP/DNS 脚本,抓取 HTTP 横幅,检查是否存在 WAF,并发现目标上的隐藏文件和目录。

重要提示

在使用 Sn1per 执行主动侦察(正常扫描)时,它将尝试直接连接到目标以收集敏感信息。请记住,主动侦察扫描可能会触发安全警报并通知目标。

以下代码段展示了在 Sn1per 正常扫描过程中执行的 Nmap 扫描:

图 9.30 – 端口扫描

图 9.30 – 端口扫描

此外,以下代码段显示了 Sn1per 成功识别目标上的隐藏文件和目录:

图 9.31 – 发现隐藏的文件和目录

图 9.31 – 发现隐藏的文件和目录

  1. 使用 Sn1per 执行被动侦察,请使用以下命令:

    kali@kali:~$ sudo sniper -t <domain-name> -m stealth -o -re
    

-o 语法指定使用 OSINT,-re 指定为侦察。

重要提示

被动侦察技术和工具不会直接连接到目标,而是收集和分析开放源情报(OSINT)以创建目标的档案。如果您希望减少触发目标警报的威胁,建议使用被动侦察。

  1. Sn1per 提供了多种模式和扫描类型;使用以下命令查看完整列表:

    kali@kali:~$ sudo sniper --help
    

Sn1per 扫描可能需要几分钟时间才能完成每个任务,因为它会对目标进行广泛的信息收集。扫描完成后,收集到的数据(战利品)会存储在 /usr/share/sn1per/loot/ 目录中,并生成一个 HTML 格式的摘要报告,报告存储在 /usr/share/sn1per/loot/workspace/<target-name>/reports/ 目录中。

重要提示

要了解更多关于 Sn1per 的信息,请参见以下链接:github.com/1N3/Sn1per

接下来,您将学习如何使用 Amass 执行网站侦察。

使用 Amass 进行网站侦察

Amass 是由 OWASP 开发的一个网络侦察框架,用于执行高级 DNS 枚举,帮助网络安全专业人员和组织进行攻击面映射。Amass 通过使用自动化的被动和主动侦察技术及工具,识别组织的外部资产。因此,它帮助道德黑客高效地从多个来源收集和分析数据,进而创建目标的概况。

Amass 可以通过 应用程序编程接口(API)、数字证书、DNS 信息、公共路由数据库、WHOIS 记录和网页归档数据库从多个在线数据库中收集信息。

要开始使用 Amass 进行网络侦察,请按照以下说明操作:

  1. 首先,打开 Kali Linux 虚拟机。

  2. 接下来,打开终端并使用以下命令更新软件包仓库列表并安装 Amass:

    kali@kali:~$ sudo apt update
    
    kali@kali:~$ sudo apt install amass
    

安装过程通常需要几分钟时间完成。

  1. 要使用被动侦察对目标进行子域枚举,请使用以下命令:

    kali@kali:~$ amass enum -d <domain-name>
    

以下代码片段显示 Amass 成功识别了目标的子域:

图 9.32 – 子域枚举

图 9.32 – 子域枚举

一旦任务完成,Amass 会提供网络块信息,显示子域及其 IP 地址的关联位置:

图 9.33 – 网络块信息

图 9.33 – 网络块信息

网络块数据可以用于识别地理位置、托管提供商、国家、自治系统(AS) 和 互联网服务提供商(ISP) 的详细信息。

  1. 要执行情报扫描以发现用于枚举的目标,请使用以下命令:

    kali@kali:~$ amass intel -whois -d microsoft.com -dir /home/kali/amass-target1
    

-dir 语法指定了在 Kali Linux 上存储输出的本地文件夹位置。情报扫描帮助道德黑客收集目标的开放源情报(OSINT),并识别与目标相关的额外根域名,如下所示:

图 9.34 – 情报扫描

图 9.34 – 情报扫描

  1. 接下来,要执行被动 DNS 枚举并将暴露的资产的攻击面映射到目标,请使用以下命令:

    kali@kali:~$ amass enum -passive -d microsoft.com -src
    

以下代码片段显示 Amass 通过从各种在线来源收集信息,成功识别了目标的子域:

图 9.35 – DNS 和攻击面映射

图 9.35 – DNS 和攻击面映射

  1. 要对目标进行主动侦察,请使用以下命令:

    kali@kali:~$ amass enum -d <domain-name> -src -ip -brute -dir /home/kali/amass-target1
    

以下代码片段显示 Amass 成功识别了每个子域的关联 IP 地址:

图 9.36 – 将 IP 地址映射到子域

图 9.36 – 将 IP 地址映射到子域

  1. 接下来,要列出使用 Amass 收集到的目标枚举数据,请使用以下命令:

    kali@kali:~$ amass db -dir /home/kali/amass-target1 -list
    

以下代码片段展示了在枚举过程中由 Amass 创建的报告:

图 9.37 – 列表报告

图 9.37 – 列表报告

  1. 若要生成已收集数据的可视化图表,请使用以下命令:

    kali@kali:~$ amass viz -d3 -dir /home/kali/amass-target1
    
  2. 若要在网页浏览器中打开可视化图表,请使用以下命令:

    kali@kali:~$ firefox /home/kali/amass-target1/amass.html
    

以下代码片段展示了来自 Amass 的可视化图表:

图 9.38 – 数据可视化图表

图 9.38 – 数据可视化图表

可视化图表帮助道德黑客轻松绘制子域名和 IP 地址,并识别目标的攻击面。

重要提示

若要了解更多关于 Amass 及其使用方法,请参阅 github.com/owasp-amass/amass/wiki/User-Guide

完成本节后,你已学会如何使用 Sn1per 和 Amass 框架自动化进行网站侦察。

总结

在本章中,你学习了如何使用被动和主动的信息收集技术进行网站和域名侦察。此外,你还掌握了道德黑客所需的实践技能,能够识别目标的攻击面及其子域名,并发现隐藏的文件和目录。最后,你探讨了如何使用网站侦察框架,帮助道德黑客自动化发现目标的攻击面。

我希望本章对你有所帮助,并能为你在网络安全行业的旅程提供有价值的信息。在下一章,实施侦察监控和检测系统中,你将学习如何实现各种开源威胁监控工具,以识别网络入侵,并确定是否在你的组织内发生了基于侦察的攻击。

进一步阅读

第十章:实施侦察监控和检测系统

一个组织发现其网络基础设施和系统被入侵的时间越长,攻击者在其网络中花费的时间就越长,侵入更多的系统以扩大在受害者网络中的立足点。实施和使用网络安全工具帮助安全运营中心SOC)和数字取证与事件响应DFIR)团队有效地监控网络流量、检测潜在威胁,并提供实时警报,以便更快的响应、遏制和消除威胁。

在本章中,你将学习如何作为一名道德黑客使用 Wireshark 进行数据包分析的基本知识。此外,你还将学习如何部署和使用 Security Onion 来监控网络,检测可疑活动,从而进一步确定它是否是一个安全事件或是你组织内的事故。

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

  • Wireshark 对于道德黑客的作用

  • 监控与检测系统

让我们开始吧!

技术要求

要跟随本章的练习,请确保你已满足以下硬件和软件要求:

Wireshark 对于道德黑客的作用

Wireshark 是一个流行且功能强大的网络协议分析工具,广泛用于网络和网络安全专业人员,以识别组织网络中的网络问题和安全威胁。Wireshark 使专业人员能够捕获网络数据包并进行分析,通过查看每个数据包或帧的内容,更好地了解网络中发生的事情。

如你所知,发送设备的网络接口卡NIC)负责将数据转换为可以通过特定媒介传输的信号,例如,铜线的电信号、光纤的光信号和无线通信的射频信号。Wireshark 可以捕获这些信号类型,并将其转换为人类可读的语言,帮助我们更好地分析网络流量。

Wireshark 帮助道德黑客检测网络应用、服务和协议中的安全漏洞,这些漏洞可能会被威胁行为者利用。以下是道德黑客在安全评估过程中常用 Wireshark 的原因:

  • 数据包嗅探 – 伦理黑客可以在网络上设置一个网络植入物来捕获发送到组织网络上的敏感和机密数据,这些数据可以用来执行未来的操作。此外,伦理黑客可以确定组织是否使用任何以明文传输消息的不安全网络协议。

  • 协议分析 – 协议分析使伦理黑客能够通过观察网络协议和识别运行在关键系统(如服务器)上的服务和应用程序,更好地了解网络、员工和设备的行为。通过识别网络协议,伦理黑客可以研究协议中是否存在已知的安全漏洞,以及对手如何利用这些漏洞。

  • 恶意软件分析 – 威胁猎手和事件响应团队等网络安全专业人员使用 Wireshark 来确定网络上是否存在恶意软件、恶意软件的类型,以及它是否已经建立了与在线服务器的命令和控制C2)通信通道。

  • 利用开发 – 在开发利用时,一个重要的阶段是测试以确保其按预期工作并确定其威胁级别。例如,如果威胁行为者创建并传递一个建立远程连接到攻击者机器的利用,网络连接可能被组织的安全团队检测为可疑活动并被阻止。使用 Wireshark 可以帮助您更好地理解网络和网络安全专业人员所看到的内容。

对于初学者来说,Wireshark 可能有点令人生畏,因为它提供了它在网络上捕获的所有细节,并且其过滤器使您能够充分利用此工具的功能来分析网络流量。

以下是 Wireshark 操作符及其描述:

  • == – 此操作符使您能够指定精确匹配。例如,如果您想过滤具有 TCP 端口80的数据包,过滤器将是tcp.port ==** **80

  • != – 此操作符表示不等于,通常用于排除某些内容。例如,如果您想过滤不包括 TCP 端口22的流量,过滤器将是tcp.port !=** **22

  • <>小于大于操作符用于指定数据包中的值是小于还是大于某个值。例如,如果您想过滤大于 150 字节的 TCP 数据包,过滤器将是tcp.len >** **150

  • &&and操作符用于组合所有为真的多个条件。例如,如果您想过滤从特定发送者到目的地址的流量,过滤器将是(ip.src == 172.16.254.128) && (ip.dst ==** **8.8.8.8)

  • ||操作符用于指定多个条件,其中至少一个条件为真。例如,如果你想过滤 HTTP(端口80)或 HTTPS(端口443)数据包,过滤器应为(tcp.port == 80 ) || (tcp.port == 443)

以下是常见的 Wireshark 显示过滤器:

  • 要根据特定设备的媒体访问控制MAC)地址00:0c:29:b6:b5:48过滤流量:

    eth.src == 00:0c:29:b6:b5:48
    
  • 要过滤来自源 MAC 地址为00:0c:29:b6:b5:48的设备的地址解析协议ARP)消息:

    arp.src.hw_mac == 00:0c:29:b6:b5:48
    
  • 要根据特定设备的 IP 地址172.16.254.128过滤流量:

    ip.src == 172.16.254.128
    
  • 要过滤来自 IP 地址172.16.254.128的 ARP 消息:

    arp.src.proto_ipv4 == 172.16.254.128
    
  • 以下是过滤流量类型的常见操作符:

    • eth – 过滤以太网消息

    • ip – 过滤 IPv4 数据包

    • ipv6 – 过滤 IPv6 数据包

    • icmp – 过滤互联网控制报文协议ICMP)v4 消息

    • icmpv6 – 过滤 ICMPv6 消息

    • tcp – 过滤传输控制协议TCP)消息

    • udp – 过滤用户数据报协议UDP)消息

    • httphttp2http3 – 过滤 HTTP、HTTP/2 和 HTTP/3 协议

    • 常见的应用层协议,如域名系统DNS)、简单邮件传输协议SMTP)和安全外壳SSH),在写成小写字母时也是过滤器,例如dnssmtpssh等。

提示

要了解更多 Wireshark 显示过滤器,请访问 wiki.wireshark.org/DisplayFilters/

要开始使用 Wireshark,请按照以下说明操作:

  1. 访问官方 Wireshark 网站 www.wireshark.org/ 下载并安装 Wireshark,或者你可以在 Kali Linux 虚拟机中打开 Wireshark 应用程序。

  2. 让我们下载一个示例数据包捕获文件,访问 www.honeynet.org/challenges/forensics-challenge-14-weird-python/ 并下载conference.pcapng文件。此外,你还可以从 wiki.wireshark.org/SampleCaptures 下载更多 Wireshark 示例文件。

  3. 接下来,当你在计算机上启动 Wireshark 应用程序时,你将看到如下所示的可用网络适配器列表:

图 10.1 – Wireshark 界面

图 10.1 – Wireshark 界面

如果你双击一个接口,Wireshark 将开始在该接口上捕获数据包,并向你显示实时流量。

  1. 要捕获流量,重要的是设置你的监控/捕获接口为混杂模式,点击Capture** | **Options,然后在你选择的接口上启用混杂模式

图 10.2 – 网络适配器

图 10.2 – 网络适配器

此外,Output 标签使你可以自定义存储捕获数据时的持续时间、数据包数量和位置:

图 10.3 – 捕获选项

图 10.3 – 捕获选项

一旦点击 Start,选择的接口将开始捕获数据包。但不要开始捕获,我们将使用 conference.pcapng 文件进行分析。

  1. 要加载 conference.pcapng 文件,点击 File** | **Open,选择示例文件;然后数据包将出现在 Wireshark 中,如图所示:

图 10.4 – Wireshark

图 10.4 – Wireshark

如前面的代码片段所示,A 显示数据包列表窗格,B 显示数据包详情窗格,C 显示数据包字节窗格。当在数据包列表中选择一个数据包时,其详情会显示在数据包详情窗格中。

  1. 要过滤源 IP 地址为 172.16.254.128 的数据包,从 数据包列表 窗格中选择数据包 5,然后展开 Internet Protocol Version 4 头,右键点击 Source Address 字段,如下所示:

图 10.5 – 数据包详情

图 10.5 – 数据包详情

然后,点击 Apply as Filter** | **Selected,如下所示:

图 10.6 – 创建过滤器

图 10.6 – 创建过滤器

如前面的代码片段所示,Apply as Filter 选项会立即应用显示过滤器。Prepare as Filter 选项允许你创建过滤器,但不会立即应用它们。

以下代码片段显示应用了显示过滤器,并显示所有源 IP 地址为 172.16.254.128 的数据包:

图 10.7 – 基于源 IP 地址过滤流量

图 10.7 – 基于源 IP 地址过滤流量

  1. 接下来,要过滤 172.16.254.1288.8.8.8 之间的流量,再次展开数据包 5 的数据包详情,右键点击 Destination Address: 8.8.8.8,然后选择 Apply as Filter** | **Selected

图 10.8 – 创建显示过滤器

图 10.8 – 创建显示过滤器

如前面的代码片段所示,修改后的显示过滤器帮助我们查看网络中指定源主机和目标主机之间的对话。

  1. 要自动解析 IP 地址、端口号和 MAC 地址,点击 Edit** | **Preferences** | **Name Resolution,启用这些功能,如图所示:

图 10.9 – 名称解析

图 10.9 – 名称解析

  1. 要查看使用 Wireshark 的所有网络对话,点击 Statistics** | **Conversations

图 10.10 – 以太网对话

图 10.10 – 以太网对话

如前面的代码片段所示,Wireshark 显示所有源和目标 MAC 地址、帧数以及此示例文件中的流量。

接下来,点击IPv4查看在样本文件和流量流中检测到的所有 IP 地址:

图 10.11 – IPv4 地址和流量

图 10.11 – IPv4 地址和流量

此外,TCPUDP标签展示了数据包捕获的网络服务和协议:

图 10.12 – 端口号

图 10.12 – 端口号

  1. 最后,点击文件 | **导出对象 | **HTTP来查看和导出捕获文件中找到的文件:

图 10.13 – 对象

图 10.13 – 对象

您可以选择提取一个文件或所有文件,将其从该样本捕获文件中提取并保存到桌面。

在本节中,您已经了解了如何利用 Wireshark 作为网络安全专业人员捕获网络流量。在下一节中,您将学习如何使用安全工具检测可疑活动。

监控和检测系统

积极监控组织内部的网络流量帮助网络安全专业人员检测系统中是否存在威胁以及哪些系统已经受到攻击。例如,安全团队可能会注意到来自内部服务器的 DNS 查询增加,而该服务器正在向互联网的一个未知 DNS 服务器发送数据包。通过分析网络流量,发现内部服务器可能已经被恶意软件感染,该恶意软件建立了一个到互联网上 C2 服务器的 C2 通道,并使用常见的网络协议(如 DNS)来降低威胁级别并避免被检测。如果没有监控网络流量,这个安全事件可能会被忽视,攻击者会继续扩展攻击。

此外,网络安全专业人员还需要监控主机系统,以便早期发现潜在威胁。一旦发现威胁,安全团队可以立即采取行动,以遏制并消除威胁,防止其扩散并利用其他系统造成更大损害。在此安全事件中收集的数据可以用于改进事件响应和处理,并提高其他系统的威胁检测能力。

许多免费和商业的威胁监控与检测工具可以从互联网上受信任的供应商处获得。然而,组织需要实施核心工具并执行核心任务:

  • 基于主机的入侵检测系统HIDSes

  • 基于网络的入侵检测系统NIDSes

  • 网络流量和数据包分析

  • 数据可视化

以下是帮助组织监控和检测威胁的流行免费开源网络安全工具:

  • Zeek – 这是一个开源网络安全工具,用于监控和分析网络流量

  • Wazuh – 这是一个开源安全平台,用于从主机设备收集和分析数据

  • Suricata – 这是一个开源网络分析工具,用于监控网络流量并提供潜在威胁的警报。

注意

你可以在进一步阅读部分找到关于如何设置 Zeek、Wazuh 和 Suricata 的链接。

设置上述工具可能会非常有趣,也是一个良好的学习体验,确保每个工具按预期工作并共享数据。然而,这个过程可能会非常耗时,尤其是在需要解决任何问题进行故障排除时。

Security Onion 是一个一体化安全平台,已安装并配置了 Zeek、Wazuh、Suricata 等许多开源工具,能够协同工作,帮助网络安全专家和安全团队迅速启动威胁监控、检测和狩猎。

以下是可以安装在主机/客户端设备上的基于主机的工具,使 Security Onion 能够从资产收集更多数据:

  • Wazuh – 这是 Security Onion 上的 HIDS 平台,使安全专家能够在主机上安装 Wazuh 代理,以收集额外的数据和日志进行分析。

  • Osquery – 这是一个终端代理,安装在主机设备上,用于监控和收集分析数据。

  • Beats – 这是一个用于 Elasticsearch 的数据传输组件,用于从主机设备收集日志和度量数据,并将其发送到 Security Onion 进行分析。

以下是基于网络的工具,使 Security Onion 能够识别网络上的可疑活动:

  • Google Stenographer – 这个工具使 Security Onion 能够执行网络流量的完整数据包捕获。

  • Suricata – 执行网络流量分析,并为潜在威胁生成警报。

  • Zeek – 它提供网络流量的连接日志和元数据,并从网络数据中提取文件进行进一步分析。

  • Strelka – 执行文件分析以检测威胁。

以下是网络安全专家在 Security Onion 上使用的分析工具:

  • SOC – Security Onion 控制台,提供用户对所有其他工具的访问权限。

  • Hunt – 提供一个仪表板,用于执行威胁狩猎查询。

  • Kibana – 用于提供网络流量和威胁的数据可视化。

  • Cases – 允许用户将警报升级为案例,以便在整个调查生命周期中跟踪。

  • CyberChef – 允许你解码并分析数据工件。

  • Playbook – 使用户能够创建基于规则的检测剧本,用于识别威胁。

  • FleetDM – 允许你在终端设备上运行实时和定时查询。

  • Navigator – 提供 MITRE ATT&CK 框架的可视化。

在设置 Security Onion 时,确保为管理分配一个专用网络适配器,为监控分配另一个适配器非常重要。管理接口用于以管理员身份访问 Security Onion,并利用其预安装的工具进行监控和威胁检测。监控接口用于从网络收集数据和流量,例如来自网络 tap 或交换机上的交换端口分析器SPAN)端口。

以下是显示 Security Onion 布置的简化图:

图 10.14 – Security Onion

图 10.14 – Security Onion

如前面的图所示,交换机配置了镜像或 SPAN 接口,将局域网LAN)和防火墙之间的网络流量复制并发送到 Security Onion 的监控接口。这使得 Security Onion 能够监控和分析在互联网和内部网络之间流动的流量。然而,需要在防火墙和隔离区DMZ)之间实施网络 tap,以使 Security Onion 能够监控该区域内的流量。

以下是设置 Security Onion 虚拟环境的推荐规格和注意事项:

  • CPU:4 核

  • 内存:12 GB RAM

  • 存储:200 GB

  • 2 个网卡

要开始设置 Security Onion,请按照以下说明操作:

第一部分 – 设置环境

  1. 首先,从securityonionsolutions.com/software/github.com/Security-Onion-Solutions/securityonion/blob/master/VERIFY_ISO.md下载Security Onion ISO 镜像文件。

  2. 接下来,打开VMware Workstation Pro,点击文件 | 新建虚拟机…,如下所示:

图 10.15 – VMware Workstation

图 10.15 – VMware Workstation

  1. 接下来,新建虚拟机向导窗口将出现;选择自定义(高级)并点击下一步

图 10.16 – 配置类型

图 10.16 – 配置类型

  1. 选择虚拟机硬件兼容性菜单中,使用默认选项并点击下一步 >

图 10.17 – 硬件兼容性

图 10.17 – 硬件兼容性

  1. 来宾操作系统安装窗口中,点击浏览…,在安装光盘映像文件(iso)下附加 Security Onion ISO,然后点击下一步 >

图 10.18 – 附加 ISO 文件

图 10.18 – 附加 ISO 文件

  1. 选择来宾操作系统窗口中,选择LinuxCentOS 8 64 位,然后点击下一步 >

图 10.19 – 来宾操作系统

图 10.19 – 来宾操作系统

  1. 接下来,为这台新虚拟机创建一个名称,然后点击下一步 >

图 10.20 – 给虚拟机命名

图 10.20 – 给虚拟机命名

  1. 处理器配置窗口中,建议为虚拟机分配4个 CPU 核心;然后,点击下一步 >

图 10.21 – 分配处理器核心

图 10.21 – 分配处理器核心

  1. 为虚拟机分配内存窗口中,建议为虚拟机分配 12 GB(12288 MB)的内存,然后点击下一步 >

图 10.22 – 内存分配

图 10.22 – 内存分配

  1. 网络类型窗口中,选择使用桥接网络,然后点击下一步 >

图 10.23 – 网络类型

图 10.23 – 网络类型

  1. 选择 I/O 控制器类型下,使用默认选项,然后点击下一步 >

图 10.24 – I/O 控制器类型

图 10.24 – I/O 控制器类型

  1. 选择磁盘类型窗口中,使用默认选项,然后点击下一步 >

图 10.25 – 磁盘类型

图 10.25 – 磁盘类型

  1. 选择磁盘窗口中,选择创建新的虚拟磁盘,然后点击下一步 >

图 10.26 – 选择磁盘选项

图 10.26 – 选择磁盘选项

  1. 指定磁盘容量窗口中,将最大磁盘大小设置为200.0 GB,选择将虚拟磁盘拆分为多个文件,然后点击下一步 >

图 10.27 – 磁盘容量

图 10.27 – 磁盘容量

  1. 指定磁盘文件窗口中,使用默认选项,然后点击下一步 >

图 10.28 – 磁盘文件

图 10.28 – 磁盘文件

  1. 准备创建虚拟机窗口中,点击完成

图 10.29 – 虚拟机摘要

图 10.29 – 虚拟机摘要

点击完成后,虚拟机环境将自动保存在 VMware Workstation 中。

第二部分 – 附加额外的网络适配器

  1. VMware Workstation中,选择Security Onion虚拟机,然后点击编辑虚拟机设置,如图所示:

图 10.30 – 虚拟机

图 10.30 – 虚拟机

  1. 虚拟机设置菜单中,点击添加…

图 10.31 – 虚拟机设置菜单

图 10.31 – 虚拟机设置菜单

  1. 添加硬件向导菜单中,选择网络适配器,然后点击完成

图 10.32 – 添加硬件向导

图 10.32 – 添加硬件向导

  1. 接下来,你将返回到 虚拟机设置 窗口,选择 网络适配器 2,选择 桥接:直接连接到物理网络 模式,然后点击 确定

图 10.33 – 网络连接类型

图 10.33 – 网络连接类型

该网络适配器将用作 Security Onion 中的监视接口。

  1. 为确保你的物理网络适配器与 VMware Workstation 中的桥接连接相关联,请在菜单栏中点击 编辑 > 虚拟网络编辑器 > 更改设置,如图所示:

图 10.34 – 网络编辑器

图 10.34 – 网络编辑器

如前面的片段所示,VMnet0桥接 网络适配器;确保它与主机上的物理网络适配器桥接。

第三部分 – 安装 Security Onion

  1. 在 VMware Workstation 中,选择 Security Onion 虚拟机并启动此虚拟机。

  2. 接下来,Security Onion 安装菜单将出现;使用默认选项并按 Enter 键:

图 10.35 – Security Onion 安装类型

图 10.35 – Security Onion 安装类型

  1. 接下来,安装向导将出现;按 Enter 键开始初始化过程:

图 10.36 – 启动安装

图 10.36 – 启动安装

  1. 接下来,键入 yes 以继续并创建一个用户账户,如图所示:

图 10.37 – 安装 Security Onion

图 10.37 – 安装 Security Onion

在此步骤中创建的用户名和密码仅用于登录控制台。

  1. 接下来,基础操作系统和软件包的安装将开始。这个过程需要几分钟,完成后虚拟机将自动重启。

第四部分 – 配置 Security Onion 中的网络

  1. 在 Security Onion 虚拟机重启后,使用你在前面的步骤中创建的用户名和密码登录。Security Onion 设置 向导将在终端/控制台中出现;使用键盘上的方向键(箭头)选择 <Yes> 并按 Enter 键:

图 10.38 – Security Onion 设置

图 10.38 – Security Onion 设置

  1. 接下来,点击 安装 开始标准安装 Security Onion:

图 10.39 – 选择设置选项

图 10.39 – 选择设置选项

如前图所示,你可以选择继续安装和设置,或者配置 Security Onion 中的网络地址和设置。

  1. 接下来,使用键盘上的下箭头键,选择 STANDALONE,按空格键放置星号(*****),然后按 Enter 键:

图 10.40 – 安装类型

图 10.40 – 安装类型

  1. 接下来,您需要在输入框中输入agree,以接受在 Security Onion 中使用 Elastic Stack 的条款和协议,然后按Enter键:

图 10.41 – Elastic Stack 许可证协议

图 10.41 – Elastic Stack 许可证协议

  1. 接下来,插入 Security Onion 虚拟机的主机名并按Enter键:

图 10.42 – 设置主机名

图 10.42 – 设置主机名

  1. 接下来,您将获得一个选项,允许您为此 Security Onion 实例插入描述。虽然这是可选的,但如果您正在进行网络中的分布式安装,建议填写。如果我们是进行独立安装,保持默认设置并按Enter键:

图 10.43 – 描述窗口

图 10.43 – 描述窗口

  1. 接下来,选择第一个网络适配器作为 Security Onion 的管理 NIC,并按Enter键:

图 10.44 – 管理界面

图 10.44 – 管理界面

  1. 接下来,您将获得一个选项,允许您为管理接口静态分配 IP 地址,或从网络中的动态主机配置服务器DHCP)服务器动态获取地址。选择STATIC并按Enter键:

图 10.45 – 管理界面设置

图 10.45 – 管理界面设置

  1. 接下来,输入您网络中未使用/未分配的 IP 地址和网络前缀,并按Enter键:

图 10.46 – 设置网络地址

图 10.46 – 设置网络地址

  1. 接下来,插入您的默认网关地址并按Enter键:

图 10.47 – 默认网关地址

图 10.47 – 默认网关地址

  1. 接下来,Google 的 DNS 服务器地址将自动设置;您可以保持默认设置,或根据需要更改它们并按Enter键:

图 10.48 – DNS 服务器设置

图 10.48 – DNS 服务器设置

  1. 接下来,创建一个 DNS 搜索域并按Enter键:

图 10.49 – 设置搜索域

图 10.49 – 设置搜索域

  1. 接下来,按Enter键确认安装过程:

图 10.50 – 确认

图 10.50 – 确认

  1. 最后,安装过程将需要几分钟来完成。完成后,Security Onion 虚拟机将自动重新启动。然后,登录并使用以下命令检查每个进程和容器的状态:

    [glen@soc ~]$ sudo so-status
    

几分钟后,所有进程和容器将如以下片段所示,开始运行:

图 10.51 – 验证状态

图 10.51 – 验证状态

在继续下一阶段之前,请确保所有容器和进程都在运行且状态良好。

第五部分 – 检测可疑活动

  1. 要访问 Security Onion 用户界面并使用安全工具,请打开你的网页浏览器并访问 https://。在此,你将创建一个用户账户以登录并访问 Security Onion 中的安全工具。此账户将用于访问 Security Onion 中的所有工具。

提示

要查找 Security Onion 虚拟机的 IP 地址,请登录其控制台并执行 ifconfigip address 命令,以查看管理接口上的 IP 地址。

  1. 登录后,你将看到主仪表盘。点击警报查看任何已检测到的安全事件和潜在威胁:

图 10.52 – 安全警报

图 10.52 – 安全警报

如前面代码片段所示,Suricata 识别出了一个潜在的高严重性威胁,并提供了用于检测的规则名称。此外,Suricata 记录了 136 次计数(事件)用于此警报。

  1. 要查看警报的所有相关事件,点击警报名称以打开下拉菜单并选择深入分析,如下所示:

图 10.53 – 警报选项

图 10.53 – 警报选项

接下来,Security Onion 将显示每个警报的计数(事件)列表,并提供时间戳、检测规则、严重性级别、源 IP 地址和源端口号,如下所示:

图 10.54 – 查看警报

图 10.54 – 查看警报

前面代码片段中显示的信息有助于网络安全专业人员通过时间戳识别威胁来源和发生的事件顺序。

  1. 接下来,点击其中一个事件以查看事件数据,例如其源和目标 IP 地址与端口号、触发警报的安全传感器、事件的严重性,以及包含有关威胁的具体信息的消息,如下所示:

图 10.55 – 查看警报数据

图 10.55 – 查看警报数据

消息字段包含以下信息,网络安全专业人员可以使用这些信息更好地理解事件:

  • 事件的时间和日期

  • Security Onion 中检测到事件的监控界面

  • 源 IP 地址和目标 IP 地址

  • 源端口和目标端口号

  • 触发事件的签名

  • 潜在威胁的描述

  1. 要确定威胁的轨迹并关联所有相关事件,点击某个事件并选择关联,如下所示:

图 10.56 – 关联事件

图 10.56 – 关联事件

接下来,Security Onion 将提供所有属于同一警报的事件的关联,如下所示:

图 10.57 – 事件关联

图 10.57 – 事件关联

此外,点击警报将提供将警报升级为案例的选项。此案例可供安全分析员在进行进一步分析时跟踪事件:

图 10.58 – 创建案例

图 10.58 – 创建案例

  1. 接下来,点击Hunt类别以查看与威胁相关的所有网络流量。然后,从列表中点击一个流量流以打开附加菜单并选择PCAP以查看数据包内容:

图 10.59 – 流量流

图 10.59 – 流量流

接下来,Security Onion 将提供所选流的网络数据包列表,如下所示:

图 10.60 – 每个流的网络数据包

图 10.60 – 每个流的网络数据包

点击展开和详细图标将显示每个数据包的详细信息,如图所示:

图 10.61 – 查看数据包详情

图 10.61 – 查看数据包详情

要导出数据包捕获文件以进行离线分析,请点击下载图标。

  1. 仪表板类别显示了使用 Security Onion 检测到的所有事件和警报的总结,如下所示:

图 10.62 – 仪表板

图 10.62 – 仪表板

  1. 要收集网络上主机的安全情报,您可以从下载页面下载并安装Wazuh 代理,如下所示:

图 10.63 – Wazuh 代理

图 10.63 – Wazuh 代理

  1. 若要查看 Security Onion 检测到的所有警报和威胁的可视化数据,点击**工具 | **Kibana并使用您的帐户登录。以下片段显示了默认的 Kibana 仪表板:

图 10.64 – Kibana 仪表板

图 10.64 – Kibana 仪表板

如前面的片段所示,Kibana 仪表板为网络安全专业人员提供了事件和事件的整体视图,使安全分析员能够在分析过程中深入了解活动。

  1. 要查看所有网络连接和流量流,点击Security Onion** | 数据集 | **conn,如图所示:

图 10.65 – 数据集

图 10.65 – 数据集

连接仪表板将显示出来,您可以点击 IP 地址和端口号以获取更多信息,如图所示:

图 10.66 – 连接仪表板

图 10.66 – 连接仪表板

  1. 展开左侧隐藏菜单并点击分析以访问 Kibana 中的更多数据可视化工具:

图 10.67 – 分析菜单

图 10.67 – 分析菜单

Discover仪表板帮助您确定何时检测到事件以及事件发生的频率,如图所示:

图 10.68 – 发现

图 10.68 – 发现

最后,可视化库提供了创建自定义仪表板或使用现有仪表板查看特定细节的选项,如下所示:

图 10.69 – 可视化库

图 10.69 – 可视化库

一定要探索 Security Onion 中的所有功能和仪表板,因为它使用了许多开源安全工具,帮助网络安全专业人士监控他们的网络基础设施,识别系统中潜在的威胁。

完成本节后,你已经学会了如何设置和使用 Security Onion 及其工具来监控网络并识别潜在的威胁。

总结

在本章中,你获得了使用 Wireshark 进行数据包分析的技能和实践经验,以识别潜在的恶意流量,并学会了如何设置和使用 Security Onion 来监控和检测网络中的潜在威胁。

最后,我知道成为一名网络安全专业人士,如道德黑客和渗透测试员,充满了挑战;有许多新事物需要学习,而且跟上不断变化的网络威胁格局也很困难。这些挑战将帮助你拓展潜力,成为你所在领域的行业专家,并引导你走向成功,只要你能够平衡优先事项、专注、奉献和时间管理。

我个人非常感谢你购买我的书籍并支持我,祝贺你坚持到最后并掌握了作为道德黑客进行侦察的所有这些惊人的新技能。我真诚希望你在本书中学到的所有内容对你有帮助,能够为你成为网络安全行业及其他领域的超级高手之路提供帮助。

进一步阅读

posted @ 2025-06-23 19:08  绝不原创的飞龙  阅读(11)  评论(0)    收藏  举报