OwnershipStealer
이 C# 코드는 지정된 파일의 소유권을 가져오려고 시도하는 콘솔 애플리케이션입니다.
코드 로직
프로그램은 먼저 명령줄 인수로 파일 이름이 지정되었는지 확인하고, 지정되지 않은 경우 사용자에게 파일 이름을 입력하도록 요청합니다. 그런 다음 다음 단계를 수행하여 파일의 소유권을 가져오려고 시도합니다:
- 현재 프로세스 토큰을 가져옵니다.
- SeTakeOwnershipPrivilege에 대한 LUID(로컬 고유 식별자, Locally Unique Identifier)를 조회합니다.
- 토큰에서 SeTakeOwnershipPrivilege를 활성화합니다.
- 파일에 대한 새 FileSecurity 개체를 만들고, 소유자를 현재 사용자로 설정한 다음, 파일에 새 액세스 제어를 설정하여 파일의 소유권을 가져오려고 시도합니다.
- 프로그램에서 UnauthorizedAccessException이 발생하면 파일 소유권을 성공적으로 가져오거나 프로그램을 계속할 수 없게 만드는 예외가 발생할 때까지 재시도합니다.
소유권을 가져온 후 프로그램이 종료되고 완료되었음을 알리는 메시지를 표시합니다.
사용 방법
- 저장소를 클론하거나 다운로드합니다.
- Visual Studio에서 프로젝트를 엽니다.
- 프로젝트를 빌드합니다.
- 명령 프롬프트 또는 터미널을 열고 실행 파일의 위치로 이동합니다.
- 파일 경로를 인수로 사용하여 명령을 실행합니다:
- OwnershipStealer.exe [file path]
- 파일 경로가 제공되지 않으면 프로그램이 파일 경로를 입력하도록 요청합니다.
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
동영상 개념 증명(PoC)
https://youtu.be/sOcJp58sblM