用手机从锁定的计算机中偷取凭证信息

了解到这一点之后,我们就可以尝试用Android网络共享功能——也就是所谓的Tethering来创建网络。启用网络共享功能之后,手机设备就能够接收来自主机的所有通信数据,手机是作为网关存在。这样一来要执行中间人攻击简直轻而易举。

本文中,我将为大家讲解其中涉及的步骤,工具,以及进行一次成功攻击所需要的配置。

Android网络共享功能

Android设备进入USB Tethering网络共享模式的时候,系统会在USB接口新增一个USB接口描述符并重启。

主机操作系统会查询Android设备,也就是通过USB端口连接手机的时候, 它会接收USB网络设备描述符,之后加载驱动程序。

驱动一旦加载,主机操作系统会创建一个新的网络接口(通过USB)。主机处理该网络接口与处理其他接口的方式没有差别。此时USB连接处在活跃状态,主机就会发送DHCP请求来获取IP。

在原生的Android网络共享配置中,系统会用dnsmasp建立一个DHCP和DNS服务器来响应该请求。它为主机提供连接到网络所需的IP地址以及路由信息。

在Android Tethering网络共享的具体实施中,这些配置细节是硬编码到Tethering.java程序包中的。显然,在已获得root权限的Android设备中,我们自己动手配置这些信息不是难事。

除此之外,iptables转发规则可以设置为从USB到外部接口(通常为Wi-Fi或3G)间转发流量。完成这项操作后,主机就可以使用USB网络连接到互联网了(即网络共享功能)。

中间人攻击

攻击者在网络中投放恶意数据包,迫使网络设备连接攻击者的网络,那么发动中间人攻击也就不需要Tethering了。就像前文所说的那样,通过Tethering网络共享连接的话,主机所有的流量都会流经设备。即便设备连接到其他网络,部分网络流量还是会流经USB网络,这对于某些身份凭证信息的泄露已经足够了。

盗取凭证

这一例中,中间人攻击工具我们选择了Responder。这是个被动凭证收集工具,Responder监听指定的NetBIOS
Name Service(NBT-NS)以及本地链路多播名称解析
(LLMNR)查询。该工具包含了通过TCP和UDP端口监听的欺骗身份验证服务器。受害者被重定向至这些服务器,这样就能获取到这些人的身份验证凭证了。

使用Responder劫持流量并捕获凭证非常高效。特别是当用户在网上的动作比较活跃的时候(例如,浏览网页,访问内部共享等)。

从锁定机器中盗取凭证

该攻击向量首先假定用户不在或者在网络中不活跃。还有些先决条件,用户之前必须已经登录过主机,或者说已经在主机上进行过身份认证,另外当然也需要我们能够实际接触到这台主机及其USB端口。

网络代理自发现协议 (WPAD)协议可用来自动定位proxy auto-config (PAC)文件。PAC的位置可以通过DHCP响应“site-local”选项252(即auto-proxy-config)与“ http://example.com/wpad.dat”值提供给用户。

DHCP比DNS拥有更高的优先权。如果DHCP提供WPAD URL,则DNS不会执行查询,这只适用于DHCPv4。在DHCPv6中没有定义WPAD选项。

所有的Web浏览器都支持该协议,包括Windows,MacOSX,Linux以及iOS和Android系统的。不过默认只有在Windows操作系统中启用。

方法结合

谈到网络共享功能和DHCP,我们前面已经提过,用Android设备可以创建网络和DHCP服务器。使用Android的dnsmasq也可以很方便的创建DHCP服务器,并且配置WPAD选项指向Responder。

至于身份验证,在锁定的计算机上之所以可以这样攻击是因为代理自动配置文件包含了DHCP响应所需的细节信息。

当主机尝试检索PAC文件,Responder的HTTP服务会返回一个“(407)身份验证请求”信息。在大多数情况下,主机通过用户缓存的凭证进行身份验证。

Windows使用NTLM协议来完成认证,这是个challenge-response身份验证协议。用户密码hash以及challenge-response步骤在此作为用户身份验证的token。

