记对蜜罐的溯源反制研究
vghost 发表于 北京 企业安全 3274浏览 · 2024-04-18 09:23

1.蜜罐简介

蜜罐 技术本质上是一种对攻击方进行 欺骗的技术,通过布置一些作为 诱饵的主机、网络服务 或者 信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 捕获 和 分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐 好比是 情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
蜜罐在拖延黑客攻击真正目标上也有一定作用。不过黑客可能发现一个电脑系统是蜜罐,进而提前退出。而更常见的用法是用来吸引网络的计算机病毒入侵,从而获得病毒样本用于研究或的计算机,杀毒软件公司会利用这些计算机来监视或获得计算机网络中的病毒样本。而在攻防演练中,蜜罐也是蓝队不可或缺的一种对于攻击者的防御手段 。

蜜罐

蜜罐需要基于一个节点进行布置,可以部署在任意的网络位置,通常用于收集达到特定网络节点的攻击情报,并缓解相同网段的其他生产设备与资源收到的攻击

2.工作原理:

一个成功的蜜罐往往会伪装成很有诱惑力的系统,攻击者进入以后,可能会获取他们想要的重要数据。但是攻击者进入的一瞬间开始,攻击者的所作所为都将被蜜罐完整记录下来,成为放手方手中的重要信息。而蜜罐里的业务并不是真实的,攻击者将在蜜罐中百忙活一场,什么都得不到。

3.蜜罐分类

蜜饵

一般是一个文件,工作原理和蜜罐类似,也是诱使攻击者打开或下载。当黑客想取得的重要信息,攻击者下载的那一刻,就落入防守方的陷阱。当防守方发现文件有被打开过的痕迹或攻击者跟随蜜饵文件内容进行某种操作时,可以追溯来源,发现被攻陷的设备。

蜜标

把蜜饵进一步改造,在word文档,PDF文档中植入一个隐蔽的链接,当攻击者打开这个文件时,链接可以被自动触发,防御者可以借机获取攻击者的真实网络地址,浏览器指纹等信息,从而直接溯源定位攻击者真实身份。这种有带URL的蜜饵就是蜜标。

蜜网

密网就是一大片蜜罐,练成了网”,但是这张“网”需要和业务强相关。攻击者尝试攻破我们的系统时,为了拿到自己想要的东西,往往会重点攻击和业务相关的节点。
因此,攻击者的必经之路上方部署蜜罐,给攻击者提供横向移动的空间和更丰富的入侵接口。当攻击者踩过一连串蜜罐的时候,外面就能轻松看到攻击者的手法和习惯。

蜜场

把恶意访问集中到一起,统一管理,是分布式蜜罐的一种形式,但在蜜场中,攻击者踩中的是虚拟的蜜罐,经过重定向以后,由真实的蜜罐进行响应,再把相应行为传到虚拟蜜罐。

4.应用场景

蜜罐一般有两种应用场景,一种是企业内部为了应对攻击者进行防御而设立的,请注意,蜜罐并没有防御功能,它所能做的是诱捕攻击者进行攻击,拖延时间同时通知管理员进行防御。一般的设立如下图:

而还有一种则是外网中的设立。

而我们把这两种结合起来,就可获得一个较为安全的生产环境,如图:

工作原理

HFish由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。

在企业网络中进行联合使用。

5.常见蜜罐展示

1.无交互蜜罐: 只针对网络批量扫描器
2.低交互蜜罐: HFISH (被动/主动收集信息)
3.高交互蜜罐: 真实环境部署探针
蜜罐的安装和部署(hfish)
下载地址:https://hfish.net/#/down
centos7 安装docker
使用yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
使用yum进行安装
yum install -y yum-utils device-mapper-persistent-data lvm2

配置源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看仓库中所有的docker版本
yum list docker-ce --showduplicates | sort -r

安装docker
yum install docker-ce-18.09* -y

设置docker为开机自启
systemctl restart docker
systemctl enable docker

接着关闭centos7 防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

docker run -itd --name hfish -v /usr/share/hfish:/usr/share/hfish --network host --privileged=true threatbook/hfish-server:latest

安装并运行hfish

docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest

配置后续自动升级

docker run -d    \
 --name watchtower \
 --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock  \
  --label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
  containrrr/watchtower  \
  --cleanup  \
  hfish \
  --interval 3600

运动点问题然后重命名,继续启动

搭建完成

首先搭建的老版本,使用admin/admin进行登录

6.搭建完成

接着搭建了一个新版的
初始用户名:admin
初始密码:HFish2021

接着进入后台。

功能介绍

首先进入展示大屏,很酷炫。

节点管理

进入节点管理,然后查看当前运行的蜜罐。

接着进行新增节点。

然后选择为windows,下载之后,复制到其它虚拟机中,运行。

接着刷新看看。

发现有一个新的节点,然后进行蜜罐服务部署。

OA测试

添加了一个OA系统。
访问看看。

输入一些常见的口令进行测试。

然后在后台可以看到有新告警生成。

同时也能清楚看到攻击者输入的用户名和密码。

outlook测试

