Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
poisontap — 通过USB利用已锁定/受密码保护的计算机,植入基于WebSocket的持久后门,暴露内部路由器,并使用Raspberry Pi Zero与Node.js窃取Cookie。 | Kitploit
工具/GitHubGitHub/samyk/poisontap
持久化机制漏洞利用横向移动数据泄露后渗透利用Web安全命令与控制身份验证红队远程访问工具
GitHubsamyk/poisontap

poisontap

6.5k979337年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

通过USB利用已锁定/受密码保护的计算机,植入基于WebSocket的持久后门,暴露内部路由器,并使用Raspberry Pi Zero与Node.js窃取Cookie。

查看仓库网站

PoisonTap - 从锁定的计算机上窃取 Cookie、暴露内部路由器并安装 Web 后门

由 @SamyKamkar 创建 || https://samy.pl

当 PoisonTap(Raspberry Pi Zero 与 Node.js)插入一台已锁定/受密码保护的计算机时,它可以:

  • 通过 USB(或 Thunderbolt)模拟一个以太网设备
  • 劫持来自该机器的所有互联网流量(尽管它是一个低优先级/未知的网络接口)
  • 从 Web 浏览器中窃取并存储 Alexa 排名前 1,000,000 个网站的 HTTP Cookie 和会话
  • 将内部路由器暴露给攻击者,使其能够通过出站 WebSocket 和 DNS rebinding 远程访问(感谢 Matt Austin 提出的 rebinding 思路!)
  • 在数十万个域名和常见 Javascript CDN URL 的 HTTP 缓存中安装持久化的基于 Web 的后门,所有这些后门都能通过缓存投毒访问用户的 Cookie
  • 允许攻击者远程强制用户发起 HTTP 请求,并携带用户的 Cookie 在任何被植入后门的域名上代理返回响应(GET 和 POST)
  • 无需解锁机器
  • 后门和远程访问在设备被移除且攻击者扬长而去之后仍然持续有效

PoisonTap

(由 Ara 制作的令人惊叹的 HTML5 canvas 动画)

PoisonTap 绕过了以下安全机制:

  • 受密码保护的锁定屏幕
  • 路由表优先级和网络接口服务顺序
  • 同源策略
  • X-Frame-Options
  • HttpOnly Cookie
  • SameSite Cookie 属性
  • 双因素/多因素认证(2FA/MFA)
  • DNS Pinning
  • 跨域资源共享(CORS)
  • 当Secure Cookie 标志和HSTS未启用时的HTTPS cookie 保护

演示

PoisonTap 专为 5 美元的 Raspberry Pi Zero 打造,除了一根 micro-USB 线和一张 microSD 卡之外无需任何额外组件;也可以在任意 Raspberry Pi(1/2/3)上配合以太网转 USB/Thunderbolt 转接器使用;还可以在能够模拟 USB gadget 的其他设备上运行,例如 USB Armory 和 LAN Turtle。

现场演示和更多详细信息请参见视频: MagSpoof

联系人: @SamyKamkar // https://samy.pl

发布: 2016 年 11 月 16 日

源代码和下载: https://github.com/samyk/poisontap


PoisonTap 的工作原理

PoisonTap 通过利用机器和网络中各种机制(包括 USB/Thunderbolt、DHCP、DNS 和 HTTP)的现有信任,产生级联效应,从而引发信息窃取、网络访问和半永久后门安装的滚雪球效应。

Network Hijacking

简而言之,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)
    • 通常情况下,如果辅助网络设备连接到机器,它会被赋予比现有(可信)网络设备更低的优先级,并且不会取代互联网流量的网关,因此无关紧要,但是……
    • 任何路由表 / 网关优先级 / 网络接口服务顺序安全性都会因“局域网流量”优先于“互联网流量”而被绕过
    • PoisonTap 即使作为低优先级网络设备,也能利用这种网络访问,因为低优先级网络设备的子网比最高优先级网络设备的网关(默认路由)具有更高的优先级
    • 这意味着,如果流量目的地是 1.2.3.4,通常该流量会命中主(非 PoisonTap)网络设备的默认路由/网关,但 PoisonTap 实际上会获得该流量,因为 PoisonTap 的“本地”网络/子网据称包含 1.2.3.4,以及存在的其他每一个 IP 地址 ;)
    • 因此,即使机器连接到另一个具有更高优先级和正确网关(真正的 wifi、以太网等)的网络设备,所有互联网流量也会经过 PoisonTap

Cookie Siphoning

