攻。
这时候攻击者变成了防守方。
防守方通过 JavaScript来描绘攻击者网络环境。毕竟他需要开一些端口,比如cs,msf,burpsuite吧。
或者是虚拟机之类的,哪怕不用,访问到了蜜罐你就不是什么正常人,所以用js描绘你的内网情况有助于更好的识别你是不是正常用户。
相当于在正常的指纹上增加了一个属性“内网”来画vn图的交集。判断你是不是黑客。
除了使用beef以外,市面上还有类似sonar.js这样的东西来判断。
今天讲解下sonar.js的思路:
其实这个sonar在freebuf上有人分析过了,只是没分析透彻 ,几乎没啥内容。
sonar的主要思路就3点。
-
通过webrtc。webrtc主要是用了webrtc对象的createOffer事件来监听。如果这个事件成功了就说明主机存在,否则不是。这个只能用来扫描主机是否存活,不能判断端口。具体的实例 网上有了,我就不分析了,自己看javascript代码。贴个地址
https://www.cnblogs.com/c2g5201314/p/12243106.html
-
websocket。其实也是一样的 只能判断存在不存在。
贴一段sonar的代码,看看他是怎么判断主机存活的。
代码很简单,如果超时<10秒就认为主机存活,然后开始检测下一个。
如果看不懂代码,我直接告诉你结果:一个地址存活的话,他的onerror或者onclose方法会瞬间被调用,否则timeout最少在10秒以上。故区分下timeout就知道主机是否存活,但是这个和上一个一样 只能可以知道主机是否存活,无法知道端口。
-
img和link、script等跨域标签进行扫描。也是根据监听事件来判断。如果onerror说明不存在这个资源无法访问通。如果发现可以加载img就说明有这个端口和主机,然后瞬间remove掉这个DOM元素。这个可以知道端口
但是作为黑客,这些思路太直。虽然我也想不出来什么好的办法,但是这么直,看着就想吐。
防
这时候黑客就要想办法,我TMD怎么才可以让这个逼不搞我的事情呢?
能不能禁用js呢?不能!有同学说了,vue写的代码都是操作DOM 你禁用js页面也不能用了,还搞啥呢。
行吧。
那试试插件吧。
浏览器插件里一般都有以下功能
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
...
},{
...
}
);
也就是类似中间件那样,劫持你的请求体。部分大公司用来获取测试的流量就是用了这个方法,获得request体,然后修改。
那么我们很容易获得host部分,拿到host看下是不是我们内网的IP,是的话就干掉,世界就清净了,再也没人扫描我的内网了。
下一回讲beef和一个新的扫描方式,通过跨域来检测对象的一些属性来判断你到底是不是黑客。javascript的事情,怎么可能复杂呢!
本文始发于微信公众号(xsser的博客):蜜罐对抗部分实现思路一
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论