약간의 주스가있는 Rottenpotatong의 설탕 버전, 즉 Windows 서비스 계정에서 NT Authority System에 이르기까지 또 다른 지역 특권 에스컬레이션 도구
Rottenpotatong과 그 변형은 MITM 청취자가 127.0.0.1:6666 갖는 BITS 서비스를 기반으로하는 권한 에스컬레이션 체인을 활용하고, 당신이 당신이 SeImpersonate 하거나 SeAssignPrimaryToken 특권을 가질 때. Windows 빌드 리뷰 중에 BITS 의도적으로 비활성화되고 포트 6666 이 취한 설정을 발견했습니다.
우리는 Rottenpotatong : Juicy Potato에게 인사하기 로 결정했습니다.
이론은 Rotten Potato- 서비스 계정에서 시스템으로의 특권 에스컬레이션을 참조하고 링크 및 참조 체인을 따르십시오.
우리는 BITS 외에 우리가 남용 할 수있는 여러 com 서버가 있음을 발견했습니다. 그들은 단지 다음과 같습니다.
IMarshal 인터페이스를 구현하십시오일부 테스트 후 우리는 여러 Windows 버전에서 흥미로운 CLSID 목록을 얻고 테스트했습니다.
Juicypotato는 다음을 수행 할 수 있습니다.
대상 clsid
원하는 clsid를 선택하십시오. 여기에서 OS로 구성된 목록을 찾을 수 있습니다.
COM 청취 포트
선호하는 COM 청취 포트 정의 (마샬링 하드 코드 6666 대신)
com 청취 IP 주소
모든 IP에서 서버를 바인딩하십시오
프로세스 생성 모드
가장 한 사용자의 권한에 따라 선택할 수 있습니다.
CreateProcessWithToken ( SeImpersonate )CreateProcessAsUser (필요한 SeAssignPrimaryToken 필요)both 출시 프로세스
착취가 성공하면 실행 파일 또는 스크립트를 시작하십시오
프로세스 인수
시작된 프로세스 인수를 사용자 정의하십시오
RPC 서버 주소
은밀한 접근 방식은 외부 RPC 서버에 인증 할 수 있습니다.
RPC 서버 포트
외부 서버에 인증하려면 방화벽이 포트 135 차단하는 경우 유용합니다.
테스트 모드
주로 테스트 목적, 즉 테스트 CLSID를 테스트합니다. DCOM을 생성하고 Token 사용자를 인쇄합니다. 테스트는 여기를 참조하십시오
T:>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

사용자가 SeImpersonate SeAssignPrimaryToken 특권을 가진 경우 시스템 입니다.
이 모든 COM 서버의 남용을 방지하는 것은 거의 불가능합니다. DCOMCNFG 통해 이러한 객체의 권한을 수정할 수 있지만 행운을 빕니다. 이것은 도전적 일 것입니다.
실제 솔루션은 * SERVICE 계정에 따라 실행되는 민감한 계정 및 응용 프로그램을 보호하는 것입니다. DCOM 중단하면 확실히이 악용을 억제 할 수 있지만 기본 OS에 심각한 영향을 줄 수 있습니다.
자동 빌드를 사용할 수 있습니다. 바이너리는 여기에서 유물 섹션에서 다운로드 할 수 있습니다.
BlackArch에서도 제공됩니다.