4. 绝对和相对路径
另一个有趣的策略是"relative versus absolute",在Windows早期版本(Windows XP、2003以及更早)及一些其它的早期操作系统,如果你键入一个文件名并且按下Enter,或者系统根据你的意愿去寻找一个文件,通常会从你的当前文 件夹或者是相对位置开始。尽管这种做法看起来高效切无害,但是却被攻击者所利用。
举个例子,如果你想使用Windows内嵌且无害的计算器(calc.exe),最快的方式就是打开命令行并键入calc.exe,然后按下回车。
但是攻击者可能会建立一个名为calc.exe文件夹,并将其隐藏到当前或者主文件夹下,那么你执行的calc.exe很可能就是伪装的那个。
通常情况下这个恶意软件会被作为penetration tester,用以攻破主机后的提升权限。攻击者可能会选择一个已知且易受攻击的未打补丁软件,并将其放入一个临时文件夹。多数情况下需要做的只是使用一 个易受攻击的可执行文件或者是DLL置换打好完整补丁的程序。攻击者会键入临时文件夹中程序的可执行文件名称,随后Windows加载则是临时文件夹中这 个易受攻击的Trojan执行文件,而不是打满补丁的那个版本。这个途径非常受攻击者喜爱,因为一个很简单的文件就可以玩转整个系统。
Linux、Unix及BSD系统在10年前就修复了这个问题,Windows则是在2006年通过Windows Vista/2008弥补了这个弱项,虽然这个问题在早期版本中仍然因为逆向兼容而存在。同时,这几年微软一直在提醒及教导开发者在应用打造过程中使用绝 对文件夹/路径。但是直到现在,仍然有上万个易受攻击的程序存在,攻击者比任何人都清楚这一点。
经验教训:使用执行绝对目录及文件路径的操作系统,寻找文件时首先在默认系统区域下进行。