• SEO文章推广! 合作联系qq:122325244 正式全面改版 !免费SEO地址:https://www.seozhan.cn/tool 站长QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏SEO站长博客吧

构建一个高交互型的难以发现的蜜罐

脚本编程 SEO站长博客 4个月前 (08-01) 43次浏览 已收录 0个评论

摘要

本文我将手把手的带大家来,构建一个高交互型的蜜罐。我们将会利用到两款开源工具 sysdigfalco,来帮助我们快速构建这个系统。在正式开始之前,让我们对什么是高交互蜜罐?以及sysdigfalco做个简单的了解!

   高交互蜜罐

一个高交互蜜罐是一个常规的计算机系统,如商用现货(commercial off-the-shelf ,COTS)计算机、路由器或交换机。该系统在网络中没有常规任务,也没有固定的活动用户,因此,除了运行系统上的正常守护进程或服务,它不应该有任何不正常的进程,也不产生任何网络流量。这些假设帮助检测攻击:每个与高交互蜜罐交互都是可疑的,可以指向一个可能的恶意行为。因此,所有出入蜜罐网络流量都被记录下来。此外,系统的活动也被记录下来备日后分析。

相较于低交互蜜罐,高交互蜜罐由于运行着带有所有漏洞的真实的操作系统,没有使用仿真,攻击者可以与真实的系统和真实的服务交互。因此,允许我们捕获大量的威胁信息,同时也更难被攻击者发现。

   Sysdig 和 Falco

sysdig是一款开源的工具,可以捕获并保存当前正在运行的 Linux 的系统状态及活动。因此这对于我们进行相关进程、网络和 I/O 活动的离线分析,提供了极大的便利。Sysdigfalco 是一个活动行为监视器,用于检测和发现应用程序中的异常活动。Falco 可以检测和警告涉及使 Linux 系统调用的任何行为。借助于sysdig的核心解码和状态跟踪功能,可以通过使用特定的系统调用其参数,以及调用进程的属性来触发falco警报。

   将服务器转换为蜜罐

作为一个合格的蜜罐服务器,都应该具有文件捕获和 cifs-utils 包,以挂载到保存我们sysdig抓取文件的远程 samba 共享上。

   手动安装

Sysdig 和falco可以部署在不同的 Linux 发行版中。以下是在不同发行版中的安装过程:

1.RHEL,CentOS 和 Fedora 下的安装:

   信任 Dralex GPG 密钥并配置 yum 存储库 安装 EPEL 存储库(只有在发行版中不提供 DKMS 时,才需要使用)。你可以使用“yum list dkms”验证 DKMS 是否可用。 安装内核头文件 安装falco

以下为命令执行过程(注意在 root 权限下运行)

   rpm –import https:/http://download.draios.com/stable/rpm/draios.repo rpm -i http://6/i386/epel-release-6-8.noarch.rpm yum -y install kernel-devel-$(uname -r) yum -y install falco psmisc

2.Ubuntu,Debian 下的安装

基本步骤与上面一致,操作命令如下:

   curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public apt-key add – curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list apt-get update apt-get -y install linux-headers-$(uname -r) apt-get -y install falco 自动安装

为了让大家能够在任何 Linux 发行版中快速部署sysdigfalco,我们特意开发了一个简易的 chefcookbook,大家可以在 GitHub 上获取到它。

当 cookbook 成功执行后,sysdig将开启连续捕获模式,以便持续捕获系统的运行状态和活动。同时 falco 也开始运行,将所有警报发送到 syslog。这里我们需要确保文件捕获已经开启,并将 syslog 发送到我们设置的集中分析的 ELK 堆栈。此外,我们还需要检查 sysdig 捕获文件目录,是否已经存在于 samba 共享。最后一步配置弱口令的 root 帐户,例如 passw0rd 和 test123。

要创建一个蜜罐,我们需要克隆一个合适的受害者机器,并在该系统上运行 cookbook。Red Hat,Fedora,CentOS,Debian 或 Ubuntu 操作系统都可以正常运行 cookbook。注意!以下命令必须要以 root 身份运行。

   wget https://packages.chef.io/files/stable/chefdk/1.0.3/ubuntu/16.04/chefdk_1.0.3-1_amd64.deb dpkg -i chefdk_1.0.3-1_amd64.deb

以上命令是在 Debian 操作系统中获取并安装 Chefdk。对于其他架构包请参阅此链接。

