
impacket의 secretsdump.py에 있는 원격 SAM + LSA Secrets 덤프 기능의 .Net 포트
.Net 포트로, impacket의 secretsdump.py에 있는 원격 SAM + LSA 시크릿 덤프 기능을 구현합니다. 기본적으로 현재 사용자의 컨텍스트에서 실행됩니다. 소유하거나 테스트 권한이 있는 환경에서만 사용하세요 :)
SharpSecDump.exe -target=192.168.1.15 -u=admin -p=Password123 -d=test.local
필수 플래그
선택적 플래그
이 프로젝트는 Win 7, 10, Server 2012, Server 2016에서 테스트되었습니다. 이전 버전(win 2003 / xp)에서는 이 도구가 작동하지 않을 수 있습니다.
기본적으로 로컬 시스템에서 하이브를 덤프하려면 높은 무결성 컨텍스트에서 실행해야 합니다. 그러나 원격 시스템을 대상으로 할 때는 필요하지 않습니다.
현재 SAM + SECURITY 레지스트리 하이브 덤프를 지원하여 캐시된 자격 증명 데이터를 검색합니다. 그러나 아직 NTDS.dit 파싱/dcsync를 지원하지 않습니다. .Net 프로젝트에서 dcsync 기능을 찾고 있다면 sharpkatz를 추천합니다.
시스템이 TCP를 통한 RPC를 허용하지 않도록 구성된 경우(명명된 파이프를 통한 RPC 필요 - 기본 설정 아님) Windows가 RPC/NP로 대체되기까지 21초의 지연이 발생하지만, 여전히 연결을 허용합니다. 이는 SCManager를 활용하여 서비스에 원격으로 바인딩하는 API 호출 사용의 제한으로 보입니다.
이 코드는 @agsolino의 impacket과 @skelsec의 pypykatz에서 기능을 포팅한 것입니다. 레지스트리 하이브에서 정보를 구문 분석하고 해독하는 원래 단계에 대한 모든 공로는 그들에게 있습니다.
사용된 레지스트리 하이브 구조는 @BrandonPrry의 gray_hat_csharp_code에서 가져왔습니다.
마지막으로, 이 스크립트의 원래 아이디어는 @Carlos_Perez의 Posh_SecModule을 부분적으로 포팅하는 작업을 기반으로 했으며, 초기 SAM 파싱 코드의 상당 부분이 그 프로젝트에서 왔습니다.