基于Hfish的蜜罐分析和JSONP利用

蜜罐是什么?

蜜罐技术本质上是一种对攻击方进行欺骗的技术,蜜罐的出现让在明处的防守者可以化被动为主动,由此,提出了主动防御的概念。在本篇博客中我们简单分析一下开源蜜罐Hfish。

开源蜜罐HFish

HFish开源地址

https://github.com/hacklcx/HFish

HFish官方使用文档

https://hfish.io/docs/#/

HFish的部署方式官方文档已经写的很详细了,这里就不再做赘述了。在centos 7虚拟机上在用shell运行。
在这里插入图片描述
出现【GIN-debug】,我们可以在HFish的官方文档看到HFish 是用使用 Golang + SQLite 开发的。运行信息也暴露了HFish使用的开源框架Gin框架。感兴趣的可以自己研究,毕竟开源。
Gin 是一个 go 写的 web 框架,具有高性能的优点。

Gin框架官方地址:https://github.com/gin-gonic/gin

回到正题

这里就能理解为什么说蜜罐是网络管理员经过周密布置而设下的“黑匣子”了吧。因为蜜罐本身也是一种网络服务。登陆HFish的后台界面:
在这里插入图片描述
这是登陆后的界面,展示了蜜罐被攻击后采集的攻击者信息。
在这里插入图片描述
HFish全球动态感知图


HFish WEB蜜罐

打开web蜜罐的页面。所谓web蜜罐,在HFish里就是一个设计好的后台登陆界面。如图:
在这里插入图片描述
这是一个假的内部管理平台登录界面。如果你是攻击者,当你尝试弱口令暴力破解时,你的行为就会被记录到蜜罐中。攻击者攻击的类型,节点和攻击者的IP,地理信息,攻击时间都被记录了下来并上传至蜜罐服务器。
在这里插入图片描述

WEB蜜罐源码分析

放源码的文件夹里,就只有这一个html文件,也就是说这个页面无论被怎样攻击,都不会被攻破,因为他只是一个假的后台登陆界面。那么攻击者的行为是如何被记录的呢?这个html界面调用了一个x.js脚本,如下:

function report() {
    var login_field = $("#user_login").val();
    var password = $("#user_pass").val();

    $.ajax({
        type: "POST",
        url: "/api/v1/post/report",
        dataType: "json",
        data: {
            "name": "WordPress钓鱼",
            "info": login_field + "&&" + password,
            "sec_key": "9cbf8a4dcb8e30682b927f352d6559a0"
        },
        success: function (e) {
            if (e.code == "200") {
                alert("账号密码错误");
            } else {
                console.log(e.msg)
            }
        },
        error: function (e) {
            console.log("fail")
        }
    });
}

这个脚本会通过ajax方法,把输入的用户名和密码信息上传到蜜罐服务器并保存到数据库中。如果攻击者用了暴力破解的字典,那么蜜罐就可以得到它。

到这里我们也差不多看清了web蜜罐的实质,接下来我们研究一下蜜罐得到的攻击者信息

在蜜罐中我们得到了攻击者的ip信息,这个IP信息真的准确嘛?为此,我用路由跟蜜罐服务器做了端口映射,从外部网络来访问蜜罐。当我攻击web蜜罐时,得到的攻击者信息却是我本地路由器的ip。(10.1.168.174)这就对溯源工作产不利。这里就可以利用我们之前说到的JSONP漏洞结合蜜罐让溯源更加准确。

JSONP漏洞结合蜜罐利用

先搞清楚HFish蜜罐究竟是如何得到IP信息的,是查看了网络层的IP报文嘛?这里我直接把HFish ELF文件拉进了IDA,readelf查看入口点
在这里插入图片描述
直接G跳转查看,报堆栈不平衡的错,平衡了堆栈之后,发现入口地址没什么有用的信息。去查看一下字符串
在这里插入图片描述
结合GIN源码分析。

如何将jsonp漏洞和蜜罐系统结合?

我们可以写一个js脚本,插入web蜜罐中,将jsonp漏洞带来的返回数据插入蜜罐的数据库中。插入的数据要跟蜜罐数据库的数据格式一样。HFish 蜜罐是用golang+sqlite开发的。打开本机的sqlite数据库,查找数据库的表信息。

在这里插入图片描述

查看hfish_info表的数据

在这里插入图片描述
可以看到攻击者的信息都被保存在了数据库的hfish_info表中,HFish全球动态感知系统的数据都是来源于这个hfish_info表中,查看hfish_info字段:
在这里插入图片描述

既然知道了这个表的字段结构,我们就可以根据jsonp漏洞获得的Ip和地理位置信息构造相同的数据结构,然后插入到数据库中,这样,当攻击者访问web蜜罐,触发jsonp漏洞,将更准确的攻击者的ip和地理位置信息保存到蜜罐的数据库中,显示在蜜罐后台上。上篇讲到的jsonp漏洞还不止是Ip信息,甚至能得到攻击者的邮箱信息,QQ号信息。同样可以显示出来,做到对攻击者更精确的溯源。(JS直接向数据库插入数据得本机直接连接的数据库)


总结

本篇到这里就完结了。这里只是简单的剖析了一下开源蜜罐HFish。可以举一反三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值