나의 비트로커(BitLocker) 랜섬 극복기

in #kr7 years ago (edited)

2016년 11월 어느날 당한 비트코커 랜섬 극복기입니다.

오유,딴지등에 게시글을 올렸었는데 반응이 좋아서 steemit 버전으로 다시 올려봅니다.

 1. 사건의 시작


며칠전 집 컴을 켜니 두둥... 

 C를 제외한 집컴 하드들이 (화면에는 사후에 스샷한 거라 2개지만 당한 하드는 총 3개였다) 비트로커로 암호화 되어 있었다. 내 하드를 비트로커 암호화한 해커는 1 비트코인(오늘 시세로 84만원 정도)을 전송하면 하드를 풀 수 있는 복호키를 준다는 텍스트 파일을 해커이메일과 함께 남겼다. 메일 첫 줄에는 이 영문 글을 번역하기 위한 구글 번역 사이트 주소가 있었다.


다른 자료들이야 크게 중요하지 않다고 해도 D에 있던 우리가족의 모든 사진들을 다시 볼 수 없게 된다는 건 나와 와이프에게 재앙이었다.


와이프는 약간 울먹이는 것 같았다. 

 2. 해결 방법은?

 

 비트로커(bitlocker)는 윈도우 엔터프라이즈 버전 이상에 탑재된 기본 기능으로 중요 자료를 암호화 해주는 기술이다.
키가 없으면 MS도 풀지못한다. T.T 요즘 유행하는 랜섬웨어를 통한 방식은 최신 백신에 의해 탐지될 수 있으나 비트로커는 윈도우 기본 기능이기에 백신이 탐지할 수 없다.

1) 키파일이 하드나 USB 에 있으면 풀 수 있다

내 하드를 이렇게 만든 놈이 하드에 키를 남겨둘리 없다고 생각했지만, 혹시나 해서 관련툴을 가지고 검색해 보았으나 역시나 키는 없었다.

2) 무차별 대입법(brute force) 시도

무차별 대입법은 그냥 키를 1을 넣어서 복호화가 되는지 확인해 보고 안 되면 2 넣고 안 되면 3 넣고 이렇게 계속 해보는 방식이다.

궁금증 1) 비트로커는 최대 몇자리 암호를 받는가? 검색해보니 100자리까지 받는듯하다.

궁금증 2) 관련 툴이 있는가? 컴 앞에 앉아서 하나씩 넣어볼 수는 없는 노릇이었다. 

 https://www.passware.com/kit-forensic/

위의 프로그램과 비슷한 몇가지 툴들이 확인되었다.

 3. 시간은?


 사실 모든 암호는 풀린다. 인증서 암호도 웹사이트 암호도 몰래 숨겨둔 야동 암호도 풀린다. 단, 시간이 오래걸릴 뿐이지...
1자리 부터 100자리까지 각 자리에 가능한 입력은 숫자(10) + 영문대소문자구분(262) + 특수문자 (30) = 92 개. 92 * 92 * 92 *..... * 92 = 92의 100승 정도 되는 것 같았다. 집 컴보다 조금 더 사양이 좋은 회사 컴은 1초당 몇개나 암호를 넣어 체크해 볼 수 있을까 ?(다시 생각해 보니 256bit 암호화이므로 가짓수는 2의 256승이 정확한 것 같다)

 툴을 돌려 보니 초당 5개. 약 292,471,208년 7개월. 길어도 몇 년이면 될 줄 알았는데 좌절이었다. 그냥 1 BTC 송금하고 데이터 복구할까 싶었다. 

 4. 대안? 


GTX 1080이나 타이탄 같은 카드를 PC에 꼽으면 속도가 초당 5에서 320 으로 증가한다고 한다.(관련내용 링크)

그거 살 가격이 1 BTC보다 높다는 게 함정이다. 물론 와이프 눈치 안 보고 합법적인 컴 업글의 기회이기도 하지만 왠지 맞을 것 같았다. 툴 가격도 $995, 생각해야 한다. 속도가 1000배 증가해도 292,000,000년이 292,000년 되는 거 뿐이다.


위풍당당한 회사 서버 8코어 16스레드 제온에서 돌리면 어떨까? 하드이미지(500G)를 회사 서버로 수 시간 동안 올려 떨리는 마음으로 초당 속도를 체크해 본다. 초당 5개. 동일하다. CPU 파워와는 크게 상관없는 것 같다.
3D 일을 하고 있는 친구네 회사 시스템이 GTX 1070을 쓰고 있다는데, 그 친구를 꼬셔 그 회사 3D 렌더링을 잠시 멈추고 전체 시스템에서 각 서버마다 길이 10자리씩 돌려서 해볼까? 1080으로 오픈한 PC방을 하루 빌려 각 PC당 길이 10자리씩 셋팅해 돌려볼까?


여러 생각이 들었지만 그렇게 한다고 해서 292,471,208년이 10년 이내로 줄어들 것 같진 않았다. 그리고 PC방 요금이나 친구를 설득하는 비용이 더들지 않을까?

