社会工程渗透测试教程(二)(2)

本文涉及的产品
.cn 域名,1个 12个月
简介: 社会工程渗透测试教程(二)

社会工程渗透测试教程(二)(1)https://developer.aliyun.com/article/1508282

被动爬虫

如果任何侦察工作开始引起警报,那么所有的努力都可能白费。如果我们能 passively 地爬取一个网站,那不是很好吗?事实上,通过使用“代理爬虫”就可以实现这一点。

谷歌和必应等大型搜索引擎提供商花费大量时间爬取互联网,以便搜索引擎用户无需自行操作。为什么不利用一下呢?

使用由屡获殊荣的 Ryan Dewhurst(@ethicalhack3r)创建的 Passive Spider(github.com/RandomStorm/passive-spider)来映射网站。www.ethicalhack3r.co.uk

被动爬虫利用搜索提供商的工作,通过利用搜索结果来给出网站的布局。

在撰写本文时,被动爬虫仅使用必应搜索引擎,但需要注册免费的必应开发者 API 密钥才能执行任何搜索。

安装需要 Ruby,但非常简单。已在运行 Ruby 1.9.3 的 OSX 上进行了测试,也可以在 Kali Linux 上运行,同样在 Ruby 1.9.3 上工作。

以下是安装说明:

git clone https://github.com/RandomStorm/passive-spider.git
cd passive-spider
gem install bundler && bundle install.

