Skip to content

Latest commit

 

History

History
384 lines (217 loc) · 39.6 KB

File metadata and controls

384 lines (217 loc) · 39.6 KB

三、通过目标侦察跟踪猎物

美国总统亚伯拉罕·林肯(Abraham Lincoln)可能被引用,但他经常(错误地)被认为曾经说过:,

“给我六个小时砍树,我会用前四个小时磨斧头。”

不管这句话真正来自何处,我们都可以肯定地将其与黑客行为联系起来。web 渗透测试的成功与否取决于我们在这里发现了什么,我们如何筛选信息,以及我们如何将其与本书后面介绍的工具相结合。在这里,一个彻底而有条理的方法将节省时间,集中精力,并有助于计划我们的攻击。我们在第 2 章准备和测试指南中讨论的各种框架和组织的方法都包括信息收集的一些方面,您应该熟悉 Kali Linux 中可用的工具

在本书中,我们将跟随在使用树莓皮进行渗透测试中讨论的 Pen 测试杀死链�� 第二版(由Jason BeltrameMike McPhee制作,可在上购买)https://www.packtpub.com/networking-and-servers/penetration-testing-raspberry-pi-second-edition )如下图所示:

Pen 测试压井链有助于了解何时需要使用哪些工具。构建自己的版本以帮助可视化工作流。

这种信息收集有多种形式,但作为一名实践黑客,您可能已经开发了自己的偏好和例程。开源信息收集、对目标本身的被动侦察,以及微妙、集中的扫描和爬行的健康组合,可以大大有助于规划项目的其他游戏计划。我们面临的挑战是在不触发目标操作员的防御意识(也称为偏执狂)的情况下尽可能多地暴露。我希望我能为您的流程提供一些调整,帮助您进一步了解您的发现,而不会被发现。

所有系统的普遍漏洞都是用户,web 应用为其开发人员提供了一个表达自己并展示其组成部分的出口。有效的社会工程通常可以缩短大量技术工程的时间,以获得证书和 web 应用架构的其他关键元素。我们将研究如何利用信任和自豪感来鼓励目标用户和开发人员尽可能多地利用这种方法。

不要忘记,工件本身可以帮助客户了解其信息公开。敏锐的网络安全意识不仅会引起人们对其组织公开信息的关注,而且他们甚至可能参与错误信息。在您的发现中,对您的发现进行分类:应推荐客户减少其公开曝光。

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

  • 收集和使用网站的脱机存档
  • 使用公共资源和奇特的旧浏览器侦察目标
  • 利用社会工程攻击用户
  • 自动化开源信息收集以映射和描述目标
  • 确定目标的关键方面,并通过主动扫描集中后续工作

模仿游戏


如果在侦查阶段的攻击中有一个挑战让你兴奋不已,那就是试图找出网站的每一个细节,而不会被发现太好奇。随意的普通用户会随机抓取网站,关注某些高流量的交易,任何比这更有条理的行为都可能引起怀疑。低效的工作流程也可能会引起关注,因此能够浏览网站和进行游戏计划攻击是一个非常有用的技巧。在本节中,我们将了解如何创建站点镜像(而不唤醒防御者),以实现无风险模拟。他们说模仿是最好的奉承方式。

我们还将发现站点的镜像存在一些限制。后端数据、高级脚本和智能都无法在应用和数据层没有相同的基础架构的情况下进行复制。我们可能指望实际利用应用的业务逻辑不会重复,我们的最终目标是大量数据不能以这种方式提取。我们需要更好地了解如何安全冲浪。在本节中,我们还将讨论一些更好的针对实际站点的戳和戳技术。

用铁轨制作(然后打碎)镜子

军事行动、体育团队和商业提案团队在最佳状态下,将针对模拟对手或在真实复制他们将面对的环境中演练或完善他们的战术和总体战略。这样做的好处很多,但其中最主要的是,这些排练环境提供了一个安全的环境来建立信心和能力,而不会有失去实际战斗、游戏或项目的风险。在电影Ocean's Eleven中,他们实际上模拟了他们破坏的地下室的完整副本,以排练他们的计划(以及更多,但如果你还没有看到,我不会破坏乐趣)��如果可以的话,你可以去租或者流媒体。关键是,模拟越准确、越真实,当真正的交易发生时,成功的机会就越大。

现在我的电影参考已经结束,想想我们作为笔试者的角色。如果你可以为一个完整的网站和一个完整的层次结构下载一份 HTML、JavaScript、CGI 和 CSS 代码,那么这不是一个在不触发真正目标警报的情况下浏览网站的好方法吗?您和您的团队参与的所有头脑风暴现在都可以在副本上使用,而且由于没有目标组织监控仪表板,我们可以测试一组向量,而不是只为一个向量而烦恼。在训练和笔试中,这也是创建本地向量的有用方法,可用于旅行的网站副本,无需担心报复或依赖实际网络连接即可使用。

