"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 관리자가 아닌 사용자가 시스템 보안을 손상시키지 않고 Windows 서비스를 시작할 수 있습니까?

관리자가 아닌 사용자가 시스템 보안을 손상시키지 않고 Windows 서비스를 시작할 수 있습니까?

2024년 11월 18일에 게시됨
검색:125

Can Non-Admin Users Start Windows Services Without Compromising System Security?

관리자 권한 없이 응용 프로그램에서 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();
}

이 특정 보안 설명자는 다음 권한을 부여합니다.

  • 로컬 시스템에 대한 기본 권한: 로컬 시스템 계정에 모든 권한을 부여합니다.
  • 관리자의 기본 권한: 다음에 대한 액세스 권한을 부여합니다. 관리자.
  • 인증된 사용자에 대한 기본 권한: 인증된 모든 사용자에게 제한된 액세스 권한을 부여합니다.
  • 고급 사용자에 대한 기본 권한: 다음에 대한 모든 권한을 부여합니다. 고급 사용자.
  • 대화형 사용자에 대한 추가 권한: 대화형 사용자에 대한 서비스를 시작할 수 있는 권한을 부여합니다. users.

SDDL(보안 설명자 문자열)을 사용자 정의하여 다양한 사용자 그룹에 대해 원하는 액세스 수준에 따라 특정 권한을 추가하거나 제거할 수 있습니다. 예를 들어 관리자가 아닌 사용자가 서비스를 중지할 수 있도록 하려면 다음 SDDL을 사용할 수 있습니다.

L"(A;;RPWP;;;IU)" 

이렇게 하면 WP(WRITE_PROPERTY) 권한이 추가되어 대화형 사용자가 서비스를 시작하고 중지할 수 있습니다.

권한을 신중하게 설정하면 관리자가 아닌 사용자가 필수 서비스 관리 작업을 수행할 수 있습니다. 시스템 보안이 손상되었습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3