Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ShadowSpray — 오랫동안 잊혀진 GenericWrite/GenericAll DACL을 악용하기 위해 전체 도메인에 Shadow Credentials를 스프레이하는 도구입니다. | Kitploit
도구/GitHubGitHub/dec0ne/shadowspray
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingAuthenticationRed Teaming
GitHubdec0ne/shadowspray

ShadowSpray

오랫동안 잊혀진 GenericWrite/GenericAll DACL을 악용하기 위해 전체 도메인에 Shadow Credentials를 스프레이하는 도구입니다.

저장소 보기
490793년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ShadowSpray

도메인 전체에 Shadow Credentials를 스프레이하여 도메인 내 다른 객체에 대한 오래된 GenericWrite/GenericAll DACL을 악용하기 위한 도구입니다.

이 도구의 목적

많은 엔지니어링에서 BloodHound를 통해 "Everyone" / "Authenticated Users" / "Domain Users" 또는 거의 모든 도메인 사용자를 포함하는 넓은 그룹이 도메인의 다른 객체에 대해 GenericWrite/GenericAll DACL을 가지고 있는 것을 봅니다.

example

이러한 권한을 악용하여 대상 객체에 Shadow Credentials를 추가하고 해당 객체의 TGT 및 NT 해시를 얻을 수 있습니다.

전체 도메인에 Shadow Credentials를 스프레이하여 무엇이 작동하는지 확인할 수 있다는 생각이 들었습니다(당연히 이 접근 방식은 은밀하지 않은 엔지니어링에 적합하며, 은밀함이 필요한 레드 팀에서는 사용하지 마십시오). Shadow Credentials가 성공적으로 추가되면 PKINIT + UnPACTheHash 과정을 수행하여 NT 해시를 얻습니다.

이 과정은 매우 빠르기 때문에 엔지니어링 초기에 사용할 수 있으며, 시작하기 전에 이미 일부 사용자와 컴퓨터를 소유하게 될 것입니다.

참고: 이전 도구인 KrbRelayUp의 코드를 많이 재활용했기 때문에 AV/EDR에서 KrbRelayUp으로 플래그될 수 있습니다...

이 도구의 작동 방식

대략 다음과 같습니다:

  1. 제공된 자격 증명으로 도메인에 로그인합니다(또는 현재 세션 사용).
  2. 도메인 기능 수준이 2016인지 확인합니다(그렇지 않으면 Shadow Credentials 공격이 작동하지 않으므로 중지).
  3. LDAP에서 도메인의 모든 객체(사용자 및 컴퓨터) 목록을 수집합니다.
  4. 목록의 각 객체에 대해 다음을 수행합니다:
    1. 객체의 "msDS-KeyCredentialLink" 속성에 KeyCredential을 추가하려고 시도합니다.
    2. 위 작업이 성공하면 PKINIT를 사용하여 추가된 KeyCredential로 TGT를 요청합니다.
    3. 위 작업이 성공하면 UnPACTheHash 공격을 수행하여 사용자/컴퓨터 NT 해시를 확인합니다.
    4. --RestoreShadowCred가 지정된 경우: 추가된 KeyCredential을 제거합니다(자기 정리...).
  5. --Recursive가 지정된 경우: 성공적으로 소유한 각 사용자/컴퓨터 계정을 사용하여 동일한 프로세스를 반복합니다.

ShadowSpray는 CTRL+C를 지원하므로 언제든지 실행을 중지하려면 CTRL+C를 누르면 ShadowSpray가 지금까지 복구된 NT 해시를 표시한 후 종료됩니다(아래 데모 참조).

데모

https://user-images.githubusercontent.com/54464773/194827503-b1eead1a-e09a-41ca-9d9b-0a7a6f0ad6a0.mp4

사용법

root@kitploit:~
 __             __   __        __   __   __
