반응형

리버싱 62

[2020CCE] Easyransom - 리버싱 / IDA / HxD / XOR

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 제목에서 알 수 있듯이 이번 문제는 랜섬웨어와 관련된 문제이다. 랜섬웨어는 몸값을 뜻하는 Ransom과 Software(소프트웨어)가 더하여진 합성어로 컴퓨터에 저장된 문서파일이나 사진 등을 암호화하고, 복호화하는 대가로 몸값을 요구하는 악성코드를 말한다. 문제파일로 두개의 파일이 주어진다. 하나는 easyransome.exex.exe 파일이고 다른 하나는 flag.txt.easyransom 파일이다. exe 파일이 랜섬웨어 역할을 하는 파일인것 같고, flag.txt.easyransom 파일은 flag.txt 파일이 암호화되어서 easyransom 으로 확장자가 바뀐듯 하다. 암호화된 파일을 HxD..

CTF/리버싱 2022.11.04

[2020CCE] My Friend - 리버싱 / IDA / Python

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 포스팅 할 문제는 My Friend 라는 제목의 리버싱 문제이다. 주어지는 파일은 mf 라는 이름의 바이너리 파일이다. 리버싱 카테고리에 있는 문제고, 알 수 없는 바이너리 파일을 받았으니 바로 IDA 라는 디스어셈블러를 이용해 열어보았다. IDA에서 인식하길 해당 파일은 Mach-O 파일이라고 한다. Mach-O 파일은 애플의 MacOS 에서 동작하는 프로그램이다. 개인적으로 CTF에서 Mach-O 파일이 나오는걸 이때 처음봤다. IDA로 분석해보면 함수가 친절하게 이거밖에 없다. 그중 _main 함수와 _get_flag 함수가 눈에 띈다. _main 함수의 내용이다. 별 내용이 없다. 사용..

CTF/리버싱 2022.11.01

[2020CCE] Simple Botnet - 리버싱 / IDA

