악성코드 침투 후 포렌식 분석
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()