kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

DFIR/사고 대응

[Forensic] 리눅스 Live 데이터 수집과 Live CD 활용

까마기 2021. 1. 12. 10:39
728x90
반응형

리눅스 시스템에서 휘발성 데이터를 수집하는 스크립트에 사용되는 명령어를 정리해 놓은 내용을 에버노트에서 블로그로 옮긴다.

귀찮다..

프리미엄을 해지 했더니 장치 동기화도 한대이상 안된다. 

괜히 해지했나 싶다가도.. 잡스런 메모나 데이터 정리할 목적으로 지금 아니면 못할 것 같다.

온라인 상에서도 미니멀 라이프를 실현하자.

 

활성 시스템에서의 수집하는 휘발성/비휘발성 데이터 구분 및 수집

수집 정보

관련 명령어/경로

날짜/시간 정보

date
ex) date +%Y%m%d%H%M

시스템 정보

uname –a

프로세스 정보
(비정상 프로세스 확인)

ps –ef / ps -elf / ps -aux
pstree
top
lsof –p [PID] / lsof -i [port]
vmstat
lsmod

메모리 사용율 확인

sar -r 1
ex)

sar -r 1

12:54:07 PM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad12:54:08 PM 42440 490744 92.04 65124 168916 1146744 128 0.01 16Average: 42440 490744 92.04 65124 168916 1146744 128 0.01 16

→ 메모리 사용률(%memused)은 92.04%

free

free로 계산하는 사람들이 많이 있겠지만 이는 실제 커널이 사용하는 메모리 량을 계산하는 올바른 계산법이 아니다. 위 used 는 kernel 의 사용량 + Disk buffering ( buffers + cached ) 이 합쳐진 수치 이다. 즉 total = used + free 이지만, used = kernel + Disk buffering 이기 때문에 실제 메모리 사용율은 free 명령을 이 계산을 줄이기 위에 used 값 바로 아래에 kernel 이 사용하는 메모리 량을 계산해 두었다. (256536) 결국 사용량은 used - ( busers + cached ) / total x 100(%) 가 되겠다.

top -n1 | grep Mem:
cat /proc/meminfo | grep Mem

네트워크 연결 정보

<휘발성>
netstat
 -anop / -antp
netstat  -nr
arp –a
tcpdump  -i  eth0
lsof -i -P -n
----------------------------------------------------------------------------------
<비휘발성>
ifconfig | head -2 | tail -1 |awk -F: '{print $2}' |awk '{print $1}'
cat /etc/hosts
/etc/sysconfig/network

활성 사용자 정보

<휘발성>
w -l
who
who -a | -b | -d | -l
last
lastb
lastlog

<사용자 계정 폴더 숨긴 파일>

