临时小驻

求仁得仁,复无怨怼。

在 Windows 中以受限身份运行毒瘤软件

2018-10-27 13:58:00 +0800

在 Windows 中,一个令人头疼的事情就是,很多软件明明不需要管理员身份也可以运行,在安装、运行的时候却非要 UAC 提权一波,把自己塞进系统目录里,顺便做些什么不为人知的头疼事情。更有甚者,UAC 提权完,转手还想把自己塞进 ~\AppData\Local 里,真是又当毒瘤又立牌坊。

本文描述一种可能的方案,使用 Windows 提供的兼容性设置,屏蔽掉 UAC 提权请求的同时,又不中断程序的运行。同时,创建了一个“标准用户”,以该用户的身份运行程序,避免程序胡乱写入主用户的目录和注册表。

以 Windows 10 为例,低版本的 Windows 可能会有其他的入口,但这些概念都是相似的。

首先我们需要打开“设置——帐户——家庭和其他成员——将其他人添加到这台电脑”,通过点选“我没有这个人的登录信息”、“添加一个没有 Microsoft 帐户的用户”可以创建一个新的本地、标准用户。输入简单的用户名和密码,如“limited”、“123”。根据提示完成用户创建。

我们需要为新增的用户提供文件系统的访问权限,以使其能够找到、读取目标软件的安装包或程序目录。
比如,我们需要允许 limited 用户能够访问正常用户文件夹的 Downloads 目录(假设在 C:\Users\fy\Downloads),我们需要为从根到叶子的每一级目录都配置权限。

打开 C:\Users\fy 的文件夹属性,点击“安全”选项卡的“高级”打开高级设置,点“添加”。点击“选择主体”,输入“limited”后点击“检查名称”来补全,然后确认。根据需要提供权限,勾选“仅将权限应用到此容器”,避免应用到子目录中,使得 limited 用户能够完全访问正常用户的所有目录。一路确定完成设置。

同理,修改 C:\Users\fy\Downloads 的安全设置。

接下来我们创建一个 PowerShell 脚本,并通过这个脚本运行目标软件:

创建文件 C:\Users\fy\bin\jail.ps1,输入以下内容:

$username = 'limited';
$password = '123';
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword;
$arglist = New-Object System.Collections.ArrayList;
$arglist.Add('/C');
# start 第一个双引号识别为 title
# start 命令是运行程序用的,运行 cmd 命令或 bat 脚本会有 bug,此时请使用 call 命令
# see: https://stackoverflow.com/questions/9267278/using-the-dos-start-command-when-passed-arguments-have-quotes
$cmd = 'set __COMPAT_LAYER=RunAsInvoker && start "" /min';
foreach ($arg in $args.Length) {
    $cmd += " ""$arg""";
}
$arglist.Add($cmd);
Start-Process -FilePath "cmd.exe" -ArgumentList "$cmd" -Credential $credential -WindowStyle Hidden;

从开始菜单打开 PowerShell,通过以下脚本安装 WeChat:

PS> C:\Users\fy\bin\jail.ps1 "C:\Users\fy\Downloads\WeChatSetup.exe"

假设我们安装到了 C:\Users\limited\app\WeChat,通过以下脚本运行 WeChat

PS> C:\Users\fy\bin\jail.ps1 "C:\Users\limited\app\WeChat\WeChat.exe"

通过任务管理器,可以发现 WeChat 以 limited 用户身份正常运行,数据也存到了 C:\Users\limited\Documents\WeChat Files\

原文链接 https://blog.xupu.name//p/2018-10-jail-malicious-program-on-windows/

如无特别指明,本站原创文章均采用 CC BY-NC-ND 4.0 许可,转载或引用请注明出处,更多许可信息请查阅这里