/__` |__|  /\  |  \ /  \ |  | /__` |__) |__)  /\  \ /
.__/ |  | /~~\ |__/ \__/ |/\| .__/ |    |  \ /~~\  |


Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]

    -r   (--RestoreShadowCred)       공격 완료 후 "msDS-KeyCredentialLink" 속성 복원. (선택 사항)
    -re  (--Recursive)               ShadowSpray 공격을 재귀적으로 수행. (선택 사항)
    -cp  (--CertificatePassword)     인증서 암호. (기본값 = 임의 암호)


일반 옵션:
    -u  (--Username)                 초기 LDAP 인증을 위한 사용자 이름. (선택 사항)
    -p  (--Password)                 초기 LDAP 인증을 위한 암호. (선택 사항)
    -d  (--Domain)                   도메인의 FQDN. (선택 사항)
    -dc (--DomainController)         도메인 컨트롤러의 FQDN. (선택 사항)
    -ssl                             LDAP over SSL 사용. (선택 사항)
    -y  (--AutoY)                    ShadowSpray 공격 시작 확인 메시지 표시 안 함. (선택 사항)

TODO

  • 코드 리팩토링 및 정리!!!
  • 상세 출력 옵션 추가
  • 추가된 KeyCredentials / 요청된 TGT / 수집된 NT 해시를 파일로 저장하는 옵션 추가
  • Python 버전 ;)
  • 기타 제안 환영

완화 및 탐지

Elad Shamir의 Shadow Credentials 블로그 게시물에서 가져옴:

  • 환경에서 PKINIT 인증이 일반적이지 않거나 대상 계정에 대해 일반적이지 않은 경우, "Kerberos 인증 티켓(TGT)이 요청됨" 이벤트(4768)는 인증서 정보 특성이 비어 있지 않을 때 변칙적 행동을 나타낼 수 있습니다.

  • 대상 계정에 대한 Active Directory 개체 수정을 감사하도록 SACL이 구성된 경우, "디렉터리 서비스 개체가 수정됨" 이벤트(5136)는 msDS-KeyCredentialLink를 변경하는 주체가 Azure AD Connect 동기화 계정이나 ADFS 서비스 계정(일반적으로 키 프로비저닝 서버 역할을 하여 사용자에 대해 이 특성을 합법적으로 수정)이 아닌 경우 변칙적 행동을 나타낼 수 있습니다.

  • 보다 구체적인 예방 통제는 Key Trust 암호 없는 인증에 등록되지 않은 계정(특히 권한 있는 계정)에 대해 msDS-KeyCredentialLink 특성 수정을 거부(DENY)하는 액세스 제어 항목(ACE)을 EVERYONE 보안 주체에 추가하는 것입니다.

  • UnPACing 및 섀도우 자격 증명 탐지 - Henri Hambartsumyan (FalconForce)

ShadowSpray 특정 탐지:

  • 이 도구는 매우 짧은 시간 내에 도메인의 모든 사용자/컴퓨터 개체를 수정하려고 시도하며, 실패할 때(대부분의 경우) LDAP_INSUFFICIENT_ACCESS 오류가 발생합니다. 일반적인 암호 스프레이 탐지와 동일한 접근 방식으로 이를 기반으로 탐지를 구축할 수 있습니다.

감사의 말

  • Elad Shamir - Shadow Credentials 연구와 훌륭한 도구 Whisker에 감사드립니다.
  • Will Schroeder 및 Rubeus에 기여한 모든 분들 - 우리 모두가 알고 사랑하는 도구입니다. 기본적으로 모든 TGT/TGS/UnPACTheHash 기능이 거기서 가져왔습니다.
  • Cube0x0 - 일부 코드(특히 WINAPI를 통한 LDAP 특성 수정)는 그의 놀라운 도구 KrbRelay에서 가져왔습니다.
  • Michael Grafnetter - 그의 도구 DSInternals는 여기서 Shadow Credentials 기능 구현에 도움이 되었습니다.
  • Orange-Cyberdefense - 데모 비디오와 이미지에서 볼 수 있는 Active Directory 연구 랩 GOAD 작업에 감사드립니다.
  • Martijn Laarman - 이 도구에 사용된 멋진 진행 표시줄에 감사드립니다.
도구 다운로드