或者,您也可以直接从 GitHub(www.https://github.com)下载 ZIP 存档并提取文件。

在 passive-spider 目录中有一个名为 api_keys.config 的文件。这是您需要在引号之间输入之前提到的 Bing 搜索 API 密钥的地方。

确保 pspider.rb 文件具有执行权限:

chmod +x pspider.rb

此时,被动蜘蛛已准备就绪。让我们看看它收集了什么信息。

./pspider.rb --domain syngress.com
[+]---------------------[+]
[+] Passive Spider v0.2 [+]
[+]---------------------[+]
Shhhhh… by Ryan'ethicalhack3r' Dewhurst
Part of The RandomStorm Open Source Initiative
[+] URLs: 59
http://booksite.syngress.com/
http://www.syngress.com/?cur=usd
http://booksite.syngress.com/companion/conrad/practice_exams.php
http://booksite.syngress.com/companion/conrad/
http://booksite.syngress.com/companion/issa.php
http://www.syngress.com/about-us
http://booksite.syngress.com/companion/special_interests.php
http://booksite.syngress.com/companion/conrad/podcasts.php
http://booksite.syngress.com/companion/conrad/Conrad_PracticeExamA/COU36289844/open.html
http://booksite.syngress.com/companion/certification.php
http://booksite.syngress.com/companion/hacking_penetration.php
http://booksite.syngress.com/9781597494250/content/
http://www.syngress.com/news/nacdl-cacjs-5th-annual-forensic-science-seminar-march-23-24-las-vegas/
http://www.syngress.com/special-interests/
http://www.syngress.com/events/5th-annual-cai-security-symposium---northern-ky-univ-oct-28th-highland-heights-ky/
http://booksite.syngress.com/companion/digital_forensics.php
http://booksite.syngress.com/Landy/index.php
http://www.syngress.com/news/securabits-100th-podcast---guest-harlan-carvey-and-craig-heffner-tonight-march-7th-7-30-est/
http://booksite.syngress.com/9781597494250/content/Video/HIPT/module06/index.html
http://www.syngress.com/events/7th-annual-scada-and-process-control-system-security-summit-orlando-florida/
http://www.syngress.com/information-security-and-system-administrators/Dictionary-of-Information-Security/
http://www.syngress.com/news/read-the-latest-review-for-digital-forensics-with-open-source-tools-by-altheide-and-carvey/
http://booksite.syngress.com/9781597494250/content/Video/HIPT/module02_E/index.html

如您所见,输出非常直观。现在我们已经在未触摸它的情况下获得了目标公司网站的基本布局。在开始任何更积极的测试之前,强烈建议采用这种方法。可能需要更积极的蜘蛛来处理整个网站。这将在本章后面介绍。

被动蜘蛛不止于此。它还显示了查询期间找到的任何文档,这对社交工程师来说可能非常有用。为什么查看元数据时文档很有用将在本节后面介绍。此外,文档通常非常有用,因为它们经常包含员工的联系方式。

滚动到结果的底部会显示在搜索期间找到的任何子域和有趣的关键字。

使用 OWASP Zed Attack Proxy 进行主动蜘蛛。

Zed Attack Proxy (ZAP) 是一个易于使用的集成渗透测试工具,用于查找 Web 应用程序中的漏洞。

它设计用于被各种安全经验水平的人使用,因此非常适合对渗透测试尚不熟悉的开发人员和功能测试人员。

ZAP 提供了自动扫描器以及一套工具,使您能够手动查找安全漏洞。

www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

ZAP 是另一个非常棒的开源工具,我们可以利用它,但它提供的全部功能远远超出了本书的范围。目前我们感兴趣的是它的蜘蛛能力。

ZAP 之所以被称为 ZAP,是因为它代理您的连接到您选择的目标。这使得 ZAP 能够拦截并篡改任何出站请求或入站响应。

启动 ZAP 后,您需要配置浏览器指向它,通过在代理设置中配置 localhost 和端口 8080 来进行。我使用 Firefox 的 FoxyProxy 插件,但其他浏览器也有替代品。如果您将要频繁更改设置,则 FoxyProxy 等应用程序更快,并且您可能会这样做。

所以,让我们安装 ZAP 并配置浏览器,以便我们可以拦截流量。为了本节的目的,我假设您正在使用 Firefox。

步骤 1:转到 FoxyProxy 网站:addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/

步骤 2:点击“继续下载”。

步骤 3:点击“添加到 Firefox”。

步骤 4:Firefox 应提示您安装 FoxyProxy。此时需要重新启动 Firefox。

就是这样。接下来,我们需要配置 FoxyProxy 以启用将所有流量发送到 ZAP。

步骤 1:在 URL 栏末尾找到 FoxyProxy 按钮,右键点击它。选择选项。

步骤 2:点击“添加新代理”(图 8.1)。

步骤 3:填写“localhost”和端口 8080 的代理设置(图 8.2)。

当启用 FoxyProxy 时,它将自动将 HTTPS 和 HTTP 流量发送到 ZAP。如果没有使用 FoxyProxy,则可能需要在浏览器或系统设置中单独配置 HTTPS 代理。

步骤 4:点击顶部的“常规”按钮,并给条目命名,“Owasp ZAP”即可。

步骤 5:选择一个颜色作为条目的颜色,然后点击“确定”完成设置。

图 8.1 添加新代理。

图 8.2 FoxyProxy 设置。

现在要启用代理,只需右键点击地址栏末尾的小狐狸图标,然后选择“用 OWASP ZAP 代替所有 URL”。此选项将通过 ZAP 发送所有 HTTP 和 HTTPS 流量。由于尚未启动,因此没有任何网站会加载。

在本节开始提供的链接中获取 ZAP 后,有一个 Windows 安装程序和一个 Mac 版本。给出的示例是在 Mac 上运行它,但是无论如何,流程都是相同的。通过安装和运行 ZAP,将呈现以下屏幕(图 8.3)。

图 8.3 ZAP 初始界面。

因此,让我们跳回 Firefox 浏览一个网站,看看会发生什么。这通过使用 Damn Vulnerable Web Application (www.dvwa.co.uk) 进行演示,该应用是本书的目的,也包含在 OWASP Broken Web Applications 操作系统中(图 8.4)。

图 8.4 ZAP 请求。

这表明所访问的站点显示在左侧的“站点”框中。底部窗格中是单个 HTTP 请求。此时,唯一感兴趣的是蜘蛛,但鼓励读者探索 ZAP 的其他功能。

如果感兴趣的是拦截发送到 HTTPS 站点的请求,则需要接受 ZAP 证书,以便可以解密和重新加密流量。

这里是蜘蛛进程的概述:

步骤 1:点击蜘蛛按钮。

第二步:在左侧的“站点”菜单中选择要部署网络爬虫的站点。

第三步:点击播放按钮,等待其完成(图 8.5)。

图 8.5 ZAP 网络爬虫。

爬网站可能是侵入性的,并可能在某些系统上引起问题。在执行任何形式的主动测试之前,请注意风险并寻求许可。

这些信息对社会工程师有什么用呢?

被动和主动的网络爬虫都已经被调查过了,但是这些信息对社会工程师有什么用呢?网站布局只是进一步探索的前奏;它帮助提供对侦察路径的指导,并确保时间有效利用。它可以提供一目了然的信息,对任何社会工程师都可能有用,如商业伙伴、门户、客户、供应商和联系页面。它还可以帮助识别大型网站上的文档和关键字。所有这些信息都可以用作进一步侦察的基础。最终,这些信息将导致一个或多个构建基础的假设。

网络爬虫只是侦察生命周期中非常早期使用的工具之一。在彻底了解了这个工具之后,看一下其他可供社会工程师使用的一些工具是非常重要的。

文档元数据

文档元数据基本上是存储在办公文档中的属性信息。当创建 Microsoft Word 或 PDF 文档时,会自动为其添加一些元数据,即使作者并不真正知道。任何拥有该文档的人都可以检索到这些信息。

通常,元数据将是安装办公产品时选择的用户和商业名称。至少可以通过从办公应用程序中查看文档属性来查看一些文档元数据(图 8.6)。

图 8.6 安装选项被填充到 Microsoft Word 文档的元数据中。

这清楚地表明,至少文档可能提供了创建者的姓名。这样,它就可以被添加到用户名单中,或者在致电组织时作为一个名字的参考。

还有许多其他的元数据标签可以由个人添加,以及一些应用程序自动添加的标签。

在这些隐藏的元数据中,通常可以找到操作系统版本、目录结构和用户。此外,还可以找到用于创建文件的确切软件版本。以下是一些提取这些信息的工具:

字符串

字符串搜索可在文件及其元数据中搜索可打印的字符串,并在终端中显示它们。

例如,当运行 strings 对 PDF 文件进行搜索时,下面是其输出(图 8.7):

图 8.7 字符串从 PDF 文件输出。

mac1:rich$ strings mypdfdocument.pdf

在这种特殊情况下,可以检索到正在使用的操作系统 Mac OSX 10.0.4,以及正在使用的 Acrobat 版本。在现实世界中,特别是如果客户的网站上有大量文档的情况下,收集这些信息肯定需要很长时间。幸运的是,有很多工具可以自动化这个过程。

FOCA—www.informatica64.com/foca.aspx

FOCA 是一个为渗透测试人员设计的信息收集工具的 Windows 应用程序。它通常被认为是这类工作中最好的工具之一。它涵盖了本书未涵盖的多种功能。Pro 版本应该被视为任何频繁使用该应用程序的人的一项有价值的投资。

用户在使用 FOCA 时的第一印象之一就是它的易用性。它完全由 GUI 驱动,布局合理,对大多数人来说非常直观。

提取元数据的过程几乎完全自动化。FOCA 给定一个域名,然后它会查找出存在的任何文档。接下来,FOCA 被告知下载文档并提取元数据。它会对每种类型进行分类,并将它们显示在一个易于导航的树中。然后可以将元数据导出到文件中以便操作。真的没有比这更容易的了。

下面是使用可从提供的链接下载的 FOCA Free 进行的过程演示。需要提供一个电子邮件地址,但这对于一个出色的应用程序来说是微不足道的代价。

在 FOCA 的首次启动时,用户将看到一个与 图 8.8 类似的屏幕。

图 8.8 FOCA。

这是“逐步指南”:

步骤 1:点击左上角的“项目”,然后点击“新项目”。

步骤 2:给项目命名,然后在“域网站”字段中输入一个域名。这应该只是 mydomain.com,而不是一个 URL。

步骤 3:告诉 FOCA 在哪里存储项目文档,并添加可能以后有用的任何注释(图 8.9)。

步骤 4:点击“创建”,选择一个位置保存项目文件。桌面现在就够了。

现在,会看到一个类似于 图 8.10 中的屏幕。

选择 Google 和 Bing,将扩展名保持不变。扩展名是 FOCA 将在搜索中查找的文件类型。

步骤 5:点击“搜索全部”。

文档应该开始填充屏幕。名称、大小和类型都将可见。

步骤 6:现在文档搜索已经完成,右键单击任何文档,然后选择“全部下载”。这将把所有文档下载到您之前配置的位置(图 8.11)。

下载所有文档可能需要一些时间。去拿杯咖啡,5 分钟后再来查看一下。

步骤 7:现在所有文档都已下载,请再次右键单击搜索结果中的任何文档,并选择“提取所有元数据”。

图 8.9 FOCA—设置项目。

图 8.10 FOCA 文件扩展名。


图 8.11 FOCA 下载文档。

这应该会产生一个良好组织的元数据视图(图 8.12)。

图 8.12 FOCA 元数据。

FOCA 已从所有可用文档中提取了用户、文件夹结构、软件版本和操作系统,而所需的一切只是给出一个域名。在真实的世界评估中,将看到比这张截图显示的更多细节,假设客户在发布文档之前未对其进行消毒。很少有“密码”元数据类别到目前为止能够见到光明,但它往往是首先被寻找的内容。

例如,右键单击左侧的任何元数据类别,并将结果导出到文件中,可以特别有用用于构建用户列表。

此外,在文档窗格中右键单击并添加一个本地文件或目录进行元数据提取也可能非常有用。

这展示了 FOCA 的一些用途;但是,FOCA 也有开源替代品。让我们现在看一个。

Metagoofil

Metagoofil 的工作方式类似于 FOCA。它首先从 Google 搜索,然后从目标网站下载文档。然后,Metagoofil 可以开始从文档中剥离元数据,并在报告中呈现结果。与 FOCA 一样,Metagoofil 能够检索用户名、软件版本、电子邮件地址和文档路径。

Metagoofil 可以从code.google.com/p/metagoofil/获取,并且已经在 Linux 和 OSX 中进行了测试。它还应该捆绑在 BackTrack 和 Kali Linux 中。

这里是命令行开关的一个例子:

******************************************************
* Metagoofil Ver 2.2            *
* Christian Martorella          *
* Edge-Security.com            *
* cmartorella_at_edge-security.com   *
******************************************************  
Usage: metagoofil options
-d: domain to search
-t: filetype to download (pdf,doc,xls,ppt,odp,ods,docx,xlsx,pptx)
-l: limit of results to search (default 200)
-h: work with documents in directory (use "yes" for local analysis)
-n: limit of files to download
-o: working directory (location to save downloaded files)
-f: output file
Examples:
metagoofil.py -d apple.com -t doc,pdf -l 200 -n 50 -o applefiles -f results.html
metagoofil.py -h yes -o applefiles -f results.html (local dir analysis)

这其实非常简单。给 Metagoofil 一个域名,告诉它要查看的文档类型,以及限制搜索结果和文件下载的数量。这些限制将由客户的规模和可用时间来定义。如果只有很短的侦察时间窗口,最好尝试避免下载大量每种类型的文档。无论如何,某些客户可能只有少数几个文档。在这里运行工具以查看它返回了什么:

metagoofil -d offensivesite.com -t doc -l 200 -n 50 -o /root/Desktop/metadata/ -f results.html

使用 -d 开关设置了域,-t 定义了 .doc(Microsoft Word),然后使用 -l 开关将搜索结果限制为 200 个。每种类型下载的文件数量由 -n 选项定义为 50。接下来,选择将文件下载到桌面上的 metadata 文件夹中。最后,结果被发布到一个 HTML 文件中,使用 -f 选项。以下是该工具的输出:

******************************************************
* Metagoofil Ver 2.2
* Christian Martorella
* Edge-Security.com
* cmartorella_at_edge-security.com
******************************************************
[-] Starting online search…
[-] Searching for doc files, with a limit of 200
Searching 100 results…
Searching 200 results…
Results: 8 files found
Starting to download 20 of them:
----------------------------------------
[1/20] /onoes=en
[x] Error downloading /onoes=en
[2/20] http://www.offensivesite.com/docs/2323.doc
[3/20] http://www.offensivesite.com/docs/11.doc
[4/20] http://www.offensivesite.com/docs/22.doc
[5/20] http://www.offensivesite.com/docs/123.doc
[6/20] http://www.offensivesite.com/docs/122.doc
[7/20] http://www.offensivesite.com/docs/bob.doc
[8/20] http://www.offensivesite.com/docs/testing.doc
[9/20] http://www.offensivesite.com/docs/lotsometadata.doc
[10/20] http://www.offensivesite.com/docs/doc.doc
[11/20] http://www.offensivesite.com/docs/diary.doc
[12/20] http://www.offensivesite.com/docs/random.doc
[13/20] http://www.offensivesite.com/docs/things.doc
[14/20] http://www.offensivesite.com/docs/morethings.doc
[15/20] http://www.offensivesite.com/docs/manual.doc
[16/20] http://www.offensivesite.com/docs/passwords.doc
[17/20] http://www.offensivesite.com/docs/creditcardnumbers.doc
[18/20] http://www.offensivesite.com/docs/fortknoxdoorcodes.doc
[19/20] http://www.offensivesite.com/docs/safecombination.doc
[20/20] http://www.offensivesite.com/docs/deathstarplans.doc
[+] List of users found:
--------------------------
Edmond Dantès
Jim Seaman
Andrew Gilhooley
Charlotte Howarth
Bryn Bellis
Owen Bellis
Gavin Watson
Andrew Mason
James Pickard
John Martin
[+] List of software found:
-----------------------------
Microsoft Office Word
Microsoft Office Word
Microsoft Office Word OSX
Microsoft Word 10.0
Microsoft Word 9.0
[+] List of paths and servers found:
-------------------------------------
'C:\Documents and Settings\TheEmperor\My Documents\deathstarplans.doc'
'S:\My Documents\creditcardnumbers.doc'
'C:\Documents and Settings\chazzles\Application Data\Microsoft\Word\AutoRecovery save of passwords.doc'
'/Users/jseaman/Documents/safecombination.doc'
[+] List of e-mails found:
----------------------------
Edmond Dantès@offensivesite.com
Jim Seaman@offensivesite.com
Andrew Gilhooley@offensivesite.com
Charlotte Howarth@offensivesite.com
Bryn Bellis@offensivesite.com
Owen Bellis@offensivesite.com
Gavin Watson@offensivesite.com
Andrew Mason@offensivesite.com
James Pickard@offensivesite.com
John Martin@offensivesite.com

社会工程渗透测试教程(二)(3)https://developer.aliyun.com/article/1508282

相关文章
|
1月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
44 2
|
1月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
47 3
|
1月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
133 5
|
1月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
43 6
|
1月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
27 2
|
1月前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
53 4
|
1月前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
【7月更文挑战第8天】这篇教程介绍了如何使用Logback将Java应用的日志输出到文件中。首先,通过创建`logback.xml`配置文件,设置`FileAppender`来指定日志文件路径和格式。然后,提供了一个`RollingFileAppender`的例子,用于每日生成新的日志文件并保留一定天数的历史记录。文中包含配置文件的XML代码示例,并展示了控制台输出和生成的日志文件内容。教程最后提到了一些可能遇到的问题及解决建议。
24 0
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
|
1月前
|
Java 关系型数据库 测试技术
《手把手教你》系列基础篇(八十九)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-上篇(详解教程)
【7月更文挑战第7天】Apache Log4j2的安全漏洞促使考虑使用logback作为替代的日志框架。Logback由log4j创始人设计,提供更好的性能,更低的内存使用,并且能够自动重载配置文件。它分为logback-core、logback-classic(实现了SLF4J API)和logback-access(用于Servlet容器集成)三个模块。配置涉及Logger、Appender(定义日志输出目的地)和Layout(格式化日志)。
40 1
|
1月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
23 0
|
1月前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-下篇(详解教程)
【7月更文挑战第6天】本文介绍了如何使用Log4j2将日志输出到文件中,重点在于配置文件的结构和作用。配置文件包含两个主要部分:`appenders`和`loggers`。`appenders`定义了日志输出的目标,如控制台(Console)或其他文件,如RollingFile,设置输出格式和策略。`loggers`定义了日志记录器,通过`name`属性关联到特定的类或包,并通过`appender-ref`引用`appenders`来指定输出位置。`additivity`属性控制是否继承父logger的配置。
26 0

热门文章

最新文章