반응형

워게임 270

[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

[CTFlearn] Bite-code - 리버싱 / Python

CTFlearn의 아흔한번째 문제 이번엔 Medium 난이도의 리버싱 문제이다. 뒤로갈수록 뭔가 앞쪽에 있던 문제들이랑 난이도 책정 기준이 다른것 같다. 문제 설명을 읽어보면 checkNum 이 true 를 리턴하게 하는 input 이 뭐냐고 물어본다. public static boolean checkNum(int); descriptor: (I)Z flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=3, args_size=1 0: iload_0 1: iconst_3 2: ishl 3: istore_1 4: iload_0 5: ldc #2 // int 525024598 7: ixor 8: istore_2 9: iload_1 10: iload_2 11: ixor 12..

워게임/CTFlearn 2023.05.10

[CTFlearn] Riyadh - 리버싱 / IDA / Pwndbg

CTFlearn 의 아흔번째 문제 이번엔 10점짜리 Easy 난이도 리버싱 문제인데 아무래도 배점이 잘못된것 같다. 막 어렵진 않지만 그래도 10점은 아닌듯.. 일단 문제에서 주어지는 것은 readme, Riyadh, source.zip.enc 파일이다. 나머진 필요없고 문제풀때는 Riyadh 파일만 있으면 된다. 바로 IDA 로 열어서 F5를 눌러 main 함수의 수도코드를 살펴보았다. 일단 세가지 정도를 검증하고 있다. argc 가 1인지, buffer 와 v4 가 같은지, strlen 이 30 인지 세 가지를 비교하고 그거에 따라 각각 Msg2, Msg4, Msg5 가 실행된다. Msg 함수는 1 부터 7 까지 있는데 각각의 Msg 함수들을 보면 이렇게 xormask 값과 어떤 값을 XOR 하는것으..

워게임/CTFlearn 2023.04.27

[HackTheBox] Forest - 포렌식 / Stegsolve / Steghide / Vigenere

Medium 난이도의 포렌식 문제 스테가노그래피와 관련한 문제이다. 문제에서 주어지는 파일은 위와 같다. 가장 먼저 Stegsolve 라는 도구를 사용해봤다. 아래 경로에서 Stegsolve.jar 파일을 다운로드 받을 수 있다. (http://www.caesum.com/handbook/Stegsolve.jar) Stegsolve를 실행시켜서 File - Open으로 이미지를 불러오면 된다. 아래쪽에 있는 버튼을 누르면 이미지의 alpha, blue, green, red, xor 등등 다양한 값을 조정한 형태를 보여주게 된다. 하나씩 넘기다보면 중간에 이렇게 문자열이 보이게 된다. 처음엔 이게 플래그인줄 알았는데 아니었다. steghide 에서 사용하는 passphrase 였다. steghide extr..

[CTFlearn] Brute Force is Fun! - 포렌식 / HxD / Python

CTFlearn의 여든아홉번째 문제 계속해서 이어지는 Hard 난이도 문제이다.. 이상하게 배점이 높은데 사실 그렇게 어렵진 않다. 문제에서 주어지는 것은 legotroopers.jpg 파일이다. 해당 파일을 HxD에서 열어 중간쯤으로 내려가봤다. JPG 파일은 항상 FF D9 라는 값으로 끝난다. 파일에서 FF D9 값이 나오면, 그 뒤에는 아무런 값이 없어야 정상이다. 그런데 이 파일은 FF D9 다음에 50 4B 03 04 로 시작하는 데이터가 오고있는것을 볼 수 있다. 이렇게 50 4B 03 04 로 시작하는 파일은 ZIP 확장자를 가지는 파일이다. 이런것을 파일 시그니처 라고 한다. 50 4B 03 04 부터 파일의 끝까지 추출해서 test.zip 으로 저장했다. 압축을 풀려고 봤더니 비밀번호가..

워게임/CTFlearn 2023.04.23

[CTFlearn] Skynet Is (Almost) Taking Over - 암호학 / RsaCtfTool

CTFlearn 의 여든여덟번째 문제 4연속 Hard 난이도의 문제가 나와서 살짝 쫄았는데 이번 문제는 아주 쉽게 풀 수 있었다. 문제 설명이 아주 장황하다. 양자 컴퓨팅 어쩌고 하면서 나오는데 사실 이 의도를 잘 모르겠다. RSA 에 관련한 문제인데 RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙혔다. 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계되었다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록..

워게임/CTFlearn 2023.04.20

[HackTheBox] Impossible Password - 리버싱 / IDA

HackTheBox 에서 제공하는 쉬운 난이도의 리버싱 문제 간단하게 풀 수 있다. 문제에서 주어지는 파일은 impossible_password.bin 파일이다. 리버싱 문제이니 고민하지 않고 바로 IDA 로 열어보았다. main 함수에서 f5를 눌러 수도코드를 살펴보니 * 을 출력한 뒤에 사용자 입력을 받는데 그 값이 SuberSeKretKey 일 경우 다음으로 넘어가게 되어있다. 그리고나서 ** 을 출력하고 또 입력을 받는데 이번엔 그 값이 v3 의 값과 같아야 한다. v3 는 sub_40078D 의 수행결과가 저장되는데 sub_40078D 를 들어가 봤더니 시간을 시드값으로 해서 랜덤한 값을 생성하고 그 값의 % 94 + 33 을 계산해 V3 에 집어넣고 있었다. 사실상 이걸 알아내는건 불가능하다...

[CTFlearn] Music To My Ears - 포렌식 / faad

CTFlearn의 여든 일곱번째 문제 계속해서 Hard 난이도의 문제가 나와서 부담스러워 지기 시작했다. 이번엔 포렌식 문제이다. 문제에서 주어지는 것은 hereisyourflag.m4a 파일이다. 파일을 클릭해서 재생시켜보려 했더니 이런 문구가 떴다. 파일이 온전하지 않은 상태인듯 하다. 일단 HxD로 열어봤다. 아직까진 뭐가 문제인지 모른다. https://www.file-recovery.com/m4a-signature-format.htm MPEG4 Audio Signature Format: M4A,M4B,M4P Documentation and Recovery Examples MPEG-4 Part 14 Audio (M4A,M4B,M4P) Format & Recovery Example M4A is a ..

워게임/CTFlearn 2023.04.15

[CTFlearn] Python Reversal - 프로그래밍

CTFlearn의 여든 여섯번째 문제 지난 문제에 이어서 프로그래밍 카테고리의 Hard 난이도 문제이다. (https://hackingstudypad.tistory.com/469) 이번엔 제공되는 언어가 파이썬이다. import base64 as rtfd import webbrowser import time def mikeSwift(cre): sto = [] gre = "" for i in cre: sto.append(i+str(len(i))) sto.append("h4ck" + i) for i in sto: gre+=i return gre def prompt(): return bytes(input("Welcome to the loading dock. What is the password?\t"), 'u..

워게임/CTFlearn 2023.04.12

[HackTheBox] xorxorxor - 암호학

제목 그대로 정직한 XOR 과 관련된 암호학 문제이다. 문제에서 제공되는 파일은 output.txt 파일이다. 해당 파일을 열어보면 암호화된 플래그가 적혀있다. 당연하겠지만 XOR 을 이용해서 암호화 됐을것이다. 암호화하는 파이썬 코드도 함께 주어진다. 암호화하는 과정을 살펴보면 os.urandom(4) 로 4바이트짜리 임의의 키를 생성해서 그 키값과 플래그를 XOR 연산을 한다. 랜덤이라 경우의 수가 굉장히 많지만 HackTheBox 에서의 플래그는 HTB{ 로 시작한다는 사실일 알기때문에 아주 쉽게 풀 수 있다. CyberChef(https://gchq.github.io/CyberChef) 를 이용해서 HTB{ 를 16진수로 바꿔보면 48 54 42 7b 가 된다. 이 값을 암호화된 플래그 맨 앞자리..

반응형