좌절. 그냥 1 BTC 주는 게 나은 방법인가... 

 5. 문득 예전에 본 납치 영화가 떠올랐다 


 랜섬(ransom)의 뜻도 몸값 아니겠는가. 납치범과의 통화에서 네고시에이터가 협상 전에 생존 증거를 요구하는 그런 영화였다.

 "그래, 해커에게 메일을 보내 생존증거를 요구하면서 스샷을 받아 몇자리 수인지 체크해보자."


스샷에 의한 자릿수 오차가 좀 있더라도 시간은 많이 단축가능하지 않겠는가. 짧은 영어 실력이 부끄러웠지만 메일을 보냈다.

이런 메일은 무시할 줄 알았는데 의외로 답변이 왔다.

"네컴에 접근할 수 없어서 스샷은 보낼수 없다. 돈 보낸 사람들은 모두 암호를 받았으니 걱정말라. 정 원하면 teamviewer id,암호를 주면 원격으로 접속해서 실제 풀리는지 보여주겠다."

는 내용이었다.

오호라... 원격으로 접속해서 키를 넣어본다구....

좀 더 강하게 밀어붙여 보았다.

"이미 해킹당했는데 또 원격으로 연결해 줄 수는 없다. 당장 내가 인식할 수 있는 고유값 ip, mac, 하드 시리얼 번호 같은 것과 함께 키를 모자이크해서 스샷으로 보내라"

답변이 왔다.

"모든 감염 PC 하드를 동일 암호로 했기에 별도로 pc info를 가지고 있지 않다"는 거였다.

오 그래 그럼 내 3개의 하드는 모두 동일 암호이군!!

가슴이 두근 거리며 잃어버린 우리 가족 사진을 찾을 수 있을 것 같다는 생각이 들기 시작했다. 그래 들어와 봐라 퇴근 후 집에가서 teamview id, pw 를 주기로 메일로 약속을 했다.

 6. 가족 사진을 찾기 위해 준비해야 할 것들


 아마도 해커는 원격으로 들어와서 키를 넣고 복호화 하는 걸 보여준 뒤 다시 암호화 할 것 같았다. 

최고의 방법 1) 복호화 하는 순간 랜 케이블을 뽑아버린다. 이미 복호화 하였기에 랜케이블만 뽑으면 해커와는 안녕이었다. 

차선책 2) 예전 보안 프로그램 회사에서 회의를 하다가 누가 질문했다. "DRM 이고 키보드 보안이고 로깅이고 다 좋은데 핸드폰으로 찍는 건 어떻게 합니까?" 몇 억짜리 보안 프로그램 판매가 물거품 될 뻔한 순간이었다.

"아무리 뛰어난 기술이라도 인간의 행위가 고려되지 않으면 물거품 될 수 있다."

어떤 보안 전문가 블로그에서 본 문장인데 너무 오래되어서 출처는 기억나지 않는다.

접속부터 키 넣는 거 촬영하면 암호부분이 실제 텍스트가 아닌 *으로 표시 되어도 자릿수는 알 수 있으니까 희망이 있다. 

그래, 핸드폰으로 찍자.

그리고 모든 입력을 저장해 두는 키로거도 설치해 두자.

암호 필드, 또 원격 모드라서 키로거가 정상 작동할지는 모르지만 일단 설치해 두자.

프로세스 목록을 검사할 수도 있으니 키로거 이름을 svchost.exe로 바꿔서 숨겨두자. 준비완료 후 해커에게 메일을 보냈다.

 7. 해커가 다시 내 컴에 들어왔다


키로거 심어두고,

해커에게 teamviewer id, pw를 메일로 전송하고 한 손엔 핸드폰, 

다른 손은 랜 케이블을 잡고 복호키를 넣는 순간을 기다려 본다.


아뿔사 !!! 해커는 키를 넣기전에 cmd 창을 넣고 shutdown /r 을 먼저 입력한다.


PC는 1분이내로꺼진다. 그리고 teamview에는 원격 컴 재부팅 후 재접속 기능이 있다.


이놈, 만약을 대비해서 부팅을 해서 암호를 입력하려나 보군. 

젠장!!! 재부팅 하면 키로거는 실행중이 아니므로 못 쓰게 된다.
순간적으로 욕이 튀어나왔다.


그런데 재부팅 되기 전 하드 복호키를 copy & paste 로 넣어서 복호화 되는 걸 보여준다!!!

(해당 과정은 키로거가 실행된 상태이었으므로 운이 좋으면 키로거에 해당 값이 저장되었을테고

paste하는 짧은 순간 동영상 촬영에 의해 * 이 몇자리 수 인지 알 수 있다.

해당 자릿수만 가지고 위의  passware kit 을 돌리면 무차별 대입법이라고 해도 해당 시간은 무척 짧을 것이다)

몇 초의 복호 진행과정... 그리고 컴은 재부팅 되었다.


shutdown 명령어가 실행되는 1분의 예약 시간 동안, 복호화 과정만 보여주려는 거군.

복호 과정은 오래걸리기에 재부팅하면 복호화는 실패하고 다시 암호화 상태로 남게된다.


아마도 해커는 이런 요청을 많이 받아본 듯 하다. 그래서 shutdown /r 을 미리 해두었나 싶다.
동영상 촬영을 마치고 랜 케이블 뽑고 PC는 재부팅 되었다.


