FORENSIC INSIGHT;
DIGITAL FORENSICS COMMUNITY IN KOREA
Get Windows Logon Password in
Memory Dump
Deok9
DDeok9@gmail.com
forensicinsight.org Page 2
Contents of Table
1. Introduction
2. WDigest.dll
3. Get Windows Logon Password in Live
4. Get Windows Logon Password in Memory Dump
5. Conclusion
forensicinsight.org Page 3
Introduction
forensicinsight.org Page 4
Introduction
 Mimikatz가 나오기 전
• 레지스트리
• 윈도우 로그온 세션
기존 윈도우 로그온 패스워드 획득 방법
사용 파일 패스워드의 NTLM 해쉬 획득 방법
SAM SAM 하이브 파일의 값 복호화
NTDS.DIT NTDS.DIT의 데이터베이스 테이블 추출 후 복호화
NTDS.DIT
/SAM
NTDS.DIT/SAM 하이브 파일의 Password History 정보를 이용
SECURITY SECURITY 하이브 파일의 LSA Secret 복호화
SECURITY SECURITY 하이브 파일의 Cached Domain Logon 정보를 이용
MSV1.0 윈도우 로그온 세션의 Credential 정보를 이용
F-Insight 6월 The Stealing Windows Password 참고
forensicinsight.org Page 5
Introduction
 모두 NTLM 해시 값을 획득하는 방법들임
• 패스워드 크랙 도구를 통해 크랙해야 함
 John the Ripper, Ophcrack, Cain & Abel ETC
• 패스워드가 매우 길다면?
 평문 얻기 위해 매우 많은 시간 소요
 문제점 해결을 위해 Mimikatz 등장(2012)
• 라이브 상태에서 DLL Injection을 통해 윈도우 로그온 패스워드 평문 획득
• 윈도우 인증 패키지를 사용
문제점 & Mimikatz
forensicinsight.org Page 6
WDigest.dll
forensicinsight.org Page 7
WDigest.dll
 윈도우 보안을 구현하는 주요 구성 요소 중 하나
• LSASS 프로세스와 클라이언트 프로세스 내에서 실행되는 DLL을 포함
• 인증 패키지에서 사용하는 DLL : 주어진 사용자 이름과 패스워드가 일치하는지 여부 검사
 일치하는 경우 : LSASS에 좀 더 상세한 사용자 정보 반환 -> LSASS가 토큰 생성
• Challenge-Response 방식을 통해 특정 필요 데이터를 메모리에 항상 가지고 있는 특징
 대표적인 패키지
• MSV1_0, TsPkg, WDigest, LiveSSP, Kerberos, SSP 등
• Remote RDP, 웹 서비스 등 다양한 용도에 의해 구현
윈도우 인증 패키지
forensicinsight.org Page 8
WDigest.dll
 윈도우 XP 에서 처음 소개 됨
 HTTP Digest 인증 및 SASL(Simple Authentication Security Layer) 교환에서 사용자
인증을 위해 개발
 NTLM 프로토콜과 같이 Challenge-Response 방식을 사용
 인증을 위해서는 사용자의 평문 패스워드가 필요한 특징이 있어 이를 악용 가능
WDigest.dll 소개
forensicinsight.org Page 9
 WDigest.dll
• 인증을 위해 사용되는 SSP 구현
 Lsasrv.dll
• 보안 서비스 관리 및 동작에 관여
 Secure32.dll
• 유저 모드 응용프로그램 SSPI 구현
 Ksecdd.sys
• 커널 보안 장치 드라이버가 유저 모드에서 LSASS와 통신하는데 사용
WDigest.dll
WDigest.dll Digest 인증 아키텍처
forensicinsight.org Page 10
Get Windows Logon Password in Live
forensicinsight.org Page 11
Get Windows Logon Password in Live
동작 과정
forensicinsight.org Page 12
Get Windows Logon Password in Live
동작에 사용되는 요소 설명
 LSASS의 LsaEnumerateLogonSessions
• 시스템에 존재하는 로그온 세션 식별자(LUID) 들과 세션들의 수를 획득
• PULONG LogonSessionCount 변수 : 로그온 세션의 개수
• PLUID LogonSessionList 변수 : 로그온 세션 식별자들 중 첫 번째 요소의 주소 값
• 시스템에 존재하는 로그온 세션 리스트 추적 가능
 WDigest.dll 의 l_LogSessList
• 리스트 엔트리 구조체
• Flink, Blink, LUID 및 유니코드 문자열로 된 사용자 명, 도메인, 암호화된 패스워드 등을 가짐
forensicinsight.org Page 13
Get Windows Logon Password in Live
동작에 사용되는 요소 설명
 Lsasrv.dll의 LsaUnprotectedMemory
• l_LogSessList 에서 획득한 암호화된 패스워드 복호화
• PVOID Buffer 변수 : 입력 또는 출력에 따라 복호화 된 또는 복호화 될 버퍼의 주소를 가짐
• ULONG BufferSize 변수 : 바이트 단위인 버퍼의 크기를 가짐
• 복호화 된 패스워드 값이 있는 주소를 Buffer 포인터 변수를 통해 획득 가능
 LsaUnprotectedMemory Decompile
• 내부적으로 LsaEncryptMemory 함수 호출
forensicinsight.org Page 14
Get Windows Logon Password in Live
동작에 사용되는 요소 설명
 LsaEncryptMemory Decompile
forensicinsight.org Page 15
Get Windows Logon Password in
Memory Dump
forensicinsight.org Page 16
Get Windows Logon Password in Memory Dump
필요 요소
 메모리 덤프에서 필요한 값을 찾고 추적하기 위해서는 가상 주소와 물리 주소 매핑을
통한 변환 작업 필요
분류 설명
필요한 dll
WDigest.dll : 암호화된 패스워드 값의 주소를 가지고 있음
Lsasrv.dll : 암호화된 패스워드의 복호화를 위해 필요
찾아야 할 값
WDigest.dll : l_LogSessList 의 암호화된 패스워드 값의 주소
Lsasrv.dll : 3DesKey 값(실제 pbSecret를 추적하기 위한 핸들),
pbIV 값
forensicinsight.org Page 17
Get Windows Logon Password in Memory Dump
DEMO
Manual & Plugin
forensicinsight.org Page 18
Conclusion
forensicinsight.org Page 19
Conclusion
아직 미흡
 다양한 인증 패키지 모두 적용 가능하도록 수정
 64비트 환경에서도 가능하도록 수정
 Dll Injection 을 통해 패스워드 추출은 사용자 PC 장악 후 공격에는 유용하나 포렌식에
서는 별로 쓸모가 없을 듯
 Live 상태에서 가능한 도구를 Memory Dump에 적용하고 싶었음 . . .
forensicinsight.org Page 20
Question and Answer

More Related Content

PDF
(알도개) 오라클 블록체인 아키텍처 살펴보기
PDF
(OCI 탐험일지) 시작!
PDF
Cloudoc supermicro mini_svr_appliance_kor_20171019
PPTX
이더리움 기초 스터디 (암호, 스토리지)
PDF
(알도개) GitHub 보안 개선
PDF
마리아Db
PDF
8 week: Technology of Platformless Media Blockchain
PDF
(OCI 탐험일지) 인스턴스 생성
(알도개) 오라클 블록체인 아키텍처 살펴보기
(OCI 탐험일지) 시작!
Cloudoc supermicro mini_svr_appliance_kor_20171019
이더리움 기초 스터디 (암호, 스토리지)
(알도개) GitHub 보안 개선
마리아Db
8 week: Technology of Platformless Media Blockchain
(OCI 탐험일지) 인스턴스 생성

What's hot (20)

