Saturday, November 26, 2016

深入了解5美元黑客神器PoisonTap, 30秒攻破任意密码保护的PC

深入了解5美元黑客神器PoisonTap

 


近日,著名硬件黑客Samy Kamkar利用5美元设备打造的黑客工具PoisonTap,只需30秒,就可以攻破设置有任意密码的电脑系统,并实现长期后门安装。PoisonTap不是暴力破解密码,而是绕过密码。

PoisonTap的标配:5美元的树莓派微型电脑Raspberry Pi Zero、USB适配器、内置免费漏洞利用软件。目前,相关软件和利用工具已在Github提供下载,Raspberry Pi Zero在某宝上也有售卖(某宝买不买得到有待考证),感兴趣的童鞋可以尝试打造属于自己的PoisonTap神器。



以下为PoisonTap官方Github介绍的工作机制

PoisonTap操作实现:

Quote:
PoisonTap通吃Windows和Mac系统,一旦插入电脑,将伪装模拟成新加入的以太网连接,即使受害者使用WIFI,一样可以使系统优先接入其伪装的虚假网络。PoisonTap利用中间人攻击方式,可以劫持监听受害者所有网络流量,窃取存储在浏览器里的任意cookie和session,然后发送给控制端。以下为PoisonTap具体操作实现:

通过 USB或Thunderbolt模拟成新加入的以太网连接设备;

劫持目标系统所有网络连接流量(即使是低优先级或未知的网络连接)

窃取存储在浏览器内相关Alexa排名前100万网站cookie和session信息

识别目标网络路由信息,通过远程outbound方式进行WebSocket或DNS重绑定攻击

通过HTTP的JS缓存中毒方式实现长期web后门安装控制,这些缓存后门涉及上千个域名和通用javascript CDN 链接

使用用户cookie对后端域名实现远程HTTP GET或POST方式控制连接

不需要系统解锁

移除攻击载体后,后门保持有效


 

PoisonTap可以绕过或突破以下安全保护措施:

锁屏密码

路由表优先级设置和网络接口服务顺序

同源保护策略

Cookie的HttpOnly安全设置

Cookie的SameSite安全属性

双因素或多因素认证

DNS Pinning  

跨域资源共享

HTTPS cookie 保护

PoisonTap如何工作:

PoisonTap对系统和网络安全信任机制的攻击,将会产生一系列连锁反应,利用USB/Thunderbolt、DHCP、DNS和HTTP方式,可以进行信息窃取、网络入侵和后门安装。

 

网络劫持

1 攻击者向有密码保护并且锁屏的电脑系统插入PoisonTap;

2 PoisonTap将会模拟伪装成一个新加入系统的网络连接,默认情况下,即使在有密码保护的锁屏状态下,Windows、OS X 和Linux系统将会识别该虚假网络连接,并发出DHCP请求;

3 PoisonTap响应DHCP请求,并提供一组经过构造,从0.0.0.0至255.255.255.255,与PoisonTap设备为同一子网的随机IP地址组合; 通常,在系统使用现有网络连接的情况下,一个附加网络连接的加入,系统会把其默认为低优先级网络,并继续使用现有网络网关。但是,在基于”Internet traffic”的 “LANtraffic”情况下,任何路由表/网关优先级/网络接口服务顺序设置都可被绕过。PoisonTap通过更改原网络连接网关地址,把流量引入自身,进而劫持系统所有网络流量

 

Cookie窃取

只要目标系统运行有浏览器,打开网页将会通过AJAX或动态脚本框架(script/iframes)产生各种请求,而由于系统网络流量被完全劫持,

1 PoisonTap将会监听到所有HTTP请求和响应,并将这些内容发送到PoisonTap的web服务端(Node.js);即使DNS服务器指向其它内部IP,由于这些内部DNS服务器将为缓存的域名产生公共IP地址,而这些IP地址已经被PoisonTap劫持,所以攻击仍然有效

3 当Node web服务器接收到请求时,PoisonTap会通过HTML或Javascript进行响应(许多网站会在后台请求中加载HTML或JS)

4 然后,HTML / JS-agnostic页面会生成许多隐藏的iframe,每个iframe中又包括Alexa排名前100万内的不同网站

 

通过web后门进行远程访问

1当PoisonTap生成上千个iframe之后,将会迫使浏览器加载每个iframe,但这些iframe不仅仅是空白页面,而是无限缓存的HTML + Javascript后门

2 即使用户当前未登录,由于PoisonTap已经在每个缓存域名上强制绑定了这些后门,使攻击者能够使用Cookie并在将来启动同源请求

Quote:
例如,当加载http://nfl.com/PoisonTapiframe时,PoisonTap接受转向的Internet流量,并通过Node Web服务器响应HTTP请求

添加了其它HTTP头以无限缓存页面


3 实际响应页面是HTML和Javascript的组合,并由此产生持续有效的WebSocket连接攻击者web服务器端(通过互联网而不是PoisonTap设备)

Quote:
WebSocket保持开放状态,允许攻击者在将来任何时候回连后端机器,并在任何有后门部署的源上执行请求(Alexa排名前100万个网站-见下文)

如果后门在一个站点(如nfl.com)上打开,但用户希望攻击不同的域名(如pinterest.com),攻击者可以将nfl.com上的iframe加载到pinterest.com后门中(http://pinterest.com/PoisonTap

同样,域上的任何“X-Frame-Options”、跨域资源共享和同源策略安全性完全被绕过,因为实际请求的是PoisonTap留下的缓存,而不是真正的域名


1 PoisonTap可以劫持当前网络的实际局域网子网

2 PoisonTap通过在一个特定主机上强制缓存后门,具体来说,在目标路由器的IP后面加上“.ip.samy.pl”,如192.168.0.1.ip.samy.pl,就可以生成一个持久的DNS重绑定攻击

Quote:
当使用PoisonTap作为DNS服务器(受害者使用公共DNS服务器)时,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中的IP地址信息

然后,PoisonTap将会在http://192.168.0.1.ip.samy.pl/PoisonTap上快速设置一个后门,而在PoisonTap设备上将指向1.0.0.1,该后门将实现从PoisonTap设备访问


3 DNSpinning 和DNSrebinding的安全性设置,由于之前做出Alexa top100万网站请求而耗尽DNS pinning表,最终将被绕过。之后,DNS就不需要重新绑定,使得该攻击可以持续很长时间

4 现在,后门强制连接到http://192.168.0.1.ip.samy.pl/PoisonTap,任何对192.168.0.1.ip.samy.pl的请求都将访问到unpinned的IP地址,导致路由器解析直接指向192.168.0.1

5 这意味着如果通过后门远程在iframe中加载192.168.0.1.ip.samy.pl/PoisonTap指向主机,就可以对内部路由器执行AJAX GET/POST和其它任意页面,实现完全控制内部路由器

 

构造请求与DNS服务器解析的对应关系

複製代碼
[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)


基于web远程访问的其它后门

1 PoisonTap替代了成千上万常见的,基于CDN的Javascript文件,如Google和jQuery CDNs。如果一个网站或域名加载了受感染中毒的CDN Javascript文件,正确的代码配合后门,就可以让攻击者实现入侵访问

2 由于每个缓存的网站域名都留有后门,即使当前受害者没有对任何域名执行访问,攻击者仍然可以远程强制后端浏览器执行同源请求(AJAX GET / POST)

3 当受害者访问基于HTTP或CDN Javascript缓存中毒的网站时,后门就被触发

 

修复措施:

目前来说,PoisonTap因为是多种黑客技巧组合而成的攻击,整个攻击和利用过程不能明确反映某个产品或系统漏洞,所以,目前来说,没有一种明确的修复措施。但Kamkar提出了一种解决方案,希望在系统层面的网络连接切换中加入权限许可机制,但是苹果公司没有对此作出回应,而微软公司在给记者的回复邮件中表示,PoisonTap是一种物理接入攻击,所以,最好的防御策略就是自己保管好电脑并及时更新系统和软件。

No comments:

YouTube Channel