JuicyPotato
JuicyPotato는 Windows Server 2019 및 Windows 10 빌드 1809 이상에서 작동하지 않습니다. 그러나 PrintSpoofer, RoguePotato, SharpEfsPotato를 사용하여 동일한 권한을 활용하고 NT AUTHORITY\SYSTEM
수준의 액세스를 얻을 수 있습니다. 확인:
Juicy Potato (abusing the golden privileges)
조금의 주스를 더한 RottenPotatoNG, 즉 Windows 서비스 계정에서 NT AUTHORITY\SYSTEM으로의 또 다른 로컬 권한 상승 도구
juicypotato는 https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts에서 다운로드할 수 있습니다.
Summary
RottenPotatoNG 및 그 변형들은 BITS
서비스를 기반으로 한 권한 상승 체인을 활용하며, 127.0.0.1:6666
에서 MiTM 리스너를 가지고 있고, SeImpersonate
또는 SeAssignPrimaryToken
권한이 있을 때 작동합니다. Windows 빌드 검토 중에 BITS
가 의도적으로 비활성화되고 포트 6666
이 사용 중인 설정을 발견했습니다.
우리는 RottenPotatoNG를 무기화하기로 결정했습니다: Juicy Potato에 인사하세요.
이론에 대해서는 Rotten Potato - 서비스 계정에서 SYSTEM으로의 권한 상승을 참조하고 링크와 참고 문헌의 체인을 따라가세요.
우리는 BITS
외에도 여러 COM 서버를 악용할 수 있다는 것을 발견했습니다. 이들은 다음을 충족해야 합니다:
현재 사용자에 의해 인스턴스화 가능해야 하며, 일반적으로는 임시 권한이 있는 “서비스 사용자”입니다.
IMarshal
인터페이스를 구현해야 합니다.상승된 사용자(SYSTEM, Administrator 등)로 실행되어야 합니다.
몇 가지 테스트 후, 여러 Windows 버전에서 흥미로운 CLSID 목록을 얻고 테스트했습니다.
Juicy details
JuicyPotato는 다음을 허용합니다:
대상 CLSID 원하는 CLSID를 선택하세요. 여기 에서 OS별로 정리된 목록을 찾을 수 있습니다.
COM 리스닝 포트 선호하는 COM 리스닝 포트를 정의하세요(하드코딩된 6666 대신)
COM 리스닝 IP 주소 서버를 원하는 IP에 바인딩하세요
프로세스 생성 모드 임시 사용자 권한에 따라 선택할 수 있습니다:
CreateProcessWithToken
(필요:SeImpersonate
)CreateProcessAsUser
(필요:SeAssignPrimaryToken
)둘 다
시작할 프로세스 익스플로잇이 성공하면 실행할 실행 파일 또는 스크립트
프로세스 인수 실행된 프로세스 인수를 사용자 정의하세요
RPC 서버 주소 은밀한 접근을 위해 외부 RPC 서버에 인증할 수 있습니다
RPC 서버 포트 외부 서버에 인증하고 방화벽이 포트
135
를 차단하는 경우 유용합니다…테스트 모드 _주로 테스트 목적, 즉 CLSID 테스트를 위한 것입니다. DCOM을 생성하고 토큰의 사용자를 출력합니다. 테스트를 위한 여기를 참조하세요.
Usage
최종 생각
사용자가 SeImpersonate
또는 SeAssignPrimaryToken
권한을 가지고 있다면, 당신은 SYSTEM입니다.
이 모든 COM 서버의 남용을 방지하는 것은 거의 불가능합니다. DCOMCNFG
를 통해 이러한 객체의 권한을 수정하는 것을 고려할 수 있지만, 행운을 빕니다. 이는 도전적일 것입니다.
실제 해결책은 * SERVICE
계정 아래에서 실행되는 민감한 계정과 애플리케이션을 보호하는 것입니다. DCOM
을 중지하면 이 익스플로잇을 확실히 억제할 수 있지만, 기본 OS에 심각한 영향을 미칠 수 있습니다.
출처: http://ohpe.it/juicy-potato/
예시
참고: 시도할 CLSID 목록은 이 페이지를 방문하세요.
nc.exe 리버스 셸 얻기
Powershell rev
새로운 CMD 실행 (RDP 접근 권한이 있는 경우)
CLSID 문제
대부분의 경우, JuicyPotato가 사용하는 기본 CLSID는 작동하지 않으며 익스플로잇이 실패합니다. 일반적으로 작동하는 CLSID를 찾기 위해 여러 번 시도해야 합니다. 특정 운영 체제에 대해 시도할 CLSID 목록을 얻으려면 이 페이지를 방문해야 합니다:
CLSID 확인하기
먼저, juicypotato.exe 외에 몇 가지 실행 파일이 필요합니다.
Join-Object.ps1를 다운로드하고 PS 세션에 로드한 후, GetCLSID.ps1를 다운로드하여 실행합니다. 해당 스크립트는 테스트할 수 있는 CLSID 목록을 생성합니다.
그런 다음 test_clsid.bat(CLSID 목록과 juicypotato 실행 파일의 경로를 변경) 을 다운로드하고 실행합니다. 이 스크립트는 모든 CLSID를 시도하기 시작하며, 포트 번호가 변경되면 CLSID가 작동했음을 의미합니다.
-c 매개변수를 사용하여 작동하는 CLSID를 확인하세요.
참고 문헌
Last updated