반응형

분류 전체보기 712

[HeroCTF] dev.corp 1/4 - 포렌식 / Access log

웹 엑세스 로그와 관련된 포렌식 문제이다. 어떻게 보면 보물찾기랑 비슷한 느낌이다. 플래그 형식은 attacker가 사용한 CVE 공격의 넘버와 attacker 가 덮어쓴 파일의 절대경로를 쓰면 된다. 아래는 회사 인프라에 대한 diagram 이 제공되어 있는데 문제푸는데 크게 상관할 부분은 아니다. 문제에서는 access.log 파일이 주어진다. 오래전 포렌식 문제에서 많이 볼 수 있었던 유형인데 뭔가 반가웠다. access.log 파일을 열어보면 이런 내용이 들어있다. 접속자의 ip - 접속 시간 - 메소드 - 접속한 URI - 응답코드 - 응답 메세지 크기 등의 정보가 저장되어 있다. 이제 이 로그에서 공격당한 흔적을 찾으면 된다. 로그가 1,857줄 밖에 안돼서 아주 쉬운 문제이다. 로그 앞부분에..

CTF/포렌식 2023.05.31

[Root Me] SIP - authentication - 포렌식 / Sipcrack

SIP 프로토콜과 관련한 네트워크 문제 SIP 프로토콜은 Session Initiation Protocol 의 약자로 VoIP 에서 사용하는 신호 프로토콜이다. 문제 Level 을 보면 노란색으로 표시되어 있어서 마냥 쉽지만은 않겠구나 생각했는데 황당할 정도로 쉬운 문제였다.. 이게 문제에서 주어지는 ch4.txt 파일의 내용이다. SIP 프로토콜로 어딘가에 로그인한 로그가 남겨져있는데 첫번재 줄을 보면 REGISTER, PLAIN 뒤에 숫자가 써있는걸 볼 수 있다. 이 부분이 바로 평문으로 통신된 비밀번호이다. 문제는 비밀번호를 찾는것으로 이 값을 그대로 적으면 문제가 풀린다; 원래라면 저기에 아래처럼 MD5 해시값을 넣어서 Crack 해야하는게 올바른 문제일것 같은데 너무 간단해서 정답이 아닌줄 알았..

워게임/Root Me 2023.05.30

[D^3CTF] d3gif - MISC / PIL

git 파일과 관련된 스테가노그래피 문제 포렌식 느낌인데 MISC 로 분류되었다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제에서 주어지는 (x,y,bin).gif 파일은 이렇게 생겼다. 자세히 보면 뒷 배경의 색깔이 계속 바뀌는데 여기에 뭔가 숨겨진 메세지가 있을거라고 생각했다. 문제는 Python PIL 라이브러리를 이용해서 풀었다. PIL은 Python Imaging Library의 약자로 파이썬으로 이미지 처리를 할 수 있도록 해주는 라이브러리이다. pip install image pip install pillow 두 명령어를 이용해서 다운로드 받아주면 된다. from PIL import Image, ImageSequence path = "./gg..

CTF/MISC 2023.05.29

[Root Me] POP - APOP - 포렌식 / Wireshark

Root Me 에서 제공하는 네트워크 패킷 포렌식 관련 문제 원래라면 더 어렵게 풀어야 했으나 많은 사람이 풀어서 그런지 의도치않게 쉽게 풀렸다. 문제에서 주어지는 것은 ch23.pcapng 파일이다. 여기서 user password 를 찾아야 한다. pcapng 파일은 패킷 캡처 파일로 Wireshark 라는 도구를 이용해 열어볼 수 있다. 파일을 열어보면 이런 화면이 나온다. 여러 패킷들이 섞여있는데 문제 제목에 나와있는 POP 프로토콜 패킷을 찾아본다. POP 프로토콜은 Post Office Protocol 의 약자로 원격 서버에서 TCP/IP 연결을 통해 이메일을 가져오는데 사용된다. 이렇게 pop 이라고 검색하면 필터링 할 수 있다. 첫번째 패킷을 우클릭한 뒤 Follow - TCP Stream..

워게임/Root Me 2023.05.28

[D^3CTF] d3readfile - MISC / locate

쉬울거라고 생각했는데 생각보다 좀 어려웠던 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 어떤 파일이든 읽을 수 있기에 플래그도 읽을 수 있다... 의미심장하다. 문제 소스파일은 따로 주어지지 않고 웹 페이지 주소만 주어진다. 주어진 주소로 들어가보면 File Request 라는 문구와 함께 뭔가 입력할 수 있는 창이 있다. 입력창에 /etc/passwd 를 입력해봤더니 /etc/passwd 파일의 내용이 출력되는것을 볼 수 있다. 입력창을 통해 서버에 있는 파일을 가져와 읽을 수 있다는 것이다. 문제는 플래그가 들어있는 파일명이 무엇인지 모른다는 것이다. 이것저것 파일을 불러와서 읽어보다가 /proc/1/environ 파일을 불러와 읽어봤다. 해..

