kernel 해킹 초심자를 위한 KernelTool안녕하세요. 오랜만에 블로그 글로 돌아온 keyme입니다~! 최근에 워게임/CTF 푸는 빈도가 많이 줄긴 했지만.. 그래도 kernel exploit 관련해서 관심이 생겨서 개인적으로 시간을 투자해서 공부했었는데요. 저처럼 커널 익스에 관심이 있거나 이제 막 시작하시는 분들을 위한 툴을 소개하고자 합니다. KernelTool이라는 프로그램인데요. 커널 익스 관련 문제를 풀다보면 환경 구축 과정에서 귀찮음이 많이 따릅니다.주어진 파일 시스템 추출/병합gdb로 심볼과 함께 attach하여 분석vmlinux가 없는 경우 bzImage를 통해 vmlinux(심볼 없는)를 획득등등..https://github.com/kmm2003/KernelTool GitHub ..
SSP(Stack Smashing Protector)SSP는 BOF를 방어하기 위한 보호기법 중 하나로 함수를 실행할 때, canary라는 랜덤 값을 스택에 추가하여 BOF로 스택 데이터가 변조됐는지 확인하는 방법이다. canary가 변조된 경우는 스택 데이터가 변조됐다고 판단하고 프로그램을 종료한다. └─# checksec ssp_chk [*] '/root/ssp_chk' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000)SSP가 바이너리에 적용됐는지 확인하는 방법은 checksec 명령을 이용하는 방법이다.“..
ROP(Return Oriented Programming)ROP는 ASLR과 같은 메모리 보호기법을 우회하기 위한 공격기법으로 return이 포함된 코드 조각들인 가젯들을 이용해 system(“/bin/bash”)를 실행하는 프로그램을 해커가 임의로 만들어서 root의 권한을 얻어내는 해킹 기법이다. ROP 이해를 위한 예제를 준비했다. ROP 체인으로 setresuid(0,0,0)와 system("/bin/sh")를 연속으로 실행하는 예제를 이해해보자. 대표적으로 자주 사용하는 pop rdi; ret 가젯과 pop rsi; pop rdx; ret 가젯을 활용한 예제다. BOF로 스택에 가젯과 인자들을 덮어썼다는 전제로 만든 메모리 구조다. 가젯이 실행될 때마다 스택이 어떻게 바뀌는지 확인해보자. 함수가..