루트킷 바이러스에서 mbr을 복구하려는 시도에서 testdisk를 사용한 데이터 하드 디스크에서 데이터를 복구해야 함


8

내가 여기있는 상황에 대해 말하기 시작하기 전에이 난장판으로 나를 도울 수있는 사람이라면 누구나 영원히 감사 할 것입니다. 나는 몇 년과 수년간의 힘든 작업의 ​​사진을 가지고 있습니다. 저는 반 프로 사진 작가이며 하드 디스크에는 사진에서 약 1.5TB의 데이터가 들어 있습니다. 또한 100GB의 전체 음악 라이브러리와 모든 DVD를 하드 디스크에 기록하는 데 시간이 걸렸습니다. 그러나 내 사진은 내가 가장 염려하는 부분이며 교체 할 수 없습니다.

요컨대 여기에 일어났던 일이 있습니다. 저는 항상 Windows 용 온라인 백업 인 backblaze를 사용하여 데이터를 백업했습니다. 나는 약 3 개월 전에 plex를 사용하여 파일을 서버로 가져 가고 싶었고 Ubuntu가 가장 좋은 방법이라고 결정했습니다. 그래서 나는 "회색 구멍"이라는 것을 사용하고이 회색 구멍 백업 프로그램에서 (2) 2TB 하드 드라이브와 (1) 1 TB 하드 드라이브를 설정하는 과정에서이 백업 방법을 사용하고있었습니다.

그때 내가 루트킷을 얻었을 때입니다. 이 일은 불쾌했고 2 개월 동안 모든 것을 시도한 후에, 내 바이오스를 다시 플래시해야했지만 여전히이 바이러스에 감염된 것으로 생각합니다. 모든 하드 드라이브를 다시 포맷하고 거의 모든 것을 채우는 하드 드라이브 1 개 (2TB 하드 드라이브)까지 모든 것을 백업해야했습니다. 나는 아직도이 바이러스를 제거하지 못했습니다. 결국 나는 그것을 잡았다. 네트워크 이더넷 카드에 내장되었습니다. 이 글을 읽는 사람은 거기에 내장 된 모든 것이 라우터, 모든 LAN을 감염시킬 수 있고 바이오스 자체의 플래시를 통해 컴퓨터에 남아있을 수 있다는 점에 유의해야합니다!

어쨌든 나는 여전히 내 하드 드라이브에 파일을 가지고있는 것을 제거하는 것처럼 보였습니다. 컴퓨터를 다시 감염시키고 싶지 않았으므로 testdisk라는 유틸리티를 사용하여 MBR을 다시 쓰려고했습니다.

큰 실수

나는 내가하고있는 일에 대한 단서가 없었습니다. 그리고 지금 내 정보를 읽을 수 없습니다!

