目标很简单——从外部的角度查看组织的易受影响程度,并测试在企业范围内管理的安全控制的有效性。因此,除了公司名称之外,我们在获得“零”信息的状况下执行外部黑盒渗透测试。
这个黑盒外部渗透测试由一个名为(Hackme)的客户端执行。
开源情报 101
我们从一些开源情报(OSINT)101开始:)。有相当多的开源情报工具——帮助收集来自不同公共资源(如搜索引擎和shodan)的电子邮件、子域、主机、员工姓名等。这里有一份详尽的清单,列出了这些很棒的工具。
使用相当多的开源情报工具,我们在黑盒渗透测试方法的帮助下获得了与该组织相关的公开可用文档。
借助Google dork的帮助,我们运行了一些基本的搜索字符串:“site:*.hackme.com ext:xls OR ext:docx OR ext:pptx”。
当然,我们的目的不是不停地搜索文档。相反,我们的目标是通过检查文档“属性部分”中的文档元数据(尤其是Microsoft Word、PowerPoint和Excel)来了解组织的命名模式。也可以使用FOCA来实现这一点。
在这一点上,我注意到员工的电子邮件遵循了一种特殊的命名约定——名字的第一个字母+姓氏@domain.com,即[email protected]。
有了这些知识,我们使用以下google dork语法从LinkedIn中列出了Hackme所有现有员工名单:
site:linkedin.com -inurl:dir “at Hackme” “Current”。下面显示了一个典型的例子,使用谷歌公司作为参考公司。
通过编写脚本来使该过程自动化,我们复制了Hackme现有员工的名字、姓氏和角色。
一种比较累的方法是手动抓取google页面以搜索这些名称和角色,或者也可以使用GoogleScraper:
GoogleScraper -m http –keyword “site:linkedin.com -inurl:dir 'at Hackme' 'Current'” –num-pages-for-keyword 3 –output-filename output.json
结果: 黑盒渗透测试
同样,我将可能性留给您的想象力,但是您可以使用https://json-csv.com/或其他适用于您的转换器轻松地将其转换为.csv文件。
然后使用你最喜欢的文字处理器(文字合并、记事本++等)或一些好的脚本技巧,合并名字+姓氏——形成你的电子邮件列表。
为我们的目标列表提供有效payload
由于我们正在模拟黑盒渗透测试,因此我们决定(就像攻击者会做的那样)使用恶意payload获得代码执行权。因此,我们考虑创建一个有效payload并通过电子邮件将其发送给Hackme的员工。
我们还知道,组织的电子邮件过滤器阻止某些文件类型/扩展名是一种常见现象,从而限制风险。
于是我们开始使用Koadic C3 COM Command & Control,这是一个非常不错的框架,就像你的Meterpreter或Empire一样。
除了漂亮的界面之外,让它真正脱颖而出的是它允许转储哈希值、下载/上传文件、执行命令、绕过UAC、扫描本地网络以查找开放的SMB、转至另一台机器、加载mimikatz等等。
所以我们运行Koadic并设置必要的变量——使用“stager/js/mshta”模块(使用MSHTA.exe HTML应用程序在内存中提供有效载荷)。
结果生成了我们的HTA有效负载URL,如上面的屏幕截图所示。但是,我们需要我们的目标以“mshta payload_url ”的形式执行我们的有效载荷。
近年来,HTA载荷已被用作Web攻击媒介,并且还用于在受害者的PC上投放恶意软件。现在我们要让这个有效载荷穿过受害者的众多防御。
棘手的部分来了——我们需要一种方法让受害者运行“mshta payload_url”,而不将我们的负载衍生为mshta.exe的子进程——因为我们怀疑这个组织的蓝队可能会对此进行标记。
幸运的是,我们在左边看到了Matt Nelson的提示,有趣的是,NCC小组的团队在Demiguise中实现了这一点。
所以这是我们最终的有效负载,我们将其保存为.hta文件。
下一步通常是将我们的.hta负载作为嵌入式OLE对象发送。
预期的攻击场景是:
1. 发送Microsoft word文档,并将.hta负载作为OLE对象嵌入。
2. 让用户打开word文档和嵌入的OLE对象。
3. 这会产生一个新进程,我们可以通过shell访问受害者的PC。
现在我们到了有趣的部分,我们需要我们的受害者打开Microsoft Word文档和我们的有效负载。
为此,我们需要编造一个非常引人入胜的故事——因为现在用户变得越来越聪明了,所以我们要去做更多的侦察。
……更多侦察
我们需要更多地了解Hackme——特别是它的文化和员工行为。我们不断问自己的问题是“员工对什么感兴趣?”
Glassdoor是获得此信息的最佳平台,这里可让您了解公司的内部消息,其中包含员工对与该公司合作的薪水、福利、与该公司合作的利弊等评论。
在仔细阅读Glassdoor上对Hackme的评论后,我们发现了一些共同的主题:
1. 一些员工认为通勤是一个挑战,因为办公室距离住宅区很远。
2. 员工喜欢这个组织,因为他们可以得到免费的午餐。
可是等等!
就像那句老话,抓住男人的心最快的方法就是抓住他的胃。那么,有什么更好的方法让员工打开我们的有效载荷嵌入word文档?
给他们发一封电子邮件——告诉他们从明天开始免费午餐菜单有变化。
与其向员工发送一封很容易被发现的随机网络钓鱼电子邮件,我们认为在观察组织电子邮件文化的同时,一封看似真实并带有Hackme电子邮件签名的电子邮件将是最佳选择。
现在,如何使我们的电子邮件更可信?通过向客户服务/帮助台发送包含服务请求的电子邮件并观察响应中的电子邮件签名。
……再次侦察???
我们回到Linkedin,寻找Hackme的人力资源经理、物流经理或行政经理的名字(看哪个合适)。我们用我们选择的名字精心制作了一个电子邮件签名。
我们现在正在发送我们的有效载荷。请继续耐心读下去……
是时候发送我们的有效载荷了
通过前面的元数据侦察中,我们可以知道目标组织的文档页眉和页脚是什么样的。
然后我创建了一个新的Word文档,如下所示,其中包含带有适当页眉/页脚的Hackme文档模板的拆分图像。
然后我们将.hta作为OLE对象嵌入。Microsoft Word Document >> Insert >> Object >> Package。我们将图标更改为Microsoft Word的图标和标题以反映我们的信息。
将图标更改为Microsoft Word的图标,同时更改标题以反映您的消息。
别忘了防病毒!!!
为了检查我们的有效载荷的AV检测率——并查看它是否会被Hackme防病毒解决方案(如果有)标记为恶意,我们在nodistribute.com上进行了快速AV扫描。使用Nodistribute.com是因为根据他们的说法,他们不会将有效载荷样本分发给AV公司。我们还扫描了恶意文档和.hta文件。
我们的.hta负载的AV扫描(0次检测)
是时候发送我们的电子邮件了
如果目标组织没有配置SPF、DKIM和DMARC,很容易伪造HR经理、物流经理或管理经理的电子邮件地址。
在这种情况下,我使用物流经理的名字和姓氏创建了一个Gmail帐户(是的,Gmail也可以使用),然后用他早先得到的签名进行添加。
连接shell
发送电子邮件后不久,在大约3分钟的时间内,我们至少有30个shell连接!W00t!!!
接下来是什么?
他们常说的其余部分就是历史。从这里开始,使用mimikatz模块,我们提升权限,转储哈希,扫描Hackme的本地网络,转向其他PC,浏览目标的文件系统,甚至成为域管理员等。
综上所述
总而言之,这是一次非常有趣的参与。虽然攻击者可能需要花费一个月/两个月/一年的时间才能通过基础设施级别的漏洞闯入组织。通过利用人为因素来获得访问权限是相当容易的。
“一旦你了解了你的目标环境,设计一种创造性的方法来获得环境就变得相当容易”。
这个练习的寓意是:侦察,侦察,再侦察——一位智者曾经说过“给我六个小时砍一棵树,我会用前四个小时来磨斧头”。
本文翻译自:https://gbhackers.com/external-black-box-penetration-testing/如若转载,请注明原文地址