工具:用于蓝队的模块化开源情报蜜罐 - iYouPort

2020-12-07 原文 #iYouPort 的其它文章

工具:用于蓝队的模块化开源情报蜜罐

  • 这是hakin9 介绍的工具,蓝队是一群技术人员,他们对信息系统进行分析以确保安全性,识别安全性缺陷,验证每个安全性措施的有效性,并确保所有安全性措施在实施后仍然有效。

Manuka 是一个开源情报蜜罐,它可以监测威胁行为者的侦察企图,并为蓝队人员生成可操作的情报。

它创建了一个由阶段性开源情报源组成的模拟环境,如 社交媒体资料和泄露的证书,并跟踪对手感兴趣的迹象,与 MITRE 的 PRE-ATT&CK 框架紧密结合。Manuka 为蓝队提供了攻击前侦察阶段重要的额外可见性,并为防御者提供预警信号。

虽然规模和复杂程度各不相同,但大多数传统的蜜罐都集中在网络上。这些蜜罐在网络杀戮链的第2阶段(武器化)至第7阶段(目标行动)中发现攻击者,其假设是攻击者已经在探测网络。

而 Manuka 在网络杀戮链的第一阶段(Reconnaissance)进行开源情报威胁检测。尽管已经在网络防御系统上投入了数百万美元,但这样的组织还是可以通过一次谷歌搜索轻易地被入侵。最近的一个例子就是,黑客通过在公开网络上留下的 Zoom 信息曝光了企业内部会议、治疗课程、和大学课程。

组织需要在其周边检测这些开源情报威胁,但缺乏这样做的工具。Manuka 为此而来。

使用 Manuka,用户可以轻松添加新的侦听器模块,并将其插入到 Docker 化环境中。可以同时协调多个活动和蜜罐,以扩大蜜罐面。此外,用户还可以快速定制和部署 Manuka 以匹配不同的用例。

Manuka 的数据被设计成可以很容易地移植到组织工作流程中的其他第三方分析和可视化工具上。

由于开源情报技术的复杂性和广泛性,设计一个开源情报蜜罐可能是一个新的挑战。然而,这样的工具可以让蓝队人员在网络威胁情报策略中 “左移”。

【注:左移测试是软件测试和系统测试的一种方法,在该方法中,测试是在生命周期的早期执行的,即 格言 “尽早且经常测试” 的前半部分。】

仪表板

工具设计

Manuka 建立在以下关键术语和流程之上。

  • Sources:可能的开源情报向量,例如 社交媒体资料,公开的凭据和泄漏的源码
  • Listeners:监视源以与攻击者进行交互的服务器
  • Hits: 感兴趣的指标,例如尝试使用泄露的凭据和社交媒体上的相关信息进行登录
  • Honeypots: 组织成一个 Campaign 的源和侦听器组,可分析和跟踪一段时间内的匹配

系统设计

该框架本身包含几个可以部署在单个主机上的Docker容器。

  • manuka-server:中央 Golang 服务器,它执行CRUD操作并从侦听器中提取匹配
  • manuka-listener: 模块化的 Golang 服务器,可以执行不同的侦听器角色
  • manuka-client:React 仪表板,供蓝队管理 Manuka 的资源

这些容器通过单个 docker-compose 命令进行编排。

在开发中,组件在各自容器中的以下端口上运行:

  1. manuka-client : 3000
  2. manuka-server : 8080
  3. manuka-listener : 8080

manuka-listener 在以下端口运行:

  1. 8081 for the staged login webpage
  2. 8082 for interacting with the staged email

请参阅各个组件存储库以了解其要求:

  1. docker >= 19.03.8
  2. docker-compose >= 1.25.4
  3. ngok >= 2.3.35

配置

1、在 docker/secrets/postgres_password 中创建一个文件;

2、为Gmail设置Google帐户以接收来自社交媒体情报的电子邮件;

3、在 https://console.cloud.google.com/cloudpubsub 上设置 Google Cloud Pub / Sub 以使用推送电子邮件功能 (guide: https://developers.google.com/gmail/api/guides/push)

4、使用您项目的凭据创建文件 docker / secrets / google_credentials.json。

5、将在Cloud Pub / Sub上创建的主题添加到 docker/secrets/google_topic

6、为您的Google帐户获取 oauth2 令牌。 Manuka 第一次运行时需要一个 oauth2 令牌。随后,它将自动刷新令牌。将令牌保存在 docker/secrets/google_oauth2_token.json

运行

1、 docker-compose -f docker-compose.yml -f docker-compose-dev.yml up --build --remove-orphans

2、初始化 manuka-listener

  • 初始化 ngok ./ngok http <manuka-listener port> 记下 https URL
  • 在 Google PubSub 仪表板的左侧菜单上,转到 Subscriptions -> <subscription name> -> Edit Subscription 并将端点URL更改为 <ngok https URL>/notifications
  • 尝试将电子邮件从另一个帐户发送到目标Gmail帐户。您应该在 ngrok 控制台上看到 POST / notifications 200 OK,在 Docker 控制台上看到 Received push notification

配置

  1. 与前面类似,请确保所有设置均已就绪。请注意,订阅URL现在应该位于 http://DOMAIN / notifications
  2. 将您的域名指向您的服务器IP
  3. 将 docker/nginx/nginx.prod.conf.example 复制到 docker/nginx/nginx.prod.conf 中,并将 examplecompany.com 替换为您的作业域
  4. 运行 init-letsencrypt.sh 来生成SSL证书

运行

COMPANY_NAME=’Next Clarity Financial’ NGINX_USERNAME=username NGINX_PASSWORD=password docker-compose -f docker-compose.yml -f docker-compose-prod.yml up — build — remove-orphans -d
  • NGINX_USERNAME 和 NGINX_PASSWORD 是您的仪表盘基本认证。
  • COMPANY_NAME 是假冒的登录页面公司名。

源码: Manuka


文章版权归原作者所有。
二维码分享本站