PDF
비트코인 아직도 몰라?
PDF
Blockchain Study(3) - 이더리움(Geth)
PPTX
Bitcoin presantation add part2
PDF
쉽게 풀어쓴 블록체인과 이더리움
PPTX
Egis i 제안서(2014.03) 아이웍스
PDF
Node-express 채팅 서버 개발기
PDF
(OCI 탐험일지) 블록 볼륨 생성
PPTX
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
PPTX
PPTX
가상화폐 개념 및 거래 기초개발
PPTX
[고숙한 세미나] 블록체인 취약점 분석
PDF
액티브X 없는 블록체인 기반 PKI 시스템
PDF
Block chain bidding_System
PDF
(OCI 탐험일지) cloud shell
PDF
블록체인
PPTX
분산형 컴퓨팅 플랫폼 [에테리움]
PDF
04 자바 네트워크
PDF
Mastering bitocin chap5
PDF
비트코인 채굴과정
PPTX
Encrypted media extention
비트코인 아직도 몰라?
Blockchain Study(3) - 이더리움(Geth)
Bitcoin presantation add part2
쉽게 풀어쓴 블록체인과 이더리움
Egis i 제안서(2014.03) 아이웍스
Node-express 채팅 서버 개발기
(OCI 탐험일지) 블록 볼륨 생성
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
가상화폐 개념 및 거래 기초개발
[고숙한 세미나] 블록체인 취약점 분석
액티브X 없는 블록체인 기반 PKI 시스템
Block chain bidding_System
(OCI 탐험일지) cloud shell
블록체인
분산형 컴퓨팅 플랫폼 [에테리움]
04 자바 네트워크
Mastering bitocin chap5
비트코인 채굴과정
Encrypted media extention
Ad

Viewers also liked (20)

PDF
(130727) #fitalk rp log tracker
PDF
(130119) #fitalk all about physical data recovery
PDF
(130608) #fitalk trends in d forensics (may, 2013)
PDF
(130216) #fitalk potentially malicious ur ls
PDF
(140716) #fitalk digital evidence from android-based smartwatch
PDF
(130202) #fitalk trends in d forensics (jan, 2013)
PDF
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
PDF
(Ficon2015) #4 어떻게 가져갔는가, 그리고...
PDF
(150124) #fitalk advanced $usn jrnl forensics (english)
PDF
(150124) #fitalk advanced $usn jrnl forensics (korean)
PDF
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
PDF
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
PDF
(130119) #fitalk sql server forensics
PDF
(130119) #fitalk apt, cyber espionage threat
PDF
(130202) #fitalk china threat
PDF
(140625) #fitalk sq lite 소개와 구조 분석
PDF
(130622) #fitalk i cloud keychain forensics
PDF
(130727) #fitalk pfp (portable forensic platform), #2 story
PDF
(130622) #fitalk trend of personal information protection
(130727) #fitalk rp log tracker
(130119) #fitalk all about physical data recovery
(130608) #fitalk trends in d forensics (may, 2013)
(130216) #fitalk potentially malicious ur ls
(140716) #fitalk digital evidence from android-based smartwatch
(130202) #fitalk trends in d forensics (jan, 2013)
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
(Ficon2015) #4 어떻게 가져갔는가, 그리고...
(150124) #fitalk advanced $usn jrnl forensics (english)
(150124) #fitalk advanced $usn jrnl forensics (korean)
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
(130119) #fitalk sql server forensics
(130119) #fitalk apt, cyber espionage threat
(130202) #fitalk china threat
(140625) #fitalk sq lite 소개와 구조 분석
(130622) #fitalk i cloud keychain forensics
(130727) #fitalk pfp (portable forensic platform), #2 story
(130622) #fitalk trend of personal information protection
Ad

Similar to (131102) #fitalk get windows logon password in memory dump (16)