2020년에 진행된 국정원 주최 사이버공격방어대회 오랫동안 컴퓨터에 당시 문제들을 묵혀놨다가 이제야 풀이 포스팅을 해본다. 당시는 거의 이런 대회에 나가본게 처음이라, 시간에 쫒겨서 캡쳐를 제대로 못한 부분이 많다. Simple botnet 이라는 첫번째 리버싱 문제이다. simple_botnet 이라는 이름의 바이너리 파일이 하나 주어진다. file 명령어로 확인해보면 ELF 파일은 것을 알 수 있다. ELF 는 리눅스 환경에서 실행가능한 파일이다. 한번 실행시켜 봤는데 아무런 동작도 없이 바로 프로그램이 종료된다. 자세히 보기위해 IDA 라는 디스어셈블러를 이용해 주어진 바이너리를 열어보았다. main 함수의 수도코드를 한번 천천히 살펴보았다. int __cdecl main(int argc, cons..

CTF/리버싱 2022.10.11

[SharkyCTF] SIMPLE - 리버싱 / 어셈블리어 / IDA

문제 제목처럼 간단한 어셈블리 리버싱 문제 문제의 목표는 프로그램이 1 을 리턴하도록 하는 적절한 입력값을 찾는 것이다. BITS 64 SECTION .rodata some_array db 10,2,30,15,3,7,4,2,1,24,5,11,24,4,14,13,5,6,19,20,23,9,10,2,30,15,3,7,4,2,1,24 the_second_array db 0x57,0x40,0xa3,0x78,0x7d,0x67,0x55,0x40,0x1e,0xae,0x5b,0x11,0x5d,0x40,0xaa,0x17,0x58,0x4f,0x7e,0x4d,0x4e,0x42,0x5d,0x51,0x57,0x5f,0x5f,0x12,0x1d,0x5a,0x4f,0xbf len_second_array equ $ - the_seco..

CTF/리버싱 2022.08.27

[SharkyCTF] Z3ROBOTWAVES - 리버싱 / IDA

리버싱 문제 그렇게 어렵진 않았는데 매우 귀찮은 문제였다. 문제 설명을 읽어보면 개발자가 어떤 로봇을 만들었는데 그 로봇이 잠겨서(Locked) 비밀번호를 요구한다고 한다. 문제에서 주어지는 파일은 z3_robot 파일이다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 살펴보면 ELF 파일이라고 한다. ELF는 리눅스에서 실행가능한 실행파일이다. 터미널에서 ./z3_robot 이라고 입력하면 실행이 가능하다. 실행시켜봤더니 아까 들었던것 처럼 비밀번호를 요구하고 있다. 시험삼아 hello 라고 입력해봤는데 그랬더니 로봇이 기분나쁘게 웃으면서 프로그램이 종료되었다. IDA 라는 디스어셈블러를 이용해 문제파일을 살펴보았다. main 함수의 수도코드를 보면, fgets 함수를 이용해 s 라는변수에 사..

CTF/리버싱 2022.08.16

[Root Me] PE DotNet - 0 protection - 리버싱 / IDA

DotNet 리버싱 문제 닷넷은 .NET 라고도 쓰며 마이크로소프트에서 제공하는 윈도우 프로그램 개발 환경을 말한다. 닷넷 앞에있는 PE는 Portable Executable 의 약자로 윈도우에서 실행파일을 의미한다. 그냥 exe 파일이라고 생각하면 된다. 문제 제목에 있는 0 protection 은 아무런 보호조치가 되어있지 않다는 뜻으로 아주 쉬운 문제임을 알려준다. 문제 파일로 주어지는것은 ch22.exe 파일이다. exe 파일을 실행시켜 보면 이렇게 조그만 창이 하나 뜨면서 Password 입력을 요구한다. 비밀번호 입력창에 hello 라고 시험삼아 입력해봤는데 당연히 틀렸기때문에 Bad password 라는 알림창이 뜬다. 좀더 자세히 보기위해 IDA 라는 디스어셈블러를 이용했다. IDA를 실행..

워게임/Root Me 2022.07.10

[Root Me] ELF C++ - 0 protection - 리버싱 / IDA / GDB

C++ 리버싱 문제 C++ 리버싱은 처음 해본거 같은데 생각보다 어려워서 놀랐다. C 랑 큰 차이 없지 않을까 생각하고 시작했다가 큰코다쳤다.. 문제의 목표는 올바른 password를 찾는것이다. 문제파일로 주어지는 것은 ch25.bin 파일이다. 먼저 프로그램을 실행시켜 보았다. 터미널에서 ./ch25.bin 이라고 입력하면 실행이 되는데 그냥 실행시켰더니 usage : ./ch25.bin password 라면서 사용법이 출력된다. ./ch25.bin hello 라고 password를 인자로 넣어서 실행시켜 주니 비밀번호가 틀렸다는 안내 문구가 출력된다. IDA 라는 디스어셈블러를 이용해서 ch25.bin 파일을 열어보았다. c로 만들어진 프로그램이라면 오른쪽에 깔끔하게 어셈블리어가 잘 보이는데 c++..

워게임/Root Me 2022.06.30

[Root Me] PE x86 - 0 protection - 리버싱 / Ollydbg

Root Me 에서 제공하는 세번째 리버싱 문제 이번 문제는 greHack CTF 2012 해킹대회에서 실제 출제되었던 문제라고 한다. 앞에서 풀었던 두 문제는 ELF 파일이었는데, 이번에는 PE 파일이 주어진다. PE 파일은 Portable Executable의 약자로 그냥 우리가 흔히 보는 윈도우에서 실행 가능한 EXE 파일이다. 문제의 목적은 주어지는 프로그램의 password를 알아내는 것이다. 이것이 문제에서 주어지는 ch15.exe 파일이다. 해당 프로그램은 윈도우의 cmd 창을 이용해서 실행시킬 수 있다. 프로그램이 저장된 경로에서 ch15.exe 라고 입력해봤더니 Usage : ch15.exe pass 라면서 사용법을 알려준다. pass 자리에 비밀번호를 넣으면 되는것이다. 알려준 사용법대..

워게임/Root Me 2022.06.22

[Root Me] ELF x86 - Basic - 리버싱 / IDA

Root Me의 두번째 리버싱 문제 아직까지는 아주 쉬운 문제이다. 문제 설명을 보면 Find the validation password. 라고 적혀있다. 제목부터 Basic 이니 비밀번호는 아주 쉽게 찾을 수 있다. 문제파일로 ch2.bin 파일이 주어지는데 해당 파일을 HxD 프로그램으로 열어보면 문제 제목에서도 나온것처럼 ELF 파일인것을 확인할 수 있다. 뒤에 오는 x86은 32bit 환경에서 만들어진 프로그램임을 알려준다. 리눅스 환경에서 file ch2.bin 명령어를 통해서도 확인이 가능하다. ELF 파일은 리눅스에서 실행 가능한 EXE 파일같은거라고 생각하면 된다. 실험삼아 ./ch2.bin 명령어로 프로그램을 실행시켜 보았다. username: 이라고 출력되면서 사용자 입력을 받는데 he..

워게임/Root Me 2022.06.18

[HouseplantCTF] thedanzman - 리버싱 / Python / ROT13 / Base64

마지막 Python 리버싱 문제. 문제 설명을 읽어보면, EZ, PZ, LEMON, SQUEEZY 문제보다 훨씬 어렵게 만들어서 플래그를 절대 획득하지 못할것이라고 한다. (EZ : https://hackingstudypad.tistory.com/167) (PZ : https://hackingstudypad.tistory.com/169) (LEMON : https://hackingstudypad.tistory.com/171) (SQUEEZY : https://hackingstudypad.tistory.com/172) 하지만 역시나 차근차근 계산하면 충분히 풀 수 있는 문제이다. 주어지는 문제파일은 pass4.py 파일이다. 패턴은 이전 문제와 똑같다. IDLE을 이용해 py 파일을 실행시켜 보니 Ente..

CTF/리버싱 2022.06.17
반응형