Cookie 窃取

  • 只要 Web 浏览器在后台运行,打开的页面中很可能有一个会在后台发起 HTTP 请求(例如加载新的广告、向分析平台发送数据,或者只是继续跟踪你的网页浏览行为),方式是通过 AJAX 或动态 script/iframe 标签
    • 你可以亲自验证:打开开发者工具/检查器(通常是 Cmd+Shift+I 或 Ctrl+Shift+I),访问一个访问量很大的网站,点击 Network 标签,就会看到即使你在页面上没有任何操作,远程资源仍在继续被访问
  • 在这个 HTTP 请求发出时,由于所有流量都会经过 PoisonTap 设备,PoisonTap 会实时进行 DNS 欺骗,返回自己的地址,从而使 HTTP 请求命中 PoisonTap 的 Web 服务器(Node.js)
    • 如果 DNS 服务器指向 PoisonTap 无法获得权限的内部 IP(LAN),攻击仍然有效,因为内部 DNS 服务器会为被攻击的各个域名产生公网 IP 地址,而 PoisonTap 已经劫持了这些公网 IP
    • 一旦内部 DNS 服务器响应,Web 浏览器会命中公网 IP,最终在任一场景下都会命中 PoisonTap 的 Web 服务器(Node.js)
  • 当 Node Web 服务器收到请求后,PoisonTap 会返回一个既可以解释为 HTML 又可以解释为 Javascript 的响应,两者都能正确执行(许多网站会在后台请求中加载 HTML 或 JS)
  • 这个与 HTML/JS 无关的页面随后会生成许多隐藏的 iframe,每个 iframe 都指向 Alexa 排名前一百万的一个不同域名
    • 域名上的任何“X-Frame-Options”安全性都会被绕过,因为 PoisonTap 现在是 HTTP 服务器,可以选择向客户端发送哪些头
    • 由于对站点的每个 iframe HTTP 请求都会被发出(例如,http://nfl.com/PoisonTap),HTTP cookie 会从浏览器发送到被 PoisonTap 劫持的“公网 IP”,PoisonTap 会迅速记录这些 cookie/认证信息,将用户的数万个 cookie 记录到 PoisonTap 中
    • 任何“HttpOnly”cookie 安全性都会被绕过,因为这些 cookie 会被捕获,因为并没有在域名本身执行 Javascript,而只是首先用其加载 iframe
    • 任何跨域资源共享或同源策略安全性都会被绕过,因为浏览器认为正在访问的域名是合法的
    • 由于我们捕获的是 cookie 而不是凭据,因此当攻击者使用 cookie 登录时,站点上实施的任何 2FA/MFA 都会被绕过。这是因为我们实际上并没有执行登录功能,而是继续一个已经登录的会话,这不会触发双因素认证
    • 如果服务器使用 HTTPS,但 cookie 没有显式设置 Secure cookie 标志,那么 HTTPS 保护就会被绕过,cookie 会被发送到 PoisonTap

Internal Router Backdoor

可远程访问的基于 Web 的后门

  • 当 PoisonTap 产生数千个 iframe、强制浏览器加载每一个时,这些 iframe 并不是空白页面,而是缓存的 HTML+Javascript 后门,可以无限期缓存
  • 由于 PoisonTap 在每个域名上强制缓存这些后门,后门与那个域名绑定,使攻击者将来能够使用该域名的 cookie 并发起同源请求,即使当前用户并未登录
    • 例如,当加载 http://nfl.com/PoisonTap iframe 时,PoisonTap 会接受被转移的互联网流量,并通过 Node Web 服务器响应 HTTP 请求
    • 会添加额外的 HTTP 头以无限期缓存该页面
  • 页面的实际响应是 HTML 和 Javascript 的组合,会产生一个持久的 WebSocket 连接到攻击者的 Web 服务器(通过互联网,而不是在 PoisonTap 设备上)
    • WebSocket 保持打开状态,允许攻击者在将来的任何时刻连回被植入后门的机器,并在任何已植入后门的源上执行请求(Alexa 排名前 1,000,000 的站点——见下文)
    • 如果后门在一个站点(例如 nfl.com)上打开,但用户想要攻击另一个域名(例如 pinterest.com),攻击者可以加载 nfl.com 上的一个 iframe 指向 pinterest.com 的后门(http://pinterest.com/PoisonTap)
    • 同样,域名上的任何“X-Frame-Options”、跨域资源共享和同源策略安全性都会被完全绕过,因为请求会命中 PoisonTap 留下的缓存,而不是真实域名

Raspberry Pi Zero

内部路由器后门与远程访问

下载工具