본문 바로가기

Forensic Chellenge

WhiteHat 2015 write up

1. 박부장 PC의 문서를 암호화한 랜섬웨어 파일은 무엇인가요?(전체 경로)

 

문제 파일을 받아서 압축을 해제해 보면 DISKDUMP.vmdk 파일과 MEMDUMP 파일이 존재 합니다.

 

메모리 덤프 파일을 통해서 프로세스를 좀 확인해 보겠습니다.

profile이 Win7SP0x64을 사용하면 될 것 같습니다.

프로세스 및 하위 프로세스를 확인하기 위해서 여러 프로세스 플러그인 중에서 pstree를 사용해 보겠습니다.

위의 프로세스 트리를 확인해 보면 아래와 같다는 것을 알 수 있습니다.

explorer.exe

└ iexplore.exe

└━ Hwp.exe

└━━ temp.exe

└━━━ cmd.exe

└━━━━ OfficeHelp.exe

인터넷 익스프로러 하위에 Hwp.exe 라는 프로세스가 돌고 있습니다.

또한 그 하위에도 cmd.exe 와 같이 이상한 프로세스들이 돌고 있기에 조금 수상한 프로세스 라는 것을 알 수 있습니다.

 

MEMDUMP파일과 같이 들어있던 vmdk 파일을 windows 7 vmware에 마운트 해서 부팅시켜 보면 아래와 같이 컴퓨터 시작시에 특정 메시지가 출력합니다.

시작하자마자 "돈을주세요~!" 메시지 출력 되는 것으로 보아 자동 시작 프로그램에 등록이 되어 있을 것입니다.

자동 시작 프로그램 등록 리스트는 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 레지스트리 키에 들어 있습니다.

직접 레지스트리 편집기에 들어가 보면 아래와 같습니다.

앞서 프로세스에서 확인 했었던 OfficeHelp.exe 가 눈에 보이는 것 같습니다.

 

explorer.exe

└ iexplore.exe

└━ Hwp.exe

└━━ temp.exe

└━━━ cmd.exe

└━━━━ OfficeHelp.exe

 

OfficeHelp.exe 프로그램이 돈을 요구하는 프로그램이기 때문에 temp.exe 가 cmd.exe 를 실행하고 나서 OfficeHelp.exe 프로세스를 실행 하는 것 같습니다. 그렇기 때문에 temp.exe 프로그램이 랜섬웨어라는 것을 알 수 있습니다.

 

저희는 vmdk 파일을 가지고  FTK Imager를 이용해서 temp.exe 프로그램의 경로를 찾으면 됩니다.

 

답 : C:\Program Files (x86)\Hnc\HOffice9\Bin\temp.exe

 

 

2. 박부장 PC에서 랜섬웨어에 의해 암호화된 파일을 모두 몇개인가요?

 

랜섬웨어에 의해서 암호화된 파일의 공통점은 대부분 확장자 뒤에 특정 시그니쳐가 붙습니다.

C:\Users\KAB\Downloads\ 폴더 하위에 확장자_enc 가 붙어 있습니다.

[root]를 시작으로 *.*_enc 로 검색을 해보면 암호화된 파일들이 출력될 것 입니다.

총 70개의 파일이 있습니다.

이대로 답이 총 70 이라면 좋았겠지만 _enc 붙은 파일중에서 암호화가 된것이 아닌 일반 파일인 것도 있습니다.

 

hxd 프로그램을 이용해서 파일을 해결해 보면 아래와 같습니다.

↑ 랜섬웨어로 인해 암호화된 파일

 

↑ 확장자_enc 라는 이름을 하고 있지만 내부 내용은 멀쩡한 파일

70개의 모든 파일을 다 확인해 보면 EXCEL12.XLSX_enc, PWRPNT12.PPTX_enc, 업무 협조 서신.docx_enc 파일 총 3개가 일반 파일이였다.

 

답 : 67

 

 

3. 랜섬웨어가 사용한 암호 알고리즘과 모드는 무엇인가요? (암호 알고리즘_모드)

 

먼저 암호화한 프로그램은 삭제된 temp.exe 에서 진행을 합니다.

temp.exe 프로그램은 삭제가 되었고, 금전을 요구하는 프로그램인 OfficeHelp.exe 프로그램에 암호화된 파일들을 복호화 할수있는 로직이 있을 것이라고 생각을 했습니다.

 

먼저 OfficeHelp.exe를 찾아보면 앞서 찾은 경로처럼 C:\ProgramData\Microsoft Help\OfficeHelp.exe 에 위치합니다.

OfficeHelp.exe 를 확인해 보면 ZIP로 열어볼 수 있도록 되어있습니다.

pyc 파일이 보이는 것으로 보아 python으로 만든 exe 파일인 것을 알 수 있습니다.

해당 코드를 살펴 보면 사용한 암호 알고리즘과 모드를 확인 할 수 있지만 눈에 보이는 파일들은 import 되는 모듈들 입니다.

즉, main 함수가 없다는 것을 의미합니다. Py2ExeDumper.exe 를 이용해서 main 함수 코드와 import 모듈 코드를 얻을 수 있습니다.

 

