주제
RID Hijacking
내용
1. 개요
침투에서 지속성(Persistence) 확보는 시스템에 대한 장기적인 접근 권한을 유지하기 위해 필수적입니다. 하지만 Administrators 그룹에 사용자를 추가하거나 지속적인 셸 연결과 같은 일반적인 지속성 기법들은 쉽게 탐지될 수 있습니다. 따라서 공격자는 보안 통제를 우회하면서도 은밀하게 시스템 접근을 유지할 수 있는 지속성 기법을 고려해야 합니다.
2. RID Hijacking 개념
RID Hijacking은 운영체제의 기본 자원만을 활용하여 지속성을 유지하는 기법입니다.
기존 계정(EX: Built-In Administrator)의 계정 식별자(RID, Relative Identifier)를 공격자 계정으로 할당하여, 공격자 계정이 해당 계정의 권한을 획득하는 방식으로 진행됩니다.
- 계정이 비활성화인 상태라도 해당 권한을 사용 가능
3. 공격 과정
가정: SYSTEM 권한 취득
익스플로잇:
Step 1) 가장할 계정 선택 - Administrator
- 현재 비활성화 상태임을 확인
Step 2) 로컬 사용자 생성
- 계정명 뒤에 `$` 를 붙이면 히든 계정으로 생성 가능
- 로컬 사용자 생성 외, 기존 Guest 계정 사용해도 무방함
Step 3) RID 변경
Step 3-1) SAM 레지스트리 `HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users` 에서 RID 변경 가능
Step 3-2) admin$ 계정의 F 값에서 0x30~0x33 오프셋의 값을 Hijacking할 대상의 RID로 변경
- Windows SAM 레지스트리의 F 값은 사용자 계정의 메타데이터 및 보안 정보를 포함하는 바이너리 데이터
Step 4) admin$ 계정으로 접속하여 권한 확인
- 비활성 상태인 Administrator 계정 가장 성공
4. Tool: CreateHiddenAccount
※ CreateHiddenAccount 도구를 사용하면 간단하게 히든 계정을 생성할 수 있습니다.
https://github.com/wgpsec/CreateHiddenAccount
GitHub - wgpsec/CreateHiddenAccount: A tool for creating hidden accounts using the registry || 一个使用注册表创建隐藏
A tool for creating hidden accounts using the registry || 一个使用注册表创建隐藏帐户的工具 - wgpsec/CreateHiddenAccount
github.com
.\CreateHiddenAccount_v0.2.exe -u {생성할 계정명} -p {패스워드} -cu {가장할 계정}
레퍼런스
- Pentesting Wiki: RID Hijacking (링크)
- ASEC: Andariel 공격 그룹이 활용하는 RID Hijacking 공격 기법 (링크)
- R4W Security: RID Hijacking: Maintaining access on Windows machine (링크)
'System > 침투' 카테고리의 다른 글
Windows Kerberos 악용(Kerberoasting, AS-Rep Roasting) (1) | 2024.12.24 |
---|---|
DLL Search Order Hijacking (0) | 2024.12.24 |
DLL Hijacking 실습 (2) (0) | 2024.10.26 |
THM - Offensive Pentesting-Skynet (0) | 2023.10.24 |
THM - Enumerating Active Directory(2) (0) | 2023.10.20 |