관리자 권한 없이 응용 프로그램에서 Windows 서비스 시작
많은 시나리오에는 별도의 응용 프로그램에서 Windows 서비스를 시작하거나 중지하는 작업이 포함됩니다. 그러나 이는 보안 문제로 인해 관리자가 아닌 사용자에게는 제한적으로 보일 수 있습니다. 어떻게 이러한 한계를 극복하고 시스템 안정성을 손상시키지 않으면서 사용자에게 서비스 관리에 대한 세부적인 제어 권한을 부여할 수 있습니까?
해결책: 서비스 권한 수정
이 문제의 핵심은 서비스 객체의 권한을 수정할 때. 관리자가 아닌 사용자에게 적절한 권한을 부여함으로써 이들이 통제된 방식으로 서비스와 상호 작용하도록 허용할 수 있습니다.
다음 코드 조각은 필요한 권한을 포함하도록 서비스에 대한 보안 설명자를 설정하는 방법을 보여줍니다.
wchar_t sddl[] = L"D:"
L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)"
L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)"
L"(A;;CCLCSWLOCRRC;;;AU)"
L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
L"(A;;RP;;;IU)"
;
PSECURITY_DESCRIPTOR sd;
if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL))
{
fail();
}
if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd))
{
fail();
}
이 특정 보안 설명자는 다음 권한을 부여합니다.
SDDL(보안 설명자 문자열)을 사용자 정의하여 다양한 사용자 그룹에 대해 원하는 액세스 수준에 따라 특정 권한을 추가하거나 제거할 수 있습니다. 예를 들어 관리자가 아닌 사용자가 서비스를 중지할 수 있도록 하려면 다음 SDDL을 사용할 수 있습니다.
L"(A;;RPWP;;;IU)"
이렇게 하면 WP(WRITE_PROPERTY) 권한이 추가되어 대화형 사용자가 서비스를 시작하고 중지할 수 있습니다.
권한을 신중하게 설정하면 관리자가 아닌 사용자가 필수 서비스 관리 작업을 수행할 수 있습니다. 시스템 보안이 손상되었습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3