现在让我们来安装 git 并克隆 cookbook 库。

   apt-get install git -y mkdir ~/cookbooks cd ~/cookbooks git clone cd sysdig-falco

在运行 cookbook 之前,请确保当前我们系统的内核版本为最新版本。这样可以避免内核和 kernel-devel 包之间的版本不同问题。

然后,我们执行以下命令来运行 cookbook:

   chef-client –local-mode –runlist recipe[sysdig-falco]

当 cookbook 被成功执行后,我们可以看到一个名为 mysysdig 的文件,在/etc/init.d/目录下被创建。该 init 脚本将使用以下参数启动 sysdig:

   sysdig -C 5000 -W 3 -w /usr/local/src/image.$(date +%Y%m%d-%H%M%S).gz > /dev/null 2>1

Sysdig 将以连续捕获模式启动(选项-W)。使用-C 选项,指定捕获文件的大小。最后使用-w 选项,将我们捕获的文件保存到/usr/loca/src/目录中。此外,我们还可以通过编辑/sysdig-falco-cookbook/templates/default/目录下 cookbook 中的 mysysdig.erb 文件来更改这些选项。

   Samba 服务器

除了蜜罐服务器,我们还需要有一个 samba 服务器,以便实时发送我们捕获的文件。以下是 samba 服务器的设置步骤。

   apt-get install samba -y smbpasswd -a ubuntu

ubuntu 是我们的用户名。创建一个目录,用于保存 sysdig 的捕获文件。

   mkdir -p /home/ubuntu/image

然后编辑位于/etc/samba/目录下的 f 文件,并在该文件的末尾附加以下内容:

   [image] path = /home/ubuntu/image valid users = ubuntu read only = no

最后,让我们来启动 samba 服务。

   /etc/init.d/samba restart

现在我们可以来启动 init 脚本了,这将启动 sysdig 程序。但是在此之前,我们需要在/usr/local/src/目录下,挂载远程文件共享。

   apt-get install cif-utils -y mount.cifs -o user=ubuntu //IP_of_samba_server/image /usr/local/src/image/

出现密码提示,输入我们之前设置的密码。

现在我们运行 init 脚本,以确保 falco 正在运行,并通过 init 脚本启动 sysdig。

   /etc/init.d/falco status /etc/init.d/mysysdig start 监控攻击者

我们尝试监测攻击者何时与我们的蜜罐进行互动。我们的蜜罐基本架构如下:

   作为蜜罐的几台 Linux 机器 一台作为 samba 服务器的 Ubuntu 机器 一台安装了 ELK(Elasticsearch Logstash Kibana)堆栈的 Ubuntu 机器。

选择 ELK 堆栈是因为它适合于消耗和分析,来自 syslog 的 sysdig/falco 输出的数据。

我们在两个蜜罐上安装了文件捕获,以便将 syslog 和 auth.log 都发送到 ELK 堆栈。 ELK 堆栈和文件捕获安装请参阅此链接。

为了检测攻击者,我们监控了 Kibana 中的身份验证日志(auth.log)。除了身份验证日志,我们正在监控 falco 警报。例如,下图显示的 falco 警报,说明了某人与我们的一个蜜罐进行了互动。

我们还可以通过观察 sysdig 捕获文件的大小,来初步判断是否有人与我们的蜜罐进行了互动。突然增加,则表明有人正在与我们的蜜罐进行互动,因为这些机器上本身的活动很少。

   实例探究

为了验证我们的 Sysdig/Falco 蜜罐主机,对攻击者的监控和检测的有效性,我们打算将蜜罐放置在公网的云设备上。

   案例研究 1

我们将蜜罐暴露在互联网上,很快我们得到了第一个结果。攻击者试图猜解我们的 root 账户密码,如图。

从上图可以看出,攻击者的行为发生在 17:25:00。在 17:26:36,我们又捕获了一个不同的 IP 试图猜解 root 密码,如图。

我们确信虽然 IP 不同,但应该是同一人所为。最初,攻击者尝试爆破的 IP 地址为 221.194.44.216,可能使用的是爆破脚本或肉鸡,而后密码被成功爆破后,地址又回到了原 IP103.42.31.138。以下两图显示了它们的相关联性:

从上面的第一张图,我们可以看到,IP 地址 221.194.44.216 有 2522 个生成的警报(右上角)。这些警报与爆破 root 密码的失败尝试相关联,如图。

