实用黑客攻防技术
上QQ阅读APP看书,第一时间看更新

2.1 粘滞键攻击原理

粘滞键是Windows的一项功能,允许一个接一个地按键而不是一次性全部按下,这样可以更容易地发出某些键盘命令,如按Ctrl-c进行复制或Ctrl-v进行粘贴。粘滞键的触发方式是连续按下Shift键5次,你甚至可以在Windows登录界面输入用户名或密码之前就打开这个功能。

为了再现这次攻击,我们将用另一个文件cmd.exe来替换粘滞键程序文件。这样,按下Shift键5次将不会启动通常的粘滞键助手,而是启动命令提示符(Command prompt)。这是一个基于文本界面的程序,可以让我们直接在窗口中输入命令。通过在登录界面上启动一个命令提示符窗口(如图2-1所示),就可以添加一个新的用户名和密码,获得计算机管理员级访问权限,这样就可以随意访问计算机文件,而不需要知道计算机上的登录信息!

图2-1 粘滞键攻击打开了命令提示窗口,而不是粘滞键助手

由于2019年或之后更新到更高版本的Windows 10计算机不会受到粘滞键攻击的侵害,因此我们需要一台比较旧的Windows计算机来试验这次攻击。另外还需要一张Windows 10安装光盘或U盘。要创建一张Windows 10安装光盘,请参考附录A中的说明。

2.1.1 从Windows 10安装盘启动

若用命令提示符程序替换粘滞键程序,我们要用Windows 10安装光盘或U盘来访问包含这些程序文件的硬盘。按附录A所述步骤创建安装盘后,插入这张盘,然后重新启动计算机。

我们需要告诉计算机从光盘或U盘加载操作系统,而不是从硬盘驱动器加载。为此,我们得先访问启动菜单或基本输入/输出系统(Basic Input/Output System,BIOS),它们包含了控制计算机启动的基本设置。不同的计算机制造商和不同版本的Windows会导致实际情况和以下说明稍有不同,但按照以下步骤,再借助一点网络搜索,就能让你进入大多数比较旧的Windows计算机。

1.在Windows计算机上,你可以按下一个特殊的键来访问启动菜单或BIOS。如果在Windows启动徽标出现之前,启动屏幕上没有显示该按哪个键,那么请重新启动计算机,并在计算机开始启动时快速按Esc、Delete、F8、F9、F10、F11或F12等键。也可以在线搜索“启动菜单”和计算机的具体品牌和型号,从而找到正确的按键。

2.如果出现了启动菜单,请选择“从DVD启动”(Boot from DVD)或“从USB启动”(Boot from USB)选项,即从插入的Windows安装盘启动,然后跳到步骤5继续执行。

3.如果重启几次后启动菜单依然没有出现,可以尝试进入BIOS菜单:关闭计算机,然后再次打开,按Delete、F2、F9、F10、F12或Esc键。在线搜索BIOS和你的计算机型号以找到正确的按键。

4.进入BIOS后,找到启动选项并更改启动设备的顺序或优先级(通常使用箭头键),使USB或DVD成为首选,然后保存更改并退出BIOS。

5.再次重启。你应该会看到“按任意键从CD或DVD启动”或“按任意键从USB设备启动”的消息提示。立即按任意键(如空格键)从DVD或USB设备启动。

6.当Windows安装盘启动后,依次单击“下一步”(Next)→“维修计算机”(Repair your Computer)→“故障排除”(Troubleshoot)→“命令提示符”(Command Prompt),如图2-2所示。菜单顺序或选项名称可能看起来不同,若不同可查找Windows命令提示符。

警告:不要选择安装Windows 10,否则可能会清除你试图恢复的计算机中的所有文件!

图2-2 使用Windows安装盘访问命令提示符

7.打开Windows命令提示符窗口(通常是一个黑色的文本窗口)后,键入c:,按回车键切换到C:驱动器,如下所示:

