악성코드 침투 후 포렌식 분석

1. 바탕화면 설치 여부 확인

OSForensics 다운로드 및 설치

2. 무결성 검사

해시값을 이용하여 무결성을 입증

3. 무료 버전 제한

무료 버전에서는 최대 3개의 케이스만 생성 가능. 기존 케이스 삭제 후 진행

4. 포렌식 시나리오

  • 1) 컴퓨터 부팅 시간 확인
  • 2) 실제 사용자는 누구인가?
  • 3) 방문한 웹사이트 확인
  • 4) 다운로드한 파일 확인
  • 5) 실행된 파일 확인

5. NTLM 해시 추출 및 사용자 정보 분석

import regipy

class Forensic:
    pass

def main():
    sam_path = r'D:\Export\SAM'
    print("start program")
    hive = regipy.RegistryHive(sam_path)
    print(hive, dir(hive))

if __name__ == "__main__":
    main()

6. NTLM 해시 추출 코드

import regipy
import binascii

def extract_ntlm_hash(key):
    try:
        values = key.iter_values()
        for value in values:
            if 'F' in value.name:
                print(f"NTLM Hash Found: {binascii.hexlify(value.value).decode()}")
                return binascii.hexlify(value.value).decode()
    except Exception as e:
        print(f"Error extracting NTLM hash: {e}")
    return None

7. 사용자 정보 탐색

def explore_user_info(hive, path):
    try:
        key = hive.get_key(path)
        print(f"Found key at: {path}")
        subkeys = key.iter_subkeys()
        for subkey in subkeys:
            print(f"User SID: {subkey.name}")
            user_subkey_path = f"{path}\\{subkey.name}"
            explore_user_info(hive, user_subkey_path)
    except Exception as e:
        print(f"Error exploring {path}: {e}")

8. 사용자 정보 분석 실행

def main():
    sam_path = r'D:\Export\SAM'
    print("start program")
    hive = regipy.RegistryHive(sam_path)
    print("Exploring user information in SAM file...")
    explore_user_info(hive, r'HKEY_LOCAL_MACHINE\\SAM\\Domains\\Account\\Users')

if __name__ == "__main__":
    main()