这些档案还可以构成欺骗攻击的基础,允许我们使用浏览器攻击框架牛肉)或使用社会工程工具包)的凭证略读器,在将其托管到流氓蜜罐之前,获取实际网页并对其进行修改。

有几个站点镜像实用程序,如wgetw3af可以进行归档,但HTTrack是 Kali 中功能最全的工具,可以创建镜像。您可能已经将其用于基本归档,但只要稍作调整,它就可以做更多的工作。让我们看看一些最有用的 CLI 选项用于侦察,以及它们的等效的 Ty4T.图形用户界面,Ty5 T5(AutoT6G. GUI T7)。

制作秘密的初始档案

作为复习者,您可以通过执行以下操作创建网站存档:

httrack "http://www.hackthissite.org/" -O "/tmp/www.hackthissite.org" "+*.hackthissite.org/*"

â��O指向输出位置(您计划从中访问镜像的本地可访问驱动器)。虽然帮助可能被证明是有用的(T1 或 T2),但您将从 HTTrack 网站(上 Fred Cohen 自愿提供的手册中获得更多信息 https://www.httrack.com/html/fcguide.html )。正如Cohen 先生所揭示的,CLI 中有大量的开关,了解其中许多开关的默认值对于构建自己的 go-to-mirror 操作非常有用。更复杂的站点将采取措施防止从 HTTrack 等实用程序进行镜像,包括递归链接和目录结构、域拆分,以及使用脚本混淆链接以削弱镜像能力。也可能会采取严厉的措施,如 IP 黑名单或限制,因此最好只在谨慎、调整和尊重网站所有者的情况下使用这些工具。

调整隐形档案

进行隐形镜当然值得学习,但我们有一些权衡要考虑。节流和线程限制有助于我们远离他们的雷达,但这意味着镜像操作将需要更长的时间。我们可以通过过滤器和目录限制来限制我们正在寻找的内容,这是社会工程和我们自己的经验可以帮助的。其他地方是否可以提高效率?

HTTrack 处理查询时会有相当大的开销,并且消耗的时间和计算能力中的一个重要因素是解析站点上的多用途 Internet 邮件扩展MIME类型)。HTTrack 有许多可定制的功能,可以通过修改.httrackrc文件来利用,但我选择的最有用的功能是添加了以下行,这将我的镜像时间从数小时大幅缩短到数分钟。这一行告诉 HTTrack 假设 HTML、PHP、CGI、DAT 和 MPG 文件对应于标准的 MIME 类型,并且可以解析为它们通常的最终状态,从而加快传输速度,避免所有的混乱。只需使用您喜爱的编辑器将其全部添加到.httrackrc文件中(根据您的喜好修改后),然后保存该文件:

set assume asp=text/html,php3=text/html,cgi=image/gif,dat=application/x-zip,mpg=application/x-mp3

一旦我对默认值进行了修改,我发现有用的更隐蔽的命令字符串将执行一系列非默认的操作。请记住,一旦您磨光了自己的开关,您也可以将它们保存在.httrackrc文件中。下面是我使用的命令:1

httrack www.hackthissite.org -O /tmp/hackthissite �c4 -%c10 �A20000000 �m50000000 �m1000000' �M100000000 �r25 �H2 �www.hackthissite.org/forums/* -www.hackthissite.org/user/*

