Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

UoJ

문제에서 주어진 여러 개의 Flag 찾고, 사용된 기법 찾기 본문

HawkIS

문제에서 주어진 여러 개의 Flag 찾고, 사용된 기법 찾기

WoonJu 2023. 1. 15. 03:31

이번 과제는 이미지 파일과 텍스트 파일에 주어진 flag를 찾는 것이다.

이번 과제의 파일

 

먼저, 텍스트 파일을 열어본다.

열어보려고 하니 파일 두개 다 암호가 걸려있다.

 

암호를 풀어보려 구글링을 열심히 해보았다.

구글링 뿐만 아니라, 프롬프터로 암호를 풀어내는 방법도 써보았다.

명령어1 : run\zip2john.exe flag.zip > zip.hashes

명령어2 : run\zip2john.exe Test.zip > zip.hashes

명령어 두 개를 사용하여 암호를 해제 하는 방법인데 풀리지 않았다...

액세스 조차 되지 않아서... 계속 구글링을 해보았다.

사실 파일 암호화를 풀기 위해 구글링 한 시간만 많이 잡아먹은 것 같다.

 

그렇게 알아낸게, 툴을 이용하여 암호를 푸는 것이다.

아무리 문서 암호를 푸는 것을 구글링을 해도 나오는게 툴을 이용하여 푸는 방법이다.

 

바로 Advanced Archive Password Recovery 라는 툴을 이용하는 것이다.

이걸 다운을 하고 이미지 문제의 파일을 업로드 해보겠다.

 

다운을 받으면 보이는 화면이다.

여기서 파란색 박스의 Open을 클릭하여 파일을 불러온다.

 

업로드 함과 동시에 암호가 풀렸다.

파란색 형광펜으로 표시한 번호가 암호이다. (1324)

 

암호 입력란에 1324를 입력 후 파일을 열어준다.

 

이렇게 하나의 플래그를 찾게 된다.

 

이 플래그를 해석해보면, Do you know brute force?

이를 직역하면 '무차별 대입 공격을 아니?' 이다...

 

무차별 대입 공격이란, 인증 정보를 알아내기 위해 공격자가 반복적으로, 체계적으로

매번 다른 사용자 이름과 비밀번호를 입력하는 방식을 말한다.

즉, 어떤 방법을 이용해서 암호를 알아낸다는 것이다.

무차별 대입 공격은 나중에 설명할 은닉 기법에 포함된다.

이 공격은 원격 네트워크의 디바이스를 대상으로 비밀번호, 비밀 문구, 사용자 이름, PIN과 같은

개인 정보를 획득하기 위한 공격에 자주 사용된다고 한다.

 

너무 복잡하게 생각해서 비밀번호를 알아내는데 꽤 오랜 시간이 걸렸다...

이렇게 암호를 알아내었으니, flag.zip 파일도 열어보도록 하겠다.

 

열어보면, flag.jpg라는 이미지 파일을 볼 수 있다.

이미지 파일도 한번 열어본다.

 

그럼 위와 같은 문구를 가진 사진을 볼 수 있게 되는데,

처음엔 사진의 노출 정도와 휘도, 조명을 모두 밝게, 어둡게 해보기도 하였다.

그치만 사진에 직접적인 답은 없는 것 같았다.

 

이번 과제의 목적은 '포렌식 은닉 기법의 종류'에 대해서 알아보는 것이다.

여기서 힌트를 얻은게 또 있다.

바로 이미지 포렌식을 이용하는 것이다.

이미지 포렌식에서 유명하게 사용되는 것이 스테가노 툴을 이용하는 것인데,

stegsolve를 다운하여 쓰는 것이다.

여기서 stegsolve를 사용하려며면 자바를 먼저 다운받아야 하는데

자바를 다운 받아도 stegsolve를 열었는데 실행이 되지 않아,

HxD라는 헥스 에디터를 사용하였다.

 

윈헥스 사이트를 들어가 다운로드를 받는다.

 

그리고 실행해준다.

 

바탕화면에 zip 파일에서 flag.jpg를 꺼내준다.

 

파일 불러오기를 하여, flag.jpg 파일을 선택해준다.

 

불러오기 후, 보이는 화면이다.

 

[1] Offset은 00부터 0F까지 일반적인 HEX 값을 나타내는 표시이고,

*HEX : 일반적으로 16진법, 16을 밑으로 하는 기수법이고 보통 숫자는 0부터 9까지와

로마 숫자 A부터 F까지 대소문자 구별 없이 구성되어 있다.