PDF
(130622) #fitalk the stealing windows password
PDF
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
PDF
(FICON2015) #3 어떻게 들어왔는가?
PDF
(Ficon2015) #3 어떻게 들어왔는가
PDF
(Fios#03) 4. 파워셸 포렌식 조사 기법
PDF
(Fios#02) 1. 랜섬웨어 연대기
PDF
(160820) #fitalk fileless malware forensics
PDF
3. 악성코드 분석 사례
PDF
(120211) #fitalk application password decrypter
PDF
(120211) #fitalk application password decrypter
PDF
(FICON2015) #2 어떻게 조사할 것인가?
PDF
(Ficon2015) #2 어떻게 조사할 것인가
PDF
(130413) #fitalk trends in d forensics (mar, 2013)
PDF
3. 악성코드 분석 사례
PDF
(130216) #fitalk reverse connection tool analysis
PDF
(130316) #fitalk trends in d forensics (feb, 2013)
(130622) #fitalk the stealing windows password
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
(FICON2015) #3 어떻게 들어왔는가?
(Ficon2015) #3 어떻게 들어왔는가
(Fios#03) 4. 파워셸 포렌식 조사 기법
(Fios#02) 1. 랜섬웨어 연대기
(160820) #fitalk fileless malware forensics
3. 악성코드 분석 사례
(120211) #fitalk application password decrypter
(120211) #fitalk application password decrypter
(FICON2015) #2 어떻게 조사할 것인가?
(Ficon2015) #2 어떻게 조사할 것인가
(130413) #fitalk trends in d forensics (mar, 2013)
3. 악성코드 분석 사례
(130216) #fitalk reverse connection tool analysis
(130316) #fitalk trends in d forensics (feb, 2013)

More from INSIGHT FORENSIC (11)

PDF
(140118) #fitalk 2013 e-discovery trend
PDF
(141031) #fitalk os x yosemite artifacts
PDF
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
PDF
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
PDF
(130105) #fitalk trends in d forensics (dec, 2012)
PDF
(130105) #fitalk criminal civil judicial procedure in korea
PDF
(131116) #fitalk extracting user typing history on bash in mac os x memory
PDF
(130928) #fitalk cloud storage forensics - dropbox
PDF
(130907) #fitalk generating volatility linux profile
PDF
(130727) #fitalk anonymous network concepts and implementation
PDF
(130720) #fitalk trends in d forensics
(140118) #fitalk 2013 e-discovery trend
(141031) #fitalk os x yosemite artifacts
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
(130105) #fitalk trends in d forensics (dec, 2012)
(130105) #fitalk criminal civil judicial procedure in korea
(131116) #fitalk extracting user typing history on bash in mac os x memory
(130928) #fitalk cloud storage forensics - dropbox
(130907) #fitalk generating volatility linux profile
(130727) #fitalk anonymous network concepts and implementation
(130720) #fitalk trends in d forensics

(131102) #fitalk get windows logon password in memory dump

  • 1. FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA Get Windows Logon Password in Memory Dump Deok9 [email protected]
  • 2. forensicinsight.org Page 2 Contents of Table 1. Introduction 2. WDigest.dll 3. Get Windows Logon Password in Live 4. Get Windows Logon Password in Memory Dump 5. Conclusion
  • 4. forensicinsight.org Page 4 Introduction  Mimikatz가 나오기 전 • 레지스트리 • 윈도우 로그온 세션 기존 윈도우 로그온 패스워드 획득 방법 사용 파일 패스워드의 NTLM 해쉬 획득 방법 SAM SAM 하이브 파일의 값 복호화 NTDS.DIT NTDS.DIT의 데이터베이스 테이블 추출 후 복호화 NTDS.DIT /SAM NTDS.DIT/SAM 하이브 파일의 Password History 정보를 이용 SECURITY SECURITY 하이브 파일의 LSA Secret 복호화 SECURITY SECURITY 하이브 파일의 Cached Domain Logon 정보를 이용 MSV1.0 윈도우 로그온 세션의 Credential 정보를 이용 F-Insight 6월 The Stealing Windows Password 참고
  • 5. forensicinsight.org Page 5 Introduction  모두 NTLM 해시 값을 획득하는 방법들임 • 패스워드 크랙 도구를 통해 크랙해야 함  John the Ripper, Ophcrack, Cain & Abel ETC • 패스워드가 매우 길다면?  평문 얻기 위해 매우 많은 시간 소요  문제점 해결을 위해 Mimikatz 등장(2012) • 라이브 상태에서 DLL Injection을 통해 윈도우 로그온 패스워드 평문 획득 • 윈도우 인증 패키지를 사용 문제점 & Mimikatz
  • 7. forensicinsight.org Page 7 WDigest.dll  윈도우 보안을 구현하는 주요 구성 요소 중 하나 • LSASS 프로세스와 클라이언트 프로세스 내에서 실행되는 DLL을 포함 • 인증 패키지에서 사용하는 DLL : 주어진 사용자 이름과 패스워드가 일치하는지 여부 검사  일치하는 경우 : LSASS에 좀 더 상세한 사용자 정보 반환 -> LSASS가 토큰 생성 • Challenge-Response 방식을 통해 특정 필요 데이터를 메모리에 항상 가지고 있는 특징  대표적인 패키지 • MSV1_0, TsPkg, WDigest, LiveSSP, Kerberos, SSP 등 • Remote RDP, 웹 서비스 등 다양한 용도에 의해 구현 윈도우 인증 패키지
  • 8. forensicinsight.org Page 8 WDigest.dll  윈도우 XP 에서 처음 소개 됨  HTTP Digest 인증 및 SASL(Simple Authentication Security Layer) 교환에서 사용자 인증을 위해 개발  NTLM 프로토콜과 같이 Challenge-Response 방식을 사용  인증을 위해서는 사용자의 평문 패스워드가 필요한 특징이 있어 이를 악용 가능 WDigest.dll 소개
  • 9. forensicinsight.org Page 9  WDigest.dll • 인증을 위해 사용되는 SSP 구현  Lsasrv.dll • 보안 서비스 관리 및 동작에 관여  Secure32.dll • 유저 모드 응용프로그램 SSPI 구현  Ksecdd.sys • 커널 보안 장치 드라이버가 유저 모드에서 LSASS와 통신하는데 사용 WDigest.dll WDigest.dll Digest 인증 아키텍처
  • 10. forensicinsight.org Page 10 Get Windows Logon Password in Live
  • 11. forensicinsight.org Page 11 Get Windows Logon Password in Live 동작 과정
  • 12. forensicinsight.org Page 12 Get Windows Logon Password in Live 동작에 사용되는 요소 설명  LSASS의 LsaEnumerateLogonSessions • 시스템에 존재하는 로그온 세션 식별자(LUID) 들과 세션들의 수를 획득 • PULONG LogonSessionCount 변수 : 로그온 세션의 개수 • PLUID LogonSessionList 변수 : 로그온 세션 식별자들 중 첫 번째 요소의 주소 값 • 시스템에 존재하는 로그온 세션 리스트 추적 가능  WDigest.dll 의 l_LogSessList • 리스트 엔트리 구조체 • Flink, Blink, LUID 및 유니코드 문자열로 된 사용자 명, 도메인, 암호화된 패스워드 등을 가짐
  • 13. forensicinsight.org Page 13 Get Windows Logon Password in Live 동작에 사용되는 요소 설명  Lsasrv.dll의 LsaUnprotectedMemory • l_LogSessList 에서 획득한 암호화된 패스워드 복호화 • PVOID Buffer 변수 : 입력 또는 출력에 따라 복호화 된 또는 복호화 될 버퍼의 주소를 가짐 • ULONG BufferSize 변수 : 바이트 단위인 버퍼의 크기를 가짐 • 복호화 된 패스워드 값이 있는 주소를 Buffer 포인터 변수를 통해 획득 가능  LsaUnprotectedMemory Decompile • 내부적으로 LsaEncryptMemory 함수 호출
  • 14. forensicinsight.org Page 14 Get Windows Logon Password in Live 동작에 사용되는 요소 설명  LsaEncryptMemory Decompile
  • 15. forensicinsight.org Page 15 Get Windows Logon Password in Memory Dump
  • 16. forensicinsight.org Page 16 Get Windows Logon Password in Memory Dump 필요 요소  메모리 덤프에서 필요한 값을 찾고 추적하기 위해서는 가상 주소와 물리 주소 매핑을 통한 변환 작업 필요 분류 설명 필요한 dll WDigest.dll : 암호화된 패스워드 값의 주소를 가지고 있음 Lsasrv.dll : 암호화된 패스워드의 복호화를 위해 필요 찾아야 할 값 WDigest.dll : l_LogSessList 의 암호화된 패스워드 값의 주소 Lsasrv.dll : 3DesKey 값(실제 pbSecret를 추적하기 위한 핸들), pbIV 값
  • 17. forensicinsight.org Page 17 Get Windows Logon Password in Memory Dump DEMO Manual & Plugin
  • 19. forensicinsight.org Page 19 Conclusion 아직 미흡  다양한 인증 패키지 모두 적용 가능하도록 수정  64비트 환경에서도 가능하도록 수정  Dll Injection 을 통해 패스워드 추출은 사용자 PC 장악 후 공격에는 유용하나 포렌식에 서는 별로 쓸모가 없을 듯  Live 상태에서 가능한 도구를 Memory Dump에 적용하고 싶었음 . . .