Digital Forensics/Linux2010. 3. 15. 22:04
반응형

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란 파일로 복구



c.f) icat : inode 숫자에 해당되는 내용을 파일로 복사하기 위해서(보통 삭제된 파일의 inode 번호 사용) icat을 사용한다. 여기서 2254는 확인된 삭제된 inode 번호이다.
 

2-2.  icat honeypot.hda5.dd 140839 > 140839
         : 140839 번 inode를 원래의 것으로 복구





                  2-3.
위처럼 inode 번호를 일일이 커맨드에 대입하는 것이 아니라, Shell script를 써서 모든 파일을 복구해보자.


                   2-4.  r을 실행해보자. 실행권한이 없다고 표시될 것이다.


                       2-5.  chmod u+x ./r : r명령의 실행 Permission을 받는다.

 

                       2-6. r 명령을 실행하면 복구가 완료됨을 볼 수 있다.



반응형
Posted by CCIBOMB