https://suninatas.com/challenge/web29/web29.asp
다음 써니나타스 29번 문제를 풀어보겠다.
29번 문제에 접근했을 때 위와 같은 창이 뜬다. 구해야 되는 것은 다음과 같다.
1. 원인을 찾아서 KEY 구하기
2. 키로거의 절대경로 및 파일명
3. 키로거가 다운로드 된 시간
4. 키로거를 통해 어떤 것을 알아내고자 했는지
[문제풀기 위한 준비]
우선 제공해준 파일을 다운로드 받는다. (무려 3.41GB정도 됨)
파일 확장자명이 안뜨길래 HxD를 통해 Hex값을 살펴보았다.
시작 offset에 EGG 파일임이 명시되어 있다. 따라서 확장자명을 .egg로 추가하였다.
egg로 파일확장자명을 변경하니 여러 파일들이 압축되어 있음을 알 수 있다. (압축 푸니 무려 7.94GB)
여러 파일들이 보이는데 vmware 즉 가상머신으로 열 수 있는 파일들임을 확인할 수 있다.
밑의 파일확장자명에 따른 기능들을 참고하면 가상머신에서 적용 가능한 윈도우 파일임을 알 수 있다.
VMware 주요 확장자에 대한 설명
.log – 가상 머신(Virtual Machine)에 대한 일반적인 활동 기록 파일
.vmdk – 게스트 운영체제(Guest OS)에 대한 실질적인 가상 하드 드라이브(Virtual Hard Drive)
.vmem – 게스트 운영체제에 대한 실질적인 가상 페이징 파일(Virtual Paging File)
.vmsn – VMware에서 생성하는 스냅샷(Snapshot) 파일로, 게스트 운영체제에 대한 상태 저장
.vmsd – VMware에서 생성한 스냅샷 파일에 대한 메타데이터(Metadata) 기록 파일
.nvram – 게스트 운영체제에 대한 바이오스(BIOS) 정보 기록 파일
.vmx – 게스트 운영체제에 대한 설정 기록 파일
.vmss – 게스트 운영체제를 일시 중지(Suspend) 상태로 변경할 경우, 당시의 게스트 운영체제 상태를 저장한 파일
[출처] VMware 주요 확장자에 대한 설명|작성자 하나자바
본 게시글 작성자는 VMware workstation이 설치되어 있어서 이를 활용하였다. (없다면 따로 찾아보고 설치하는 것을 추천)
VMware 에서 열기 위해서는 .vmx파일을 VMware로 열어야 하며 이후 열고 나서 'I copied it' 과 'yes'를 클릭하고 넘어갔다.
가상머신에서 본 설치파일의 시작화면은 위와 같다. 메모장은 자동으로 켜지며 사이트와 같은 문제 설명이 나온다.
[Write Up -1번] : 키 찾기
문제 설명대로 naver.com에 접속하면 사이버 경찰청 차단 화면으로 넘어가는 것을 확인할 수 있다.
여기서 단서가 하나 나왔다. "다른 웹서핑은 잘 되는데 naver만 접속하면 다른 사이트로 넘어간다"
이걸 바탕으로 고민하다가 찾아보니 예전에는 DNS에서 주소를 제공받지 않아도 IP주소가 호스트 이름에 대응되어 저장되어 있기 때문에 서버의 위치를 바로 찾게 해주는 파일이 존재했다고 한다. 이러한 것을 Hosts 라고 한다.
Hosts
호스트 이름에 대응하는 IP주소가 저장되어 있어서 DNS에서 주소를 제공받지 않아도 서버의 위치를 찾게 해주는 파일이다.
- 호스트파일의 역할
- 호스트 이름에 대응하는 IP 주소가 저장되어 있어서 도메인 이름 시스템(DNS)에서 주소 정보를 제공받지 않고도 서버의 위치를 찾게 해준다.
- 호스트 파일 사용 장점
- 인터넷 속도 향상
- 리소스 사용을 줄임
- 보안 문제 예방적 대처
- 호스트 파일 사용 단점
- 사이트 방문이 차단될 수 있다
- 페이지 내에서 부분 차단된 경우 디자인, 속도 문제
따라서 위 파일에서도 Hosts 파일에 장난을 쳤다는 것을 짐작하고 파일을 찾아보았다.
다음과 같은 경로에 hosts파일이 존재하는 것을 확인했다. 그러나 이 hosts 파일이 txt파일인 것이 수상하여 일단 숨겨진 파일들까지 모두 찾아보기로 했다.
단서를 찾기 위해 '숨김 파일, 폴더 및 드라이브 표시' 를 클릭하고, '알려진 파일 형식의 파일 확장자명 숨기기' 를 취소하였다. (제어판 -> 폴더 옵션 -> 보기 순서로 클릭 후 내리면 있다)
그랬더니 hosts라는 파일이 추가로 숨겨져 있는 것을 확인할 수 있었다.
hosts 파일을 메모장으로 열어보니 역시 naver의 DNS 주소에 IP를 장난쳐놓은 것을 확인할 수 있었다.
그리고 그 밑에 문제의 1번에 해당하는 key를 확인할 수 있었다.
✨key : what_the_he11_1s_keey
[Write Up - 2번, 3번] : 키로거 절대경로 및 파일명(소문자) & 다운로드 날짜
2번부터 막막했다. 숨겨진 파일을 찾아야 된다는 것과 어디에 어떻게 숨어있을지 모르겠다고 생각했다.
그 전에 키로거에 대한 정보를 먼저 찾아보았다.
Keylogger
- 컴퓨터가 받아들이는 입력 정보의 기록, 그 중 키보드를 통한 입력 데이터를 중간에 가로채는 해킹을 의미한다.
- 나아가 사용자를 도청하거나, 시스템 카메라로 사용자를 감시하거나, 스마트폰의 마이크를 통해 사용자의 말을 들을 수 있다.
그렇기 때문에 keylogger가 설치된 프로그램의 위치와 그 위치에 어떠한 숨겨진 정보들이 저장되어 있다면 그 프로그램이 키로거이기 때문에 그것을 찾으면 되겠다고 생각했다.
여러 파일들을 만져보던 중 파일 탐색기 -> 최근 위치를 들어가보았다.
etc 파일 경로에 hosts가 있었고 hosts를 통해 naver의 주소에 장난을 친 것을 1번에서 알아냈는데
그 외에 다른 낯선 파일들이 보였다.
가장 위에 있는 폴더를 들어가서 탐색해보니 키로거의 역할처럼 몰래 사용자의 화면을 캡쳐해놓은 듯한 이미지 파일이 여러개 있는 것을 확인하였다. 또한 이 폴더가 '최근 위치' 폴더에 나타난 것 처럼 v196vv8 과 v1valv 와 연관되어 있는 것을 확인하였다.
v196vv8 폴더에 들어가보니 키로거 파일처럼 보이는 v1tvr0.exe 파일을 확인할 수 있었다. 이 프로그램이 실행파일인 것을 확인하였고
위 사진처럼 만든 날짜 또한 확인할 수 있었다.
✨ 2번 답 : c:\v196vv8\v1tvr0.exe
❌ 3번 답 : 2016-05-24_04:26:09 (틀린 답)
# 3번 문제 추가 설명
찾아보니 위 사진에 나온 것 처럼 만든 날짜 혹은 속성에서 봤을 때의 만든 날짜는 정답이 아니었다.
보다 정확한 다운로드 시간을 찾기 위해 과거 프로그램 다운로드 및 웹 접속 기록을 탐색할 수 있는 프로그램을 다운 받아서 해보았다.
BrowsingHistoryView 라는 tool 이었고 다운 링크는 다음과 같다.
https://www.nirsoft.net/utils/browsing_history_view.html
VMware 내부에서 웹 접속이 안되었기 때문에 리얼머신 환경에서 직접 다운로드 받은 후 받은 폴더를 드래그하여 VMware에 넣었다.
폴더 내부에는 다음과 같이 나타나며 exe 파일을 열어 실행시켰다.
위와 같은 창이 뜨는데 모든 로그를 봐야되기 때문에 가장 위에 있는 any time 옵션을 선택한 후 OK를 누른다.
그리고 내리다 보면 keylogger 파일을 다운받은 내역과 다운로드 시간이 보인다. 따라서 정확한 답은
✨ 3번 답 : 2016-05-24_04:25:06
[Write Up - 4번] : 키로거를 통해 알아내고자 한 것은?
마지막으로 키로거를 통해 어떤 것을 알아내려 했는지에 대해 알아보겠다.
해당 키로거가 설치된 파일 경로들을 탐색 중 .dat 파일들이 많이 보였다. txt파일로 열어서 읽기가 가능한 파일이기 때문에 각각의 경로에 존재하는 .dat 파일들을 하나씩 열어보았다.
다른 .dat 파일들은 해당 폴더의 정보들이나 웹사이트 접속 기록이 저장되어 있었다. 그렇게 유의미한 것은 아니라고 판단 되었다.
그러다가 해당 파일 경로의 z1.dat 파일에 keylogger의 역할인 키보드 입력들이 저장되어 있는 것을 확인할 수 있었다.
해당 파일 내부에 위 사진과 같이 "blackkey is a Good man" 이라는 키를 찾을 수 있었고 이게 4번의 답이었다.
✨ 4번 답 : blackkey is a Good man
[최종 Write Up]
인증키 형식 : lowercase(MD5(1번키+2번답+3번답+4번키))
-> lowercase(MD5(what_the_he11_1s_keey + c:\v196vv8\v1tvr0.exe + 2016-05-24_04:25:06 + blackkey is a Good man))
여기서 MD5란?
Message-Digest algorithm 5 의 약자
임의의 길이의 값을 입력받아서 128비트 길이의 해시값을 출력하는 알고리즘
단방향 암호화이기 때문에 출력값으로 부터 입력값 복원은 일반적으로 불가능. 같은 값 입력시 같은 값 출력됨.
따라서 문제는 모든 문자열을 합친 후 MD5 알고리즘을 통해 나온 값을 소문자로 바꾸면 이 문제의 인증키이자 답이 된다.
MD5 사이트 : https://oopspan.com/?path=hem
✨ what_the_he11_1s_keeyc:\v196vv8\v1tvr0.exe2016-05-24_04:25:06blackkey is a Good man
* 주의할 점
2번 답 경로 : C:\v196vv8\v1tvr0.exe -> 인데 실제로 답 입력시 'C:\' 부분을 'c:\'로 입력해야 한다.
-> because. 문제에서 모든 경로는 '소문자'라고 했음.
날짜 표기 방법이 년도부터 초까지 나와있었을 때 yyyy-mm-dd_hh:mm:ss 으로 표기 된다.
lowercase(MD5(~~~)) 에서 MD5 까지는 알겠는데 앞에 lowercase는 무엇인지 헷갈렸었다.
-> but 내가 사용한 사이트는 알아서 소문자로 나오는데 F24D 와 같이 대문자로 나오는 경우는 무조건 소문자로 바꿔서 auth키를 입력하라는 의미였다.
참고
https://blog.naver.com/hanajava/222564505421
https://hackchang.tistory.com/98
https://youngtoad.tistory.com/44
'Forensic' 카테고리의 다른 글
[Forensic] Ann’s AppleTV 문제 풀이 (evidence03) - Network (0) | 2024.07.29 |
---|---|
[Forensic] Puzzle #2: Ann Skips Bail 문제 풀이 (evidence02 3-8) - Network (0) | 2024.07.28 |
[Forensic] FAT32 / NTFS / exFAT 파일시스템 정리 (2) | 2024.07.25 |
[Forensic] zipper (3) | 2024.07.24 |
[Forensic] steganography - Mountains beyond mountains (0) | 2024.07.24 |