얼마전 사용중인 qnap nas가 렌섬웨어에 걸렸다.

당황해서 이것저것 알아보다가 손을 놓고 있었는데,

qnap 측에서 파일복구방법을 공지했다.

 

Qlocker 공격에서 파일을 복구하는 방법

당황스러운 것은 동일한 크기의 복구디스크를 준비해서 외장하드로 연결해야 한다는 것이다.

 

그래서.

마늘을 설득해서 8T 하드를 하나 더 샀다 ㅠ.ㅠ

(복구하고 되팔이로 금전적 손해를 없게 하겠다는 계획을 호소해야 했다. )

 

더보기

예전에 1T를 쓰던 외장하드가 있어서 하드만 사면 교체하고 사용할 수 있을 줄 알았는데

너무 오랜만에 꺼내서였는지... 전원을 연결하자마자 콘덴서가 터지면서 

외장하드 케이스가 망가지고 말았다.

 

그래서, 외장하드를 추가로 구매하였는데, 구매하면서 알게된 것이

8T 사용이 가능한 외장하드 케이스를 고려해서 구매했어야 한다는 거다. 

여러가지로.. 그냥되는게 없다.

 

8T HDD를 외장하드 케이스에 연결하고 안내에 따라 진행하는데, 

데모영상도 참고하면서 하니 큰 어려움이 없이 진행되었다.

 

그런데...


QRescue 설치.

NAS에서는 제공하는 공식 앱이 아닌 렌섬웨어 복구용 프로그램을 별도 배포했다. 

그래서 QRescue 라는 프로그램을 클라이언트 PC에 다운로드 받아서 

NAS의 AppCenter의 사용자 설치 기능으로 QRescue를 설치한다.

(외장하드가 연결되어야 앱이 설치된다.)

 

1. 외장하드설치, 앱설치, 복구 폴더 생성은 가이드 참고.

 

그런데, 렌섬웨어 파일 복구를 위해 별도 제공하는 QRescue 프로그램을 실행하니 

가이드와 다른 메뉴가 나왔다. 

  +-------------------------------------------------------------------------+
  |  Console Management - Main menu                                         |
  |                                                                         |
  |  1: Show network settings                                               |
  |  2: System event logs                                                   |
  |  3: Reset to factory default (password required)                        |
  |  4: Activate/ deactivate a license                                      |
  |  5: App management                                                      |
  |  6: Reboot in Rescue mode (w/o configured disk)                         |
  |  7: Reboot in Maintenance Mode                                          |
  |  Q: Quit (return to normal shell environment)                           |
  +-------------------------------------------------------------------------+
  >>

이것저것 찾아보다가 Q > Y 를 입력해 보니 가이드에 나오는 프롬프트가 나왔다. ㅡ.ㅡ

가이드에 나온 프롬프트 : [admin@서버 qrescue] #

 - 특이한 것은 다른 계정으로 로그인한 크롬 브라우저에서 QRescue를 조작하니 admin계정으로 로그인한 크롬 브라우저에 동일하게 적용이 되었다.

 - QRescue 프롬프트에서 exit를 실행하니, 서비스가 종료되어 버렸다. 결국 설치한 앱을 정지한 뒤 앱을 다시 시작하고, 실행하니 복구가 됐다.

 

2. photorec 명령으로 렌섬웨어 파일을 복구하자.

 - 상하 방향키로 복구할 디스크 논리디스크 선택, 좌우 방향키로 Proceed 선택하여 Enter.

복구 디스크 선택 후 Proccessd 가 선택되지 않으면(Enter로 진행되지 않을 경우)

photorec를 다시 실행하고 선택한다. (쓰레드가 끊기는 현상인듯)

[Whole] 선택

[..] 항목을 선택하여 share 폴더까지 상위로 폴더로 이동.

 - share 폴더에서 외장하드의 레이블로 설정한 rescue 항목으로 이동하여 복구 대상 폴더 선택

 > /dev/mapper/cachedev1 > /share/rescue/recup1

 (이리저리방황하다가 '/share/external/DEV3301_1/recup1/' 잘못된 경로를 지정하면 실패)

 - 복구파일을 위치할 대상 폴더까지 이동하여 'C' 입력

첫번째 디스크로 OS 디스크를 선택했는데, 체크하는데 17시간? 부터 줄어들더니

 - 8시간 40분 소요된다고 표시되었다.

자고일어나니 이렇게 정리되어 있었다.

복구대상 검사가 끝나고, 파일이 옮겨진 것 같다.

다음 스텝 준비


3. QRescue 를 이용하여 photorec 에서 검색한 파일을 복구한다.

 - qrescue.sh

 > recup1 폴더에 restore(번호) 폴더를 생성하여 파일을 복구함.

여러 디스크가 존재할 경우 디스크를 선택한다.

복구 로그가 표시된다.

복구대상 취합 폴더  : recup1

복구된 파일 확인 : restore1

파일들이 복구됐다. qrescue 를 실행하니 폴더구조까지 유지되며 복구가 되었다. 

 - 복구파일과 원본파일.. 이중으로 용량을 차지하는건가?

* 복구파일 위치
rescue > recup1 > recup_dir.1 > 복구파일 위치 (일괄파일명?)

* 원본 스토리지 구조
rescue > restore1 > share > CACHEDEV1_DATA > 이하 원본 스토리지 구조(원본파일명)

하지만, 일부 파일이 누락된 것을 확인했다.

 

불안한데.. (일단 다 확인할 수는 없고)

 

복구된 파일을 원래 폴더에 이동하고

렌섬웨어에 걸린 파일을 삭제한 뒤

[!!!READ_ME.txt] 파일을 삭제하는 작업을 진행해야 한다.

 

... 귀찮다. 

파일병합 프로그램을 만들어보자.

 

만들었다.

restore1 폴더에 복구된 파일을

 - 원래 폴더로 이동하고,

 - 감염파일을 삭제한 뒤 

 - 복구폴더가 빈상태가 되면 폴더를 지웠다.

(프로그램을 돌리니 일부 빈폴더가 남아서 수동으로 지워줬다.)

 

한 싸이클을 돌고나니, 복구되지 않은 파일들을 대상으로

한번 더 돌리면 복구될지.. 궁금해졌다.

 

돌려보자.

 - 자고일어나니 60만건이나 또 취합되었다. 

 > 반복하면 다 복구할 듯 한데.. 한번에 8시간씩 걸리니 언제 끝나려나 ㅍ

(그래도 걸렸을때의 막막함 보다는 희망적이다. 파일배치 프로그램도 만들어보고. ㅋ)

1번 스토리지 2차 복구결과

679058 files saved in /share/rescue/recup1/recup_dir directory.
Recovery completed.

 > 541450건(1차) + 679058건(2차) = 총 1,220,508 건

오류가났다.

파일이 없다고 오류가 났다.

 - '/share/rescue/recup1/recup_dir.1059/f3783530944.jpg'

 > 해당경로에 파일이 없었다. 프로그램 파일만 있는듯 한데... 뭘 잘못했지?

... 설치한 앱을 정지하고 실행한뒤 photorec를 실행해봤다.


여기까지 하고, QNAP에 서비스지원 티켓을 요청했다.

답변이 오면 다시 시도해보자.

왔다.

- 실망이 크다. 복구시 암호를 추출하지 않았던거구나...

 

 

 


같은 디스크 재실행은 포기하고,

두번째 디스크를 실행했다.

 

67시간이 걸린다고?

220시간이 걸린다고? ㅡ.ㅡ

시간이 널을 뛰는구나...

 

두번째 디스크의 복구는 71038 파일이 복구되었단다.

 

복구대상으로 생성된 'recup_dir.1' 패턴의 폴더들이 

/share/rescue/recup3 에 생성이 되었어야 하는데

/share/rescue 폴더에 잘못생겼다.

 - 생성된 143개의 폴더를 recup3폴더로 이동하니 qrescue.sh가 실행되었다.

 

아마 C 를 눌러서 실행하는 화면에서 

/. 항목이 선택된 상태로 C를 눌러 상위 폴더에 생성된 것인가 싶어

다시 /.. 항목이 선택된 상태로 시도를 해보았다.

 

.. 이래저래 다 실패.

 


QRescue 서비스를 정지했다가 다시 실행해서

첫번째 디스크부터 다시 실행해본다.

 

여기서 오래걸리는걸 보니..될라나?

... 는 개뿔... 실패

 

 

 


두번째 스토리지 (sub)를 복구하며

qrescue.sh 실행시 3번을 선택하니 복구가 시작되었다.

... 그런데, 하나걸러 하나 skip 하는듯...

 

 


세번째 디스크

 

아.. 오래걸린다.

 - 복구가 된다니 좋은건가. 그래도 28시간은.. 좀..

 

 

복구를 해보자

... 뭐꼬? 왜 안되나?

 

'nas' 카테고리의 다른 글

QNAP 렌섬웨어 복구후 파일정리  (4) 2021.10.30
QNAP HDD 교체.  (0) 2021.02.21

+ Recent posts