如果我们能用几句话来定义它,我会说蜜罐是一种肉眼可见的、随时可以咬下去的甜食。事实上,它包含常见的服务和漏洞,旨在吸引想要在我们的系统中进行侦察或可能的横向移动的攻击者的注意。
借助这种诱饵,一旦攻击者进行扫描、暴力攻击等侦察活动,这些信息就会及时传达给受害者,以便受害者采取适当的对策并了解不速之客的存在。
这些诱饵可以放置在任何外围,例如 DMZ、IT 网络或 OT 网络中。事实上,例如,后一种网络比其他网络更难以监控和防御,这显然是由于所连接设备的类型所致。
显然,根据我们放置这些探针的位置,我们必须使用正确的探针。
事实上,它们可以是模仿其他应用程序,模拟 IT 领域的常见服务,也可以是 OT 领域的其他应用程序,模拟具有已知漏洞的 PLC 或SCADA系统。
蜜罐如何工作?
蜜罐旨在复制真实的计算机系统。
这通常可以是登录页面、通常已知且对攻击者有吸引力的业务服务或应用程序的形式,包括易于利用的简单凭据。
当攻击者登录时,蜜罐将检测此类活动并立即向 IT 或安全团队发送警报,从而提供可见性和跟踪行为。
这种行为可能是直接攻击,也可能是针对受害者没有注意到的另一个受损系统的横向移动。
蜜罐的类型
蜜罐设计主要有两种类型:
生产蜜罐是最常见的类型。这种类型收集组织生产网络内的网络安全数据,目的是识别妥协尝试并收集网络犯罪数据,例如源 IP 地址、流量频率等。生产蜜罐充当诱饵,利用其所在网络中的其他合法系统和服务来伪装自己。
研究蜜罐通常比生产蜜罐收集更多的数据,其具体目标是收集有关攻击者技术的信息。
虽然企业通常使用生产蜜罐,但政府和研究组织可以使用研究蜜罐。
低交互和高交互蜜罐
在这两类中,也有不同类型的蜜罐,具有不同的复杂程度。
高度交互的蜜罐运行各种旨在吸引攻击者的现实世界生产系统。研究团队可以使用高度交互式的蜜罐来了解攻击者使用的工具。然而,高交互蜜罐需要大量的时间和精力来设置和维护,这使得它们不适合规模较小或经验不足的团队。
低交互蜜罐相对更容易实现,因为它们是更加静态的环境。高交互蜜罐本质上就像一个真实的系统,并为攻击者提供了与各种服务交互的机会,而低交互蜜罐为攻击者提供了对操作系统的有限访问权限,并且仅模拟少量服务和协议。因此,它们并不那么有效和彻底;相反,它们对于检测不太复杂的威胁(例如机器人、常见扫描和侦察)更有用。
蜜罐的优点
蜜罐是网络可以拥有的最强大的检测机制之一。完全配置的蜜罐可以帮助精确检测和阻止网络攻击。
毫无疑问,来自蜜罐的警报的存在明确表明存在入侵。
如果我们收到这些探测器的报告,那肯定是真正的攻击、好奇的用户或计划的安全测试。
这也让攻击者的日子变得更加艰难。蜜罐往往会通过在受控资产上浪费时间来挫败攻击者,从而使受害者了解这一正在进行的活动并采取适当的对策。
蜜罐的缺点
使用蜜罐存在一些风险和限制,特别是如果部署不当的话。
有时它们需要硬件来实现,因此可能很昂贵。虽然蜜罐通常资源较少,但更复杂的蜜罐,例如高交互和搜索蜜罐,需要硬件尽可能真实。
维护和配置可能需要时间,因为配置和管理蜜罐又需要大量的时间、精力和专业知识。
让我们从头开始创建一个真正的蜜罐
现在我们进入正题,然后进入实际部分。
即使很少提及,蜜罐也有很多,而且其中很多都是开源项目。我们可以在这个存储库中按领域和应用来划分:
https://github.com/paralax/awesome-honeypots
事实上,我们可以找到非常垂直的项目,例如CitrixHoneypot,专门针对某些类型的网络,例如OT 网络上的垂直化Conpots。
在我们的示例中,我们将使用OpenCanary,这是一个低交互蜜罐,它将模拟服务器中公开的常见端口,例如可用于插入我们网络的某些关键子网,例如服务器或 DMZ 的子网。
端口肯定都是可定制的,可以模拟和监视的一些端口是:
Git: 9418
Ftp: 21
Http: 80
Https: 443
Squid: 8080
Mysql: 3306
Ssh: 22
Redis: 6379
Rdp: 3389
Sip: 5060
Snmp: 161
Ntp: 123
Tftp: 69
Tcp banner: 8001
Telnet: 23
Microsoft SQL Server: 1433
Vnc: 5000
创建这个实验室需要什么:
将安装 OpenCanary 的 Ubuntu 24 虚拟机。
一台带有 Wazuh 的机器,我们将在其中接收日志安装很快,只需遵循本指南:
https://documentation.wazuh.com/current/quickstart.html
安装OpenCanary
如前所述,OpenCanary 是一个开源多协议网络蜜罐。
https://github.com/thinkst/opencanary
OpenCanary 不会提供任何集成警报工具,而只会提供检测日志,它将填充在自己的日志中,我们将其连接到Wazuh,一个 SIEM(更准确地说,它是一个 XDR),我们在其中收集此信息数据,然后甚至在简单的仪表板中显示它。
根据 wiki,我们执行以下命令来安装必要的软件包并安装 OpenCanary:
sudo apt-get install python3-dev python3-pip python3-virtualenv python3-venv python3-scapy libssl-dev libpcap-dev
virtualenv env/
. env/bin/activate
pip install opencanary
如果我们稍后想要激活 Windows 文件共享和 SNMP 模块,我们还需要安装这些软件包:
sudo apt install samba
pip install scapy pcapy-ng
让我们创建初始配置
opencanaryd --copyconfig
使用此命令将在以下路径创建配置文件:
/etc/opencanaryd/opencanary.conf
通过打开它,我们可以逐个模块地启用模块,设置“modulo.enabled=true”,如图所示:
请注意,第一个参数 device.node_id 稍后将用于识别是否有多个探测器。在本例中,我将所有内容配置为能够使用数字 ID,例如 opencanary-1、opencanary-2 等...
在这个文件中我们还可以自定义日志文件,但这不是必须的。
注意:要激活模块,必须没有其他服务使用设置的端口,例如,如果您想监控 SSH 访问,则需要更改真正的 SSH 标准端口。
现在我们可以在程序未运行时使用以下命令启动它:
env/bin/activate
opencanaryd --start
我们可以直接通过netstat查看已经开放的端口。
如果我们启用了http,我们可以通过网络访问服务器来进行快速测试。将会出现对 Synology NAS 的虚假访问,对于任何在网络上发现它的人来说,这是一个非常诱人的目标(有备份吗?)。
例如,该图形界面可以完全自定义以模拟不同的门户,如果我们现在尝试使用任何凭据登录,则该活动将报告到以下文件。
vartmpopencanary.log
默认情况下会生成这样的日志:
{“dst_host”:“192.168.50.131”,“dst_port”:80,“local_time”:“2024-10-04 13:21:09.282481”,“local_time_adjusted”:“2024-10-04 13:21:09.282929” ,”logdata”:{“HOSTNAME”:”192.168.50.131”,”PATH”:”/index.html”,”SKIN”:”nasLogin”,”USERAGENT”:”Mozilla/5.0 (兼容; Nmap 脚本引擎; https://nmap.org/book/nse.html)”},”logtype”:3000,”node_id”:”opencanary-1”,”src_host”:”192.168.50.133”,”src_port”:52362,” utc_time”:”2024-10-04 13:21:09.282890”}
主要值是node_id(表示警报来自的公司)、src_host(表示攻击从哪里开始)和logtype。
最后一个值没有得到很好的记录,但它标识了一些活动组。
分析示例测试中收到的数据 log_type 可以具有以下含义:
3000 = 打开网络应用程序
5001 =网络扫描
3001 = 登录尝试
Wazuh 代理配置
作为先决条件,我们指出有必要准备安装Wazuh,无论是干净的还是已在使用的。
因此,在 Ubuntu 24 机器上,我们将使用以下命令安装其代理:
https://documentation.wazuh.com/current/quickstart.html
0
其中 WAZUH 管理器是 Wazuh 服务器 IP。
安装后,将此代码添加到配置文件的末尾,这将允许代理监视 OpenCanary 将填充的此文件:
https://documentation.wazuh.com/current/quickstart.html
1
您可以在这里找到参考:
https://documentation.wazuh.com/current/quickstart.html
2
所以我们最终会得到这样的配置:
让我们保存并启动/重新启动代理服务
systemctl 重新启动 wazuh-agent
Wazuh 服务器配置
最后,现在让我们配置 Wazuh 来收集日志并在仪表板中查看它们,因为正如我们所说,该项目不集成任何警报。
幸运的是,Opencanary 会在检测日志 vartmpopencanary.log 的路径下生成一个 json 文件,如下例所示。
Wazuh 本身已经有一个“规则”和“解码器”来捕获这种格式的数据。
我们唯一需要做的就是让 Wazuh 在获取数据后导入它,因此我们需要设置警报级别。
然后从仪表板访问角色
添加到local_rules.xml中的本地规则。
这个配置:
根据自定义规则的文档,该规则已放置在 10000 以上,但有必要检查是否尚未插入具有相同 ID 的规则。
自定义规则参考:
https://documentation.wazuh.com/current/quickstart.html
3
现在再次测试规则,我们可以看到它已被正确过滤,一旦生成此事件,它将被导入。
在此示例中,我简单地对包含已定义的node_id的所有事件进行了编目,您还可以通过为每个事件设置不同的描述和级别来按log_type划分事件。
最后我们来测试一下效果如何
此时我们可以尝试使用NMAP扫描服务并生成侦察和暴力破解任务。
首先我们分析端口以及开放和活动的服务,我们可以看到上面使用 netstat 看到的开放端口被 NMAP 检测到并识别。
然而,通过更具侵入性的扫描,我们可以激活尽可能多的警报。
最后,我们可以通过发现功能检测这些警报。
此时,我们可以以图形方式看到来自探测器的这些异常活动,如下例所示。
我从获取的数据开始即时创建了简单的仪表板,因此这些事件的可见性将变得更容易、更直接。
在这篇文章中,我们提到了蜜罐是什么以及它们的用途,还展示了一个实际的使用案例。
由于这些设备产生的误报非常少,而且通常没有人有兴趣如上所述访问它们,因此它们在检测计算机网络内的可疑活动方面确实很有用。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...