接着测试outlook

发现只要有人去尝试登录,就会有告警生成。

可以看到请求过程中的数据包。

使用burp抓包查看,发现在请求过程中去请求了js。

7.系统配置

可以搭配微步的API,微步的自己的威胁提现来进行对攻击源识别

8.漏洞测试

目录扫描
使用工具进行扫描

发现多条扫描的目录告警

端口扫描

使用fscan扫描。

然后发现有大量的攻击告警产生。并在蜜罐上第一时间捕获到。

poc工具测试

使用工具也可以看到大量的漏洞扫描。

失陷测试

首先需要添加密饵文件,并开放端口,这里以windows攻击者为例,点击windows标识,会复制执行命令

假设攻击者已经获取了蜜罐系统的shell,并找到了这个饵料文件
这里方便演示的话就用过HFish提供的下载命令下载饵料文件,点击上方的windows按钮会自动复制命令,在攻击者的目标机器上执行

使用linux进行下载。

可以在失陷通知中看到是否有人咬钩。

9.蜜罐常用攻击方式:

jsonp跨域

jsonp跨域漏洞类似于CSRF漏洞,也有的叫读取型CSRF漏洞,可以获取网站用户的一些用户名、手机号等一些敏感数据,如果对这个漏洞不熟悉的可以自行百度~
以下是蜜罐中一些利用jsonp跨域漏洞的数据包的截图。

如果登陆过网站并且有cookie存在,往往可以返回用户用户名、手机号数据。

xss漏洞

xss漏洞基本都是eval(name),感觉是蜜罐配置的时候有些问题,查看js代码的话,是全都添加到一个iframe标签中,然后设置iframe标签中name变量为一串js代码,而这里的eval(name),在我的理解应该是执行预先设置的js代码,设置name变量,然后执行那一串js代码。(P.S. JS代码我略懂皮毛,这段理解和分析可能有误,就不深究了。)
jsonp配置不当也会出现xss,如下图:

10.蜜罐反制:

插件反制

可以使用浏览器插件进行识别。
1.https://github.com/Ghr07h/Heimdallr

然后进行访问蜜罐。
发现部分蜜罐是可以识别到的。

2.antiHoneypot
地址:https://github.com/cnrstar/anti-honeypot

3.AntiHoneypot-Chrome-simple
https://github.com/iiiusky/AntiHoneypot-Chrome-simple

基于规则的检测。

开源蜜罐
使用开源蜜罐的指纹进行识别,并对其进行限制。
名称 常用端口 指纹条件

