본문 바로가기

ctf

[HolyShield 2016 CTF] Vulnerable_Protocol We made New Transfer Protocol for our Intra Network! But I think it has some vulnerability… Can you find it? We using stream encryption algorithm *This packet has captured by a..k.a MIM who we hired. Hint : Replay Attack Hint-2 : MD5 & RC4 Hint-3 : Tell me your name. 문제 캡처 파일을 보면 새로운 내부 아이피끼리 통신을 주고 받는 것을 확인할 수 있다. 문제에서도 나와있듯 통신을 할 때 스트림암호로 암호화하여 통신을 한다. 이 프로토콜의 취약점은 키를 평문으로 교환하기 때문에 키 값을 금방 찾을 .. 더보기
[HolyShield 2016 CTF] Trip around the world Find the key 문제이다. 파일을 다운받으면 a, b, c, d, e, f 폴더와 그 안에는 여러 개의 각 국가의 관광지나 지역을 담은 사진 파일이 들어있다. 구글 이미지 검색을 통해 세계 지도 위에 각 지역을 표시하고, 표시한 곳들을 연결하면 대충 알 수 있다. 더보기
[HolyShield 2016 CTF] Unreadable Table 문제 : I want to read this text Auth : lowercase(key) 문제의 파일을 받으면 위와 같은 암호문이 나온다. 이걸 읽어야 하는 문제인 것 같다. Auth : lowercase(key) 라고 되어있어서 우선 대문자를 소문자로 변경했다. 힌트는 Vigenere 암호이다. 따라서 Vigenere 암호를 복호화하면 KEY 값이 나온다. Vigenere 암호 복호화 사이트를 통해 복호화하면 Key 값이 "andersen" 이며, 복호호환 문자열을 보여준다. notepad 로 옮겨서 복호화 문자열을의 끝을 보면 답을 알 수 있다. flagisprincessshirahoshiisnotlittlemermaidsheisveryhuge 더보기
[HolyShield 2016 CTF] Memory 문제 : Find the Flag Auth : MalwarePid_C&C_Attacker.Server ex) 123_http://www.naver.com/index.php_1.2.3.4 Forensic 문제로, memory.vmem(가상 머신 페이징 파일의 백업파일)을 준다. 사용한 툴은 볼라틸리티를 이용했다. 시스템의 윈도 버전과 메모리 덤프 파일의 생성 시간을 확인할 수 있다. pstree 명령을 이용하면 "attrib.exe" 를 볼 수 있다. 구글에 검색해보면 파밍 목적의 악성코드임을 알 수 있다. pid = 188 파밍을 목적으로 한다면 "hosts" 파일을 변조한다고 생각하여 filescan 명령을 사용했다. 해당 파일일 추출했더니 다수의 사이트에 접속했을 때 23.110.25.241 로 가도.. 더보기
[CodeGate 2013 CTF] binary 100 파일을 실행시키면 다음과 같이 Door_Lock 이 뜬다. 임의의 수를 입력하니 "Sorry, try again" 메시지 박스를 띄운다. .NET 기반으로 제작된 프로그램이다. .NET 디컴파일러를 통해 분석해보도록 한다. 디컴파일러를 통해 소스 코드를 분석하다 보면 다음과 같은 코드가 나온다. Data.Length 가 0x10(16) 이라면 AES 암호화를 한 후 xor 연산하여 this.lowkey 와 비교를 한다. Data.Length 길이를 16 으로 입력했더니 "Do you know? Preliminary Math?" 라는 메시지 박스를 띄운다. 정답 루틴으로만 가도록 코드를 조작한다. 길이만 맞춰서 입력하니 flag 가 뜬다. code9ate2013 Start 더보기
[CSAW 2013 CTF] DotNetRevering.exe 문제를 보면 알 수 있지만 .NET 프로그램을 리버싱해야 하는 것 같다. 파일을 실행하니 사용자로부터 입력을 받는다. 임의의 수를 넣었더니 에러가 뜬다.. .NET 기반의 프로그램은 .NET 용 디컴파일러를 이용해 분석할 수 있다. .NET Reflector 라는 프로그램으로 디컴파일되어 소스코드를 확인할 수 있다. 정확한 num 값을 넣는다면 복호화 작업을 거친 후 플래그를 출력하는 것 같다. 위 소스코드에서 중요한 부분은 num, num2, num3 변수와 if((num^num2)==num3) 소스 코드이다. xor 연산의 특징으로 2개의 값을 알고 있다면 나머지 1개의 값도 알 수 있다. 따라서 num2^num3 하면 num을 구할 수 있다. num2^num3 값을 10진수로 입력하면 다음과 같이 .. 더보기
[CSAW 2013 CTF] csaw2013reversing1.exe find key! 패킹은 되어있지 않다. 파일을 실행하면 다음과 같이 flag로 추정되는 문자열이 뜬다. IDA 같은 debugger 로 실행하면 간단하게 flag 값을 얻을 수 있다. flag{this1isprettyeasy:)} 더보기
[CSAW 2013 CTF] csaw2013reversing2.exe csaw2013reversing2.exe 파일을 준다. : find the key 가장 먼저 ExeinfoPE 로 패킹여부를 확인해보았지만 패킹은 걸려있지 않다. 파일을 실행을 했더니 crash 터진다. OllyDbg 로 바로 분석해보겠다. 0x0011124A 주소를 보면 CALL 00111000 주소를 호출한다. 이 주소를 호출하면서 Flag 값으로 추정되는 알 수 없는 문자열을 가진 Messagebox를 띄운다. 따라서 이 함수를 들어가도록 한다. 함수에 진입하고 조금 실행해보면 Flag를 출력하는 MessageBox() 함수 인자와 그 위에 xor 연산이 있는 것을 볼 수 있다. 처음에 함수를 진입할 때 분기문을 우회하지 못하면 바로 메시지 박스 함수를 호출하여 위의 MessageBox 처럼 이상한.. 더보기
[SECCON 2015 CTF] reverse-engineering-android-apk-1 문제 : Please win 1000 times in rock-paper-scissors 이 문제는 android apk reversing에 관한 문제이다. rps.apk 라는 파일을 먼저 준다. tool : Genymotion, jd-gui, dex2jar, IDA Pro 일반 Mobile App을 분석하기 위해서는 설치 파일인 android 설치 파일인 APK를 알아야 한다. ※ APK(Android Package) Android 플랫폼에서 어플리케이션 설치를 위해 배포되는 패키지 파일로, 압축 ZIP 파일 포맷 형태로 구성 되어있다. 주요 구성 요소는, - AndroidManifest.xml : App에 대한 정보 및 실행권한 등의 전반적인 정보를 가지는 xml - classes.dex : 클래스들.. 더보기
[SECCON 2015 CTF] exec-dmesg 문제 : Please find secret message from the iso linux message image.zip 파일을 풀면 core-current.iso image 파일을 얻을 수 있다. core-current.iso 파일은VMware 또는 QEMU와 같은 가상화 소프트웨어로 불러올 수 있다. tool : Virtual Machine(VMware, QEMU) ※ QEMU란? QEMU는 Fabrice Bellard가 만든 가상화 소프트웨어이다. X86 이외의 기종을 위해 만들어진 소프트웨어 스택 전체를 가상 머신 위에서 실행할 수 있다. VMware를 사용한다면 [New Virtual Machine…]을 통해 가상 머신을 생성한다. 만약, QEMU를 통해 사용하고자 한다면 다음과 같다. # a.. 더보기