
오랫동안 잊혀진 GenericWrite/GenericAll DACL을 악용하기 위해 전체 도메인에 Shadow Credentials를 스프레이하는 도구입니다.
도메인 전체에 Shadow Credentials를 스프레이하여 도메인 내 다른 객체에 대한 오래된 GenericWrite/GenericAll DACL을 악용하기 위한 도구입니다.
많은 엔지니어링에서 BloodHound를 통해 "Everyone" / "Authenticated Users" / "Domain Users" 또는 거의 모든 도메인 사용자를 포함하는 넓은 그룹이 도메인의 다른 객체에 대해 GenericWrite/GenericAll DACL을 가지고 있는 것을 봅니다.

이러한 권한을 악용하여 대상 객체에 Shadow Credentials를 추가하고 해당 객체의 TGT 및 NT 해시를 얻을 수 있습니다.
전체 도메인에 Shadow Credentials를 스프레이하여 무엇이 작동하는지 확인할 수 있다는 생각이 들었습니다(당연히 이 접근 방식은 은밀하지 않은 엔지니어링에 적합하며, 은밀함이 필요한 레드 팀에서는 사용하지 마십시오). Shadow Credentials가 성공적으로 추가되면 PKINIT + UnPACTheHash 과정을 수행하여 NT 해시를 얻습니다.
이 과정은 매우 빠르기 때문에 엔지니어링 초기에 사용할 수 있으며, 시작하기 전에 이미 일부 사용자와 컴퓨터를 소유하게 될 것입니다.
참고: 이전 도구인 KrbRelayUp의 코드를 많이 재활용했기 때문에 AV/EDR에서 KrbRelayUp으로 플래그될 수 있습니다...
대략 다음과 같습니다:
ShadowSpray는 CTRL+C를 지원하므로 언제든지 실행을 중지하려면 CTRL+C를 누르면 ShadowSpray가 지금까지 복구된 NT 해시를 표시한 후 종료됩니다(아래 데모 참조).
__ __ __ __ __ __
/__` |__| /\ | \ / \ | | /__` |__) |__) /\ \ /
.__/ | | /~~\ |__/ \__/ |/\| .__/ | | \ /~~\ |
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 공격 시작 확인 메시지 표시 안 함. (선택 사항)
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 특정 탐지: