분류 전체보기 207

[MultiMedia] 저는 플래그를 이 파일에...

문제를 한번 보겠습니다. jpg 파일을 하나 줍니다. 다운을 받아 실행 시켜 봅시다. 실행이 잘 되는것으로 보아, 헤더 시그니처나 푸터 시그니처는 정상적으로 작동하는 것을 볼 수 있다. 그래서 Hxd에디터로 열어서 ABCTF를 입력했는데, 이런식으로 플래그 값을 찾을 수 있었습니다. 쉬운 게싱 문제였던거 같습니다. 다른 방법으로 풀자면, 리눅스에서 file 명령어를 통해서 파일의 유형을 확인하면 다음과 같이 문구가 나옵니다. 그래서 strings 명령어로 플래그 포맷인 ABCTF를 입력하시면 다음과 같이 플래그 값을 볼 수 있습니다.

CTF-D/Multimedia 2022.03.04

[Disk] X 회사의 재정 정보를 훔치기...

이번 시간에는 CTF-D에 Disk 카테고리 문제인 "X 회사의 재정 정보를 훔치기" 를 풀겠습니다. 문제를 보겠습니다. 주어진 파일을 다운 받고 hxd에디터로 열어 보겠습니다. 7z로 된것을 보아 7-zip으로 압축된 파일입니다. 그래서 7-zip으로 압축을 풀었습니다. (하지만 hxd로 봐도 좋지만 바로 이해하기는 힘들기 때문에, 리눅스에서 file [파일명] 하시는게 제일 편합니다!!) 압축을 풀면 다음과 같이 Users파일이 나옵니다. 들어가시면 다양한 폴더가 존재하는데 한번 보겠습니다. All Users, Default, Default User, proneer, Public이 존재하는데, 문제를 보면 CFO의 컴퓨터에서 재무자료를 얻고 EXCEL 파일을 검색한다고 하였다. 그럼 EXCEL파일이니..

CTF-D/Disk 2022.02.08

[Disk] 파일에서 플래그를 찾아라

CTF-D 사이트에 있는 Disk 카테고리에 "파일에서 플래그를 찾아라" 를 풀어보겠습니다. 문제를 먼저 보겠습니다. 주어진 파일에서 플래그를 찾는 문제인거 같습니다. 파일을 다운 받아보겠습니다. 이러한 이름을 가진 파일을 찾아볼 수 있는데요, 확장자를 알 수 없습니다. 그래서 리눅스로 파일을 들고가 file 명령어를 통해서 파일 유형을 한번 봅시당. $ file [파일명] XZ파일로 되어 있는것을 확인할 수 있습니다. 그래서 UNXZ을 이용해서 압축을 해제하겠습니다. $ unxz [파일명] 물론 뒤에 .xz를 추가해주셔야 압축 해제가 됩니다. 압축을 해제 한 뒤 다시 file 명령어를 통해서 파일 유형을 살펴봅시다. $ file [파일명] 7-zip으로 된 압축 파일인것을 알 수 있습니다. 그래서 Wi..

CTF-D/Disk 2022.02.05

[MultiMedia] 제 친구의 개가 바다에서

Multimedia에 문제 제 친구의 개가 바다에서를 풀어보겠습니다. 문제를 보겠습니다. 주어진 파일 hidden.jpg를 다운받고 실행시켜 보겠습니다. 엄청 밝기가 강하네요...그래서 명암을 조절 해줬습니다. 조절을 해줬더니 다음과 같이 문제를 풀 수 있는 플래그가 나왔습니다. Flag : tjctf{th3_f0x_jumo3d_0v3r_m3} -reperence- 디지털 포렌식 with CTF

CTF-D/Multimedia 2022.01.28

파일 카빙(Carving)

이번 파일 카빙에 대해서 배워보겠습니다. 파일 카빙이란 메타 데이터가 아닌 파일 자체의 바이너리 데이터(signature, header)를 이용해서 디스크의 비할당 영역에서 파일을 복구하는 방식입니다. 주의해야 할 점은 파일이 디스크에 연속적으로 할당되었는지, 비연속적으로 할당 되었는지 알아야합니다. *연속 할당 임의의 한 파일이 디스크 내에 선형적으로 연속된 블록을 할당합니다. 장점은 연속하는 논리적 블록들이 물리적으로 인접해 있기 때문에 빠르게 엑세스가 가능하고, 디렉토리가 단순히 시작 블록 주소와 파일의 길이만 알고 있으면 디렉토리 구현의 단순화가 가능합니다. 단점은 새로운 파일을 생성할 때 필요한 공간을 미리 명시를 해주어야 하며, 연속된 공간이 확보되지 않으면 생성이 불가능합니다. 일정 파일이 ..

[Network] 파일에서 플래그를 찾아라.

CTF-D에 NetWork카테고리에 있는 "파일에서 플래그를 찾아라"를 풀어보도록 하겠습니다. 문제를 한번 보겠습니다. 확장자가 없는 myheart....이 주어졌고 txt파일이 주어졌는데, txt파일을 열어보니 풀이 답안지여서 저 방식과는 다르게 제 방식대로 풀어 보겠습니다. 이런 파일이 하나 주어지는데 리눅스로 가져가 파일 유형을 보겠습니다. $ file [파일명] xz파일로 되어있으니 unxz 명령어를 통해서 압축을 풀어 줍시다. $ unxz [파일명] 압축을 풀었으면, 다시 파일의 유형을 살펴봅시다. pcapng파일이네용!! 저도 pcapng에 대해서는 잘 알지 못하기 때문에 간단하게만 구글링을 한 대로 설명 하겠습니다. pcapng파일이란? PCAP Next Generation의 약자로 기존 p..

CTF-D/Network 2022.01.26

[Network] 나는 힉스 입자가 발견되지 않을 것이라고

CTF-D에 있는 "나는 힉스 입자가 발견되지 않을 것이라고" 문제를 풀어 보겠습니다. 문제를 보겠습니다. 파일이 하나 주어졌네요. 다운을 받으면 다음과 같은 확장자가 없는 파일이 나옵니다. hex에디터로 열어 보겠습니다. 열어보니 다음과 같이 빨간 사각형을 보면, 7zXZ라고 적혀있습니다. 그래서 왠지 7zip으로 압축을 풀 수 있을거 같아, 바로 풀어보았습니다. 또 다시 파일 확장자가 없는 파일이 생성 되었는데요. hex에디터로 열어봅시다. pcap파일인것을 알 수 있습니다. 근데 pcap으로 확장자를 변경하면 실행이 되질 않습니다. (7zip이 아닌가봐요 ㅎㅎ) 그래서 파일을 리눅스로 들고가겠습니다. 리눅스로 들고와서 file명령어를 통해서 파일의 유형을 살펴보겠습니다. $ file [파일명] 명령..

CTF-D/Network 2022.01.25

[Network] 우리는 적군에 대한 첩보를...

CTF-D 사이트에 있는 네트워크 카테고리에 우리는 적군에 대한 첩보를 풀어보겠습니다. 문제를 한번 보겠습니다.주어진 첨부파일인 exfil.tar를 다운 받아 압축을 풀어줍니다. ( 리눅스 환경에서 tar파일을 풀려면 tar xvf exfil.tar를 입력하시면 됩니다. ) 압축을 풀면 dump.pcap파일과 server.py가 들어 있는것을 볼 수 있습니다. 먼저 와이어샤크를 통해 dump.pcap파일을 보겠습니다.dump.pcap을 실행하면 다음과 같은 DNS 패킷을 볼 수 있고, 패킷을 좀 더 읽어보면 DNS패킷과 데이터 값처럼 보이는 것들을 확인할 수 있었습니다.노란색 형광펜으로 되어 있는것을 보겠습니다. 첫번째 패킷은 클라이언트가 DNS를 요청하는 패킷으로 (DNS Query Packet) 두번..

CTF-D/Network 2022.01.24

해쉬 함수 (Hash Function)

저번 시간에는 데이터 인코딩에 대해서 배웠습니다. 데이터 인코딩을 간략하게 설명하자면 "숫자, 문자, 시간 등 데이터는 원본 그대로 형태의 모습으로 저장될 수도 있는 반면, 다양한 인코딩 알고리즘(Base58, Base64)에 따라 특수한 형태의 데이터로 변환" 되는것을 말합니다. 이번에는 해쉬 함수에 대해서 배워 보겠습니다. 다뤄볼 내용은 MD5, SHA256, SHA512입니다. 해쉬 함수(Hash Function) 해쉬 함수란, 임의의 길이의 데이터를 고정된 길이의 데이터로 계산해 주는 함수입니다. 해쉬 함수의 특징으로는 일방향성을 띄고있고, 변환된 해쉬 값으로 원래의 입력값을 알아내는 것은 거의 불가능합니다. 주로 일방향 해시함수는 "데이터의 무결성" 을 확인하는 방법으로 사용합니다. 일반적으로 ..

데이터 인코딩(Data Encoding)

저번 시간에는 문자 인코딩에 대해서 배워 보았습니다. 간략하게 정리하면 문자 인코딩은 "사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 2진 신호로 변환" 하는 것을 말했습니다. 이번 시간에는 데이터 인코딩에 대해서 배워 보겠습니다. 데이터 인코딩 데이터 인코딩은 숫자, 문자, 시간 등 데이터는 원본 그대로 형태의 모습으로 저장될 수도 있는 반면, 다양한 인코딩 알고리즘(Base58, Base64)에 따라 특수한 형태의 데이터로 변환 됩니다. 1. Base 64 Base64는 8비트 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 아스키(ASCII) 영역의 문자로만 이루어진 일련의 문자열로 변환하는 인코딩 방식입니다. 쉽게 말해 임의의 8비트 바이너리 데이터를 64개의 아스키 문자의 조합으..