虽然没有明文凭证可供攻击者直接使用,但破解出hash并获得用户密码还是有可能的。如果密码强度比较弱,那么破解所需的时间不会太长。

不过对于刚启动的机器来说由于还没有缓存凭证,所以这种攻击方式是无效的。然而一旦用户先前就进行过身份验证,主机就可以尝试再次获取文件。

不过还面临一个挑战,就是如何在Android设备上跑Responder(这是个Python项目)。这里提供多种解决方案供考虑,最简单粗暴的方法就是安装qPython应用。qPython是一款针对Android的Python编译器,它能够完美的运行Responder。还有个替代方案是安装NetHunter,NetHunter是从Kali Linux移植到Android之上的,同样的它也包含Python编译器。

一台已root的Android设备,一颗好奇的心?

安装qPython下载脚本和Responder,然后按指示进行。

这段视频展示的是Windows 10锁屏界面。测试主机最新安装了Windows操作系统,且没有加入任何域,未连接到其他任何网络,用户之前通过了身份验证后锁定了屏幕。

连接一台Android设备,运行上面提到的Responder脚本。注意在执行Responder后的几秒钟,在没有进行任何交互的情况下,用户的NTLM hash已经捕获到。下图展示了捕获到的数据:

脚本执行步骤,通过设置网络并运行Responder启用网络共享功能。

黄色部分为捕获到的hash

解决方案

在操作系统和浏览器中禁用自动代理配置设置,至少可以防止上述锁屏攻击。不过在公司网络中需要用到代理或者依赖于自动配置,当然就会有些麻烦了。不过我们要使用代理,最好是硬编码设置或者由自动配置脚本提供。以下为不同操作系统规避这种攻击的设置方法:

Windows 10, 8.1, and 8

  • 打开设置 (开始 → 在Windows 10中为设置 / 左下角 → Windows 8, 8.1为更改计算机设置).
  • 选择 网络 之后选择左边的代理.
  • 确保“自动检测设置”已禁用.

Windows 7, Vista, XP

  • 单击开始进入控制面板.
  • 在控制面板中选择互联网选项.
  • 在连接选项卡中选择LAN设置.
  • 确保“自动检测设置”已禁用.

MacOSX

  • 打开系统偏好.选择网络之后选择活跃连接
  • 选择高级之后进入代理选项卡.
  • 确保“自动发现代理”已禁用.

作者:鸢尾

来源:51CTO

时间: 2024-09-09 00:57:28

用手机从锁定的计算机中偷取凭证信息的相关文章

凯悦确认有318家旗下酒店感染了偷取金融信息的恶意程序

凯悦酒店集团(Hyatt Hotel)近日透露旗下将近一半的酒店产业在去年遭受了恶意病毒的攻击感染,顾客金融方面的数据可能已经被窃.根据酒店官方声明,隶属于公司的627家酒店中有318家确认自2015年8月13日至12月8日期间感染了偷取信息的恶意程序,部分酒店甚至于2015年7月30日就已经感染,目前酒店已经公布了所有感染恶意程序的连锁地址清单. 根据所列清单酒店显示涵盖全球54个国家,包含美国.英国.中国.德国.日本.意大利.法国.俄罗斯.加拿大等,而美国.中国和印度则是感染该恶意程序最多的

从内存中偷取未加密的 SSH-agent 密钥 【已翻译100%】

如果你曾使用SSH密钥来管理多台机器,那么你可能使用过SSH-agent.这个工具使SSH密钥在内存中持续化,这样用户就不用每次都输入口令.然而,这会导致一些安全风险.root用户可能有权限从内存中取出解密后的SSH密钥,并重构它. 由于需要root权限,这种攻击看起来没什么用.例如,一个攻击者可能安装一个Keylogger并使用它来获得SSH密钥的口令.然而,这要等待肉鸡输入它们的口令.这取决于肉鸡掉线的频度,可能需要几个小时,几天或几周.在快速攻击方法中,这也是为什么从内存中获取SSH密钥对

KRACKs漏洞源自WPA2认证过程中 不用担心“邻居”偷你的信息

