Stealing Windows Credentials
Last updated
Last updated
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Mimikatz가 할 수 있는 다른 것들을 이 페이지에서** 찾아보세요.**
여기에서 가능한 자격 증명 보호에 대해 알아보세요. 이 보호 기능은 Mimikatz가 일부 자격 증명을 추출하는 것을 방지할 수 있습니다.
내가 만든 Credentials Plugin을 사용하여 희생자의 내부에서 비밀번호와 해시를 검색하세요.
SysInternals의 Procdump는 정상적인 Microsoft 도구 이기 때문에 Defender에 의해 탐지되지 않습니다. 이 도구를 사용하여 lsass 프로세스를 덤프하고, 덤프를 다운로드하며, 덤프에서 자격 증명을 로컬로 추출할 수 있습니다.
이 과정은 SprayKatz를 사용하여 자동으로 수행됩니다: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
참고: 일부 AV는 procdump.exe를 사용하여 lsass.exe를 덤프하는 것을 악성으로 탐지할 수 있습니다. 이는 "procdump.exe"와 "lsass.exe" 문자열을 탐지하기 때문입니다. 따라서 lsass.exe의 PID를 procdump에 인수로 전달하는 것이 더 은밀합니다.
C:\Windows\System32
에 있는 comsvcs.dll이라는 DLL은 충돌 시 프로세스 메모리 덤프를 담당합니다. 이 DLL에는 rundll32.exe
를 사용하여 호출되도록 설계된 **MiniDumpW
**라는 함수가 포함되어 있습니다.
첫 번째 두 인수를 사용하는 것은 무관하지만, 세 번째 인수는 세 가지 구성 요소로 나뉩니다. 덤프할 프로세스 ID가 첫 번째 구성 요소를 구성하고, 덤프 파일 위치가 두 번째를 나타내며, 세 번째 구성 요소는 엄격히 full이라는 단어입니다. 대체 옵션은 존재하지 않습니다.
이 세 가지 구성 요소를 파싱하면 DLL이 덤프 파일을 생성하고 지정된 프로세스의 메모리를 이 파일로 전송하는 작업을 수행합니다.
comsvcs.dll을 사용하여 lsass 프로세스를 덤프할 수 있으므로 procdump를 업로드하고 실행할 필요가 없습니다. 이 방법에 대한 자세한 내용은 https://en.hackndo.com/remote-lsass-dump-passwords/에서 설명되어 있습니다.
다음 명령이 실행에 사용됩니다:
이 프로세스를 lssasy로 자동화할 수 있습니다.
작업 표시줄에서 마우스 오른쪽 버튼을 클릭하고 작업 관리자를 클릭합니다.
자세히 보기를 클릭합니다.
프로세스 탭에서 "로컬 보안 권한 프로세스" 프로세스를 검색합니다.
"로컬 보안 권한 프로세스" 프로세스에서 마우스 오른쪽 버튼을 클릭하고 "덤프 파일 만들기"를 클릭합니다.
Procdump는 sysinternals 스위트의 일부인 Microsoft 서명 이진 파일입니다.
PPLBlade는 메모리 덤프를 난독화하고 원격 워크스테이션으로 전송할 수 있는 보호 프로세스 덤퍼 도구입니다. 디스크에 저장하지 않고도 가능합니다.
주요 기능:
PPL 보호 우회
Defender 서명 기반 탐지 메커니즘을 피하기 위해 메모리 덤프 파일 난독화
디스크에 저장하지 않고 RAW 및 SMB 업로드 방법으로 메모리 덤프 업로드 (파일리스 덤프)
이 파일은 C:\windows\system32\config\SAM 및 C:\windows\system32\config\SYSTEM.에 위치해야 합니다. 그러나 일반적인 방법으로 복사할 수는 없습니다. 왜냐하면 이들은 보호되어 있기 때문입니다.
이 파일을 훔치는 가장 쉬운 방법은 레지스트리에서 복사하는 것입니다:
다운로드 해당 파일을 Kali 머신에 해시를 추출하려면:
이 서비스를 사용하여 보호된 파일을 복사할 수 있습니다. 관리자 권한이 필요합니다.
vssadmin 바이너리는 Windows Server 버전에서만 사용할 수 있습니다.
하지만 Powershell을 사용하여 동일한 작업을 수행할 수 있습니다. 다음은 SAM 파일을 복사하는 방법의 예입니다(사용된 하드 드라이브는 "C:"이며 C:\users\Public에 저장됩니다). 그러나 이를 사용하여 보호된 파일을 복사할 수 있습니다:
마지막으로, PS 스크립트 Invoke-NinjaCopy를 사용하여 SAM, SYSTEM 및 ntds.dit의 복사본을 만들 수 있습니다.
NTDS.dit 파일은 Active Directory의 핵심으로, 사용자 객체, 그룹 및 그들의 멤버십에 대한 중요한 데이터를 보유하고 있습니다. 도메인 사용자의 비밀번호 해시가 저장되는 곳입니다. 이 파일은 Extensible Storage Engine (ESE) 데이터베이스이며 %SystemRoom%/NTDS/ntds.dit에 위치합니다.
이 데이터베이스 내에는 세 가지 주요 테이블이 유지됩니다:
데이터 테이블: 이 테이블은 사용자 및 그룹과 같은 객체에 대한 세부 정보를 저장하는 역할을 합니다.
링크 테이블: 그룹 멤버십과 같은 관계를 추적합니다.
SD 테이블: 각 객체에 대한 보안 설명자가 여기에 저장되어, 저장된 객체에 대한 보안 및 접근 제어를 보장합니다.
자세한 정보는 다음을 참조하세요: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windows는 _Ntdsa.dll_을 사용하여 해당 파일과 상호작용하며, _lsass.exe_에 의해 사용됩니다. 그런 다음, NTDS.dit 파일의 일부는 lsass
메모리 내에 위치할 수 있습니다 (성능 향상을 위해 캐시를 사용하여 최근에 접근한 데이터를 찾을 수 있습니다).
해시는 3번 암호화됩니다:
BOOTKEY와 RC4를 사용하여 비밀번호 암호화 키(PEK)를 복호화합니다.
PEK와 RC4를 사용하여 해시를 복호화합니다.
DES를 사용하여 해시를 복호화합니다.
PEK는 모든 도메인 컨트롤러에서 같은 값을 가지지만, 도메인 컨트롤러의 SYSTEM 파일의 BOOTKEY를 사용하여 NTDS.dit 파일 내에서 암호화됩니다 (도메인 컨트롤러 간에 다릅니다). 따라서 NTDS.dit 파일에서 자격 증명을 얻으려면 NTDS.dit 및 SYSTEM 파일이 필요합니다 (C:\Windows\System32\config\SYSTEM).
Windows Server 2008부터 사용 가능합니다.
You could also use the volume shadow copy trick to copy the ntds.dit file. Remember that you will also need a copy of the SYSTEM file (again, dump it from the registry or use the volume shadow copy trick).
Once you have obtained the files NTDS.dit and SYSTEM you can use tools like secretsdump.py to extract the hashes:
You can also extract them automatically using a valid domain admin user: 당신은 또한 유효한 도메인 관리자 사용자를 사용하여 자동으로 추출할 수 있습니다:
큰 NTDS.dit 파일의 경우 gosecretsdump를 사용하여 추출하는 것이 권장됩니다.
마지막으로, metasploit 모듈: post/windows/gather/credentials/domain_hashdump 또는 mimikatz lsadump::lsa /inject
를 사용할 수도 있습니다.
NTDS 객체는 ntdsdotsqlite를 사용하여 SQLite 데이터베이스로 추출할 수 있습니다. 비밀뿐만 아니라 전체 객체와 그 속성도 추출되어 원시 NTDS.dit 파일이 이미 검색된 경우 추가 정보 추출을 위한 자료로 사용됩니다.
SYSTEM
하이브는 선택 사항이지만 비밀 복호화를 허용합니다 (NT 및 LM 해시, 일반 텍스트 비밀번호, kerberos 또는 신뢰 키와 같은 보조 자격 증명, NT 및 LM 비밀번호 기록). 다른 정보와 함께 다음 데이터가 추출됩니다: 해시가 있는 사용자 및 머신 계정, UAC 플래그, 마지막 로그온 및 비밀번호 변경의 타임스탬프, 계정 설명, 이름, UPN, SPN, 그룹 및 재귀적 멤버십, 조직 단위 트리 및 멤버십, 신뢰 유형, 방향 및 속성이 있는 신뢰된 도메인...
여기에서 바이너리를 다운로드하세요. 이 바이너리를 사용하여 여러 소프트웨어에서 자격 증명을 추출할 수 있습니다.
이 도구는 메모리에서 자격 증명을 추출하는 데 사용할 수 있습니다. 다음에서 다운로드하세요: http://www.ampliasecurity.com/research/windows-credentials-editor/
SAM 파일에서 자격 증명을 추출합니다.
SAM 파일에서 자격 증명 추출
다음에서 다운로드하세요: http://www.tarasco.org/security/pwdump_7 그리고 실행하기만 하면 비밀번호가 추출됩니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)