$HOME/.bashrc
$HOME/.bash_profile
$HOME/.bash_logout
$HOME/.bash_history
$HOME/.vimrc
$HOME/.mozilla/*
$HOME/.ssh
$HOME/.cache/google-chrome/*
$HOME/.config/google-chrome/Default
----------------------------------------------------------------------------------
<비휘발성>
/etc/passwd
/etc/shadow

저장장치 정보

<비휘발성>
mount
df -Th
fdisk -l
blkid
cat /etc/fstab

패키지 정보

<비휘발성>
dpkg –l
dpkg –L  apache2

mac time 정보

<휘발성>
find
  /  -ctime -1 –type f
find  /  -mtime -1 –type f
find  /  -atime  -a  -type f
find  ./  -newer  start –a ! –newer  end
touch –t 2018102200 start
touch –t 2018102700 end

작업스케쥴러,
스케쥴 정보

<비휘발성>
crontab –l
cat /etc/crontab
cat  /var/log/cron.log  | more
/etc/cron*
/var/spool/cron/* 

로그정보

<비휘발성>
history
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/auth.log    -> secure.log가 변경됨
lastlog
lastb
/var/log/messages
/var/log/secure
/var/log/xferlog
/var/log/maillog
dmesg 

실행파일 및
은닉파일 검색

<휘발성>
find
  /  -type f –perm +111 –ls
find / -type f -perm +6000 -ls               // Setgid, Setuid 파일 검색
find  /dev  –type f
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -la {} \;
find / -type f -user 0 -perm -002 -ls      // 실행권한이 있는 user 생성 악성코드 찾기

rkhunter --check                                 // rootkit 검사

./chkrootkit                                        // rootkit 검사

./bswfinder.pl -d 경로 -t 타입              // 웹 백도어 탐지도구 

#2. 비정상적 파일(특수권한을 가진 파일)

 

find / -uid 0 -perm 4000

ls -al /usr/bin | grep "passwd"

# root 권한으로 실행 권한이 잡혀있는 파일도 백도어 파일로 의심해볼 수 있음

find / -type f -user 0 -perm -002 -ls

 

#3. 비정상적 파일(숨겨진 파일)

# .뿐만 아니라 "." , "..", "...", " " 등 이 문자열들을 파일명 첫번째에 포함시키는 방법도 리눅스에서 파일을 숨기는 방법임

find / -name ".[^.+]*" | more

 

#4. 비정상적 파일(생성, 변경된 파일)

#mtime : 최근 생성 파일 확인

#10일 전 이후로 생성된 파일 찾기

find /bin -type f -mtime 10

 

#mtime 뒤의 부호에 따라 시간이 달라짐, -3은 3일 이전보다 새로운 파일, 3은 3일~2일전(24시간) 정보만, +3은 3일보다 과거의 파일

 

# size 옵션도 있음

# 5MB를 넘지 않는 파일 중 10일 전 이후에 새로 생성된 파일 검색

find /bin -type f -mtime 10 -size -5M

 

#속성변화가 생겼을 경우를 찾을 때, ctime을 사용할 수 있음

find /bin -type f -ctime -5

 

#파일을 읽었을 경우를 찾을 때, atime을 사용할 수 있음

find /bin -type f -atime -5

 

#5. 비정상적 파일 (악성 스크립트, 웹쉘)

# 웹쉘 수동 점검

find / -name \ .확장자 | xargs grep [문자열]

비정상 서비스 등록 확인

<비휘발성>

/etc/inittab, /etc/init.d , /etc/rc.d
/etc/init.conf , /etc/init
/etc/profile, /etc/bash.bashrc
/etc/vimrc , /etc/virc
/etc/csh.cshrc, /etc/csh.login
$HOME/.bashrc, $HOME/.bash_profile, $HOME/.bash_logout
$HOME/.vimrc, $HOME/.xinitrc
chkconfig --list 

시스템 무결성 점검

Tripwire --check

삭제된 파일 복구 명령어

debugfs [device]

debugfs: lsdel

--> 다른 포스팅으로 정리 필요

 

Live Data 수집 스크립트 참고

http://forensic-proof.com/resources

< /proc 폴더 정보 >

/proc/cmdline

/proc/cpuinfo

/proc/devices

/proc/diskstats

/proc/ide

/proc/meminfo

/proc/scsi/scsi

/proc/partitions

/proc/version

/proc/vmstat

/proc/zoneinfo

 

2. 메모리 덤프 도구(메모리 포렌식)

 

- fmem

- LiME

- Volatility

 

3. 오픈소스 도구 활용

https://github.com/CiscoCXSecurity/NeoPI

 

4. Live CD/USB 만들기

관련하여 자료를 찾던 도중 Live USB를 만들어보기로 하였다. Live CD/USB를 활용해본적이 없어서 이번 기회에 USB를 만들어보고 실습 및 정리하고자 한다. 우선 Live CD/USB에 대한 정의부터 찾아보았다.

 

* Live CD (ex. Knoppix)

- Live CD는 Bootable CD로, 전원이 꺼져있는 오프라인 시스템을 조사할 때 사용

- 원본 OS에 영향을 끼치지 않으려는 목적으로 제작해서 사용

- 디스크 이미징, 데이터 열람 등이 가능하나, 활성 데이터 분석에는 맞지 않음

 

* Live-Analysis CD (ex. Helix)

- 대부분 라이브 분석 CD는 Live CD의 기능을 내장하고 있음

- 활성 시스템 조사나 활성 시스템에서 디스크 이미징을 수행하려는 목적으로 사용

- 원본OS의 영향을 최소화하기 위해 도구뿐만 아니라 사용하는 DLL도 내장하여야 함

- 프로세스 수집, 네트워크 정보 수집 등과 같이 활성 시스템 조사 기능이 탑재

 

구글 검색을 해보니 몇가지 플랫폼이 눈에 띈다.

SANS SIFT

CAINE

Linuxleo

Kali Liux

 

여기서 CAINE 을 다운받아 만들어보기로 하였다.

 

www.caine-live.net/

 

CAINE Live USB/DVD - computer forensics digital forensics

NEW! CAINE 11.0 "Wormhole" is out! CAINE 11.0 "Wormhole" 64bit Official CAINE GNU/Linux distro latest release. CAINE (Computer Aided INvestigative Environment) is an Italian GNU/Linux live distribution created as a Digital Forensics project Currently the p

www.caine-live.net

iso 다운로드 후 rufus 프로그램을 통해 부팅 USB를 생성한다.

 

오프라인 PC (win7)에서 CAINE 부팅USB 연결하여 부팅

 

 

 

Hardware com

 

 

* 이미지 마운트 및 분석을 해보려 하였으나 버전이 너무 낮은관계로 CAINE은 여기까지만 해보고 기회있을 때 다시 보려고한다.. Caine 11 version 에서 autopsy가 4.13 버전이다. (현재 autopsy 4.5.0까지 있음)

* 결국 Ubuntu를 다운받고 SANS SIFT를 설치하기로 하였다. 

 

 

ultraISO 프로그램을 이용해서 ubuntu iso 이미지 만들기

ubuntu에 sift 설치하기.

Win7에서 Ubuntu로 Live 부팅을 한 후 IP설정 및 net-tools와 ssh-server 패키지 설치 후 다른 노트북(Win10)에서 ssh로 접속하여 작업하였다. 

 

아래 링크를 참고하여 설치 진행.

github.com/teamdfir/sift-cli/releases/tag/v1.9.2

 

Release v1.9.2 · teamdfir/sift-cli

Install curl -Lo /usr/local/bin/sift https://github.com/sans-dfir/sift-cli/releases/download/v1.9.2/sift-cli-linux chmod +x /usr/local/bin/sift Changelog Notable from 1.9.2 Updates vulnerable pac...

github.com

curl -Lo /usr/local/bin/sift https://github.com/sans-dfir/sift-cli/releases/download/v1.9.2/sift-cli-linux chmod +x /usr/local/bin/sift

 

sift install

 

autopsy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 URL  ----   https://blog.naver.com/popqser2/221502258391

 

포렌식 - 리눅스 서버 침해 사고 조사 시 사용할 명령어

0x00 서론 침해 분석은 분석가의 노하우나 지식에 따라 천차만별이 될 수 있다. 물론, '증거'가 ...

blog.naver.com

 

반응형