설치 URL :  https://sourceforge.net/projects/py2exedumper/

사용법은 Py2ExeDumper.exe <EXE FILE NAME> 입니다.

총 2개의 파일이 Extract 가 되는데 하나는  import 모듈 함수 코드들이 들어있는 library.zip 파일 다른 하나는 PYTHONSCRIPT  파일입니다.

 

PYTHONSCRIPT 파일은 주요한(main) 함수 소스코드가 들어있습니다.

아래의 소스코드를 이용해서 PYTHONSCRIPT 파일에서 pyc 파일을 추출 할 수 있습니다.

파이썬 2를 이용해서 위의 코드를 실행 해 보면 아래와 같습니다.

extract 된 파일은 총 3개로 pyc 확장자를 가지고 있습니다.

pyc를 py로 변환해주는 Easy Python Decompiler를 이용해서 변경해 보면 아래와 같습니다.

출력된 소스코드를 확인해 보면 아래와 같습니다.

↑ 0.py == boot_common.py
↑ 1.py == zipextimporter
↑ 2.py == Popup.py

Popup.py 코드를 보았을 때 암호화 함에 있어서 모드를 사용하지 않은 것으로 보아 Default 모드를 사용한 것 같습니다.

 

import 모듈들이 있는 libary.zip 을 압축해제 후에 내용을 살펴 보면 아래와 같습니다.

Crypto 폴더 하위를 잘 살펴 보다가 ~\Crypto\Cipher\Blowfish.pyc 파일을 발견했습니다.

 

해당 파일을 디컴파일후 확인해 보면 아래와 같습니다.

Default MODE는 ECB 라는 것을 알 수 있고, 해당 파일명과 Popup.py를 보았을 때 Blowfish 라는 문자열이 발견됩니다.

 

Blowfish 는 아래와 같은 내용을 담고 있습니다.

즉, 암호화 알고리즘 중 하나라는 뜻이므로, 암호화 알고리즘은 Blowfish 입니다.

 

답 : Blowfish_ECB

 

 

4. 랜섬웨어 파일은 어디에서 다운로드 되었나요? (원본 파일 URL 전체 경로, 프로토콜 포함)

 

프로세스의 실행 순서를 다시 확인해 보면 아래와 같습니다.

 

Hwp.exe 프로세스를 통해서 어떠한 프로세스로 인해서 악성프로세스가 실행 됬는지 확인해 보면..

 

explorer.exe

└ iexplore.exe

└━ Hwp.exe

└━━ temp.exe

└━━━ cmd.exe

└━━━━ OfficeHelp.exe

 

Hwp.exe 프로세스를 이용해서 어떠한 악성 파일을 실행함으로서 temp.exe -> cmd.exe -> OfficeHelp.exe 가 실행 된 것을 알 수 있습니다.

그렇기 때문에 Hwp.exe 프로세스가 어떠한 파일을 실행 했는지 확인해 볼 필요가 있습니다.

 

Hwp.exe 프로세스는 참고지침.hwp 라는 파일에 의해서 실행이 된 것을 알 수 있습니다.

 

참고지침.hwp 파일을 메모리덤프에서 찾아서 추출한 뒤에 해당 파일에서 어떠한 경로로 temp.exe 파일을 다운 받게 됬는지 찾으면 될것 같습니다.

filescan 플러그인을 이용해서 파일의 가상 주소를 추출 해보겠습니다.

0x000000013cf11b50 와 0x000000013fa38490 는 파일 카빙이 안되는 주소 이기 때문에 맨 아래의 주소를 이용해서 카빙을 진행 하면 될 것 같습니다.

해당 파일을 virustotal.com에 넣어서 확인해 보니 ShellCode 를 포함 하고 있는 악성 프로그램입니다.

악성 프로그램의 프로세스인 temp.exe 와 관련된 프로세스는 Hwp.exe 밖에 없기에 temp.exe 프로세스에 해당하는 랜섬 웨어 파일을 다운로드한 Downloader는 Hwp.exe 프로세스와 관련있는 "참고지침.hwp" 파일입니다.

 

Hwp.exe 프로세스에 존재 하는 다운로드 경로를 한번 찾아보면 아래와 같습니다.

이제 PID 3336 에 해당하는 프로세스덤프를 떠보겠습니다.

이제 http:// 를 검색해서 어떤 다운로드 경로가 있는지 확인해 보겠습니다.

http://poworks.com/wp-includes/theme-compat/post.gif 라는 주소가 눈에 보입니다.

 

답 : http://poworks.com/wp-includes/theme-compat/post.gif

 

 

5. 랜섬웨어 파일을 다운로드한 다운로더(Downloader)는 무엇인가요? (파일명.확장자)

 

랜섬웨어 파일을 다운로드한 다운로더는 4번 질문에서 확인한 것 처럼 Hwp.exe 프로세스와 관련있는 참고지침.hwp 파일 입니다.

 

답 : 참고지침.hwp

 

 

6. 다운로더(Downloader)는 박부장 PC에 언제 다운로드되었나요? (YYYY-MM-DDThh:mm:ss)

 