下面是我使用的选项的简要说明。N表示一个变量:

  • -cN:这限制了同时下载或文件处理的数量,以避免压倒我们的目标
  • -AN:这会限制带宽以保持在雷达范围内
  • -mNâ��mN':分别限制非 HTML 和 HTML 文件大小的总下载量,以确保我们的磁盘不会溢出
  • -M:设置镜像的总大小限制�� 再次保持磁盘大小可控
  • -rN:这在递归深度上设置了安全性,所以我们不会进入循环
  • -H2:如果检测到流量缓慢,则停止下载
  • -<path>/*:这跳过了一条路径(在这种情况下,我不想拉下他们广泛的论坛或用户档案)

您还可以使用 GUI 版本WebHTTrack,这对于学习如何调整您喜爱的过滤器和选项非常方便:

WebHTTrack 提供了一种直观的方法来控制过滤器和调谐,还可以保存扫描设置以供重复使用。

此命令针对https://www.hackthissite.org/ 该网站花了一个多小时才下载了 200 MB 的信息。在本例中,我省略了论坛和用户,但我也可以很容易地省略其他目录,以关注站点的特定区域,或避免违反客户建立的边界。如果在命令行运行时按Enter,您将获得该命令行运行的时间、找到的链接数以及到该时间点的总下载大小:

状态屏幕是查看进度的简单方法。如果您决定提前结束镜像,按 Ctrl+C 将退出镜像。

WebHTTrack 的另一个优点是,您可以通过交互跳过存档过程中的实时文件。

存档完成后,通过访问浏览器中的本地路径file:///tmp/hackthissite/www.hackthissite.org/index.html,您可以像浏览 live web 一样浏览存档。

您将在下面的屏幕截图中看到,我们已成功捕获动态广告横幅内容(http://infosecaddicts.com/ ),也可能值得过滤:

使用 HTTrack 创建的本地镜像与网站进行交互和浏览,这对于识别潜在向量至关重要。

镜子是否完整且最新?

我鼓励你去探索的开关太多了,但我发现有一个特别有用的开关可以帮助你镜像网站上开发者告诉谷歌、雅虎和其他爬虫忽略的地方。文件或元标记被用来告诉浏览器跳过存档或搜索扫描。他们这样做通常是为了避免让某些东西可以被搜索,这在笔试中肯定很有意思。添加â��s0选项可确保扫描时不会遗漏任何内容。

更新我们的镜像是一个非常简单的过程。假设您将其存储在非易失性位置(/tmp在重新启动时消失),您可以手动收集甚至分配cron作业来自动更新镜像的内容和链接。提示将确保您要更新缓存;假设是这样,它将删除锁文件并执行更新。我建议探索归档开关,它可以让您保留旧文件或执行增量更新,以更好地利用您的时间。一些较旧的副本可能包含为掩盖无意中泄露而被删除的内容,因此在扫描之前保存一些历史文件是非常值得的。

在结束 HTTrack 讨论之前,值得一提的是,在已知站点上练习时定制选项和设置可以使镜像过程更加高效和有用。一定要做笔记并记录下你最喜欢的选择!

HTTrack 提供智能更新,这节省了带宽和时间。如果需要,提供多个拷贝和版本的 CLI 选项。

参观目标环境

本地副本允许我们以安全的方式查看站点,但是我们从哪里开始呢?手动动手扫描将帮助我们理解流程,并为我们提供一些关于下一步的提示。我首先建议您了解站点的层次结构以及各种动态内容门户可能驻留的位置。用户可以在哪里登录到托管在那里的应用、查询信息、提供或查看反馈?我们还应该记录实体信息,以便稍后使用这些信息枚举名称、电子邮件地址和组织信息,并更好地理解实体间的关系。如果我们将此镜像重新用于 MITM 或蜜罐任务,我们不仅希望能够复制外观和感觉,还希望能够复制工作流。

有几种工具可以帮助完成这些演练,比如那些揭示底层 HTML 和 JavaScript 元素的工具。通过Firefox中的开发工具查看页面源代码,使用OWASP Mantra附加包中的插件HackBar,或其他 HTML 查看器。为了节省时间,我建议使用完整的代理工具集,如BurpFirebug来完成除初步熟悉应用或网站之外的任何事情。使用 web 应用测试套件(将在接下来的几章中介绍)可以帮助您有效地从侦察阶段转向武器化攻击安装阶段的活动。

开源令人敬畏


在接受任务或工作之前,我要做的第一件事就是弄清楚我面临的是什么。并非总是这样。作为一名从事通信系统工作的年轻工程师,我曾被要求领导一个听起来很酷的子系统规范的开发。呜呼�� 闪耀的时刻!我根据团队领导提供的销售宣传做出承诺。在任务的第二周左右,我突然意识到了现实,因为只有在那时,我才能从键盘上抬起头来,想象我面前剩下的道路。如果我在承诺之前就做了这项研究,我本可以避免前面的麻烦。不用说,工作已经完成了,但我总是回顾过去,想知道如果我在接受任务之前研究了过程、约束和期望,工作会有多好,休息会有多愉快。

渗透测试也不例外。虽然一些测试人员(以及黑帽测试人员)可能会在研究目标之前接受一份工作,但最有经验的专业人员会采取不同的方法,完成他们的家庭作业。我们都是谷歌搜索专家,但我们都有办法改进这些查询,并利用其他工具来完成我们的目标外观。我们需要利用搜索引擎、社交媒体、论坛和董事会以及其他公共领域信息之间的许多链接。下图向我们展示了原始的开源智能OSIT)是如何来自多个来源的,它可以通过搜索引擎和 Kali 自己的工具集进行访问。有效地使用 OSIT 有助于更好地理解项目的任务,并有助于我们制定策略、发现漏洞、获取用户信息,以及获得有助于我们规划基础设施的详细信息。我们将看一看可能很熟悉的几个工具,但我们将看看是否可以释放它们更多的潜力。

浏览器和 Kali 的工具集可以帮助访问大量可用的 OSIT。

开源英特尔与谷歌和谷歌黑客数据库

搜索引擎现在是我们高度互联的全球社会不可或缺的一部分,很容易忽视每个引擎的优势和能力。谷歌、必应以及雅虎在美国的市场占有主导地位,但考虑到我们作为笔试的角色可能会跨越国界,与引擎及其本地化合作以确保我们获得最新的信息是非常有用的。搜索引擎巨无霸https://www.searchenginecolossus.com 提供了每个国家的主要选择,包括那些被禁运的国家。一般信息搜索,特别是非技术领域的搜索,应包括目标或其合作伙伴组织的本地搜索引擎。然而,谷歌的搜索引擎本身提供了出色的覆盖范围和广泛的语法,可以利用这些一般的引擎发现,并以极大的效率使用它们来挖掘架构细节、敏感文件和进入目标服务器的潜在方式。

调整你的谷歌搜索技能

有专门针对提高谷歌搜索技能的书籍,但对于网络渗透测试,我们可以关注一些技巧和实践,这些技巧和实践可以更好地利用引擎,消除无用的搜索点击,通常称为噪音。我们可以使用一些操作符来过滤或聚焦结果,而其他操作符将执行逻辑组合或修改引擎的行为。让我们看看最有效的修饰符和选项,先过滤或聚焦,接着是逻辑运算符:

  • site:operator:使用 site:operator 告诉谷歌引擎只接受托管在特定域上的文件。当我们在寻找合法的联系信息、公开的文件和内容时,我们希望使用该运营商,使我们能够完全关注该域的结果,而不是页面点击顺序中的完整链接转储,这可能会对许多其他网站产生垃圾邮件。例如,在站点之前(左)和之后(右)搜索 Cisco ASA 文档:

该网站:运营商是一个伟大的第一过滤器,以确保结果集中在您的目标。

  • 凭证操作员:使用诸如usernamepassworduseridpwdpasscode、凭证或任何其他变体等关键字可以帮助我们定位密码或用户名恢复详细信息。对这些术语进行快速的有针对性的搜索,不仅可以指向您可能要查找的门户条目,而且实际上还可以提供解锁这些条目的密钥。我们将在本书后面的部分讨论针对这些查询的结果使用默认凭据:
site:<target site> username|userid|password|passcode|pwd

凭证搜索本身可能不会产生凭证,但可能会指向下一个最好的东西–凭证�� 恢复

  • inurl:operator:对目标的早期侦察,包括从社会工程中获得的经验教训,可能会为我们提供有关所用平台、所涉及开发人员或 web 应用兴趣点的线索。我们可以将 inurl:operator 与 site:operator 结合起来,探索那些特定的关注点:
site:<target site> inurl:index

Inurl:可以帮助消除数千个潜在位置和焦点。

  • 文件句柄(ext:)操作符:使用标准文件句柄允许我们调出并包含(或排除)感兴趣的文件扩展名。使用典型的文件扩展名,您可以使用 ext:运算符调用每个扩展名。例如,我们将在www.hackthissite.org中使用 URL 中的单词索引,使用以下字符串搜索所有 PHP 文件:
site:<target site> ext:php inurl:index
  • **文件类型:运算符:**如果我们要查找的文件类型可能不是显示的,而是链接到站点或在站点上存档的,那么我们会使用文件类型:运算符。例如,在搜索中调用filetype:xls会在搜索区域搜索 Excel 电子表格:
site:<target site> filetype:xls inurl:finance
  • intitle:operator:当我们想要一个特定的文件时,我们可以使用 intitle:operator。这对于定位特定于平台的配置文件非常有用,或者有助于公开robots.txt文件。您可能还记得我们使用 HTTrack 时,该实用程序的默认行为是避免对robots.txt文件中标识的网站部分进行爬网。这是为了让 web 开发人员能够防止某些必要但敏感的位置被信誉良好的浏览器搜索到。如果没有采取其他预防措施,robots.txt可以向黑客提供他们可能想要查看的文件和文件夹列表。嗯,对于黑客来说,很有可能有一些有趣的细节会非常有用。要查看robots.txt文件中的内容,您只需输入以下内容:
site:<target site> intitle:"index.of" robots.txt

前面提到的每一个运营商都可以单独或组合帮助缩小搜索范围,但更多地了解谷歌搜索的处理引擎也可以帮助我们消除无关信息并理解搜索结果。以下是一些快速提示要点:

  • 使用逻辑运算符是有帮助的(假设为。如果写出来,或必须始终是所有的大写被视为逻辑或,以免它被视为搜索短语本身的一部分。您还可以使用操作符,通常称为管道操作符。 *** 谷歌搜索将专注于搜索短语的前 10 个非平凡单词。在搜索短语中使用***代替可选词或废弃词不会违反十个词的限制,但会有效地扩展短语以进行更复杂的搜索。* 您可以在运算符或筛选器之前使用-来排除(否定)该筛选器或操作的影响。例如,我们希望确定除 web 服务器外,特定域可能呈现的内容:

**``` site:packtpub.com �site:www.packtpub.com


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_11.png)

使用“-”修饰符将过滤器从结果集中排除。

*   这与关键字**not**不同,它实际上只用于从搜索中排除一个单词,但对特殊运算符没有影响。如果我们运行以下操作,它将产生大量的**www**结果,这与使用**-**作为修饰符的搜索不同:

site:packtpub.com NOT site:www.packtpub.com


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_12.png)

使用�� 如果你没有预料到,那就没用了。**  **#### 使用谷歌黑客数据库和 Netcraft 更智能地工作

谷歌搜索技能总是有用的,但黑客最有用的字符串很多都是在**谷歌黑客数据库**(也称为**漏洞数据库**)中捕获的,这是一个由攻击性安全人员([主持的项目 https://www.exploit-db.com/google-hacking-database/](https://www.exploit-db.com/google-hacking-database/) )。虽然浏览很有趣,但最好的使用方法是为搜索查询设定种子,将它们编目的字符串与上一节中您自己的修饰符相结合。

它们的大部分类别对于 web 渗透测试很有用,但我将从**web 服务器检测**查询开始:

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_13.png)

Google Hacking DB 已经成熟,可以重新调整搜索引擎的用途。

这些查询以及其他来自**易受攻击的服务器**、**敏感目录**等类别的查询,加上`inurl:`和`site:`修饰符,在从高层次上了解环境中的暴露情况时非常有用。如果您幸运地发现了凭据或漏洞,则应立即向您的赞助客户披露此信息。这些搜索在黑客领域的两边都在持续使用,这类信息不应该等到汇报。

英国巴斯的一家公司**Netcraft**提供了许多服务,但他们的免费网络扫描工具([https://searchdns.netcraft.com](https://searchdns.netcraft.com) 是一款非常快速且肮脏的扫描仪,可以帮助您集中精力进行更详细的工作。你可以搜索一个域名,然后深入到所有技术和版本的报告中,这些技术和版本可以根据对无害查询的响应进行公开分析。快速搜索[https://www.packtpub.com/](https://www.packtpub.com/) 在他们的网站上显示,他们目前有两个邮件 IP 地址在 FreeBSD 上托管一个 Packt 平台。报告还告诉我们什么?

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_14.png)

Netcraft 的在线 web 扫描器为我们提供了一个很好的视角,让我们了解我们在未来阶段的库存情况。

我们可以看到有两个跟踪器(谷歌和亚马逊)。XML 和 SSL 在服务器端使用,而 JavaScript 在客户端使用,Drupal 同时用作**内容管理系统**(**CMS**)和 PHP 脚本引擎,HTML5 和 CSS 表单也在使用。所有这些都有助于改进 pen 测试方法。**  **### 掌握自己的领域

搜索引擎容易访问,但我们还需要了解网络的域结构、寻址计划和支持服务是什么,因为这种观点对我们探索应用的工作至关重要。承载应用的域可以具有复杂的域结构,可以利用这些结构。主机、网络 IP 地址和块、名称服务器和相关元素可以帮助识别目标实体、到相邻主机的枢轴、底层服务和守护进程,以及正在使用的开放端口和协议。我们将研究一些工具,它们将其中的一些合并到一个更大的解决方案中,但是掌握**挖掘**、**凶猛**、**dnsenum**、**dnsmap**、**WHOIS**和**DNSRecon**将大大提高准确性和有效性。

WHOIS 数据库自互联网诞生之初就开始使用,虽然复杂的服务提供商和托管模式意味着 WHOIS 很少包含域的最终用户及其联系信息,但正是这些信息可以开始调查。我们都在经验中使用过它,所以我们将进入下一个级别的工具。

#### 挖土

DNS 记录为和域的各种功能相关联的 IP 地址提供了人类相关别名。我鼓励您定期检查 DNS 操作和相关记录类型,以确保您始终了解 DNS 使用的任何新趋势,并加快您的内存。经常会发现新的应用和协议借用 DNS 记录空间供自己使用。保持 DNS 知识的新鲜可确保您做好充分准备来利用这些新应用。

实用工具`dig`一直是 DNS 枚举的 pen 测试社区的坚定支持者;很可能您已经使用过它,并且有一些喜欢使用的开关。当涉及到网络笔测试时,我们将专注于答案字段,通过 dig 提供的各种开关,我们还可以使用它来绘制其他相关记录类型。

##### 挖掘记录类型

Dig 可以快速方便地查询并映射出**A**、**MX**、**NS**、**SOA**或其他记录的关联记录类型。默认值是记录,它指示域的主要 IPv4 地址,但您可能只想找到关联的名称服务器(NS 记录),例如,以尝试 MITM 攻击。MX 记录和指向域上邮件服务器的指针在针对目标用户的网络钓鱼活动中非常有用。如果我们想查看与域关联的所有记录类型,我们可以使用`ANY`关键字:

dig packtpub.com ANY


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_15.png)

基本挖掘输出-有用,但可能更简洁。

为了找到与 Packt 发布相关联的邮件服务器,我们只需输入 MX 关键字来过滤那些记录类型。

基本`dig`输出中的每个子部分都可以通过命名特定部分进行过滤,例如`+nocomments`、`+noquestion`、`+noauthority`、`+noadditional`或`+nostats`。要关闭所有这些部分,您可以使用`+noall`快捷方式,然后打开所需的部分(例如`+answer`),直到结束,如下所示:

dig packtpub.com ANY +noall +answer


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_16.png)

挖掘输出缩短到只关注我们感兴趣的记录

`+short`修饰符也可以消除许多多余的信息,值得添加到标准查询中以帮助缩短输出。

`dig`还提供了进行**区域转移**的功能,如果目标没有受到保护,攻击者可以通过该功能拉下域的整个转发区域。只有在域上的合法名称服务器之间才会发生这种情况,成功的区域传输对攻击者来说是一笔意外之财,我们应该始终测试和寻找这种情况。为了演示区域转移,我们将使用精彩的训练站点 Diji 忍者自己的域([https://digi.ninja/projects/zonetransferme.php](https://digi.ninja/projects/zonetransferme.php) )并键入以下内容:

dig axfr @nsztm1.digi.ninja zonetransfer.me


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_17.png)

进行区域转移是一件非常了不起的事情。

`dig`提供了一个干净、简单的工具集,但通常情况下,目标环境比`dig`在井上所能呈现的更大,或者我们正在寻找更深入的结果。这就是`dnsrecon`的用武之地。我建议对`dnsrecon`重复同样的练习,看看它与 dig 的比较,并帮助您确定哪种工具是您的主要工作。

#### 变得凶猛

`dig`和`dnsrecon`都是很棒的工具,但如果我们能更进一步,拥有一个工具,尝试连接到站点的地址块,自动进行区域传输,并在日志记录时完成这一切,那不是很好吗?**凶猛的**(Robert*RSnake*Hansen 用 Perl 编写)可以做到这一点。有很多选项和修饰符可以在调用凶猛时使用,但在大多数情况下,我使用 dig 进行初始发现,移动到凶猛进行尝试的区域转移和一些连接探测,然后移动到一个更具图形化和组织性的工具,如 Maltego,以构建我的网络地图和枚举关系。要使用 Feature 尝试区域传输并将日志发送到文件,只需调用该工具,它就会自动执行此操作:

fierce -dns zonetransfer.me -file /root/Desktop/packtpub.txt


由于该站点允许区域传输,我将在运行输出和我指定的`txt`文件中看到结果:

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_18.png)

Feature 自动执行几次 dig 或 dnsrecon 查询。

Feature 还允许您尝试使用`â��connect`交换机连接到任何公共 IP 上的开放端口。您需要提供`wordlist`以便 Fear 有一些潜在的凭证可以尝试,并且您需要在专用机器上或隔夜运行,因为过程可能会很长,具体取决于域的大小。我们可以使用以下方法启动此过程:

fierce -dns -connect


#### 与 Nikto 的下一步行动

一旦我们拥有完整的 DNS 记录和其他相关情报,我们通常会转而扫描漏洞(也称为**vulns**。**Nikto**是我首选的扫描器,我通常会将这些结果保存在调优工具中,这些工具会扫描漏洞,但也会将其转移到以后的阶段。Nikto 导出为多种文件类型,包括 HTML、XML、TXT 和 CSV,并使用它开始主动侦察阶段。

### 注

由于它是一种主动工具,因此其使用构成了法律上的挑衅行为,因此,建议仅在实际操作中针对实验室机器和您有明确测试许可的系统使用它。我没有足够的抵押品为你保释。

要使用 Nikto,我们需要确定主机或主机列表(后者在主机文件中定义)以及输出日志的位置,但是有一个广泛的菜单项列表值得考虑,以定制我们的扫描。除了输出文件和日志参数外,实际上还有预定义的调优,可用于针对指定主机运行一些常见的最佳实践测试集。这些选项是在扫描中充分利用 Nikto 的一个很好的快捷方式,详情见主页:

-TuningTuning options will control the test that Nikto will use against a target. By default, if any options are specified, only those tests will be performed. If the "x" option is used, it will reverse the logic and exclude only those tests. Use the reference number or letter to specify the type, multiple may be used:0 - File Upload1 - Interesting File / Seen in logs2 - Misconfiguration / Default File3 - Information Disclosure4 - Injection (XSS/Script/HTML)5 - Remote File Retrieval - Inside Web Root6 - Denial of Service7 - Remote File Retrieval - Server Wide8 - Command Execution / Remote Shell9 - SQL Injectiona - Authentication Bypassb - Software Identificationc - Remote Source Inclusionx - Reverse Tuning Options (i.e., include all except specified)


默认扫描将运行所有测试,但如果对允许的内容有限制,则这些调整可以帮助保持测试的兼容性。当您要求匿名时,可能还需要利用有意代理(您建立的代理或许多免费代理中的一个(例如,[上的代理)http://proxy-list.org](http://proxy-list.org) ),或者更好的是,您已经为此目的妥协的主机)。为此,您可以使用自己喜欢的编辑器在`config.txt`中指定代理服务器(或显式地称为替代服务器)。**Nano**是我的首选,但**vim**或**emacs**效果不错:

nano /etc/nikto/config.txt


向下滚动至**`P`****`roxy settings`**部分,并输入相应的详细信息:

Proxy settings -- still must be enabled by -useproxy PROXYHOST=PROXYPORT=<usually 8080, can be anything if using something like squid>


然后,我们可以使用配置的代理启动扫描,如下所示:

nikto -Tuning x 6 9 -useproxy -h http://192.168.1.132


![](https://www.packtpub.com/img/9781784395070/img/B03918_03_19.png)

Nikto 是一款功能强大的多功能扫描仪,在封闭的环境中进行实践会产生巨大的影响。

与任何工具一样,有时认识到要避免哪些切换是很重要的。对于黑盒测试(使用更真实的隐蔽特许协议进行笔测试,测试人员试图模拟攻击者,并且没有有利的访问权限),必须避免导致过度查询和闲聊扫描的选项,大多数情况下,`+mutate`开关不值得麻烦。如果您正在进行白盒测试(运营商知道,不专注于隐形,而只是公开探索),那么提供更大的覆盖范围是有意义的。

### 聘请 Maltego 组织

**Maltego**是我最喜欢的侦察工具之一,因为它有助于可视化不同数据源之间的许多链接和关系。*Jason Beltrame*和我在*树莓皮渗透测试中介绍了它�� 第二版*([https://www.packtpub.com/networking-and-servers/penetration-testing-raspberry-pi-second-edition](https://www.packtpub.com/networking-and-servers/penetration-testing-raspberry-pi-second-edition) ),但从那以后,我开始在我无法想象的用例中使用它。尽管投入其中很有趣,但肯定有一些最佳实践有助于避免信息过载。Kali 发行版的最新版本 4.0.11 包括了新的足迹技术,如**公司跟踪者**、**查找维基百科编辑**、**推特挖掘者**和**监视器**。所有这些转变都可以用于网络笔试,但这些新的社会关注起点强调了**Paterva**让 Maltego 成为所有黑客社区不可或缺的一步。

我倾向于将其用作从社会工程、LinkedIn/电子邮件搜索中收集的信息的图形文档,并将其固定在域上。对一个实体进行透视和转换的能力甚至帮助我发现了多个托管公司的多个域,这些托管公司通过两到三层混淆,实际上是由同一个骗子网络运行的。通过转换的递归可以帮助找到其他用户,这些用户可能有本地帐户,或者表示其姓名和信息可以填充我们的字典的亲戚或朋友。一个简单的例子是对 Packt Publishing 的 web 域执行公司跟踪程序:

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_20.png)

这张 Maltego 图缩小是为了保护无辜者,同时也为了显示它跟踪的信息的关系性质。

如您所见,在基本机器的进程中可以找到多个文档(橙色点),其中每个文件都有相关的元数据,例如人员(绿色)、证书(黄色)和位置(红色)。如果我们深入到一个人,我们可以要求转换搜索所有潜在的电子邮件地址(蓝色)。我发现 Maltego 非常有帮助,当您从其他 OSIT 来源向它提供额外的种子信息以帮助聚焦,或推动模型链接原始机器和其他信息时。您可以添加任何形式的身份,但附加的 web 域或电子邮件地址、社交网络用户名或 IP 块和接口可以极大地提高 Maltego 图的逼真度和实用性。**  **## 与目标社交

* * *

如果您没有使用**社会工程师工具包**(**设置**、[https://www.trustedsec.com/social-engineer-toolkit/](https://www.trustedsec.com/social-engineer-toolkit/) ),你错过了一些重要的事情。我们当然可以用它来欺骗谷歌、Facebook 和 Twitter,以吸引受害者、发动攻击或窃取他们的凭据,但我们也可以用它来欺骗我们的目标 web 应用,从而劫持会话和映射用户行为。当受害者在不知情的情况下舒适地坐在咖啡厅的椅子上浏览这些重复的网站时,攻击者可以收集受害者的密码,甚至注入一个命令外壳,使他们能够完全访问受害者的系统。对于安全专业人士来说,这是一个很好的工具,可以证明只要页面看起来合法,用户往往不会注意他们输入敏感信息的位置。让我们来看看如何使用 SET 来对抗我们从 AutoT6。这是一张图表,我们可以用它来帮助想象这次攻击的样子:

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_21-2.png)

SET 可以用于许多攻击,但谁不喜欢经典的 MITM 呢?

我对 SET 的典型用法是选择选项**`1) Social Engineering Attacks`**,然后选择**`2) Website Attack Vectors`**。我要找的是**`3) Credential Harvester Attack Method`**中的内容,这样我们就可以抓取我们可怜的目标用户的登录凭证。我们可以使用内置模板或导入自定义站点(对公司门户或使用较少的 web 应用有用);但是为什么我们不想使用我们已经捕捉到的镜子呢?我们将选择选项**`3) Custom Import`**。这将使我们的 Kali Linux 虚拟机成为[www.hackthissite.org](http://www.hackthissite.org)的恶意前端,呈现为真实交易和抓取凭证或任何其他基于 HTML 的信息字段:

`**`![](https://www.packtpub.com/img/9781784395070/img/B03918_03_22.png)`**

使用以前的镜像设置配置-修改和调整以使其更具说服力。

快速检查我们的镜子表明它现在已启动并运行;我们现在的任务是说服用户将他们的初始会话指向此处。

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_23.png)

指向我的站点副本的快速检查表明,我们的 MITM 克隆已经准备就绪。

在**`Login`**字段中输入一些凭证并提交,我可以看到它们被实时捕获并记录在日志文件中。

![](https://www.packtpub.com/img/9781784395070/img/B03918_03_24.png)

任何到达的 HTTP 消息都会被捕获,因此凭证或个人信息归我们所有。`  `## 总结

* * *

正如我在本章开头提到的,侦察阶段可以决定后续阶段的成败。信息收集将为你的破解和模糊操作提供信息,将搜索范围缩小到更易于管理的地方。集中测试所节省的工作转化为更严格的测试标准、更成功的测试方法、更少的搅动和尝试错误,以及更显著的报告。客户通常会了解我们在这一阶段中所发现的内容,就像他们在其余阶段中所了解的一样,这就引出了一个关键点。关于他们的系统和用户的在线信息的质量和数量在未来可能会产生巨大的影响。限制或减少这种接触的主动行动改善了他们的安全态势,应该受到鼓励和指导。

在本章中,我们探讨了最流行的 OSIT 收集工具的一些更深入的用途。我们看到了如何在 web 应用的托管体系结构中快速映射各种网络和域组件,甚至开始使用更严格的命令行选项扫描该基础结构,这些选项可以生成比默认值更简洁和有用的数据。我们还深入研究了如何更好地使用搜索引擎,并利用了一些流行的在线资源,这些资源记录了一些真正可怕的查询字符串。讨论了多种形式的社会工程,我们构建了自己的 MITM 攻击,以基于镜像网站捕获凭据。最后,我们看了 Maltego 如何开始分解目标环境的层次,并帮助可视化我们的对手。

在下一章中,您将学习如何更有效地抓取 web 应用,以便使用 Arachni 框架进行快速扫描。作为与服务器和客户端之间的对话交互的拦截代理,我们将看到 Arachni 如何进一步自动化一些攻击,以提供额外的测试向量、启动扫描、DOM 上的跟踪流和 JavaScript 环境。作为奖励,您将学习使用 Arachni 模拟移动平台,甚至生成更高质量的报告,无论是作为独立的还是作为多工具笔测试交付的基础。这一章的工作就要有回报了,伙计们!`**