두근 거리는 마음으로 키로거를 열었다.

두둥... 있다!!!! 복호화 키가!!!!

각각 하드를 복호화 해본다.

해커는 애초에 암호화를 100% 하지 않았다. 그래서 복호화 과정 중에도 폴더와 파일을 볼 수가 있었다.

된다... 된다... 몇년간 촬영한 가족 사진 여기 다 있다. 

 

 해커에게 메일이 왔다.두 글자

"So..."

보여줬으니 송금하라는 뜻일테다. 

 8. 구글 번역기는 너가 돌려라 이놈아


 해커에게 메일을 보내야 되는데 그간 영어로 보내는데 스트레스도 받았겠다. 이럴 때 쓰라고 우리 네티즌들은 "인실좆"이라는 말을 만들지 않았을까?


아쉽게도 "인실좆"은 구글 번역기가 훌륭하게 번역해주지 못했다. "인생은 실전이야 좆만아"를 구글 번역기에 돌려보니 이렇게 해석해주었다.

"Life is practical Oh jotman"

아마도 "...X만아"로 끝나는 한글 문장이 "아"로 끝나서 감탄사로 인식되어 번역문에 "Oh" 가 들어갔나 보다. 번역문에 내 의도가 100% 전달될지는 모르겠으나 "....Oh jotman" 속은 무척 시원했다.


한글로 "인생은 실전이야 좆만아"를 보냈다. 


실제 사건이며 다른 커뮤니티에 글을 올렸는데 이글을 보고 저와 같은 해커에게 당하신 분이

위의 복호화 키를 넣으셔서 무사히 데이터를 복구 하셨다고 연락 받았습니다  :)

생각났을때 백업하시고 궁금한 점 남기주시면 아는 범위 내에서 댓글 달아보도록 하겠습니다. :)

Sort:  

정말 대단해요! 당신의 지식에 감탄하고 갑니다.

뉴비는 언제나 환영!이에요.
팁! : 작성한 글의 보상은 7일 후에 들어온다고 하네요. 이때부터 스팀잇이 재밌어지기 시작하죠.
5.21% 보팅
현재 보상량 : [ 평균 - 0.17 / 1개 / 합계 : 0.17 ]

  • kr-newbie 보안관 봇! (beta 0.5.0 - 2017/07/17)

반갑습니다~ 와우 그림 하나 잘못 넣어서 수정하려고 하는데 엄청 힘드네요 ^^;;

와 이건 엄청 좋은글이네요;; 풀보팅 리스팀 합니다

감사합니다~ 덕분에 풀보팅과 리스팀이 뭔지 배우게 되었습니다
감사합니다~~

ㅎㅎ아 이런 방법이.. 대단하신 창의력이십니다. 놀라고 갑니다!

감사합니다.
막막해도 차근히 생각해보면 방법은 생기는 것 같습니다.

[kr-newbie를 위한 랜덤 보팅!!]This post received a 88.32% upvote from @jongeun! For more information, click here!

이런 봇도 있군요 와우... 스티밋 재밌는 곳입니다 : ) 감사합니다~

다행입니다. 정말 흥미진진하게 읽었어요..ㅎㅎㅎ
좋은 정보 감사드립니다^^

넹 항상 백업하세요~~

ㅠ,ㅠ
한글인데 저만 이해 못하나요???? ㅠ.ㅠ

간략하게 요약해봅니다 : )

  1. 해커가 제 컴에 몰래 들어와 하드디스크 암호 걸어놓음
  2. 방법이 없어 해커에게 연락해서 "너 정말 암호 풀수 있는거야 ?" 라고 꼬심
  3. 해커가 암호를 풀때 키로거(키보드 입력을 텍스트 파일로 저장하는 프로그램) 를 몰래 설치해서 암호푸는 방법 알아냄
  4. 돈 달라는 해커에게 "인생은 실전이야..." 메일 보냄 : )

대박입니다.. 해커도 완벽하지는 않군요 ㅋㅋ
그나저나 그런 방법까지 생각해두시다니 정말 대단하십니다 ㅠㅠ
저는 그저 쿨하게 포맷만 하려고 생각해 뒀거든요.

네..해커는 돈이 목적이므로
랜섬 당하게 되시더라도
복구가능 증거 요구,유인한번 시도해보세요~~ : )
단 저는 비트로커라서 운이 좋은 경우였고
다른 랜섬 종류라면 다른 해결책이 필요할 수도 있습니다.

와! 이런말 하면 해킹 당하신 분에게 실례겠지만
흥미진진하네요..
백업의 생활화.. 다시 한 번 경각심을 갖게 됩니다!

한수 배웠습니다. 이렇게 대처할 수 도 있군요.

안녕하세요. 스팀잇 가입하신 것을 진심으로 환영합니다. KR 일일 Top10 랭크에 오셔서 순위 랭킹도 구경하시고, 활동중인 큐레이터분들에게 좋은 정보도 얻어가시기 바랍니다.

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 63071.06
ETH 3121.31
USDT 1.00
SBD 3.84