Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GPOHound — 공격적 GPO 덤핑 및 분석 도구로, BloodHound 데이터를 활용하고 강화합니다. | Kitploit
도구/GitHubGitHub/cogiceo/gpohound
Privilege EscalationVulnerability AnalysisConfiguration AuditingInformation GatheringPenetration TestingMisconfigurationRed Teaming
GitHubcogiceo/gpohound

GPOHound

공격적 GPO 덤핑 및 분석 도구로, BloodHound 데이터를 활용하고 강화합니다.

저장소 보기
41538785일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트
# GPOHound

`GPOHound`는 SYSVOL 공유에서 추출된 GPO(그룹 정책 개체)를 덤프하고 분석하기 위한 도구입니다.

이는 Active Directory 환경에서 잘못된 구성, 안전하지 않은 설정, 권한 상승 경로를 발견하는 데 도움이 되는 구조화되고 공식화된 형식을 제공합니다.

이 도구는 BloodHound의 Neo4j 데이터베이스와 통합되어 이를 Active Directory 정보의 LDAP 유사 소스로 사용하는 동시에 분석 결과를 바탕으로 새로운 관계(엣지) 및 노드 속성을 추가하여 이를 보강합니다.

## 기능

### 덤프

- [x] 구조화된 JSON 또는 트리 형식으로 GPO 덤프  
  
- [x] 여러 도메인 처리  

- [x] GPO GUID로 GPO 이름 확인  

- [x] GPO 파일, GPO GUID, 도메인별 출력 필터링  

- [x] 정규식을 사용하여 키/값 쌍 검색  

### 분석

- [x] 영향을 받는 개체별 설정 그룹화 (예: 로컬 그룹, 레지스트리)  

- [x] 로컬 권한 그룹에 추가된 구성원 감지  

- [x] 안전하지 않은 레지스트리 설정, 저장된 자격 증명, 권한 권한 감지  

- [x] VNC 자격 증명 및 GPP 암호 복호화 지원  

- [x] GPO의 영향을 받는 도메인, 컨테이너, OU 찾기  

- [x] 특정 사용자, 컴퓨터, OU, 컨테이너 또는 도메인에 적용된 GPO 가져오기  

- [x] 관계 및 속성으로 BloodHound 데이터 보강  


## 설치

### pip로 설치

```
git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .
```

### pipx로 설치

```
pipx install "git+https://github.com/cogiceo/GPOHound"
```


### Neo4j용 APOC 설정

BloodHound 데이터 보강을 위해 Neo4j APOC를 설정해야 합니다:

- 표준 Neo4j 설치를 사용하는 경우, APOC `jar` 파일을 플러그인 폴더에 복사한 후 Neo4j를 다시 시작하여 APOC를 활성화할 수 있습니다:

  ```bash
  cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
  neo4j restart
  ```

- "Docker Compose"로 Neo4j를 설치하는 경우, 환경 변수 `NEO4J_PLUGINS=["apoc"]`를 추가하세요:

  ```yaml
  neo4j:
    image: neo4j:latest
    environment:
      - NEO4J_PLUGINS=["apoc"]
  ```