[2] 중앙에 있는 숫자 HEX 값, Decoded text는 HEX 값을 영어로 전환한 것이다.

 

그럼 flag 값을 찾기 위해서는 Decoded text를 찾으면 된다.

옆에 스크롤 표시만 봐도 엄청나게 긴 것을 알 수 있는데, 

하나하나 찾기 힘들어 '찾기' 기능을 써보았다.

 

파란색 형광펜 표시를 클릭 후

찾기 > 찾기(F)

이렇게 검색창이 뜨게 된다. 여기서 flag 혹은 Flag를 입력하면 쉽게 찾을 수 있다.

 

찾기 기능을 통해 Flag_is_{W21c0me_To_4or@nsic}이라는 flag를 하나 찾아내었다.

 

또 하나를 더 찾아냈다.

Flag_is_{U_Know_Exif?}

 

이렇게 찾아낸 플래그는 총 3개이다.

찾은 플래그들을 정리해보았다.

 

포렌식의 종류에는 여러 가지가 있는데, 오늘 적용할 포렌식은 '안티 포렌식'이다.

이는 디지털 포렌식 기술에 대응하여 디지털 데이터를 조작, 삭제, 또는 난독화하여 자신에게 불리하게

작용할 수 있는 증거의 존재 및 그 양과 질에 부정적 영향을 미치거나 증거분석을 곤란하게 하는 행위이다.

안티 포렌식 기법에는 크게 데이터 파괴, 데이터 암호화, 데이터 은닉, 데이터 변조가 있다.

이 과제에 적용할 기법은 은닉 기법이다.

 

이제 어떤 기법을 사용하였는지 알아내보겠다.

여기서 <은닉>이란,

데이터를 쉽게 탐지할 수 없도록 숨기는 기법을 말한다.

대표적인 기법으로는 디지털 매체에 메시지를 은닉하여 전달하는 스테가노그래피(stegonography)가 있다.

스테가노그래피의 대상은 다양한 매체가 될 수 있으며 주로 JPEG, BMP, GIF, WAV, MP3 등과 같은

멀티미디어 파일과 HWP, DOC, XLS과 같은 문서 파일을 이용한다.

스테가노그래피 기법을 적용한 파일은 보통으로는 원본과 구별이 불가능하다.

원본이 존재한다면 원본과의 바이트 비교를 통하여 스테가노그래피가 적용된 것을 유추해 볼 수 있으며,

다양한 기법을 적용하여 은닉된 데이터를 추출해 볼 수 있다.

대표적인 스테가노그래피 도구 툴은 OpenStego, S-Tools, StegHide, Merge Streams 등이 있다.

기법을 살펴보자.

가장 먼저 대표적인 기법에는 스테가노그래피 기법이 있다.

이는, 데이터 은폐 기술 중 하나이며 데이터를 다른 데이터에 삽입하는 기술이다.

쉽게 말해서 파일 속에 또 다른 파일을 숨기는 것을 말한다.

스테가노 그래피는 물리 스테가노그래피, 디지털 스테가노그래피가 있다.

이 과제에 적용시킬 것은 디지털 스테가노그래피이다.

 

스테가노그래피와 상이하게 연관되는 것은 크립토그래피가 있는데,

이 둘은 엄연히 다른 것이다.

스테가노그래피는 '감추어진' 이라는 뜻을 가지고 있으며,

파일의 메시지 존재 자체를 은폐하는 방법인 반면에,

크립토그래피는 '숨겨진'이라는 뜻을 가지고 있고 파일의 메세지 존재 자체를 감추는 것이 아닌,

그 의미를 감추는 것이다.

스테가노그래피 외에 여러 기법이 있는 것 같아서 조사를 해보았다.

 

[1] Slacker : 슬랙 공간(Slack Space)에 데이터를 숨긴다.

*슬랙 공간 - 저장 매체의 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간.

물리적으로는 할당된 공간이지만 논리적으로는 사용할 수 없는 공간.

[2] FragFS : NFTS MFT(Master File Table)에 데이터를 숨긴다.

*MFT - 볼륨에 존재하는 모든 파일과 디렉토리에 대한 정보를 가진 테이블

NFTS MFT - 메타 데이터 파일과 일반 파일, 또는 디렉터리에 대한 정보를 저장하고 있는 MFT Entry로 구성.

[3] RuneFS : 배드 블록(Bad Block)에 데이터를 숨긴다.

