CyberChef 사용법

CyberChef 사용법

1. Overview

이 글에서는 데이터 변환 작업에 자주 쓰이는 유용한 툴 CyberChef 를 사용하는 방법에 대해 설명하겠다. 악성 코드 분석 업무를 하다 보면 암호화된 데이터를 복호화하거나, 특정 방식으로 인코딩된 데이터를 해석해야 하는 경우가 종종 발생한다.

이런 식으로 변환된 데이터는 이미 알려진 알고리즘을 사용하기 때문에 대부분 Python 모듈로 구현되어 있어 쉽게 코드를 구현할 수도 있지만, 굳이 매번 귀찮게 우리가 구현할 필요 없이 CyberChef 를 이용하면 손쉽게 데이터를 변환할 수 있다.

2. Download & Install

Github 의 CyberChef repository 에서 Offline 버전을 다운로드할 수 있다. 적절한 버전의 Assets 탭에서 CybreChef_{버전}.zip 파일을 클릭해 다운로드하자.

CyberChef 레포지토리

또는 CyberChef 온라인 페이지의 좌측 상단의 Download CyberChef 버튼을 클릭하여 다운로드할 수도 있다.

CyberChef 온라인 페이지 화면

Download CyberChef 버튼을 클릭하면 다음과 같은 설명 문구가 출력된다. DOWNLOAD ZIP FILE 버튼을 클릭하면 다운로드가 시작된다.

CyberChef 오프라인 버전 다운로드 화면

다운로드된 ZIP 파일을 압축해제하면 안에 CybreChef_{버전}.html 파일이 존재한다. 파일을 더블 클릭해 브라우저로 열면 오프라인 상에서 CyberChef 기능을 이용할 수 있다.

CyberChef.html 파일

3. Usage

CyberChef 는 크게 Input, Output, Recipe, Operations 탭으로 나뉜다.

  • Input : 변환시킬 입력 값.
  • Operations : 데이터를 변환시킬 Recipe 목록.
  • Recipe : 현재 적용 중인 Recipe 목록.
  • Output : 입력된 Input 데이터에 Recipe 를 적용한 결과.

예를 들어 "this is test txt." 라는 문자열에 base64 인코딩, XOR 연산을 한 후, Hex 값으로 변환시키고자 한다고 가정하자.

우선 최초 입력 값은 "this is test txt." 이므로 이 값을 Input 탭에 입력한다. 입력 값에는 길이 제한이 있기 때문에 너무 큰 데이터를 입력하면 Output 에서 제대로 출력되지 않을 수 있다. 입력 데이터가 너무 큰 경우 Input 탭의 우측 상단의 Open file as input 버튼을 클릭하여 파일을 입력 값으로 업로드하자.

Input 탭

그 다음, Operations 탭에서 base64 인코딩, XOR, Hex 값 변환과 관련된 Recipe 들을 찾는다. 상단의 검색창에 값을 입력하여 쉽게 찾을 수 있다.

각 Operation 에 마우스를 올리면 어떤 동작을 수행하는지 간단하게 설명해준다.

Operations 탭

찾은 레시피들을 드래그하여 중앙의 Recipe 탭으로 옮기면 Input 의 데이터를 위에서부터 차례대로 적용한다.

Recipe 탭

Recipe 가 적용된 데이터들은 Output 탭에 출력된다. Output 탭의 우측 상단의 Save output to file 버튼을 클릭하면 Output 값을 파일로 생성하여 다운로드할 수 있고, Copy raw output to clipboard 를 선택하면 클립보드에 저장하여 붙여넣기를 할 수 있다.

Output 탭

위 과정을 한 화면에 보이면 다음과 같다.

예시 적용 화면

4. Example

4.1 Hex 값을 바이너리로 변환

From Hex Operation 을 선택하고, 필요에 따라 Delimiter 옵션 값을 선택한다. Delimiter 옵션 값은 기본적으로 Auto 로 설정되어 일반적인 구분자들은 모두 인식한다.

다음은 From Hex Operation 을 이용하여 Hex 값을 텍스트로 변경하는 예시다.

Hex 값 바이너리 변환 예시

4.2 Base64 디코딩

From Base64 Operation 을 선택한 후, Input 값에 대응하는 적절한 옵션을 선택한다.

다음은 예제 Base64 문자를 텍스트로 변환하는 예시다.

Base64 디코딩 예시

4.3 XOR 디코딩

XOR Operation 을 선택한 후, Key 값과 옵션을 적절하게 선택한다.

다음은 예제 Hex 값을 0x55 로 XOR 연산한 예시다.

XOR 디코딩 예시

5. References