背景
大家好,今天,我想讨论如何利用搜索引擎来识别威胁参与者使用的易受攻击的服务器。这些参与者通常出于各种目的使用多个服务器,例如网络钓鱼基础设施、命令和控制 (C2) 基础设施以及工具/有效负载服务器。由于运营安全性 (OPSEC) 不佳或预算限制,有些甚至可能使用一台服务器来实现多项功能。
人们会犯错误,包括威胁行为者,虽然他们可能会使用高级 C2 框架、自定义 C2 配置文件、重定向器、合法域和证书以及规避交易技巧,但一个错误(例如开放目录错误配置)可能会破坏他们的全部努力。
由于我不是威胁搜寻专家,我识别威胁行为者基础设施的方法可能并不详尽。然而,在本文中我将演示如何使用搜索引擎Quake (https://quake.360.net) 来定位这些配置错误的 (Open Directory) 基础设施,并提供一个具体案例的分析。
动机
作为一名红队运维人员,我深知OPSEC的重要性。虽然我不是威胁狩猎专家,但是利用威胁情报跟踪定位其他黑客并观察他们的错误,可以帮助我提高自己的OPSEC意识,避免低级错误。而且,不管我们是红队还是蓝队运营者,我们共同的目标是让网络空间更安全。从事恶意网络活动的威胁行为者不应在网络空间立足。虽然我们可能没有执法权,但我们至少可以揭露他们的活动,并警告他人他们的危险和存在。威胁情报界拥有众多杰出的威胁猎手,例如 @Michael Koczwara,他的文章《对手基础设施:勒索软件组、APT和红队》为我提供了重要的见解,这些威胁猎手暴露了威胁行为者的基础设施 IP 和域名,有助于丰富个人和网络安全产品的黑名单。
这篇文章解释了如何使用不同的方法,例如默认的 Cobalt Strike 证书和默认的 404 响应,来搜索 Cobalt Strike 服务器使用 Shodan 搜索引擎的互联网。
https://bank-security.medium.com/hunting-cobalt-strike-servers-385c5bedda7b
这篇文章分析 Cobalt Strike 之外的 C2 服务器的特征以及如何使用搜索引擎定位它们。
https://michaelkoczwara.medium.com/hunting-c2-with-shodan-223ca250d06f
在此基础上,我们可以编制威胁参与者服务器列表并将其提供给安全产品,自动隔离与这些恶意服务器的通信并提醒人们注意它们的存在。然而,由于我们大多数人没有执法权,我们采取进一步行动的能力是有限的。
也就是说,如果威胁行为者犯了打开目录这样的低级错误,我们可以更有效地应对它们,例如,通过收集更全面的证据、分析恶意文件样本以及根据可下载文件潜在地识别威胁行为者。
搜索引擎的东西
有各种各样的互联网资产搜索引擎可用,例如 Shodan、Censys、Zoomeye 和 Fofa。但是,在使用开放目录配置定位威胁参与者服务器时,我个人的选择是 Quake 搜索引擎。Quake 的语法支持基于 HTTP 标题和响应的关键字搜索,对于具有开放目录配置的站点,网页标题通常是“ Directory listing for / ”或“ Index of / ”。
开放目录页面标题主要由使用的网络服务器决定,例如,如果它是一个 Apache2,标题将是“Index of /”,如果它是一个 Python HTTP,标题将是“Directory listing for /”。
威胁参与者倾向于使用 Python 设置临时 HTTP 文件服务器,因为它简单方便。然而,有时他们会忘记及时关闭 Python HTTP 服务器,留下我们可以追踪的痕迹。
按 HTTP 响应过滤相对简单;我们可以输入任何安全工具或恶意软件的名称,例如:Mimikatz、Cobalt Strike 或 Rubeus。
一些查询示例:
标题:“/ 的目录列表”和响应:“cobaltstrike”
根据提供的屏幕截图,我们可以看到 67 个服务器当前或以前托管了 Cobalt Strike C2 框架工具,供威胁参与者下载。我推测这些 Cobalt Strike 实例中的大多数很可能是未经授权的副本。
标题:“/ 的目录列表”和响应:“mimikatz”
49 台服务器目前或曾经托管过黑客工具 mimikatz,供威胁行为者下载。
标题:“/”的目录列表和响应:“exp”
我们使用此查询来搜索当前或以前托管漏洞利用的服务器。仔细观察这台服务器,从预览中可以看到一个.ovpn文件。
它可以用于连接到威胁参与者的内部网络(或者它是受害者的 .ovpn 文件)。不幸的是,当我发现它时,威胁者已经关闭了 Python HTTP 服务器。
标题:“/ 的目录列表”和响应:“lsass”
我们可以使用此查询来搜索当前或以前托管 lsass 转储的服务器。可以看到服务器 80.85.156.184 被攻击者用来保存 lsass 转储文件。
目前,该服务器无法访问,其他一些威胁猎人之前已经注意到了该服务器。
总之,我们可以灵活地调整 HTTP 响应关键字以实现无限的搜索可能性。然而,最终目标保持不变:定位威胁行为者的黑客工具、恶意软件、漏洞利用以及从受害者那里获得的“战利品”。
如果我们碰巧找到他们的个人文件,比如 .ssh 私钥、.ovpn 文件、基于文档的文件,他们的糟糕日子就更糟了:D
案例分析
在发现的配置不当的服务器中,我想分享一个最有趣的例子 ( http://81.68.227.204:8000/ )。如果这个服务器不是蜜罐,那么这个黑客的 OPSEC 肯定是零。
访问该 URL 后,可以明显看出黑客在其 C 盘的根目录下运行了一个 Python HTTP 服务器,我们可以看到 Windows、Users 和 Program Files 等目录。我们可以很容易地找到一些hack工具,比如CS4.4 K8、扫描器(scanner)。
这个黑客似乎也有浪漫的一面,因为在C盘根目录下有一个名为“love”的文件夹,里面有一个网页动画,如图所示。
看来是给女朋友准备的小惊喜,从这里就可以知道她的名字了。但是,值得注意的是,这些信息也可能是捏造的。
黑客安装了Redis、Python、Golang、Metasploit、QQ等多个程序,并且这个HTTP服务器以管理员身份运行
我们可以看到他的 Cobalt Strike 团队服务器的日志:
黑客使用了一些不安全的命令,如shell whoami、sleep 0。
黑客启用了 stager,我们可以看到他控制的一些受害者。
黑客还通过建立本地实验室将此服务器用作挑战箱。
黑客删除了一些其他用户帐户及其目录,SID 以 500 结尾,因此它是一个本地管理员帐户,也许该帐户是由其他黑客创建的?
从ToDesk 配置文件中,我找到了这个黑客的电话号码,我找到了他的社交媒体帐户,我应该加他打个招呼吗?:D
好吧,考虑到我们可以访问整个C盘,表面上看我们正在检查这个打开的目录,但实际上我们所做的几乎是本地侦察。
让我们直接跳到一个可能导致该黑客的服务器被入侵的问题:服务器运行的是IIS,我们可以访问IIS目录,找到一个文件 aspx.aspx,它是一个单行的 webshell。
请停止尝试“?chopper=whoami”,负载不是这个,你看不到输出。
我不确定后门是否被黑客用于远程管理,或者其他黑客已经破坏了这台服务器并留下了这个后门 lol虽然他是一个威胁演员,但我们仍然不应该试图利用它。最后我们用Shodan来分析一下这个服务器:
它开放了多个端口,他没有对Redis强制认证,有些人已经注意到这个未经身份验证的 Redis 服务器并连接到它。
概括
感谢您阅读我的文章,我想对启发我的威胁猎人表示感谢。威胁情报是一个引人入胜的领域,它极大地帮助了我提高红队技能。让我们一起努力揭露威胁行为者并在授权范围内对付他们(直接攻击这些服务器是不合法的)。狩猎愉快!
参考
https://bank-security.medium.com/hunting-cobalt-strike-servers-385c5bedda7b https://michaelkoczwara.medium.com/adversaries-infrastructure-ransomware-groups-apts-and-red-teams-7a6dd761c50e https://michaelkoczwara.medium.com/hunting-c2-with-shodan-223ca250d06f https://twitter.com/1ZRR4H/status/1631466978132074498 https://quake.360.net/ https://twitter.com/MichalKoczwara