X:\> c:

8.输入dir命令以查看C:驱动器上的文件和文件夹列表。查找名为Windows的文件夹,它将被标记为<DIR>,也就是目录的简称。

C:\> dir
 Volume in drive C is Windows 10
 Volume Serial Number is B4EF-FAC7
 Directory of C:\
--略--
03/15/2018  02:51 AM    <DIR>        Users
05/19/2019  10:09 AM    <DIR>        Windows❶
--略--

这个文件夹(❶)里包含的是操作系统文件,包括命令提示符应用程序和粘滞键程序文件,我们要将它们进行交换以执行攻击。

9.如果C:驱动器上没有Windows目录,请尝试在D:驱动器上执行相同的过程,输入d:后输入dir。如果D:驱动器也没有Windows目录,请继续按字母顺序查找E:、F:、G:……直到找到列表中包含Windows目录的驱动器。

2.1.2 获得管理员级别的访问权限

现在用命令提示符程序cmd.exe替换粘滞键程序sethc.exe。然后,我们将能够在计算机上创建一个新的管理员账号。

1.输入以下3个命令:

C:\> cd \Windows\System32\
C:\Windows\System32\> copy sethc.exe sethc.bak
C:\Windows\System32\> copy cmd.exe sethc.exe

这些命令进入sethc.exe和cmd.exe所在的目录,创建粘滞键程序的备份副本,并用命令提示符程序文件的副本替换原来的粘滞键程序文件。这样,每当计算机运行sethc.exe,它就会打开一个命令提示窗口,而不是粘滞键程序。

2.在第3个命令之后,Windows会询问你是否要覆盖sethc.exe。输入“Y”继续。

3.取出Windows 10安装DVD光盘或USB盘,重启计算机。

4.当计算机启动至登录屏幕时,按Shift键5次。你看到的不再是通常的粘滞键程序,一个命令提示窗口将在登录屏幕上弹出,如图2-3所示。

图2-3 命令提示符窗口弹出

5.在命令提示符窗口中输入以下两个命令:

C:\Windows\System32\> net user ironman Jarvis /add
C:\Windows\System32\> net localgroup administrators ironman /add

第1个命令将名为ironman的用户账号和密码Jarvis添加到Windows计算机中。第2个命令将ironman用户添加到本地管理员列表中。这意味着当我们以ironman的身份登录时,将拥有管理员级权限,能够访问所有文件。

6.当你看到如图2-4所示的成功消息时,关闭命令提示符。

图2-4 成功添加了名为ironman的用户作为计算机管理员

除了创建新用户账号之外,你还可以在命令提示符窗口中重置现有用户的密码,方法是输入net user,后面跟上现有的用户名和要设置的新密码,例如net user bryson Thisisyournewpassword!。但是,如果没有他人的许可或计算机所有者的许可,你千万不要重置他人的密码。

2.1.3 现在你是管理员了

恭喜!现在你可以用管理员身份访问计算机了。输入.\ironman作为用户名(或者从账号列表中选择ironman,如图2-5所示)登录。ironman前面的点和反斜杠告诉了Windows该账号是本地的,而不是存储在网络服务器上的。输入用户名后,输入密码Jarvis。

由于我们让ironman用户成为本地管理员组的成员,所以你对所有文件和文件夹都拥有管理员级访问权限,包括C:\Users\中的所有用户和文档,如图2-6所示。

图2-5 现在可以用ironman用户登录这台Windows PC

图2-6 管理员可以看到所有用户的文件

当你首次单击进入另一个用户的文件夹时,会看到一个弹出消息,提示你需要许可才能打开这个用户的文件,如图2-7所示。由于你现在是管理员,请点击“继续”(Continue)以授予自己永久访问权限。

图2-7 管理员可以授予自己超级权限,在同一台计算机上访问任何人的文件

粘滞键攻击只适用于Windows机器,然而,运行macOS的计算机也容易受到物理访问攻击。