해당 질문에서 이야기 하는 다운로더는 랜섬웨어 파일을 다운로드한 파일을 의미 하기 때문에 참고지침.hwp을 지칭 합니다.

해당 파일은 프로세스 트리를 보면 iexplore.exe 프로세스가 Hwp.exe 프로세스를 생성 시켰습니다. 

 

explorer.exe

└ iexplore.exe

└━ Hwp.exe

└━━ temp.exe

└━━━ cmd.exe

└━━━━ OfficeHelp.exe

 

iexplore.exe 프로세스는 Windows internet Exploerer 를 의미 하기 때문에 인터넷 익스프로러 에서 다운로드 받았을 가능성이 크기 때문에 IE 관련 캐쉬  데이터를 살펴 봐야 할 것 같습니다.

 

IE Cache는 "C:\Users\KAB\AppData\Local\Microsoft\Windows\WebCache" 폴더에 존재 합니다.

IECacheViewer 를 이용해서 해당 폴더를 열어 보도록 하겠습니다.

다운로드 된 시각은 아래와 같습니다.

 

답 : 2015-09-25T15:22:24

 

 

7. 다운로더(Downloader)는 어디에서 다운로드 되었나요? (다운로드 URL 전체 경로, 프로토콜 포함)

 

6번 질문에서 풀이한 내용에서 찾아 볼수 있습니다. 

IECacheViewer에서 찾을 수 있는데 내용은 아래와 같습니다.

답 : https://files.jandi.com/files-private/11278028/142fc17cddb52a1749b66935d2184bae.hwp/download/

 

 

8. 박부장 PC의 문서를 암호화한 키가 저장되어 있는 데이터베이스명, 테이블명은 무엇인가요? (DBNAME_TABLENAME)

 

랜섬웨어로 인해 암호화된 파일들을 암호화 할때 사용한 암호화 키가 저장 되어 있는 DB명과 Table명을 찾는 문제입니다.

 

문제의 흐름상 암호화 키를 담고있는 DB파일을 암호화대상 PC 내부에 넣어두진 않았을 것입니다.

계좌번호를 요구하는 OfficeHelp.exe 프로그램의 main 소스코드를 확인해 보면 어떠한 URL로 입력한 계좌 번호를 전송하는 것을 확인 할 수 있습니다.

http://poworks.com/wp-includes/SimplePie/Cache/Key.php?s03p08=%s&a88d11=%s 를 확인해 보면 GenerateSignatrue() 로 생성된 문자열 과 입력한 계좌번호가 s03p08과 a88d11 파라미터로 값이 전달됩니다.

 

wireshark 프로그램을 이용해서 계좌번호를 위의 주소로 전송하는 패킷을 한번 잡아 보겠습니다.

전송을 해보면 패킷은 아래와 같습니다.

No.8번 패킷의 info를 확인해 보면 GET방식으로 전달 하는 것을 확인 할 수 있습니다.

TCP Stream 을 확인해 보면 아래와 같습니다.

아마도 암호화 키가 들어있는 DB 파일은 poworks.com 사이트 서버에 들어있을 것 같습니다.

사이트에 접속해 보면 아래와 같이.. 서버가 닫혀 있습니다.

답 : 풀이 불가X

 

 

9. 박부장 PC의 문서를 암호화한 키는 무엇인가요?

 

8번 문제 처럼 poworks.com 서버가 닫혔기 때문에 풀이가 불가합니다.

 

답 : 풀이 불가X

 

 

10. 박부장 PC의 IP주소는 무엇인가요?

 

PC의 IP 주소는 메모리 덤프나 vmdk 파일에서나 확인이 가능합니다.

memory dump 에서 확인해 보면 netscan 플러그인을 이용해서 출력해보면 아래와 같습니다.

10.10.10.135 인것을 알 수 있습니다.

 

답 : 10.10.10.135

 

 

비고

8번과 9번문제를 구글링을 통해서 알아보면 해당 서버의 DB에 Blind SQL Injection을 진행해서 DB파일과 내부 내용을 알 수 있습니다.

 

암호화 키도 d8f13049cda1b0fa73d5707c750622b7 라는 것을 알 수 있습니다.

 

암호화 키를 이용해서 암호화된 파일을 다시 복호화 하는 코드를 작성해 보면 아래와 같습니다.

해당 코드를 이용해서 복호화를 완료 할 수 있습니다.

 

코드에서 주된 내용은 PK 시그니처를 가지고 있는 파일을 제외한 *.*_enc 파일을 BFCipher(decrypt_key) 를 이용해서 복호화후 복호화된 파일을 파일입출력을 이용 하는 것입니다.

'Forensic Chellenge' 카테고리의 다른 글

[CFReDS Project] Hacking Case  (0) 2020.04.12
[CFReDS Project] DFR-01-RECYCLE(FAT) : Recover one file from emptied recycle bin  (0) 2020.04.08
OtterCTF 2018 write up  (0) 2020.04.03
HDCON Track 1 write up  (0) 2020.03.12
CCE 2017 write up  (0) 2020.03.09