
DCSync를 가능하게 하는 도메인 컨트롤러 계정 암호를 재설정하는 CVE-2020-1472 (Zerologon) 익스플로잇, 변경 사항을 되돌리는 복원 단계 포함.
최신 impacket을 GitHub에서 가져와야 하며, netlogon 구조체가 추가되어 있어야 합니다.
기본적으로 이 도구는 도메인 컨트롤러 계정의 비밀번호를 변경한다는 점에 유의하세요. 예, 이를 통해 DCSync를 수행할 수 있지만, 다른 도메인 컨트롤러와의 통신도 중단되므로 주의하세요!
자세한 정보와 원본 연구는 여기에서 확인하세요.
Python 3.6 이상에서만 작동합니다! 운영체제에 impacket이 설치되어 있는 경우(예: Kali), 먼저 기존 설치를 모두 제거하세요. 이후에도 임포트 오류가 발생하면 virtualenv 또는 pipenv에서 실행하세요.
cve-2020-1472-exploit.py를 실행하세요secretsdump를 사용하여 DCSync를 수행하고, -just-dc 및 -no-pass를 사용하거나 빈 해시와 DCHOSTNAME$ 계정을 사용하세요2020년 9월 15일 이후에 업데이트된 GitHub의 impacket 버전을 설치하면, secretsdump가 로컬 레지스트리 시크릿을 덤프할 때 자동으로 일반 텍스트 머신 비밀번호(16진수 인코딩)를 덤프합니다. 이는 DCSync와 다릅니다. DCSync는 머신 계정을 사용하는 반면, 레지스트리 덤프는 도메인 관리자(예: 기본 제공 Administrator 계정)로 도메인 컨트롤러에 대해 secretsdump를 실행해야 합니다.
또는 약간 오래된 버전의 secretsdump에서는 먼저 레지스트리 하이브를 추출한 다음 secretsdump를 오프라인으로 실행하여 동일한 비밀번호를 덤프할 수 있습니다(이 경우 Kerberos 해시를 계산할 수 없기 때문에 항상 일반 텍스트 키를 출력합니다).
이 일반 텍스트 비밀번호를 사용하여 -hexpass 매개변수와 함께 restorepassword.py를 실행할 수 있습니다. 이는 먼저 빈 비밀번호로 동일한 DC에 인증한 후 비밀번호를 원래 비밀번호로 재설정합니다. 대상으로 넷바이오스 이름과 IP를 다시 제공해야 합니다. 예를 들어:
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc