什么是会话劫持? 如何确保会话隐私
已发表: 2021-07-13登录和注销之间可能会发生很多事情。
攻击者寻找可以未经授权访问您的帐户并利用您的数据的会话。 您应该确保在安全的环境中验证您的登录详细信息,并保护自己免受会话劫持攻击。
您可以使用 网络应用防火墙 检测传入流量中的异常并阻止潜在的恶意流量。 但要修复强大的安全防御,详细了解会话劫持、其类型以及攻击者可能用来渗透用户帐户的工具至关重要。
什么是会话劫持?
会话劫持,也称为 cookie 劫持,是通过在会话仍在进行时获取或生成会话 ID 来控制用户会话的过程。
攻击者可以使用跨站点脚本 (XSS)、暴力破解、逆向工程或各种其他方法来获取会话 cookie 并获得对用户帐户的未经授权的访问。
会话在您登录 Web 应用程序等服务时开始,在您注销时结束。 超文本传输协议(HTTP)是一种无状态协议,这意味着它独立地承载每个请求,而不参考任何先前的请求,要求用户每次查看网页时都进行身份验证。 为了避免每次都提示用户登录,服务器会分配一个会话 ID 以在身份验证后提供无缝的 Web 体验。
攻击者试图窃取目标的会话 ID 或诱使他们点击恶意链接,将他们带到预制会话以进行会话劫持攻击。 一旦用户在服务器上通过身份验证,威胁者就可以劫持会话并诱骗服务器认为他们的会话有效。
当攻击者针对会话 cookie 时,它与 Web 应用程序会话劫持有关,而不是传输控制协议 (TCP) 会话劫持。 TCP是一种在 IP 之上使用的传输协议,用于确保数据包的可靠传输。 Web 应用程序在成功验证后返回会话 cookie,攻击者利用该 cookie 劫持会话。 它与用户设备和服务器之间的 TCP 连接无关。
会话劫持方法
攻击者在执行会话劫持时通常有几种方法可供选择。 他们可以单独使用它们,也可以组合使用它们来接管用户帐户并进行恶意活动。
跨站脚本
在跨站点脚本 (XSS)攻击中,恶意黑客诱骗目标计算机执行伪装成属于服务器的受信任代码的代码。 它允许攻击者获取 cookie 的副本以执行他们的恶意操作。 通常,网页嵌入了 JavaScript。 没有适当的保障和 应用程序安全工具,如果脚本被执行,它会泄露用户的敏感信息。
如果服务器没有在会话 cookie 中设置HTTPOnly属性,脚本可以将它们暴露给攻击者。
恶意软件注入
一些 恶意软件 或木马程序被编程为窃取浏览器 cookie 并在用户不知情的情况下执行恶意操作。 例如,当用户访问恶意网站或单击未经请求的链接时,恶意软件会扫描网络流量,收集会话 cookie,并将其发送给不良行为者。 可以访问本地存储的攻击者可以从浏览器的临时本地存储(cookie jar)中窃取会话密钥,或者他们可以获取服务器或用户计算机的文件或内存内容。
蛮力
攻击者可以执行暴力攻击来猜测用户的会话密钥。 当应用程序使用顺序或可预测的会话密钥时,它会使会话容易受到劫持。 这是过去首选的方法,但在现代应用程序中,会话 ID 很长并且是随机生成的,对暴力攻击具有很强的抵抗力。
会话侧顶起
在会话端劫持中,攻击者利用数据包嗅探来读取网络流量并窃取会话 cookie。 通常,网站在其身份验证页面中使用安全套接字层/传输层安全 (SSL/TLS) 加密。 尽管如此,有些人在身份验证后并未在站点范围内使用它,从而使攻击者能够拦截服务器和网页之间交换的数据。
一旦攻击者获得会话cookie,他们就可以劫持用户的会话进行恶意操作。 例如,针对连接到不安全 WiFi 的用户的不良行为者可以轻松读取其他节点和接入点之间共享的数据或流量。
会话固定
攻击者有时可以创建伪装会话并诱骗用户对易受攻击的服务器进行身份验证。 例如,威胁参与者可以使用 社会工程学 (网络钓鱼)或类似的方法来说服用户点击一个链接,该链接将他们带到一个带有已知会话 cookie 的精心制作的会话。 一旦用户进行身份验证,攻击者就可以使用已知的会话密钥来劫持用户的会话。
攻击者还可以诱骗用户填写包含隐藏和固定会话 ID 的预制登录表单。
会话劫持攻击的级别
会话劫持攻击有两个级别。 这些攻击可以相互关联,因为对网络层的成功攻击将为攻击者提供信息以在应用程序级别利用实际用户。
传输层劫持
传输层劫持发生在 TCP 连接中,攻击者拦截 Web 服务器和用户之间的数据交换,从而禁止它们之间设置的通信通道。 然后,不良行为者将伪装成合法数据包的恶意数据包发送到客户端和服务器,接管用户会话。
传输层劫持的一种常见方法是IP 欺骗,攻击者使用伪装成可信 IP 地址的伪造 IP 地址与网络上的计算机进行通信。 他们使用源路由 IP 数据包来拦截两个节点之间的活动通信。 IP 欺骗在 TCP 会话开始时过度利用了一次性身份验证。
应用层劫持
在应用层劫持中,攻击者在用户对其应用进行身份验证后窃取用户的会话 ID。 中间人攻击是应用层会话劫持的典型例子,劫持者拦截客户端和服务器之间的通信通道。
代理攻击也属于应用层劫持。 攻击者将流量定向到具有预定义会话 ID 的代理服务器,以在这些攻击期间拦截通信。
3 会话劫持的类型
会话劫持涉及猜测或拦截现有会话中的会话 cookie,或欺骗用户在预制会话中进行身份验证。 会话劫持攻击分为三种类型。
1. 活跃
在活动会话劫持中,攻击者接管网络中的活动连接。 他们可以使所有设备静音并接管客户端和服务器之间的通信通道。 然后,他们放弃了服务器和用户设备之间的联系。
攻击者可以通过多种方式中断客户端和服务器之间的通信。 通常,入侵者会发送大量流量来攻击有效会话并引发拒绝服务 (DoS)攻击。
2. 被动
被动会话劫持与主动会话劫持类似,只是攻击者监视客户端和服务器之间的通信。 攻击者不会阻止实际用户退出会话,而是监督正在进行的通信交换。
被动攻击的主要动机是窃取交换的信息并将其用于恶意目的。
3. 混合
混合会话劫持攻击是主动攻击和被动攻击的结合。 在混合攻击中,攻击者监控网络流量,直到他们发现问题,然后接管会话并开始冒充合法用户。
混合攻击依赖于欺骗,并进一步分为以下类型:
- 盲目欺骗攻击涉及攻击者在不中断会话的情况下瞄准受害者。 它们捕获服务器和用户之间交换的数据包,并尝试破解 TCP 数据包序列。
- 非盲欺骗攻击包括监视服务器和用户之间的流量以预测后续协议以预测其 TCP 序列范围。 攻击者在应用程序级别接管会话并使用可能被盗或可预测的会话令牌形成新会话。
会话劫持与会话欺骗与会话重放
会话劫持和会话欺骗之间的主要区别在于攻击的时间。