좋은 소식이 있습니까? testdisk가 수행 된 후 (드라이브를 분석하고 WRITE 명령을 사용하여 손상을 수행 한 결과, 1 초 밖에 걸리지 않았습니다. "dd"를 사용하여 드라이브에 넣습니다. 그것은 내가 한 작은 일이었습니다. 그래서 이런 이유로 데이터가 여전히 드라이브에 있어야한다고 생각합니다.

내가 아는 것은 다음과 같습니다.

  • 드라이브는 OS가 아닌 데이터 드라이브입니다. 우분투를 다른 드라이브의 OS로 사용했습니다.
  • ext3 또는 ext4로 포맷
  • 크기 = 2TB
  • 파일 = 대체 불가, 내 평생 일할 수 있습니다.

또한 backblaze에는 30 일이 지났으므로 더 이상 내 파일이 없습니다. 루트킷으로 인해 모든 전체 백업을 0으로 기록했습니다. 이 하드 드라이브는 이런 일이 발생했을 때 내 파일의 유일한 소스였습니다. 우연히도 이것은 수년간 백업이 없었던 유일한 시간입니다.

다음은 fdisk -l의 복사 / 붙여 넣기입니다

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0006a14b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63  3907024064  1953512001   83  Linux
Partition 1 does not start on physical sector boundary.

그리고 lshw

*-scsi:0
          physical id: 2
          logical name: scsi2
          capabilities: emulated
        *-cdrom
             description: DVD writer
             physical id: 0.0.0
             bus info: scsi@2:0.0.0
             logical name: /dev/cdrom
             logical name: /dev/sr0
             capabilities: audio cd-r cd-rw dvd dvd-r
             configuration: signature=643a3365 status=ready
        *-disk
             description: ATA Disk
             product: ST2000DM001-1CH1
             vendor: Seagate
             physical id: 0.1.0
             bus info: scsi@2:0.1.0
             logical name: /dev/sda
             version: CC24
             serial: W1E2L5K7
             size: 1863GiB (2TB)
             capabilities: partitioned partitioned:dos
             configuration: ansiversion=5 sectorsize=4096 signature=0006a14b
           *-volume
                description: EXT3 volume
                vendor: Linux
                physical id: 1
                bus info: scsi@2:0.1.0,1
                logical name: /dev/sda1
                version: 1.0
                serial: 05ea2f85-06fd-446c-a885-30614d53630c
                size: 1863GiB
                capacity: 1863GiB
                capabilities: primary bootable journaled extended_attributes large_files recover ext3 ext2 initialized
                configuration: created=2013-03-27 07:57:02 filesystem=ext3 label=foo modified=2013-03-27 08:11:50 mounted=2013-03-27 08:11:50 state=clean

무엇을 도와 드릴까요? 나는 testdisk로 다시 망치는 것이 무섭다. 파일을 복구하고 싶습니다. 그들이 어떻게 사라 졌는지 알 수 없습니다.

정말 고맙습니다-


1
잘 쓰여진 질문과 좋은 명령 출력에 +1.
Kaz Wolfe

답변:


11

외장 USB 드라이브의 이미지에서 데이터를 복구하려면 다음 단계가 필요합니다.

  1. 손상된 드라이브 사용을 중지하십시오.
  2. 손상된 드라이브 크기에서 두 배 의 데이터 양을 유지하는 외장 드라이브를 준비 하십시오. 원본 드라이브에서 생성되는 대용량 파일을 저장할 수있는 파일 시스템 형식 (예 : ext4)
  3. 라이브 세션에서 우분투를 부팅합니다 ( "Try Ubuntu" ).
  4. 노틸러스를 사용하여 외장 드라이브를 마운트하십시오.
  5. 외장 드라이브의 마운트 지점을 확인하십시오.
    예를 들어 마우스 오른쪽 버튼 메뉴에서 속성-> 위치를 사용하십시오.
  6. 터미널에서 다음 명령 중 하나를 사용하여 손상된 드라이브의 위치를 ​​확인하십시오.

    sudo fdisk -l
    sudo blkid
    
  7. 손상된 드라이브의 이미지를 만듭니다

    sudo dd if=/dev/sdX of=/mountpoint/DRIVENAME/rescue.dd
    

    sdX손상된 드라이브 (예 :) sda또는 파티션 (예 :) 으로 교체하십시오 sda1. /mountpoint/DRIVENAME/USB 드라이브가 마운트 된 실제 경로로 교체하십시오 .

    손상된 드라이브 ( )가 외장 드라이브의 크기 ( )와 같은 경우 에만 드라이브 를 복제하여 ( ) 복제 된 외장 드라이브에서 데이터 복구를 수행 할 수 있습니다. 여전히 위와 같이 이미지 작업은 훨씬 안전한 방법입니다.sdXsdYsudo dd if=/dev/sdX of=/dev/sdY

    이 시점에서 dd명령을 올바르게 얻는 것이 중요 합니다. 잘못 입력 of=하면 해당 데이터가 모두 손상 될 수 있습니다.

  8. 아래 답변에서 자세히 설명 된대로 라이브 시스템에 TestDisk를 설치하십시오.

  9. TestDisk 제조업체의 훌륭하고 간결한 안내서를 읽고 복구하십시오.

  10. 드라이브가 큰 경우 다른 드라이브 / 파티션을 마운트 하여 복구 된 데이터를 보관하십시오. testdisk에 대한이 마운트 지점에 유의하십시오.
  11. 드라이브 이미지에서 testdisk testdisk 설치 를 실행하십시오 .

    cd /mountpoint/DRIVENAME/
    sudo testdisk rescue.dd
    
  12. 복구 된 디렉토리 및 파일을 백업 드라이브 / 파티션에 저장하십시오 (테스트 디스크에 이미지가있는 위치와 다른 경우이 드라이브의 마운트 지점을 저장 위치로 지정하십시오).
  13. 데이터가 있는지 확인하십시오.
  14. 모든 드라이브를 마운트 해제 하거나 라이브 세션을 종료하십시오.

파일을 성공적으로 복구하지 못한 경우 TestDisk 제품군과 함께 설치된 PhotoRec 를 실행 하여 개별 파일을 복구 할 수 있습니다 (그러나 파일 이름 권한 및 디렉토리는 손실 됨).

손상된 드라이브는 여전히 손대지 않습니다. 위 단계로 실패한 경우 전문 서비스를 통해이 드라이브를 복구 할 수도 있습니다.


1
이것은 거의 데이터 복구를위한 정확한 워크 플로우입니다. 응답 +10
Kaz Wolfe

@takkat : 여기를보세요 . 나는 (선택적) '불쾌한' dd진술을 내 대답과 같은 이미지가있는 문장 으로 변경하기 위해 답을 편집 하고 싶습니다 ..
Fabby

3

무엇보다도 testdisk는 데이터를 복구하는 도구로 작동해야한다고 생각합니다. 그러나 무엇보다도 다른 작업을하기 전에 마지막 데이터 사본을 보호해야합니다. 먼저 여기에서만 읽기 전용으로 마운트하십시오. (ro 옵션으로 다시 마운트 할 수 있습니다. 참조 man mount)

큰 디스크 (2TB 이상)를 가져와 현재 디스크의 전체 이미지를 복사하는 것이 좋습니다. dd if=/dev/sda of=disk-image.dd여기서 / dev / sda는 읽기 전용으로 마운트 된 모든 중요한 디스크이고 disk-image.dd는 새 디스크의 파일입니다. 2TB의 여유 공간이 있는지 확인하십시오.

testdisk는 이미지에서도 작동하며 파티션 테이블을 정렬 할 수 있어야합니다. 질문과 의견으로 되돌아 가면 여기에서 가져올 수 있습니다 ...

읽기 시작하기에 좋은 곳은 다음과 같습니다. http://epyxforensics.com/node/36 여기에서 위에서 제안한대로 dd 사본을 작성하여 사본을 계속 작성합니다.

testdisk, gparted 및 hexedit가 설치된 시험용 컴퓨터가 있습니까?


-1

부여 "extundelte에게" 당신의 파일을 복구 시도


extundelete를 성공적으로 사용했습니다. 그러나 파일이 삭제 된 상황 ( rm -r *매우 부적절한 장소)에있었습니다. @Head Snow의 경우 MBR을 호스로 사용했으며 다른 도구가 필요할 것 같습니다.
DrSAR

파일이 여전히 올바른 위치에 있습니까?
wardr

당신의 설명에서 그들은 여전히 ​​거기에 있어야하는 것 같습니다.
DrSAR

-1

Piriform ( CCleaner 제작자)의 Recuva 를 사용해보십시오 . 도구는 무료입니다. v1.51.1063에서는 ext2 및 ext3 파일 시스템에 대한 지원이 추가되었습니다.

이 도구는 디스크를 검사하고 디스크에서 삭제 된 개별 파일을 복구하려고 시도합니다. 이 도구를 사용하면 심각하게 손상된 디스크에 모든 것을 잃어 버리거나 디스크를 포맷 한 후에 데이터에 의존 한 비즈니스 (즉, Quickbooks 데이터)에 대해 중요한 데이터를 저장했습니다.

Recuva 는 Windows와 Mac에서만 사용할 수있는 도구 라는 것을 알고 있지만 이제는 일반적인 Linux 파일 시스템 형식에서 사용할 수 있으므로 Ubuntu Q & A 사이트에서이 정보가 유용하다고 생각했습니다. 특히 질문에 대한 해결책으로 (지금까지는 해결책을 찾았습니다).


2
AU는 타사 리소스에 대한 링크뿐만 아니라 답변이 주제가 아닌 이유에 대한 긴 설명 인 고품질의 답변을 권장하기 때문에 Recuva를 사용하여 덮어 쓴 파티션 테이블이있는 디스크에서 데이터를 복구하는 방법을 설명 할 수 있습니까?
David Foerster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.