<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oasis Feng &#187; UAC</title>
	<atom:link href="http://blog.oasisfeng.com/tag/uac/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oasisfeng.com</link>
	<description>Challenge your imagination!</description>
	<lastBuildDate>Tue, 13 Jul 2010 16:56:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>安全的使用Everything</title>
		<link>http://blog.oasisfeng.com/2009/12/26/use-everything-safely/</link>
		<comments>http://blog.oasisfeng.com/2009/12/26/use-everything-safely/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 12:04:31 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[hstart]]></category>
		<category><![CDATA[Total Commander]]></category>
		<category><![CDATA[UAC]]></category>

		<guid isPermaLink="false">http://blog.oasisfeng.com/?p=832</guid>
		<description><![CDATA[相信大部分用过Everything的朋友们都再也离不开它了，我也一样。作为一个现今已不多见的“键盘流”，日常的大部分程序我基本都直接从Everything中启动，少了纷乱的快捷方式，桌面也清爽了不少。 Everything由于核心原理建立在NTFS的底层机制上，所以在Vista/Win7中不可避免的必须以提升的权限运行（UAC），不过这对与大多数PC玩家来说早已不算什么障碍。但你是否留意过，通过Everything启动的任何程序或打开的任何文件，也都继承了其拥有的提升权限，这对于重度依赖它的玩家来说，却是一个非常致命的隐患。当你从Everything中启动了Total Commander，又从Total Commander中启动其它应用，这整个程序链全都跑在不受约束的管理员权限下，对系统安全构成了严重的威胁。 那么，如何才能避免这种权限提升的传递呢？ 好在Everything本身提供了非常全面的扩展机制，只要修改其everything.ini文件就可以修补这个安全漏洞了。打开ini文件，搜索“%1”便可以找到用于Everything启动其它程序的选项将其修改为： explore_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"%1") explore_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,/select,"%1") open_file_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%1") open_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"$parent(%1)") open_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"%1") 如果你用的是Total Commander作为文件管理器，那么后两行需要改为：（别忘了把“X:\TotalCmd”替换为Total Commander的实际路径） open_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "X:\TotalCmd\TotalCmd.EXE" /t /o /r="$parent(%1)") open_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "X:\TotalCmd\TotalCmd.EXE" /t /o /r="%1") 经过上述修改后，你再从Everything中启动的程序或打开的文件，就只有正常的受限权限了。但由于Windows自带的“runas.exe”使用console方式运行，会在启动瞬间弹出一个一闪即逝的“黑窗口”。如果你不习惯的话，可以去下载一个“Hidden Start”，然后将上述ini文件中的内容替换为： explore_folder_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,"%1"") explore_folder_path_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,/select,"%1"") open_file_command=$exec("X:\hstart.exe" /d="$parent(%1)" /nonelevated "%1") open_folder_path_command=$exec("X:\hstart.exe" [...]]]></description>
			<content:encoded><![CDATA[<p>相信大部分用过<a href="http://www.voidtools.com/" target="_blank">Everything</a>的朋友们都再也离不开它了，我也一样。作为一个现今已不多见的“键盘流”，日常的大部分程序我基本都直接从Everything中启动，少了纷乱的快捷方式，桌面也清爽了不少。</p>
<p>Everything由于核心原理建立在NTFS的底层机制上，所以在Vista/Win7中不可避免的必须以提升的权限运行（UAC），不过这对与大多数PC玩家来说早已不算什么障碍。但你是否留意过，通过Everything启动的任何程序或打开的任何文件，也都继承了其拥有的提升权限，这对于重度依赖它的玩家来说，却是一个非常致命的隐患。当你从Everything中启动了Total Commander，又从Total Commander中启动其它应用，这整个程序链全都跑在不受约束的管理员权限下，对系统安全构成了严重的威胁。</p>
<p>那么，如何才能避免这种权限提升的传递呢？</p>
<p><span id="more-832"></span>好在Everything本身提供了非常全面的扩展机制，只要修改其everything.ini文件就可以修补这个安全漏洞了。打开ini文件，搜索“%1”便可以找到用于Everything启动其它程序的选项将其修改为：</p>
<pre>explore_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"%1")
explore_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,/select,"%1")
open_file_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%1")
open_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"$parent(%1)")
open_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "%SystemRoot%\explorer.exe" /n,/e,"%1")</pre>
<p>如果你用的是Total Commander作为文件管理器，那么后两行需要改为：（别忘了把“X:\TotalCmd”替换为Total Commander的实际路径）</p>
<pre>open_folder_path_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "X:\TotalCmd\TotalCmd.EXE" /t /o /r="$parent(%1)")
open_folder_command=$exec("%SystemRoot%\System32\runas.exe" /trustlevel:0x20000 "X:\TotalCmd\TotalCmd.EXE" /t /o /r="%1")</pre>
<p>经过上述修改后，你再从Everything中启动的程序或打开的文件，就只有正常的受限权限了。但由于Windows自带的“runas.exe”使用console方式运行，会在启动瞬间弹出一个一闪即逝的“黑窗口”。如果你不习惯的话，可以去下载一个<a href="http://www.ntwind.com/software/utilities/hstart.html" target="_blank">“Hidden Start”</a>，然后将上述ini文件中的内容替换为：</p>
<pre>explore_folder_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,"%1"")
explore_folder_path_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,/select,"%1"")
open_file_command=$exec("X:\hstart.exe" /d="$parent(%1)" /nonelevated "%1")
open_folder_path_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,"$parent(%1)"")
open_folder_command=$exec("X:\hstart.exe" /nonelevated ""%SystemRoot%\explorer.exe" /n,/e,"%1"")</pre>
<p>或对于Total Commander：（别忘了把“X:\TotalCmd”替换为Total Commander的实际路径，“X:\HStart”替换为Hidden Start的实际路径）</p>
<pre>open_folder_path_command=$exec("X:\HStart\HStart.exe" /nonelevated ""X:\TotalCmd\TotalCmd.EXE" /t /o /r="$parent(%1)"")
open_folder_command=$exec("X:\HStart\HStart.exe" /nonelevated ""X:\TotalCmd\TotalCmd.EXE" /t /o /r="%1"")</pre>
<hr size=2>
<strong>2010.6.25 更新: open_file_command 配置中给 hstart.exe 增加 /d 参数指定程序的启动路径为程序所在位置。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2009/12/26/use-everything-safely/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>当心应用软件借安装程序绕过UAC</title>
		<link>http://blog.oasisfeng.com/2008/11/16/do-not-directly-start-application-as-suggested-in-its-installer/</link>
		<comments>http://blog.oasisfeng.com/2008/11/16/do-not-directly-start-application-as-suggested-in-its-installer/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 15:07:15 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Installer]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[UAC]]></category>

		<guid isPermaLink="false">http://blog.oasisfeng.com/?p=541</guid>
		<description><![CDATA[如果你仍像我一样谨慎的依托UAC保护自己的Windows系统，那么就不能不提防一种应用程序常见的绕过UAC保护的伎俩。 通常很多应用软件在安装结束前都会给出一个选项（默认选中），让你可以方便的在安装完成后直接启动之。这时千万不要让它这样做，因为应用软件自身作为安装程序的一个子进程启动，便会继承其父进程的全部既得权限。我们知道，安装程序作为一类特殊的程序，一般都会要求用户赋予其管理员权限以完成正常的安装动作。在它名正言顺的拿到尚方宝剑后，再将其暗度陈仓的传递给安装后的应用程序，这样一来就有机会背着用户越权执行一些危险动作了。 基于上述原因，大家切忌不要允许安装程序结束时直接启动安装后的软件，以防被无良软件所坑害。]]></description>
			<content:encoded><![CDATA[<p>如果你仍像我一样谨慎的依托UAC保护自己的Windows系统，那么就不能不提防一种应用程序常见的绕过UAC保护的伎俩。</p>
<p>通常很多应用软件在安装结束前都会给出一个选项（默认选中），让你可以方便的在安装完成后直接启动之。这时千万不要让它这样做，因为应用软件自身作为安装程序的一个子进程启动，便会继承其父进程的全部既得权限。我们知道，安装程序作为一类特殊的程序，一般都会要求用户赋予其管理员权限以完成正常的安装动作。在它名正言顺的拿到尚方宝剑后，再将其暗度陈仓的传递给安装后的应用程序，这样一来就有机会背着用户越权执行一些危险动作了。</p>
<p>基于上述原因，大家切忌不要允许安装程序结束时直接启动安装后的软件，以防被无良软件所坑害。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2008/11/16/do-not-directly-start-application-as-suggested-in-its-installer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.255 seconds -->