一旦用户在应用程序中验证自己的身份,就会进行会话劫持攻击。 该攻击可能会导致应用程序出现延迟或异常行为。 这是因为攻击者在您仍然登录时利用了您的数据。如果应用程序经常崩溃,则可能表明存在会话劫持攻击。
在会话欺骗中,受害者不知道攻击。 攻击者可能会使用被盗或伪造的会话 ID 并冒充真实用户,而不依赖用户执行身份验证。
会话重播有点不同。
在会话重放中,攻击者已经拥有会话 cookie(从会话劫持中收集),他们可以随心所欲地使用它们。 他们可能会诱骗受害者重新提交之前有效的请求,例如在他们最初请求一个单位的地方购买多个数量的物品。
会话劫持工具
有几种工具可以帮助攻击者进行会话劫持攻击。 您可以在 渗透测试 并检查您的系统和应用程序是否可以抵御攻击。
以下是一些用于执行攻击的流行会话劫持工具。
* 这些工具只能用于道德目的,以测试和加强系统以防止会话劫持。
仓鼠和雪貂
Hamster 就像一个代理服务器,它操纵 Ferret 收集的数据,它捕获通过网络的会话 cookie。
这是由提出的仓鼠使用示例 卡利工具:
root@kali:~# 仓鼠
--- HAMPSTER 2.0 侧顶工具 ---
设置浏览器使用代理 http://127.0.0.1:1234
调试:set_ports_option(1234)
调试:mg_open_listening_port(1234)
代理:监听 127.0.0.1:1234
开始线程
T-Sight
T-Sight最初是作为一种在 Windows 平台上运行的网络监控工具而开发的。 但是,在监控网络时,可以劫持会话,因为网络上的所有通信都是实时复制的,从而提供精确的数据传输输出。 因此,T-Sight 的开发商 Engrade 现在只为预先确定的 IP 地址提供软件许可。
剑圣
Juggernaut是一种网络嗅探工具,可被恶意用于进行会话劫持攻击。 可以将 Juggernaut 配置为监视局域网 (LAN)中的所有网络流量或侦听特定会话令牌。 它可以设置为在受害者尝试登录后记录网络流量。
Juggernaut 不同于将所有网络流量记录在巨大日志文件中的常规网络嗅探器。 Juggernaut 维护一个连接数据库,允许攻击者监视所有基于 TCP 的连接,甚至劫持会话。 会话劫持工具还提供了内置的数据包组装功能。 攻击者使用此功能对数据包进行分段以逃避入侵检测系统和防火墙。
下面是通过 Linux 命令行运行 Juggernaut 的示例:
Juggernaut ?) 帮助 0) 程序信息 1) 连接数据库 2) 监视连接 3) 重置连接 4) 自动连接重置守护进程 5) 单工连接劫持 6) 交互式连接劫持 7) 数据包组装模块 8) Souper sekret 选项编号八 9) 下台
- 连接数据库向您显示一个活动连接。
- Spy on a connection允许您监控跨开放通信通道的网络流量,并提供存储日志的选项。
- 重置连接通过向源发送 RST 数据包来关闭会话。
- 自动连接重置守护程序允许您在主机尝试建立会话时配置基于 IP 地址和 RST 数据包到源的主机。
- Simplex 连接劫持使您可以向目标输入单个命令。 攻击者使用它来阻止检测。
- 交互式连接劫持允许您进行完整的会话劫持并创建大型 ACK 风暴。
- 数据包组装模块可让您创建自己的数据包。
- Souper sekret 选项 8没有任何功能。
- Step down允许您退出程序。
这些是攻击者用来进行会话劫持攻击的一些工具。
您需要针对类似的工具(如 Hunt、TTY-Watcher、IP-Watcher、1164、Wireshark、SSHMITM、Hjksuite、C2MYAZZ)加强您的网络和系统,攻击者使用这些工具来利用用户会话。
如何防止会话劫持
会话劫持可能会给组织带来可怕的后果,包括在多年建立良好声誉并在行业中提供忠实服务后遭受的财务损失和声誉损失。
企业需要制定战略安全措施,以避免成为会话劫持攻击的目标。 这些措施包括:
- 加密网页上的所有数据传输
- 在网页上实施超文本传输协议安全 (HTTPS) 认证
- 定期更新和修补浏览器
- 采用网络安全工具,如 DDoS 保护软件和 欺骗技术
- 仔细登录和退出每个会话
- 整合 Web 框架,而不是创建内部会话管理系统
- 认证后重新生成会话密钥,防止黑客利用登录时生成的会话ID
- 通过包括额外的检查来加强身份验证,例如验证用户的常用 IP 地址或应用程序使用趋势
- 仅使用安全的无线网络,避免在任何公共 WiFi 上运行
- 使用虚拟专用网络 (VPN) 软件屏蔽您的 IP 地址并保护您的会话
拥有站点范围的 HTTPS 可以说是最重要的预防机制。 如果您担心性能问题,您可以在网站的登录页面和其他敏感区域实施 SSL。 另一个重要的预防措施是加密存储在会话 cookie 中的会话值。
保护您的会话
会话劫持可能很麻烦。 积极主动并设置适当的防御机制,以保护自己免受会话劫持攻击并保护您的帐户和数据。
随着黑客不断开发新方法来破解组织的防御边界,确保 100% 的安全性可能会变得更加棘手。
详细了解事件响应以及当攻击者获得您的帐户或数据的访问权限时如何管理网络事件。