파워 유저
5 월 테크넷에 처음 게시 01, 2006
고급 사용자 보안 그룹에 윈도우 사용자 계정을 배치하는 것은 조직이 진정으로 제한된 사용자로 실행하는 많은 고통을 피하면서 최소 권한 환경에 사용자를 얻기 위해 취하는 일반적인 방법입니다. 고급 사용자 그룹은 소프트웨어를 설치 전원 및 시간대 설정을 관리하고,액티브 컨트롤,제한된 사용자가 거부되는 작업을 설치할 수 있습니다.
그러나 많은 관리자들이 깨닫지 못하는 것은 이 힘이 진정한 제한된 사용자 보안의 대가를 치르게 된다는 것이다. 고급 사용자 그룹에 속하는 사용자는 완전히 권한이 있는 관리자로 쉽게 상승할 수 있지만 참조하는 권한 상승 메커니즘에 대한 자세한 설명을 찾을 수 없습니다. 그러므로 나는 조사하기로 결정했다.
조사를 시작하기 전에 문제를 정의해야 했다. 버퍼 오버플로 권한 에스컬레이션과 같은 보안 결함이 없는 경우 계정이 권한이 더 많은 계정의 컨텍스트에서 실행되도록 임의의 코드를 구성할 수 있는 경우에만 가능합니다. 고급 사용자보다 더 많은 권한을 가진 기본 계정에는 관리자 및 로컬 시스템 계정이 포함됩니다. 따라서 고급 사용자 구성원이 이러한 계정 중 하나에서 실행된 파일을 수정하거나,실행 파일 중 하나를 구성하여 이러한 계정에 실행 파일 자동 시작을 추가할 수 있는 경우 전체 관리 권한을 얻을 수 있습니다.
내 첫 번째 단계는 고급 사용자 그룹에 쓰기 액세스 권한이 있는 파일과 디렉터리를 확인하는 것이었지만 제한된 사용자는 그렇지 않습니다. 내가 생각한 시스템은 주식 윈도우 2000 프로페셔널 윈도우 2,윈도우 비스타. 가장 일반적인 파워 유저 시나리오는 워크 스테이션에 있기 때문에 나는 서버 시스템을보고 귀찮게하지 않을거야.
파워 유저가 수정할 수 있는 파일 시스템 객체를 보는 무차별 대입 방법은 각 파일과 디렉토리를 방문하고 그 권한을 검토해야 하는데,이는 분명히 실용적이지 않다. 그러나 보안 설명자 설명 언어를 배우고 출력을 구문 분석하려면 스크립트 작성이 필요합니다. 브라이스가 쓴 액세스 넘 유틸리티는 유망한 듯 그것은 또한 레지스트리 보안을 볼 수 있지만,잠재적 인 권한 약점,특정 계정에 사용할 수없는 액세스를 보여주는 목표로. 또한,나는 또한 윈도우 서비스에 적용되는 보안을 검사 할 필요가 있다는 것을 알고 있었다.
나는 작업에 대한 새로운 유틸리티를 작성했다 결론을 내렸다,그래서 나는 액세스 치크를 생성. 계정 또는 그룹 이름과 파일 시스템 경로,레지스트리 키 또는 윈도우 서비스 이름을 전달하고 계정의 그룹 구성원을 고려하여 개체에 대한 계정 또는 그룹의 효과적인 액세스를 보고합니다. 예를 들어,마크 계정에 파일에 대한 액세스 권한이 있지만 마크가 명시적으로 액세스가 거부된 개발자 그룹에 속하는 경우 액세스 권한이 없는 것으로 표시를 표시합니다.
출력이 읽기 쉽도록 하기 위해 액세스는 계정에 개체를 수정할 수 있는 권한이 있는 경우 개체 이름 옆에’위’를 인쇄하고,계정이 개체의 데이터나 상태를 읽을 수 있는 경우’위’를 인쇄합니다. 다양한 스위치로 인해 액세스가 하위 디렉토리 또는 레지스트리 하위 키로 재귀화되고 계정에 사용할 수 있는 특정 액세스가 보고됩니다. 이 새로운 도구로 무장한 나는 조사를 시작할 준비가 되었다. 첫 번째 목표는 설치된 응용 프로그램을 설치하지 않은 것입니다. 내가 실행 한 첫 번째 명령은 다음과 같습니다.
고급 사용자는\창 및 대부분의 하위 디렉터리 아래에 파일을 만들 수 있지만 관리자 그룹 및 로컬 시스템 계정의 구성원만 쓰기 액세스 권한을 갖도록 이러한 디렉터리에 포함된 대부분의 파일에 대한 기본 보안 권한을 구성합니다. 예외는 글꼴 파일을 포함(.폰),많은 시스템 로그 파일(.로그),일부 도움말 파일(.사진 및 오디오 클립(.웹 사이트지프,과.설치 파일(.그러나 이러한 파일 중 어느 것도 관리 권한을 얻기 위해 수정하거나 대체 할 수 없습니다. 장치 드라이버에서\윈도우\시스템 32\드라이버 쉽게 에스컬레이션을 허용할 것 이다,하지만 고급 사용자는 그들에 대 한 쓰기 액세스 권한이 없습니다.
나는 많은 것을 보았다.그리고.그래서 나는 가능한 공격에 대해 그들을 조사했다. 고급 사용자에게 쓰기 액세스 권한이 있는 대부분의 실행 파일은 대화형 유틸리티이거나 제한된 권한으로 실행됩니다. 관리자가 대화식으로 시스템에 로그인하도록 속일 수 없다면 이러한 기능을 사용하여 권한 상승에 사용할 수 없습니다. 그러나 한 가지 눈부신 예외가 있습니다.익스:
그건 바로,파워 유저는 교체하거나 윈도우의 핵심 운영 체제 파일을 수정할 수 있습니다. 그러나 파일이 수정된 후 5 초가 지나면 대부분의 경우에서 검색하는 백업 복사본으로 대체됩니다. 이 백업 복사본을 파괴 할 수 있도록 고급 사용자는
나는이 접근 방식이 효과가 있음을 확인했지만,이 취약점이 어떻게 특권을 상승시키는 데 사용될 수 있는지에 대한 의문은 남아 있었다. 대답으로 쉽게 사용하는 디스어셈블러를 찾아 함수는 윈도우를 사용에 대한 권한 검사,의 sesingleprivilegecheck,그리고 패치의 입장에서 점에서 디스크 이미지도록 항상 TRUE 를 반환하는 결과를 나타내는 코드 사용자가 가지는 권한을 확인한다. 이러한 방식으로 수정된 커널에서 사용자가 실행되면 드라이버 로드,소유권 획득,토큰 생성 등 모든 권한을 가지게 되어 시스템의 전체 관리 제어를 위해 쉽게 활용할 수 있는 몇 가지 권한만 지정할 수 있습니다. 64 비트 윈도우에서 실행되는 기업은 거의 없습니다.
대체.그러나,\윈도우 디렉토리를 통해 관리 권한을 통해 펀치 할 수있는 유일한 방법은 아닙니다. 기본 사용 권한에 의해 수정 허용 하는
나는 이미 몇 가지 고도 벡터를 확인했지만,나는\윈도우 디렉토리에있는 것과 유사한 기본 권한을 발견 한\프로그램 파일 디렉토리에 대한 파워 유저 액세스를 보면서 조사를 계속했다. 고급 사용자는\프로그램 파일 아래에 하위 디렉터리를 만들 수 있지만 사전 설치된 대부분의 윈도우 구성 요소를 수정할 수 없습니다. 다시 말하지만,윈도우 메신저와 같은 예외,(\프로그램 파일\메신저\.윈도우 미디어 플레이어(\프로그램 파일\윈도우 미디어 플레이어\.대화식으로 실행합니다.
그렇다고해서\프로그램 파일에 잠재적 인 구멍이 없다는 의미는 아닙니다. 내가 가장 최근의 출력을 조사 할 때 나는 고급 사용자가 기본 윈도우 설치하는 동안 생성 된 그 이후에\프로그램 파일에 생성 된 파일이나 디렉토리를 수정할 수 있음을 보았다. 테스트 시스템\프로그램 파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일\파일.로컬 시스템 계정에서 실행되는 이미지 파일입니다. 또 다른 다소 아이러니 한 예는 마이크로 소프트 윈도우 디펜더 베타 2,이는 기본 보안 설정으로\프로그램 파일\윈도우 디펜더의 서비스 실행 파일을 설치합니다. 이러한 서비스 이미지 파일을 교체하는 것은 관리자 권한에 대한 빠른 경로이며\윈도우 디렉토리의 파일을 교체하는 것보다 훨씬 쉽습니다.
다음 나는이 명령을 실행 하 여 레지스트리에 내 관심을 돌렸다:
왜냐하면 그 아래에 있는 많은 설정에 대한 쓰기 액세스 권한(예:윈도우 서비스 및 드라이버 구성 키)은 로컬 시스템 계정의 사소한 전복을 허용할 것이기 때문입니다. 분석 결과 고급 사용자는 해당 키 아래에 중요한 항목에 대한 쓰기 액세스 권한이 없습니다.
대부분의 파워 유저-인터넷 익스플로러,익스플로러 및 파일 연결 및 전원 관리 구성과 관련된 소프트웨어의 다른 주요 지점에서 쓰기 가능한 영역. 그러나 이를 악용하려면 관리 권한이 있는 사용자가 시스템에 따라 대화형으로 로그온해야 합니다. 즉,시스템 전체 레지스트리 키에 실행 코드 경로를 구성하는 타사 응용 프로그램이 보안 취약점을 열 수 있습니다. 시스템에 설치된 유일한 응용 프로그램인 브이엠웨어는 그렇지 않았습니다.
남은 탐사 지역은 윈도우 서비스였다. 쓰기 액세스 권한으로 간주하는 유일한 서비스 권한은 다음과 같습니다. 서비스 변경에 대한 액세스 권한을 부여하기 위해 서비스에 대한 사용 권한을 수정할 수 있습니다. 에 다음 공개:
이 문제를 해결하려면 다음 단계를 따르세요.:
따라서,파워 유저 그룹의 구성원은 단순히 자신의 이미지를 가리 키도록 디컴러너의 이미지 경로를 변경할 수 있습니다,시스템을 재부팅,및 관리 권한을 즐길 수.
잠재적으로 보안에 악용을 도입하는 다른 서비스가있을 수 있습니다. 타사 응용 프로그램에서 만든 서비스에 대해 설정된 기본 사용 권한은 고급 사용자 쓰기 액세스를 허용하지 않지만 일부 타사 응용 프로그램은 사용자 지정 사용 권한을 구성하여 사용할 수 있도록 할 수 있습니다. 하지만,제한된 사용자도 사용할 수 있습니다:
이제 내 조사의 주요 단계를 완료하고 그냥 모든 사람이 무슨 말을했는지 확인했다:파워 유저 그룹의 결정된 구성원이 상당히 쉽게 운영 체제와 타사 응용 프로그램에 의해 생성 된 것들에서 공격을 사용하여 자신을 전체 관리자로 만들 수 있습니다.
나의 마지막 단계는 파워 유저 계정에 대한 마이크로소프트의 접근 방식이 시간이 지남에 따라 어떻게 진화했는지를 보는 것이었다. 마이크로소프트는 윈도우 2000 이 출시되기 전에 그 구멍을 닫았다. 기술 자료 문서는 마이크로 소프트가 가능성이 존재하는 다른 취약점 분명히 인식하지 못하는 것을 보여줍니다. 이 설정을 사용하지 않는 것은 사용자의 책임입니다.이 서비스는 로컬 시스템 계정에서도 실행됩니다.
다음과 같은 중요한 시스템 파일에 대한 쓰기 액세스를 포함하여 더 많은 파워 유저 약점을 추가했습니다.이 경우 서비스 호스팅에 대한 자세한 내용은 서비스 호스팅에 대한 자세한 내용을 참조하십시오. 몇몇 서비스는 심지어 제한된 사용자가 올해 3 월부터이 마이크로 소프트 기술 자료 문서에 설명 된대로 상승 할 수있었습니다.
마이크로소프트의 최신 운영체제인 윈도우 비스타는 파워 유저를 거세하여 설명한 모든 취약점을 폐쇄하여 제한된 사용자와 동일하게 동작합니다. 마이크로소프트는 이렇게 한정된 사용자 계정으로 또는 그들의 체계에 최종 사용자 통제를 인정해야 하는 관리 계정으로 사용자를 이동해서 그들의 체계를 장악하기로 그것에게 직원을 강제하기 위하여 고급 사용자에 문을 닫았다.
결론은 마이크로 소프트가 내 조사에서 발견 된 취약점을 해결할 수 있지만,그들은 동시에 응용 프로그램 및 액티브 컨트롤을 설치하는 파워 유저의 기능을 유지하면서 새로운 도입에서 타사 응용 프로그램을 방지 할 수 있다는 것입니다. 이 응용 프로그램은 사용자 정의 할 수 있습니다.
2006 년 5 월 1 일 오전 11:01:00 에
에서 마이그레이션 Sysinternals.com/Blog
Leave a Reply