iii. 삭제된 inode 복구하기
1. 지워진 inode 중, 한번이라도 쓴 inode 찾기
* 복구의 조건 :
· st_alloc(2번째 필드) : data block의 상태를 표시해준다.
f 즉 free (사용가능) 이어야 복구 가능
c.f) st_alloc 이 a (allocated)인 경우는 inode가 이미 새로운 data 저장을 위해 할당되어있는 상태임을 의미하므로 복구가 불가능하다.
· st_size(11번째 필드) : 0보다 클 것 (data 가 있음을 의미)
· 주의 : 필드는 1번부터 세고, 0은 전체를 나타낸다.
ils 에 awk로 복구가능한 파일만 보게 조건을 걸고 그런 파일이 나오면 첫번째 필드를 출력하라고 명령을 내린 것이다. 다음과 같은 결과가 나온다.
c.f) ' ' : 쿼팅제한! 필드구분자 -F '|'
awk(자동화툴) : 필드를 처리하는 툴 중 하나다. -F는 Field Separater를 뜻한다. 여기에서 필드를 구분해주는 것이 |이므로 '|'로 나타낸다. 두번째 필드가 f이고, 11번째 필드의 값이 0보다 커야 하므로 (왜냐하면 virgin inode가 아닌, 한번이라도 쓴 inode를 찾아서 빼기 위해서이다.)
<awk의 사용법>
awk [옵션] '스크립트' [변수=값] [파일(들)]
or
awk [옵션] -f 스크립트 파일 [변수=값] [파일(들)]
ils 명령어(숨겨진 데이터를 찾기) : ils는 마운트 되어 있는 디바이스의 inode 정보를 리스트로 만들어주며, 또한 삭제된 inode 정보를 확인할 수 있다.
<ils 옵션>
-e : 파일 시스템의 모든 inode 정보를 리스트로 만들어 준다.
-f : 파일시스템 타입을 정의한다. 거의 모든 UNIX 시스템의 기본 파일 시스템은 ffs(Berkeley fast file system)이며, 리눅스는 기본적으로 ext2fs(second extended file system)을 사용하고 있다.
-o : 아직 열려있거나 실행중인 삭제된 파일들의 inode 정보를 만들어준다.(-aL과 동일)
-r : 삭제된 파일들의 inode 정보를 만들어 준다.(-LZ와 동일)
-v : 상세 모드 출력(stderr)
-V : 상세 모드 출력(stdout)
2. icat 을 사용하여 해당 inode를 파일로 복구하기
2-1. icat honeypot.hda5.dd 2254 > a
: 2254 번 inode를 a란 파일로 복구
2-2. icat honeypot.hda5.dd 140839 > 140839
: 140839 번 inode를 원래의 것으로 복구
2-3. 위처럼 inode 번호를 일일이 커맨드에 대입하는 것이 아니라, Shell script를 써서 모든 파일을 복구해보자.
2-5. chmod u+x ./r : r명령의 실행 Permission을 받는다.
2-6. r 명령을 실행하면 복구가 완료됨을 볼 수 있다.
'Digital Forensics > Linux' 카테고리의 다른 글
리눅스(EXT2)에서 삭제된 파일 복구하기 - 12 (완성) (0) | 2010.03.17 |
---|---|
리눅스(EXT2)에서 삭제된 파일 복구하기 - 11 (0) | 2010.03.16 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 9 (0) | 2010.03.15 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 8 (0) | 2010.03.15 |
리눅스(EXT2)에서 삭제된 파일 복구하기 - 7 (0) | 2010.03.02 |