在Windows系统中,环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。通过使用环境变量,用户可以很容易的修改一个牵涉到一个或多个应用程序的配置信息。通俗的讲,环境变量就是用来指定操作系统运行环境的一些参数,比如临时文件夹、系统文件夹等。作为Windows系统高效运行的重要一环,学习并掌握环境变量可以明显提高系统的安全性。比如,在日常操作中,如果需要快速访问某些重要文件夹或常用程序,就可以使用Windows的环境变量。当然,在使用系统的过程中,环境变量也会给我们带来一些潜在的安全隐患,灵活运用这些鲜为人知的参数,将会明显提高系统的安全性。
环境变量入门知识
顾名思义,变量是相对于常量而言的。一般来说,系统常量是固定不变的,而环境变量则可以被重新赋予。在Windows系统中,环境变量可分为用户变量和系统变量。用户变量可以被当前用户修改,而系统变量则只能由具有管理员权限的用户进行添加或修改。
1.用户变量和系统变量
在Windows系统中,查看用户变量和系统变量的方法很简单。在桌面右键单击“我的电脑”,在弹出的菜单中选择“属性”。这时,会弹出一个“系统属性”对话框,在此对话框中单击“高级”选项卡,在此界面中,单击“环境变量”按钮,就可以对环境进行新建、修改或删除等操作了。如果当前是以Administrator登录系统的用户,对话框的上面为Administrator的用户变量,对话框的下面为系统变量(相当于系统中所有用户的用户变量)。
此外,也可以在运行对话框中输入“winmsd”命令查看环境变量时。回车后,打开“系统信息”窗口,单击左侧的“软件环境→环境变量”项,在右侧窗格中,也可以看到本机中的所有用户变量和系统变量。
2.配置环境变量
就像我们装修自己的房间一样,也可以添加或修改系统变量。除了直接在“系统属性”窗口中修改,还可以在命令提示符或注册表编辑器中修改,甚至可以使用专门的程序函数进行修改。改变环境变量和环境变量中的值时,注意不要含有空格,也不要用中文。
方法一:通过命令提示符修改。这种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后设置就无效了。按下“Win+R”组合键,打开运行组合键,输入“cmd”命令打开命令提示符窗口。在该窗口,我们可以通过set命令来查看、创建、删除或修改环境变量。比如,要查看Path环境变量的设置,可以输入“set Path”;如果要设置一个安装JAVA程序的环境变量“JAVA_HOME”,并将其值设置为“D:\Java\jdk1.6.0”,可以输入:“set JAVA_HOME=D:\Java\jdk1.6.0”;如果要删除这个环境变量,可以输入:“set JAVA_HOME=”(注意“=”号后面没有空格)。修改环境变量时,主要是追加的方法,即在不改变环境变量现有设置的情况下,增加变量的值。比如要给环境变量“Path”增加一个值为“%JAVA_HOME%\BIN;”的值,可以输入:“set Path=Path;%JAVA_HOME%\BIN;”。
方法二:通过注册表修改。在“运行”对话框中输入“regedit”命令,打开注册表编辑器。然后,定位到[HKEY_LOCAL_MACHINE\
SYSTEM\CurrentControlSet\Control\Session Manager\Environment]子键,当前系统的环境变量就会出现在右侧窗格。双击需要修改的变量,打开“编辑字符串”对话框,然后在“数值数据”文本框中修改即可。使用同样的方法,定位到用户变量的子键[HKEY_CURRENT_
USER\Environment],在这里可以对用户变量进行修改。
小技巧:环境变量的备份与恢复
环境变量是一些个性化的参数组合,在日常使用中,用户可对其进行备份。在注册表编辑器中查找环境变量时,单击“编辑→查找”,输入环境变量值即可。找到保存位置后,选择“文件→导出注册表文件”,在弹出窗口中勾选导出范围为“选定的分支”,把它们导出为REG文件。在重装系统或想将自己设置的环境变量与别人共享时,可以双击导出的REG文件,导入相关参数。导入后,重启系统即可。
巧用环境变量提高系统安全性
环境变量的应用十分广泛,它可以帮我们迅速打开目标内容,同时也会给黑客以可乘之机。下面,通过典型的例子进行分析。
1.快速打开深层文件或获取隐藏程序
Windows安装之后,系统就已经为用户提供了一些系统变量或用户变量。通过这些变量,可以快速打开某些重要文件夹。在“运行”对话框中,输入:“%SystemRoot%”或“%Windir%”,可迅速打开系统根目录;输入“%Userprofile%”或“%HomePath%”,可快速打开当前用户的配置文件;直接输入“System”会打开Windows安装目录下的System文件夹,直接输入“System32”会打开 Windows安装目录下的System32文件夹,输入“Fonts”则可以打开Windows安装目录下的字体文件夹等。此外,Windows临时文件夹路径比较复杂,清理垃圾文件时,输入“%temp%”之后就可以直接打开当前用户的临时文件夹了。
如果在系统中安装了一个程序(这里以Word为例),却不想让别的用户知道或使用,可以采用下面介绍的方法隐蔽运行。以Microsoft Word为例。首先打开“环境变量”对话框,在“系统变量”列表中,选择“Path”项,单击“编辑”按钮。打开“编辑系统变量”对话框,在“变量值”文本框中,输入Word主程序所在的路径(默认为<C:\Program Files\Microsoft Office\OFFICE11\>)。不同变量值之间使用半角分号隔开。编辑完成后,单击“确定”按钮。然后,在“运行”对话框中输入“WINWORD”,回车后即可启动Word了。完成后将“开始”菜单或桌面上的 Word快捷方式删除,一般人就不会知道用户将该程序隐藏起来了。
在网络攻防实践中,很多黑客习惯于将自己的某些工具隐藏在某些免费站点空间中。在遥控这些工具时,可以通过环境变量快速打开某个网站。比如,在浏览器地址栏中,输入网站中文名(如“新浪”),即可快速到达该网站。不过,开启网络实名要受到诸多限制,而使用环境变量则可以自定义许多个性化的网站实名。下面,以开启“新浪”(http://www.sina.com.cn)网络实名为例。在“环境变量”对话框中,单击“系统变量”列表下的“新建”按钮,打开相应的对话框,在“变量名”文本框中,输入“新浪”,在“变量值”文本框中,输入:“”C:\Program Files\Internet Explorer\IEXPLORE.exe” www.sina.com.cn”。注意:IEXPLORE.exe”和www之间有一个半角的空格。单击“确定”按钮,相关设置即可生效。在“运行”对话框中,输入“%新浪%”,即可快速启动IE浏览器并进入新浪网站。
2.巧用环境变量清除垃圾文件
在日常办公或学习中,压缩包文件应用比较普遍。不过,如果压缩文件比较多,也会占用大量的硬盘空间。例如,在备份的rar压缩包文件中,如果包含了一些不再想保存的文件,要想一个一个地打开删除是很麻烦的。其实,通过环境变量,加上一个批处理命令,我们就可以实现批量清除了,具体步骤如下。
第一步:设置环境变量
默认情况下,WinRAR软件安装在<C:\Program files\WinRAR>目录,因此可将这一路径添加到环境变量中。方法为:右击“我的电脑”,选择“属性→高级→环境变量”,双击下方“系统变量”下的“Path”项,在弹出窗口中“%SystemRoot%\System32\Wbem”的后面加上:“C:\ProgramFiles\WinRAR”。单击“确定”按钮,重启后添加的环境变量即生效。
第二步:设置批处理命令
打开“记事本”,输入如下代码:
FOR /r %%v IN (*.rar) DO rar d "%%v" *.bmp *.jpg *.tmp –r
将以上内容保存为一个文件,如:del.cmd,再放到RAR压缩包的同一目录下。如果要清理这些压缩包中的图像文件,双击执行del.cmd即可完成操作。需要注意的是,如果被处理的RAR文件有密码保护,可能会提示输入密码。
3.巧用环境变量控制其它电脑
基于上述原理,黑客就可以很方便的利用Path环境变量来达到期望的目的了。比如把NC之类的黑客利器放在System32目录时,不管用户的当前路径是什么,都可以执行NC命令。如果将Path变量中的内容全部删除,那么原来的系统命令系统都将无法识别了。也就是说,当黑客在命令提示符中输入命令时,系统将按照黑客所设置的顺序查找相关程序,从而达到直接调用程序或文件的目的。下面是一个比较典型的操作步骤。
第一步:设置Path目录的顺序
设置环境变量的顺序时,可以考虑安装一些程序。比如安装Java程序时,排在第一的环境变量就会在c:\java\bin。当然,也可以考虑安装Perl或其他程序,以设置Path目录的顺序。
第二步:设置并上传木马
如果权限设置不够严密,可以通过webshell上传木马。比如,在PcShare远程控制软件中,设置相关参数并生成一个被控制端执行文件,并设置其文件名为net.exe。此外,msconfig.exe或者Netstat.exe等系统内置程序也是比较常用的伪装对象。
第三步:修改并利用环境变量
当管理员权限配置不当时,会疏忽此目录的权限配置,也就为系统提权创造了条件。在变量Path内容的最前面加入以下路径:c:\java\bin。当没找到net程序时,就会接着依次寻找环境变量中的Path变量中所定义的目录,比如现在就可以找到c:\java\bin目录。
第四步:执行木马与本地控制测试
当管理员执行命令时,由于Path变量中c:\java\bin位于系统环境变量的前面,所以,当管理员执行net命令时,因为系统查找的是可执行程序,于是就会执行木马程序。这样,就可以方便的进行相关操作,如查看对方屏幕、重启控制端电脑或者下载执行指定文件。
因此,在实际操作过程中,可以灵活运用环境变量以加快工作效率。当然,如果出现运行时找不到程序或某些程序无法正常运行的情况时,应该查看一下系统变量是否正常,从而实施有针对性的防范。