CTF/MISC 2023.05.27

[Root Me] EXIF - Thumbnail - 포렌식 / Forensically / HxD

정말 오랜만에 업로드 해보는 Root Me문제 JPG 파일과 관련된 스테가노그래피 문제이다. JPG 파일에서 숨겨진 비밀번호를 찾으면 된다. 문제에서 주어지는것인 이 파일이다. 디카프리오가 나오는 사진인데 HxD 로 파일을 열어보면 이렇게 나온다. JPG 파일의 시그니처인 FF D8 FF E0 가 맨 앞에 나오고, 잠시 뒤에 다시한번 시그니처인 FF D8 FF E0 가 나온 뒤 그뒤에 We need to go deeper 라는 문장이 나온다. 저 부분이 썸네일 부분이다. 두번째 FF D8 FF E0 부터 파일의 맨 끝까지 복사한 뒤, 새로만들기에 붙혀넣기 해서 JPG 파일로 저장해주면 썸네일이 추출되면서 그 안에 있는 플래그를 찾을 수 있다. 온라인으로도 풀 수 있다. Forensically 라는 사이트..

워게임/Root Me 2023.05.26

[angstromCTF] Physics HW - MISC / Zsteg

간단한 png 파일 스테가노그래피 문제 스테가노그래피는 데이터를 은폐하는 기술을 말한다. 사진파일이나 음악파일 등에 비밀데이터를 숨겨서 전송하는데 사용한다. 포렌식 느낌이지만 MISC 에 분류되어 있었다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제에서 제공되는 physics_hw.png 파일은 이렇게 생겼다. 정말 말 그대로 물리 숙제 사진이다. 하얀 배경이라 잘 안보이지만 아래쪽을 보면 뭔가 비어있는 공간이 보인다. 처음엔 여기에 데이터를 숨겨놓은줄 알고 한참 찾았는데 여긴 아니었다. 예전에 유사한 문제를 두번정도 포스팅 한 적이 있었는데 스테가노그래피 문제에서 PNG나 BMP 파일이 주어질 경우 유용하게 쓸 수 있는게 zsteg 라는 도구가 있다. ..

CTF/MISC 2023.05.25

[angstromCTF] impossible - 암호학 / Python

암호학 두번째 문제 문제를 어이없게 풀어버려서 제대로된 풀이가 아니다. 서버에 원격접속할 수 있는 주소와 서버에서 돌아가고 있는 파이썬 코드가 주어진다. #!/usr/local/bin/python def fake_psi(a, b): return [i for i in a if i in b] def zero_encoding(x, n): ret = [] for i in range(n): if (x & 1) == 0: ret.append(x | 1) x >>= 1 return ret def one_encoding(x, n): ret = [] for i in range(n): if x & 1: ret.append(x) x >>= 1 return ret print("Supply positive x and y suc..

CTF/암호학 2023.05.24

[angstromCTF] ranch - 암호학 / Python / 카이사르암호

이번 CTF 에서 암호학 1번으로 나온 문제이다. 문제 설명에서 볼 수 있듯이 Caesar 암호를 응용한 문제이다. Caesar는 '카이사르' 라고도 읽힌다. 들어본 사람도 있겠지만, 카이사르는 로마의 황제 이름이다. 카이사르는 동맹군들과 소통해기 위해서 위 그림처럼 알파벳을 몇칸 씩 뒤로 옮겨 새로운 글자로 암호문을 만들었는데 이게 바로 카이사르 암호이다. 예를들어 Apple 라는 단어가 있다면, 이것을 한칸씩 알파벳을 뒤로 옮겨서 Bqqmf 라는 암호를 만드는 것이다. import string f = open("flag.txt").read() encrypted = "" shift = int(open("secret_shift.txt").read().strip()) for i in f: if i in s..

CTF/암호학 2023.05.23

[angstromCTF] zaza - 리버싱 / IDA

간단한 리버싱 문제 제목이 ZAZA 인데 문제를 풀어보고 문제 낸 사람이 혹시 한국사람이 아닐까 생각했다. 원격으로 접속할 수 있는 주소와 바이너리 파일이 함께 주어진다. 바로 IDA라는 디스어셈블러를 이용해 열어봤다. 정의된 함수는 main, xor_, win 세 가지가 있다는 것을 알아냈다. main 함수의 수도코드를 보니 세가지 정도 검증 과정을 거친다는것을 알 수 있었다. 먼저 I'm going to sleep. Count me some sheep: 가 출력되면서 사용자 입력을 받는다. 사용자의 입력값은 v5에 저장되고, 그 값이 4919 인지 확인한다. 맞으면 다음으로 넘어간다. 다음으로 Nice, now reset it. Bet you can't: 가 출력되면서 사용자 입력을 받는다. 이번엔 ..

CTF/리버싱 2023.05.22
반응형