전체 글 (89) 썸네일형 리스트형 [Fuzzing101] Exercise2 (CVE-2009-3895, CVE-2012-2836) 이전에 진행했던 Xpdf에대한 취약점을 퍼징으로 찾는것에서는 하나의 취약한 실행파일 뭉치를 통해서 퍼징 사용법을 익혔다. 이번에는 library 와 실행파일 을 함께 묶어서 퍼징하는 것에 대하여 배운다.즉, library 종류의 파일들에 대한 퍼징을 어떻게 진행해야하는지, 특정 부분만 떼어서 퍼징하는 것을 배우는 것이다. 이전 과 동일하게 1. 환경 구축2. 타겟 계측 및 빌드3. 시드 코퍼스 준비4. 퍼징 실행5. 결과 분석6. 보고 및 수정 퍼징 단계에 맞춰서 진행한다. 1. 환경 구축# 1. libexif 0.6.14 (취약한 버전) 다운로드 및 압축 해제wget https://github.com/libexif/libexif/archive/refs/tags/libexif-0_6_14-release... [Dreamhack] Magix_Box 간단한 설명ROP, gadget chaining attack을 진행해야 하는 문제AI를 활용해서 문제를 풀고 분석, 이해하는 방향으로 진행했다.사용한 툴은 ghidra, 문제 환경 구성을 위한 docker, python과 pwntools이다. Stripped Binary 라는 것과 NO Pie 상황임에 유의하여 문제에 접근해야 한다. Dreamhack write-up 주소https://dreamhack.io/wargame/writeups/42559 mac에서 x86-64 파일 분석하기 mac (m4 = arm64 = aarch64) 환경에서 x86-64 혹은 i386(32비트) 를 분석하기 위해서는 추가적인 설정을 통해 번역과정을 거쳐야 한다. 1. Rosettamac에서는 rosetta 라는 자체적으로 내장되어있는 바이너리 번역기가 있다.이 rosetta를 이용하면 arm64에 맞지않는 바이너리라도 적절하게 번역하여 mac이 읽어낸다.Docker desktop 버전에서의 설정으로 rosetta를 켜둘 수 있다. 켜두면 x86-64에 대하여 알아서 번역해서 읽어준다. 2. QEMU애뮬레이션 도구 x86-64 OS를 에뮬레이션으로 만들어서 파일을 해석하는 방법, 상대적으로 느리다 3. UTMQEMU 기반의 에뮬레이션, 가상화 도구이다. 에뮬레이션 뿐만 아닌 가상화도 지원한다. 내가 현재.. 안쓰는 노트북 서버로 만들기 mac으로 ctf 문제를 풀어보거나 이 외의 다른 시스템 에 대한 공부를 진행해보다가 답답함이 많이 느껴지고 실질적으로 풀이가 불가능한 상황을 현재 겪어버려서 기존에 사용하던 intel x86-64 cpu를 사용하는 gram 노트북을 내방에 서버로 열어두고 mac을 연결해서 x86-64 cpu가 필요할 때 사용하는 방식으로 진행하려고 한다. tailscale과 rustdesk 를 사용하고 ssh로 gram에 접속하여 사용하려고 한다. 그냥 각 노트북에 tailscale과 rustdesk를 설치하고 ip에 맞춰서 연결을 해주면 되는 간단한 작업이다. 다만 ssh 로 접속을 할 때 지속해서 비밀번호를 작성하는 것은 귀찮으므로 gram의 ssh 환경 설정을 내가 지정한 경로의 ssh 비밀번호를 보도록 만들어놨.. [Fuzzing101] Exercise 1 (CVE-2019-13288) Fuzzing101 을 통해 fuzzing 과정, fuzzer 사용법등에 대하여 익숙해져보려고 한다.Fuzzing101의 Exercise 1 은 CVE-2019-13288이 발생하는 Xpdf 도구를 이용하여 fuzzing을 경험해보는 문제이다. CVE-2019-13288은 조작된 파일을 통해 무한 재귀를 일으킬 수 있는 취약점이다. 이는 DoS 공격에 활용될 수 있다. 퍼징은 다음과 같은 순서로 진행된다.1. 환경 구축2. 타겟 계측 및 빌드3. 시드 코퍼스 준비4. 퍼징 실행5. 결과 분석6. 보고 및 수정 일단 환경 구축부터 해보자. 나는 현재 mac을 사용해서 공부중이기에 docker를 사용하여 공부하려고 한다. docker hub에 존재하는 aflplusplus/aflplusplus 이미지를 가져.. meltdown에 대하여... meltdown에 대하여... 한줄 요약: CPU가 데이터를 캐시에 저장하는 루틴에 의해 발생되는 취약점 이 취약점의 핵심은 CPU의 코드에 대한 실행 및 메모리 접근이 비순차적이며 커널메모리와 실행되는 코드의 메모리가 함께 존재한다는 점이다. 그래서 뭐가 취약한 것인지 코드와 함께 얘기하겠다.; rcx = kernel address #1; rbx = probe array #2retry: #3mov al, byte [rcx] #4shl rax, 0xc #5jz retry #6mov rbx, qword [rbx + rax] #7 위의 코드가 컴퓨터에서 실행되며 해커가 rcx에 들어있는 값을 알아내려고 한다고 하자. 일단 4번째 명령어 (mov a.. [Dreamhack] basic_exploitation_002 간단한설명읽어들인 값을 그대로 printf 함수로 전달한다.이에 대하여 FSB 가 적용 가능해지며, NO PIE 이기에 주소값이 동일한 점을 이용해 return 주소를 get_shell 함수의 주소로 바꿔야 한다. FSB를 이용하기위해 pwntools의 fmtstr_payload 함수를 활용하였다. FSB를 직접 exploit하기 위해 손수 작성하면 %n을 위한 계산을 직접해야 하지만 fmtstr_payload 함수는 이를 대신해준다.FSB를 직접 작성한다치면 %n을 적용할 앞선 %c를 통한 문자 개수와 내가 활용하려는 인자가 몇번째인지를 직접적으로 계산하며 payload를 작성해야함에 주의해야한다. dreamhack 주소https://dreamhack.io/wargame/writeups/42150 [Dreamhack] rev-basic-5 간단한 설명input값에 적절한 연산을 하여 flag와 비교하는 구조이 구조에 대하여 역연산하면 flag가 나오는 문제이다. dreamhack write-up 주소https://dreamhack.io/wargame/writeups/42127 이전 1 2 3 4 ··· 12 다음