본문 바로가기
공격 도구

Mimikatz를 활용한 윈도우 계정 탈취 - LSASS 이용

by kimnampill 2022. 10. 6.
728x90
반응형

Windows 보안에 관한 시리즈의 일부로 작성된 이 기사에서는 다음을 사용하여 모든 활성 Windows 사용자의 암호를 얻는 아주 간단한 방법을 배웁니다. Mimikatz.

Mimikatz.exe Windows 메모리, 암호 해시, Kerberos 티켓 등에서 일반 텍스트 암호를 추출할 수 있습니다. 또한 mimikatz를 사용하면 pass-the-hash, pass-the-ticket 공격을 수행하거나 Golden Kerberos 티켓을 생성할 수 있습니다. mimikatz 기능은 Metasploit Framework에서도 사용할 수 있습니다.

당신은 다운로드 할 수 있습니다 mimikatz GitHub 리포지토리에서: https://github.com/gentilkiwi/mimikatz/releases/. mimikatz_trunk.zip 아카이브를 C:Toolsmimikatz에 추출합니다. x64 및 x86용으로 두 가지 버전의 mimikatz가 이 디렉토리에 나타납니다. Windows 비트에 해당하는 버전을 사용하십시오.

 

이 기사에서는 mimikatz를 사용하여 Windows Server 2016 또는 Windows 10에서 사용자 암호를 얻는 방법을 보여줍니다.

Disclaimer. 이 기사에 설명된 정보 및 기술은 정보 제공의 목적으로만 사용해야 하며 제3자의 계정, 데이터 및 시스템에 대한 액세스 권한을 얻지 않아야 합니다.

Contents

  • Mimikatz를 사용하여 LSASS에서 Windows 해시 암호 해킹
  • Hyberfil.sys 및 VM 페이지 파일에서 Windows 암호 추출
  • WDigest를 사용하여 일반 텍스트로 Windows 암호 추출
  • SAM에서 로컬 사용자 암호 해시 추출
  • Mimikatz를 통한 Pass-the-Hash 공격 수행
  • Windows 자격 증명 관리자에서 암호 덤핑
  • 일반 텍스트로 Windows 로그온 암호 덤프
  • 자격 증명 덤핑 공격으로부터 Windows 보호

Mimikatz를 사용하여 LSASS에서 Windows 해시 암호 해킹

Windows Server 2016을 실행하는 RDS 서버의 Windows 메모리(lsass.exe 프로세스 – 로컬 보안 기관 하위 시스템 서비스)에서 로그인한 모든 사용자의 암호 해시를 덤프해 보겠습니다.

관리자 권한 명령 프롬프트에서 다음 명령을 실행합니다.

  1. 운영 Mimikatz.exe 관리자로서;
  2. 다음 명령은 현재 계정에 디버그 프로세스(SeDebugPrivilege) 권한을 부여합니다.
    privilege::debug
  3. 활성 사용자 세션 나열:
    sekurlsa::logonPasswords full
  4. 내 경우에는 내 계정 외에 서버에 두 사용자의 활성 세션이 있습니다. novach 그리고 administrator.
  5. NTLM 해시를 복사합니다(스크린샷에서 강조 표시됨).
mimikatz는 대화형이 아니라 명령 모드에서 사용할 수 있습니다. 사용자 암호 해시를 자동으로 가져오고 텍스트 파일로 내보내려면 다음 명령을 사용합니다.

mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit” >> c:tmpmimikatz_output.txt

이제 모든 오프라인을 사용할 수 있습니다( hashcat Kali Linux) 또는 NTLM 해시 해독을 위한 온라인 서비스입니다. https://crackstation.net/ 서비스를 사용하겠습니다.

보시다시피 서비스는 이러한 NTLM 해시 값을 빠르게 찾았습니다. 즉, 일반 텍스트로 사용자 암호를 받았습니다.

 

이것이 많은 동시 사용자와 엔터프라이즈 관리자 세션이 있는 RDS 호스트라고 상상해 보십시오. 즉, 이 서버에 대한 로컬 관리자 권한이 있는 경우 도메인 관리자 암호를 얻을 수도 있습니다.

보시다시피 mimikatz 덕분에 모든 활성 사용자의 NTLM 해시를 얻었습니다! 이 컴퓨터에서 디버그 모드가 활성화되어 있기 때문에 명령이 성공했습니다. SeDebugPrivilege 원하는 프로세스를 위해. 이 모드에서 프로그램은 시스템을 대신하여 시작된 프로세스의 메모리에 대한 낮은 수준의 액세스 권한을 얻을 수 있습니다.

 

메모. 2017년 6월, 많은 국가의 많은 대기업이 내장된 mimikatz 모듈을 사용하여 사용자 및 도메인 관리자의 비밀번호를 수집하는 NotPetya 랜섬웨어에 감염되었습니다.

Windows 메모리 덤프에서 사용자 암호를 가져오는 방법은 무엇입니까?

위의 암호 해시 가져오기 방법은 차단 주입을 차단하는 바이러스 백신이 설치된 경우 작동하지 않습니다. 이 경우 대상 호스트에서 LSASS 프로세스의 메모리 덤프를 만들고 이를 컴퓨터에 복사하고 mimikatz를 사용하여 암호 해시를 추출해야 합니다.

Windows에서 프로세스의 메모리 덤프를 만드는 것은 매우 쉽습니다. 작업 관리자를 시작하고 lsass.exe 프로세스를 찾아 마우스 오른쪽 버튼으로 클릭하고 선택하십시오. Create Dump File.

Windows는 메모리 덤프를 system32 폴더에 저장합니다.

mimikatz를 사용하여 덤프 파일을 구문 분석하면 됩니다(다른 컴퓨터에서 이 작업을 수행할 수 있음). mimikatz에 메모리 덤프를 로드합니다.

Mimikatz sekurlsa::minidump C:UsersusernameAppDataLocalTemplsass.DMP

덤프에서 사용자 이름과 비밀번호 해시를 가져옵니다.

# sekurlsa::logonPasswords

psexec를 사용하거나 WinRM(관리자 권한이 있는 경우)을 통해 원격 컴퓨터에서 메모리 덤프를 가져와서 사용자 암호를 추출할 수 있습니다.

당신은 또한 사용할 수 있습니다 procdump Sysinternals에서 덤프를 가져옵니다.

procdump -ma lsass.exe lsass.dmp

LSASS 프로세스의 메모리 덤프는 다음을 사용하여 얻을 수 있습니다. Out-Minidump.ps1 PowerShell의 기능. Out-Minidump 기능을 PoSh 세션으로 가져오고 LSASS 프로세스의 메모리 덤프를 생성합니다.

Import-Module .OutMiniDump.ps1
Get-Process lsass | Out-Minidump



반응형

댓글