攻击者获取到 root 密码后,又返回到了原 IP 103.42.31.138 重新访问目标机器。搜索与此特定 IP 地址相关联的不同警报,我们发现只有以下两个警报,如图所示。

falco 警告显示,有人突破了我们的蜜罐,如下图所示。

我们快速下载 sysdig 捕获的文件,并运行以下凿子(凿子是用于分析 sysdig 捕获的事件流的小脚本)。

   sysdig -r image.20160721-1547320 -c list_login_shells

我们使用另一个凿子,通过使用 sysdig 运行以下命令,基于 loginshellid 来查看攻击者运行的命令。

   sysdig -r image.20160721-1547320 -c spy_users proc.loginshellid=1743

从 falco 的警报,我们看到攻击者在/etc/cron.hourly 目录中创建了一个名称为 zbbpxdqalfe.sh 的文件。sysdig 能够帮助我们轻松的看到文件的内容,因为 sysdig 记录了每一个 I/O 操作。

运行以下命令:

   sysdig -r image.20160721-1547320 -A -c echo_fds fd.filename=zbbpxdqalfe.sh

我们得到以下输出信息。

搜索攻击者运行的命令“mv /usr/bin/wget /usr/bin/good ”,我们发现了一个关于尝试 DDoS 不同目标的 ELF 恶意软件二进制的分析。该分析讲述了一种多态恶意软件,在“/bin”或“/usr/bin”目录下创建了具有随机名称的不同可执行文件,我们可以从以下 falco 警报中看到。

更多内容可以参阅此链接。

   案例研究 2

为了更进一步的研究,我们又为系统添加了三个账户,并分别使用了僵尸网络通常会尝试爆破的账户及密码,分别为 user,user2,且用户名和密码相同。几个小时后,我们发现有人用用户名“user”进行了登录。十四分钟后,攻击者又再次登录,我们可以从 auth.log 到 kibana 看到。

我们检查了 falco 警报信息,但并没有发现与该事件相关的信息。我们从 samba 服务器下载了 sysdig 捕获文件,尝试看看发生了什么。首先,我们使用”spy user” 凿子来查看已执行的所有交互式命令。

   sysdig -r image.20160729-104943.gz0 -c spy_users

我们观察了攻击者执行的一些命令。为了更清楚地看到攻击者试图做什么,我们再次运行相同的凿子,但是这次我们使用 proc.loginshellid 过滤器字段来限制 spy user 凿子的输出。从上图可以看出,攻击者的登录名为 2308,所以我们运行:

   sysdig -r image.20160729-104943.gz0 -c spy_users proc.loginshellid=2308

并观察以下输出。

我们可以看到攻击者试图为不同的处理器架构运行一些二进制文件。他们试图运行的第一个二进制文件名为 kaiten。在 google 中搜索 kaiten 二进制文件,我们可以看到,这个恶意软件二进制文件是用 C 编写的,并且已经在许多漏洞利用数据库站点中公开已久。主要目的是通过利用我们的 unix 和 IoT 设备,来实现对不同目标的 DDoS。更多信息请点击链接。

分析二进制文件时,我们发现没有一个符号被剥离,这也使得我们更容易对其进行逆向工程。经过一些额外的研究,我们发现 github 上的一个脚本是用于设置该恶意二进制文件的。硬编码的加密密钥/通道密钥都没有被改变,这也说明攻击者刚刚下载并运行的就是 github 上的这个脚本。通过对 Jackmy$arch 二进制文件的逆向我们发现,这些二进制文件通过/usr/bin/sshd 替换进程(proc 名称)的第一个参数,在 ps aux 中隐藏其进程列表。

   样本名称 Bot 类 C2 IP Jackmy$arch QBot 212.24.102.44:666 Kaiten STD-IRC Bot 212.24.102.44 rbot STD-IRC Bot 总结

以上我们学习了,如何利用 Sysdig 和 falco 来快速的构建一个高交互型蜜罐。以及通过两个研究案例,证明了该蜜罐系统的有效性。从中我们也可以看出,对于一个企业或组织而言,建立一套良好的防御体系的重要性和不可或缺性。在安全方面的投入,作为企业而言永远不能吝啬! weinxin


SEO站长博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:构建一个高交互型的难以发现的蜜罐
喜欢 (0)
[h4ck3st@126.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址