在 Windows 7 上,如何检索/设置系统(非管理员)密码?

Joh*_*on. 8 windows windows-7 passwords

好的,所以我知道在许多 unix 变体上,您可以设置 root / admin 用户、标准用户等。默认情况下,有时在某些 Linux 发行版上,“root”超级用户已知具有默认密码。例如(仅示例)在 Oracle Linux 发行版上,默认密码可能只是“oracle”。

现在在 Windows 端,我试图进入系统帐户,因为显然访问被拒绝,即使在计算机上以“管理员”身份运行,如 regedit,仍然可以拒绝我访问。

我注意到在任务调度程序和其他一些区域,“LocalService”和“NetworkService”用户似乎有一些特殊或加密的密码,Microsoft 将其编程为执行诸如启动任务调度程序、运行后台进程等操作. 因此,如果有一种方法可以找出用于这些帐户的默认密码,那将提供很多帮助。如果不能只是 de-encrpyt 它们,那么我会重置它们(如果有的话)。

无论哪种方式,是否有 Windows 的默认系统密码?我基本上需要超级用户访问我的本地机器,所以如果有任何方法可以,我会很感激。

PS 我知道过去我曾经在我的机器上的 Windows 中利用(供我自己使用)一些漏洞,以在更高的权限级别运行东西。在 Windows XP 上,通过任务管理器杀死资源管理器,然后由于允许这样做的安全漏洞等而通过 schedtasks 再次启动它。

因此,如果有的话(这仅适用于我的机器,我不会尝试在其他人的机器上执行此操作)我需要访问机器上的(a?)超级用户帐户。在这一点上,我最好的选择是使用 LocalService 或 SYSTEM,因为它足够强大,可以完成我需要做的事情。

谢谢你的帮助!

问候

use*_*686 11

SYSTEMNETWORK SERVICE账目不实账,做在SAM不存在的-换句话说,他们不能有设置密码,并且无法登录到他们。它们仅作为“众所周知的 SID”安全标识符)存在——Windows 只是对诸如S-1-5-18or 之类的 SID 进行了特殊处理S-1-5-20,类似于 uid 0 在 Unix 中的特殊性,特权程序可以通过自己创建令牌来使用此帐户(类似于在 Unix 中调用setuid()+ capset())。

使用 SYSTEM 权限运行程序的一种简单方法是通过Sysinternals 的PsExec

psexec -dsi cmd
Run Code Online (Sandbox Code Playgroud)

但是,与 Unix root不同,甚至SYSTEM不允许绕过对象 ACL——这就是为什么所有注册表项、系统文件和其他内容都明确显示SYSTEM在它们的 ACL 中的原因。相反,如果管理员出于某种原因需要覆盖对象的 ACL,他们可以使用SeTakeOwnershipPrivilege 1(默认授予所有管理员)获得该对象的所有权。这是有效的,因为对象的所有者总是被允许更改其 ACL,即使他们明确拒绝它;这是Windows唯一的两个例外。

有时访问会因其他原因而被拒绝——许多防病毒程序带有“自卫”内核驱动程序,这些驱动程序修补了 Windows 内核本身的各种功能,并使它们仅根据名称拒绝对特定密钥或文件的修改;该块原始 ACL 检查发生之前,并且没有权限或特权可以覆盖它。绕过这种保护的唯一方法是撤消内核修改;任何内核调试器都可以用于此目的。Kernel Detective之类的工具可以列出SSDT中的所有条目,哪个内核驱动修改了哪个函数,甚至还有重置默认值的命令。


1如果好奇,您可以使用 Process Explorer 查看分配给特定进程的所有 SID 和权限位。您会看到,即使是系统进程也没有任何类型的通用“覆盖安全”特权;相反,只存在特定的权限,例如SeImpersonateSeTakeOwnershipSeCreateToken

2对于文件,持有SeBackupPrivilege 的人可以在“备份模式”下读取文件——一个包含数据、元数据、ACL、所有权的档案——然后可以选择修改它,并再次将其恢复到文件系统。也就是说,假设有人对这些备份档案的结构进行了逆向工程。这不适用于其他类型的对象。