private NtToken GetLowBoxToken(NtToken token) { Sid package_sid = TokenUtils.GetPackageSidFromName(PackageSid); if (!NtSecurity.IsPackageSid(package_sid)) { throw new ArgumentException($"Invalid Package Sid {package_sid}"); } if (!String.IsNullOrEmpty(RestrictedPackageName)) { package_sid = TokenUtils.DeriveRestrictedPackageSidFromSid(package_sid, RestrictedPackageName); } IEnumerable <Sid> capability_sids = CapabilitySids == null ? new Sid[0] : CapabilitySids.Select(s => { if (!s.StartsWith("S-")) { return(NtSecurity.GetCapabilitySid(s)); } Sid sid = new Sid(s); if (!NtSecurity.IsCapabilitySid(sid)) { throw new ArgumentException($"{s} is not a capability SID", s); } return(sid); } ); return(token.CreateLowBoxToken(package_sid, capability_sids, Handles ?? new NtObject[0], TokenAccessRights.MaximumAllowed)); }
private NtToken CreateLowBoxToken(NtToken token) { Sid package_sid = TokenUtils.GetPackageSidFromName(textBoxPackageSid.Text); Sid[] capabilities = GetGroupFromList(listViewCapabilities.Items.OfType <ListViewItem>()); foreach (Sid cap in capabilities) { if (!NtSecurity.IsCapabilitySid(cap)) { throw new ArgumentException($"Invalid Capability Sid {cap}"); } } return(token.CreateLowBoxToken(package_sid, capabilities, new NtObject[0], TokenAccessRights.MaximumAllowed)); }
private NtToken GetLowBoxToken(NtToken token) { Sid package_sid = TokenUtils.GetPackageSidFromName(PackageSid); if (!string.IsNullOrEmpty(RestrictedPackageName)) { package_sid = TokenUtils.DeriveRestrictedPackageSidFromSid(package_sid, RestrictedPackageName); } if (AppContainer) { return(TokenUtils.CreateAppContainerToken(token, package_sid, GetCapabilitySids())); } return(token.CreateLowBoxToken(package_sid, GetCapabilitySids(), Handle ?? new NtObject[0], TokenAccessRights.MaximumAllowed)); }