有的蜜罐会在首页加载一个/js/moment.js,该js是jsonp的利用代码,经过混淆加密后,包含
var a22l=['B09UBwK='
var a1l=['zNvUy3rPB24TDa=='

在访问js的时候添加header头里面的Referer,不加Referer和加了的返回不一样,通过识别变量就能识别蜜罐。

11.蜜罐识别

  1. BOF的识别;BOF(Back Officer Friendly)
  2. 假代理技术,关注Honeypot Hunter软件;
  3. Honeyd的识别;
  4. 利用Sebek识别蜜网,第二、三代蜜网都有这个软件;
  5. Tarpits的识别;
  6. 外联数据控制识别,一般蜜罐会严格限制系统向外的流量;
  7. 识别VMware虚拟机,重点关注MAC地址的范围
  8. 用Nmap等Scan工具,同一个机器同时开放很多Port的。
  9. 因为很多蜜罐都设置在相同或临近的网段。所以,同一个网段(e.g. /24),很多机器都开放相同的Port,回应相似的Response。
  10. 去Shodan/Censys查
    补充:
    1、端口扫描和识别 在探测端口时,通过开发端口的服务来识别,来确定操作系统等信息,如果发现目标提供了非标准的服务或存在不寻常的端口,有可能是蜜罐
    3、缺少真实数据 缺少真实数据或文件,则可能存在蜜罐
    4、受限制的功能 部分系统功能被禁用或受到限制,则可能是一个蜜罐
    5、反向WHOIS查询 Whois查询工具来确定目标域名的所有者,以及他们是否与安全公司有关联
    6、非正常的相应时间 系统响应时间与正常情况不同,则可能存在蜜罐
    ##12.流量识别

以我搭建好的oa蜜罐为例
使用wireshark去抓包

然后发现有看到子节点和主节点之间的通信以明文传输,且有明显的特征

基于返回内容识别

hfish 高交互式蜜罐是根据特征字符回显,匹配的规则有限,比如常见的读取 passwd 通常使用 cat /etc/passwd ,在SSH规则里有相应的规则

在正常的服务器里面会返回password,但是在蜜罐中不会返回。
基于管理端口返回内容识别
返回包含管理页面特征字符就可以判断了,这里就直接给出 poc和ip地址。

非授权接口获取信息
可以发现,这里连身份鉴别都没作,当获取到主机点ip及端口后,直接请求uri,就可以获取蜜罐捕获的信息,从而分析蜜罐位置。
验证POC:
https://192.168.119.133:4433/api/v1/get/ip
http://ip:port/api/v1/get/fish_info

直接请求url,可以获取蜜罐捕获的信息,从而分析蜜罐位置。

基于蜜网特性的识别

蜜网是一种安全防御技术,它通过模拟真实系统的漏洞和弱点来吸引攻击者,从而保护真实系统的安全。基于蜜网特性的识别主要是通过分析网络流量中的特定行为和模式,来检测攻击者是否正在攻击蜜网。
具体来说,基于蜜网特性的识别可以通过以下方式进行:

  1. 分析网络流量中的异常行为,如大量的扫描或探测行为,非常规的协议和端口使用等。这些行为通常是攻击者在攻击蜜网时的表现。
  2. 监测攻击者与蜜网之间的交互,如连接尝试、登录尝试、文件上传等。这些交互通常是攻击者试图攻击蜜网的表现。
  3. 检测攻击者是否在利用蜜网中的漏洞或弱点进行攻击。蜜网中的漏洞和弱点通常是有意设置的,攻击者如果成功利用它们,则可能正在攻击蜜网。
  4. 检测攻击者是否在与蜜网中的“假”系统进行交互。如果攻击者试图攻击蜜网中的“假”系统,则很可能是在攻击蜜网。
    在获取到某个系统的权限后,我们需要判断该系统是否是一个蜜罐或处在某个蜜网内。由于蜜网通常需要模拟各种系统或设备,所以一般不会使用真实物理机器,通常都是虚拟机。那么虚拟机便是蜜网存在的一个必要不充分条件,我们可以通过检测虚拟机特征来初步判断是否处在一个蜜网内。虚拟机的特性有很多,如:
    1,VM虚拟机常用mac地址前缀:00-05-69,00-0C-29,00-50-56等
    2,判断 OpenVZ/Xen PV/UML,此方式是一种常见且比较准确的识别虚拟机的方式,网上有大量demo程序可供参考。
    当然虚拟化只是蜜网的一个弱特征,这里只是提醒攻击者留个心眼,如果发现当前控制的设备是一个虚拟机,那么就需留个心眼了,除了一些真实的业务确实部署在虚拟化平台外,也有可能掉入了一个蜜网中。
    除此之外,大多数蜜网的管理员害怕承担责任,为了防止攻击者利用蜜网作为跳板攻击第三方系统,通常会设置出站连接的上限,如每天只允许15个出站TCP链接,我们可以通过发大量的syn包到其他主机来进行检测和识别。
    ###基于伪造场景的识别
    基于伪造场景的识别可以通过以下方式进行:
  5. 分析网络流量中的异常行为,如大量的扫描或探测行为、非常规的协议和端口使用等。这些行为通常是攻击者在攻击蜜罐时的表现。
  6. 监测攻击者与蜜罐之间的交互,如连接尝试、登录尝试、文件上传等。这些交互通常是攻击者试图攻击蜜罐的表现。
  7. 检测攻击者是否在利用蜜罐中的漏洞或弱点进行攻击。蜜罐中的漏洞和弱点通常是有意设置的,攻击者如果成功利用它们,则可能正在攻击蜜罐。
  8. 检测攻击者与蜜罐之间的差异。蜜罐通常是一个虚拟的环境,与真实系统或应用程序会有一些差异,如操作系统版本、应用程序版本、配置等。通过检测攻击者与蜜罐之间的差异,可以识别攻击者是否正在攻击蜜罐。
    第一个案例是手机号诱捕识别,手机号诱捕主要基于让用户自发输入手机号来获得其真实电话号码,常用的场景来在于短信验证码。使用手机号诱捕的核心思路还是在于如何引诱攻击者使用自身手机号来收取验证码完成系统敏感操作。蜜罐会构造一些特殊的场景来实现反制的隐蔽性,例如故意泄漏陷阱站点的源码文件,然后在源码文件中预设上传漏洞,在上传漏洞的利用条件里加上必须返回短信验证码才能实现成功上传,攻击者按照一套流程走下来后往往会放心戒心,认为这并不是一个蜜罐,为了获取webshell而使用自身的手机号,从而获取到该类信息。
    第二个案例是基于邮件做的蜜罐,邮件服务器作为攻击者重点关注的系统包含了大量的敏感信息。从以往攻防演练的经验来看,很多攻击者都是通过邮件内容为切入点,查阅敏感信息并以此对相关系统发起攻击。该思路反过来同样也可以用于蜜罐上,比较经典的案例是预设一个邮件系统,故意设置管理员的弱口令,在邮件里放上与“运维人员”来往的通信记录,附件里可以放上vpn客户端、网站登陆签名程序等各类假的软件,实质上是一个获取攻击者主机上敏感信息的木马,待攻击者下载使用后便可获取其信息。为了区分访客是攻击还是正常用户,可以在登陆口设置“忘记密码”等陷阱按钮

REF:
https://it.cha138.com/mysql/show-363215.html
https://mp.weixin.qq.com/s/1gLlbOfgvZbaYL_cl-B2VQ
https://mp.weixin.qq.com/s/zkdPcWTFtzrachpqbjLoow

0 条评论
某人
表情
可输入 255