> 자세한 내용이나 대체 설치 방법은 공식 [APOC 문서](https://neo4j.com/docs/apoc/current/installation/)를 참조하세요.

### BloodHound 쿼리 추가

`GPOHound`가 추가한 관계와 속성을 시각화하려면 `customqueries.json` 파일에서 사용자 정의 쿼리를 BloodHound로 가져올 수 있습니다. 기본적으로 이 파일은 `~/.config/bloodhound/customqueries.json`에 위치합니다.

## 전제 조건

### SYSVOL 덤프

먼저 도메인 컨트롤러에서 `SYSVOL` 내용을 다운로드하세요.

- 전체 `SYSVOL` 다운로드:

  ```bash
  gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD 
  ```

- GPO만 다운로드:

  ```bash
  gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
  ```

- 제외 항목과 함께 다운로드:

  ```bash
  gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
  ```

### LDAP 덤프

LDAP에서 필요한 모든 데이터를 검색합니다:

```bash
gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD
```

### BloodHound

BloodHound 데이터 보강을 위해서는 `bloodhound.py` 또는 `SharpHound.exe`와 같은 수집기를 사용하여 BloodHound 데이터를 수집하고, 수집된 데이터를 BloodHound 인터페이스로 가져와야 합니다.

## 사용법

샘플 GPOHound 파일은 `example.zip`에 있습니다. `unzip example.zip`으로 압축을 해제하세요.

기본값 및 구성 사용자 지정에 대한 지침은 [CONFIG.md](https://github.com/cogiceo/gpohound/blob/main/CONFIG.md)를 참조하십시오.

```bash
gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis
```

### 파싱

```bash
gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"
```

### 덤프

```bash
gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show
```

### 분석

```bash
gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce
```


## 현재 분석 및 보강


> [!IMPORTANT] 
> - 보안 필터, WMI 필터, 항목 수준 대상 지정과 같은 조건은 해석되지 않습니다.
> - GPO 충돌은 시뮬레이션되지 않으며, 유효한 설정이 누락되는 것을 방지합니다.

### 로컬 그룹

- 로그온 시 권한 있는 로컬 그룹에 할당된 사용자 감지

- 이름이 변경된 기본 제공 권한 있는 로컬 그룹 감지.

- "기본 설정 프로세스 변수"(예: %ComputerName%, %DomainName%)를 사용하여 권한 있는 로컬 그룹에 추가된 수탁자 감지

- `sAMAccountName` 하이재킹을 사용한 악용 가능한 수탁자 감지

- 권한 있는 로컬 그룹에 추가된 모든 수탁자 감지:

  | 그룹                          | 엣지         |
  |--------------------------------|--------------|
  | Administrators                 | `AdminTo`    |
  | Remote Desktop Users           | `CanRDP`     |
  | Distributed COM Users          | `ExecuteDCOM`|
  | Remote Management Users        | `CanPSRemote`|
  | Backup Operators               | `CanPrivEsc` |
  | Print Operators                | `CanPrivEsc` |
  | Network Configuration Operators| `CanPrivEsc` |

### 레지스트리

| 분석                                                                 | 속성                 |
|--------------------------------------------------------------------------|---------------------------|
| "Everyone" 그룹에 "Anonymous Logon" 포함                              | —                         |
| SMB 서버 세션 서명이 활성화되지 않음                                | `smbSigningEnabled: false`|
| SMB 서버 세션 서명이 필수로 설정되지 않음                               | `smbSigningRequired: false`|
| NTLMv1 인증 지원됨                                       | `NTLMv1Support: true`     |
| Windows 자동 로그온 기본 암호                                 | —                         |
| VNC 자격 증명 (Generic: RealVNC, TightVNC, TigerVNC 등)             | `*VNC*PASS*` (다양함)  |
| FileZilla 저장된 암호                                               | —                         |
| PuTTY 프록시 암호                                                     | —                         |
| TeamViewer 저장된 자격 증명                                            | —                         |
| WinSCP 저장된 세션                                                    | —                         |
| Picasa 저장된 암호                                                   | —                         |

### 권한 권한

기본 권한 있는 수탁자 및 SID가 `S-1-5-8`로 시작하는 서비스 계정은 분석에서 제외됩니다.

| 권한                     | 설명                                                    | 엣지         |
| ----------------------------- | -------------------------------------------------------------- | ------------ |
| SeDebugPrivilege              | 사용자가 모든 프로세스를 디버그 및 상호 작용할 수 있도록 허용             | `CanPrivEsc` |
| SeBackupPrivilege             | 중요한 파일에 대한 액세스 권한 부여                               | `CanPrivEsc` |
| SeRestorePrivilege            | 복원 중 개체 권한 우회                     | `CanPrivEsc` |
| SeAssignPrimaryTokenPrivilege | SYSTEM 권한 상승을 위한 토큰 가장 활성화              | `CanPrivEsc` |
| SeImpersonatePrivilege        | 다른 사용자의 컨텍스트에서 프로세스 생성 허용        | `CanPrivEsc` |
| SeTakeOwnershipPrivilege      | 사용자가 시스템 개체의 소유권을 가져올 수 있도록 함                    | `CanPrivEsc` |
| SeTcbPrivilege                | OS의 일부로 작동할 수 있는 권한 부여                    | `CanPrivEsc` |
| SeCreateTokenPrivilege        | 인증 토큰 생성 허용                      | `CanPrivEsc` |
| SeLoadDriverPrivilege         | 드라이버 로드/언로드 권한 부여                            | `CanPrivEsc` |
| SeManageVolumePrivilege       | 볼륨 또는 디스크 관리 권한 부여                    | `CanPrivEsc` |
| SeEnableDelegationPrivilege   | 컴퓨터 및 사용자 계정이 위임을 위해 신뢰되도록 활성화 |              |

# 개선 사항

- [x] 로깅 개선
- [x] LDAP 통합
- [x] SMB 통합
- [ ] 나머지 확장 구문 분석
- [ ] 웹 인터페이스
- [ ] GPO 간 잠재적 충돌 강조 표시


## GPO 문서

### SYSVOL 및 LDAP

- [x] [\[MS-GPAC\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPAC/) 감사 구성 확장
- [x] [\[MS-GPCAP\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPCAP/) 중앙 액세스 정책 프로토콜 확장
- [x] [\[MS-GPEF\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPEF/) 암호화 파일 시스템 확장
- [x] [\[MS-GPFAS\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPFAS/) 방화벽 및 고급 보안 데이터 구조
- [x] [\[MS-GPFR\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPFR/) 폴더 리디렉션 프로토콜 확장
- [ ] [\[MS-GPIE\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPIE/) Internet Explorer 유지 관리 확장
- [x] [\[MS-GPNAP\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPNAP/) 네트워크 액세스 보호(NAP) 확장
- [x] [\[MS-GPNRPT\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPNRPT/) 이름 확인 정책 테이블(NRPT) 데이터 확장
- [x] [\[MS-GPOL\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPOL/) 핵심 프로토콜
- [x] [\[MS-GPPREF\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPPREF/) 기본 설정 확장 데이터 구조
- [x] [\[MS-GPREG\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPREG/) 레지스트리 확장 인코딩
- [x] [\[MS-GPSB\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSB/) 보안 프로토콜 확장
- [x] [\[MS-GPSCR\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSCR/) 스크립트 확장 인코딩
- [x] [\[MS-GPSI\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSI/) 소프트웨어 설치 프로토콜 확장


### LDAP 전용

- [x] [\[MS-GPDPC\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPDPC/) 배포된 프린터 연결 확장
- [ ] [\[MS-GPWL\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPWL/) 무선/유선 프로토콜 확장
도구 다운로드