<이론>
Digital Forensic에서 Linux에서도 Windows처럼 메모리를 덤프하고 해킹당한 시스템을 이미지로 만들어서 나중에 검토할 수 있다. Windows나 Linux 타겟머신의 RAM이나 HDD/USB를 이미지로 덤프한 뒤 이를 분석하는 과정으로 보통 침투된 시스템을 Windows에서 편리하게 분석할 수 있기 때문에 NFS를 이용해서 네트워크에 위치한 Windows 시스템 이미지와 Linux 이미지를 취합해서 Windows 시스템에서 분석한다.
▪ 메모리에 대한 덤프는 TCT(The Coroner's Toolkit) 도구 중 하나인 memdump 도구를 사용하면 된다.
=>나중에 volatility, 그리고 LiME이라는 도구로 이들을 분석하고 복원한다.
▪ 시스템(HDD/USB) 이미지 덤프에서는
a. Windows 타겟 머신에는 Norton Ghost 도구를 사용할 수 있고,
b. Linux 타겟 머신에는 dd(disk dump) 도구를 사용해서 디스크를 복사할 수 있다. 혹은
c. AccessData FTK Imager나 EnCase를 사용해서 Windows나 Linux의 이미지를 뜰 수도 있다.
=>나중에 EnCase나 Forensic Tool Kit와 같은 도구로 이들을 분석하고 복원한다.
HDD/USB/RAM 등의 이미지를 뜨면 md5, sha1 등의 해시 알고리즘으로 이미지에 대한 해키 값이 나온다.
md5sum image_name 해서 나온 해시와 위에서의 해시를 비교하면 변형없이 제대로 이미지가 떠진 것이다.
<실습>
실습환경 : kali
kali에 접속하여 wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2022.1_all.deb 명령어 실행
dpkg -i kali-archive-keyring_2022.1_all.deb
apt update를 실행(memdump를 설치하기 위한 작업)
apt -y install memdump
memdump에 대한 명령어 실행 후 에러코드가 나오지 않는다면 이상없이 설치된 것이므로
kali에 대한 메모리 덤프를 실행한다.
바탕화면에 메모리 덤프가 생성된 것을 확인할 수 있다.
다른 방법으로는 dd if=/dev/mem of=/home/kali/Desktop/kali-mem2.mem bs=1024이 있다.
여기서 dd 명령어는 사용자가 지정한 섹터 단위로 데이터를 선택하여 수정할 수 있는 기능을 제공한다.
bs는 사이즈를 의미한다.
바탕화면에서 결과물로 생성된 것을 확인 할 수 있다.
이런 방식으로 메모리 덤프를 만드는 것을 알아보았다.
이제 다른 사용자의 덤프를 만들어서 확인하는 것을 실습해보자
Ubuntu로 접속하여 IP를 확인한다.
kali에서 ubuntu의 root 계정으로 들어가서 passwd 파일을 보려고 하였으나
Permission denied가 뜨는 것을 확인하였다.
Ubuntu로 들어가서 sshd_config 파일을 수정해주면 된다.
작업완료 후 service sshd restart
kali에서 다시 실행해보면 정상적으로 작동하는 것을 확인할 수 있다.
그러면 Ubuntu의 메모리를 덤프해보자.
kali의 바탕화면에 메모리 덤프가 생기는 것을 확인하였습니다.
실제 주로 사용하는 Windows에서 메모리 덤프를 실행해보자.
Windows7에서 메모장을 작성도 하고 인터넷 서핑도 한다음 메모리 덤프를 합니다.
메모리를 뜨기위해 사용하는 프로그램은 AccessData FTK Imager입니다.
File - Capture Memory
Destination path : 메모리를 뜨고 난 뒤 저장할 장소
Destination filename : 저장할 이름
저는 바탕화면에 저장하였습니다.
저장된 파일을 Kali Linux로 이동시켜줍니다.
kali에서 volatility-install.sh 파일을 만들어주자.
파일안의 내용을 실행파일이 될수 있게 bin/bash를 넣어주고 해당 내용을 기입한다.
오타가 나지 않도록 주의!!
chmod +x 를하여 실행권한을 부여하고 bash로 실행한다.
실행결과 두가지 오류가 나왔는데, 한번 해결해 보자.
먼저 첫번째 오류인 volatility 디렉토리가 비어있지 않은 것을 보니, 디렉토리를 지워준다.
두번째 오류인 print "\n" 구문오류는 python2 버전에서 파일이 작성되어, 현재 설치한 python3와 구문이 맞지않아서 발생한 오류이다. print문이 들어간 부분에 ()를 씌워주어 문법을 맞추어준다.
다시 실행했을 때 정상적으로 설치가 된 모습이다.
정상적으로 설치가 되었으니 윈도우 메모리 분석을 실행해 보자.
sudo vol.py -vvv -f "해당하는 윈도우 메모리 덤프" windows.info.Info
실행결과는 보는바와 같고 윈도우 덤프에 대한 내용이 적혀있다.
다음은 윈도우에 있던 파일을 검색해보자.
sudo vol.py -vvv -f "해당하는 윈도우 덤프" windows.filescan.FileScan
명령어는 보는바와 같지만 쓰니는 파일로 가독성을 높이기 위하여 보는바와 같이 진행하였다.
정상적으로 파일이 스캔된 것을 확인할 수 있다.
'Digital Forensic' 카테고리의 다른 글
디지털 포렌식[Digital Forensic] 이미지 분석[Image analysis] (0) | 2023.08.01 |
---|---|
디지털 포렌식[Digital Forensic] - 1 (0) | 2023.07.19 |
댓글