
하이브리드 ID 동기화 서버에서 Azure AD Connect(ADSync) 자격 증명을 추출하고 복호화하여, 사후 공격(post-exploitation) 단계에서 자격 증명을 복구합니다.
ADSyncDump BOF는 Dirkjan Mollema의 adconnectdump.py / ADSyncDecrypt를 Cobalt Strike, Sliver 및 Havoc에서 사용할 수 있도록 BOF(Beacon Object File)로 포팅한 것입니다.
[!NOTE] 이 도구는 Azure AD Connect 버전
2.2.1.0이 설치된 Windows Server 2019에서 테스트되었습니다. BOF의 32비트 버전은 테스트되지 않았지만, 완전성을 위해 포함했습니다. 사용에 따른 책임은 본인에게 있습니다.
BOF를 컴파일하려면 소스 코드가 있는 디렉터리에서 make를 실행하기만 하면 됩니다. 그러면 32비트 및 64비트 버전의 BOF가 모두 생성됩니다.
make
Cobalt Strike에서는 adsyncdump.cna 스크립트를 로드하고, Sliver에서는 extension install 및 extension load 명령을 사용하여 BOF를 설치합니다. 설치가 완료되면 AD Sync 서버로 NT AUTHORITY\SYSTEM 권한으로 측면 이동한 후 adsyncdump 명령을 실행합니다:
beacon> adsyncdump


이 BOF는 몇 년 전 모의 침투 업무 중에 만들어졌습니다. 원래 Python 스크립트가 클라이언트 시스템에 너무 침습적이라는 문제에 직면했고, .NET 버전을 제대로 실행하는 데 어려움을 겪었기 때문입니다. 그래서 여가 시간에 복호화 프로세스에 사용된 정확한 Win32 API 호출을 리버스 엔지니어링하여 BOF로 포팅하기로 결정했습니다.
원래는 이 프로젝트를 공유할 계획이 없었습니다. ADSync 계정이 터무니없는 권한을 보유하고 있었고 기존 도구에 대한 탐지가 훌륭하지 않았기 때문에 공유하는 것이 무책임하다고 느꼈기 때문입니다. 그러나 그 이후 Microsoft가 ADSync 계정의 권한을 크게 제한하여 영향이 덜 심각해졌습니다(여전히 좋지는 않지만, 적어도 더 이상 조건부 액세스 정책을 편집할 수는 없습니다1).
또한 다른 연구자들이 이미 복호화 프로세스의 내부 동작에 대한 정보를 공개했고(Dr Syynimaa2와 Dirkjan Mollema3에게 큰 박수를 보냅니다), 탐지가 더 널리 보급되었기 때문에 이제 이 BOF를 커뮤니티와 공유하는 것이 더 편안해졌습니다(파티에 늦어서 죄송합니다).
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요. 이 도구의 사용으로 인한 오용이나 손해에 대해 책임을 지지 않습니다. 명시적 허가를 받은 환경에서만 사용하세요.
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/x.com/_dirkjan/status/1715263925971821008%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/aadinternals.com/post/adsync/%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/dirkjanm.io/updating-adconnectdump-a-journey-into-dpapi/%3E ↩