Home

Awesome

蜜罐溯源技术原理

蜜罐溯源这部分用到的技术主要是jsonp jsonp全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资源而产生的解决方案。

如果某些站点存在jsonp劫持漏洞,如web1这个站点有个jsonp接口暴露者,功能就是返回用户的姓名:

<?php
$callback = $_GET['callback'];
print $callback.'({"id" : "1","name" : "readname"});';
?>

正常的请求是这样的: image.png 这时候就可以在蜜罐中插入一个script脚本来跨域获取攻击者登陆的web1站点的姓名信息了

<html>
    <h1>jsonp窃取信息</h1>
    <script type="text/javascript" src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
        $.getJSON("http://127.0.0.1:91/getuser.php?callback=?", function(getUsers){
              alert(getUsers.name);
        });
    </script>
</html>

image.png 实际的蜜罐产品则是收集了非常多常用站点的jsonp漏洞,用来窃取攻击者的个人信息。 本文中的反蜜罐主要指的是,识别蜜罐、并且阻止蜜罐通过jsonp接口拿到攻击者的个人信息。反蜜罐插件更加强调的是后者,识别不到蜜罐问题不大,但是一旦信息被蜜罐窃取走,后果就很严重了。

反蜜罐浏览器插件Armor

被动探测主要是浏览器插件的形式,在访问的时候插件检测当前是否为蜜罐 目前github上比较好用的两款反蜜罐插件主要是:

判断当前网页是否有跨域请求,且有黑白名单,黑名单主要就是蜜罐常用的jsonp劫持接口,匹配到则报蜜罐

主要通过匹配js名称及内容来检测常见的蜜罐

这两个第一个存在漏报的可能,如果黑名单不全的话,还是会被蜜罐拿到信息 第二个也是一样的,不同蜜罐使用的js名称不一样,js内容不一样,比较难很全面的识别拦截 二者都很依赖规则库的完备性。

honpot-Armor里将二者结合起来进行改进,整体流程如下: 主要分三个阶段,分别是

Armor.png

使用

开发者模式,选择项目文件夹即可 image.png image.png 在一些正常网站上,黑名单导致一些正常功能不能使用,可以直接点击关闭反蜜罐功能 jsonp跨域提醒误报太多时,可以关闭jsonp跨域提示 如果识别到会以chrome通知的形式在右下角弹窗,自己会消失 image.png image.png

todo

参考

https://juejin.cn/post/6844904127932137485 https://github.com/sxei/chrome-plugin-demo http://www.ptbird.cn/chrome-extensions-storage.html