近日,WPA2协议被发现多个高危漏洞,报道称这些漏洞允许攻击者监听计算机和访问点之间的Wi-Fi流量.有媒体据此解读认为无线上网不安全面临巨大风险.不过360无线电安全研究部总监杨卿表示,KRACKs漏洞成因出在无线协议的WPA2认证过程中,用户不必过度恐慌,他认为: 1,该漏洞Poc利用代码及未公布:2,该漏洞属于范围性影响,需处在合法wifi附近的百米左右的信号范围:3,该漏洞仍属于高级攻击利用,一般人员短时间不具备使用其发动攻击的能力. 所以暂不用担心你的"邻居"会用这个漏洞来偷

plsql developer-如何访问另一台计算机中的oracle数据库

问题描述 如何访问另一台计算机中的oracle数据库 有两台笔记本,一个配置高一些,安装了Oracle数据库,另一台配置低一些,没有安装,该怎么配置可以使用plsql developer工具访问高配置电脑中的数据库呢?求大神解答,详细一点哈!本人有点笨,不胜感激! 解决方案 参考:http://blog.csdn.net/metal1/article/details/41799669http://www.jb51.net/article/48676.htm 解决方案二: 首先oracle数据库得

计算机中的颜色X——两颜色的偏转值

颜色C1到颜色C2的偏转值定义为,颜色C1沿顺时针方向偏转到颜色C2时所转过的角度. 偏转值和两颜色C1与C2的夹角类似,但不完全一样.两颜色的夹角表示为两颜色的色相值的夹角,取值范围为[0,180],C1和C2的夹角与 C2和C1的夹角是一样的.偏转值特制C1沿顺时针所偏转的角度,故取值范围为[0,360).C1到C2的偏转值和C2到C1的偏转值是不一样的,他们的和为360. H1为C1和红色的夹角,H2为C2和红色的夹角.(相关的计算参看"计算机中的颜色V--快速计算颜色的色相值"

计算机中的颜色IX——总述:RGB和HSV快速转换

写了一段有关颜色的文章,回顾过去几篇文章,做一个阶段性总结.利用前几篇文章的心得,推导出快速转换RGB模式与HSV模式的公式. RGB模式:用R.G.B三个颜色的分量来表示颜色,分量的取值范围为[0,255],整数型 HSV模式:用H.S.V三个分量来表示颜色. 分量H:表示颜色的色相,取值[0,360),整数型 分量S:表示颜色的纯度,取值[0,1),浮点数型 分量V:表示颜色的亮度,取值[0,1),浮点数型 以上内容,详细请参看"计算机中的颜色III--HSV表示方法" 1.RGB

VC++编程隐藏计算机中的鼠标

在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.那么我们能否通过编制程序来控制系统的鼠标,例如隐藏计算机中的鼠标呢?这个问题的答案是肯定的.这里主要是通过一个Windows API函数来实现的.下面以一个Visual C++的实例来介绍如何实现这个功能.需要读者朋友们注意的是本代码具有一定的危险性,程序运行后你将无法用鼠标控制您的计算机,这时候需要对计算机的当前用户名进行注销或重新启动计算机. 一.实现方法 Win

Windows7系统如何在计算机中找到摄像头

从Windows Vista开始,系统就没有摄像头快捷方式了.所以,在 Windows 7 中,即使摄像头已经装载完好,能正常使用,也看不到它的图标或快捷方式. 如果想在"计算机"中看到摄像头只能把摄像头程序的快捷方式放到"计算机"中. 打开开始菜单,右键"计算机"选择"管理". 在"计算机管理"窗口左边一栏,双击"设备管理器".然后,从右边栏中找到"图像设备",点开

Vista系统如何删除计算机中曾经连接的蓝牙设备图标?

  Windows Vista系统下,曾经连接过的蓝牙设备会在计算机中残留一个图标,如何将之删除? 操作步骤: 双击屏幕右下角通知区域蓝牙图标或者点击右键,如下图所示,在弹出的bluetooth设备中"设备"选项卡下选中该设备,点击删除按键(如图) 或者 在下面的窗口中或者打开的bluetooth窗口中,找到设备,可以点击右键选择删除 此时在计算机中将不再显示此设备的图标.