*배드 블럭 - 디스크의 물리적 손상을 말한다. 디스크에 블럭을 잡아 정보가 저장 되게 하는데 충격이나 노후로 인하여 생길 수 있다.

[4] Waffen FS : ext3 저널 파일에 데이터를 숨긴다.

*ext3 저널 파일 - 파일 내용 변경 시 파일 시스템과 바로 동기화 작업이 이루어짐.

[5] KY FS : 디렉터리 파일에 데이터를 숨긴다.

[6] Data Mule FS : inode 예약된 공간에 데이터를 숨긴다.

*inode - 운영체제에서 사용하는 파일 시스템 중 하나이다. inode의 기본 구조 파일 시스템을 대표하는 슈퍼 블록,

그 파일의 상세 정보, 일종의 pcb인 아이노드 블록, 실제 데이터를 담은 데이터 블록이 있다.

[7] Host Protected Arad & Device Configuration Overay : HPA, DCO 영역에 데이터를 숨긴다.

*HPA - ATA_4 표준에서 추가된 기능이며, 해당 메모리 영역은 HDD에 의해 미리 예약된 영역으로 운여여체제 및 bios를 통한 접근 불가.

따라서 일반 사용자에 의해 변경, 수정이 되지 않는 영역이며 하드디스크의 끝에 위치해있고,

하드디스크를 논리적으로 포맷하거나 삭제하더라도 데이터가 보존되는 영역. > ATA 명령을 통해 확인 및 설정 가능.

1) 별도의 매체 없이 컴퓨터 운영체제를 설치, 복구하는데 필요한 파일 저장

2) 노트북 보안 유틸리티를 저장

3) 루트킷을 통한 악의적인 용도로 사용

4) 안티 포렌식 행위로써 민감한 데이터를 은닉하기 위해 사용

*DCO - ATA_6 표준에서 추가된 기능이며, HDD와 같이 저장매체를 여러 사이즈로 제조할 필요 없이 DCO를 통한 하드디스크의 용량 제한 가능.

반대로 여러 사이즈로 제조된 HDD를  같은 섹터 개수를 가지고는 고정된 크기의 HDD로 구성하는 것이 가능.

1) DCO 역시 OS와 BIOS를 통해 접근 불가

2) HDD 제조사에 따라 정의된 특별한 ATA 명령을 통해 접근 가능

3) 1TB, 500GB, 250GB의 HDD들을 OS, BIOS에서 100GB HDD로 인식할 수 있게 함

_이 외에도 구조적인 변경이나 취약점을 통해 데이터를 은닉하는 루트킷(Rootkit)기법도 포함.

 

이번 과제에 사용된 기법은 스테가노그래피 기법을 사용한 것 같다.

jpg의 헤더 시그니처와 푸터 시그니처는 기본적으로 값이 정해져 있다.

File Type Header Signature Footer Signature
JPEG FF D8 FF E0 FF D9

 

flag.jpg의 헤더 시그니처
flag.jpg의푸터 시그니처

위에 보다시피 헤더와 푸터 시그니처 값이 일치한다.

이걸로 보았을 때 jpg 파일을 이용하여 데이터를 숨긴 걸 보아,

이번 과제에는 스테가노그래피 기법을 사용한 것으로 생각이 든다.

 

(+)

파일 Probelm.1.zip 파일을 헥스 에디터로 헥스 값을 살펴본다.

 

zip 파일의 헤더/푸터 시그니처는 이렇게 되는데

Header Signature(hex) Footer Signature(hex)
50 4B 03 04 50 4B 05 06

헤더

 

푸터

각자 값이 맞는 것을 확인할 수 있다.

 

여기서 푸터 값 뒤에 jpg의 헤더 시그니처를 볼 수 있다.

 

이 부분부터 헥스 값을 복사해서 새 파일을 만든다.

 

파일명은 Problem.2.jpg로 해주었다.

그럼 바탕화면에 이미지 파일이 생기게 되는데, 파일을 확인하면 플래그를 볼 수 있다.

 

이렇게 여러 개의 flag를 찾아보고, 포렌식 은닉 기법의 종류를 알아보기도 하였고

어떤 기법을 사용했는지까지 찾아보았다.

'HawkIS' 카테고리의 다른 글

HawkIS CTF Addition Hero Write-up  (0) 2023.05.09
개인 포트폴리오  (0) 2023.03.08
Xerosploit 공격 주소 추적  (0) 2023.02.14
Node JS + MySQL 웹 개발 & SQL Injection  (0) 2023.02.05
어셈블리어로 이름 출력하기  (0) 2023.01.08