wget http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz tar -xvf afl-latest.tgz cd afl-1.96b/ make all make install |
몸풀기로 간단한 fuzzing을 해보자, afl 디렉토리 아래에 test-instr.c 라는 파일이 있을것이다. 그것을 대상으로 fuzzing을 해보자
./afl-gcc -o test-instr test-instr.c |
위와같이 컴파일시에 afl 메시지도 같이 나와야 잘된것이다.
2) Afl fuzzing 하기
afl-fuzz라는 바이너리로 fuzzing을 한다. 전반적인 사용법은 아래와 같다.
- 인풋 데이터가 Standard input이면
./afl-fuzz -i "Testcase 디렉토리" -o "결과가 만들어진 디렉토리 이름" "Fuzzing할 바이너리 이름" "파라미터이름..." $ ./afl-fuzz -i testcase_dir -o findings_dir /path/to/program [...params...] |
- 인풋 데이터가 파일이면
./afl-fuzz -i "Testcase 디렉토리" -o "결과가 만들어진 디렉토리 이름" "Fuzzing할 바이너리 이름" @@ $ ./afl-fuzz -i testcase_dir -o findings_dir /path/to/program @@ |
./afl-fuzz -i ./testcases/others/text/ -o ./afl-out/ ./test-instr |
echo core >/proc/sys/kernel/core_pattern |
(* 만약 Permission 에러가 출력되면 sudo -s 등으로 슈퍼 계정으로 전환후 위의 명령어를 입력하도록 한다.)
total paths가 항상 1보다 크게 나와야 잘 실행되는것이다.
다운 받은 압축 파일을 풀어서 해당 디렉토리로 이동한다,
e2fsprogs 리눅스 유틸은 여너 오픈소스와 마찬가지로 configure -> make all의 순서로 컴파일 된다.
configure 할때 afl-gcc 컴파일러를 등록한후에, make all 명령어로 컴파일&빌드하면 된다.
나는 아래와 같이 입력하였다.
cd e2fsprogs-1.42/ ./configure CC="/home/kaspyx/afl-1.96b/afl-gcc" |
"./configure" 를 실행하면 뭔가 세팅정보등이 설정되면서 글자들이 주르륵 올라온다.
이제 "make all"을 실행하면, afl-gcc와 함께 컴파일이 시작될것이다.
마찬가지로, 컴파일이 성공하는지 컴파일 도중 afl 메시지가 뜨는지 잘 확인하도록 하자.
이제 컴파일이 성공하였다면, afl-fuzzer를 이용한 fuzzing을 하기위한 준비는 다된것이다.
'IT > System Hacking' 카테고리의 다른 글
포맷 스트링 버그(format string bug) 공격시에 플래그(flag)사용하기 (0) | 2016.04.20 |
---|---|
포맷 스트링 버그(Format string bug) %hn 사용법 (0) | 2016.04.13 |
포맷 스트링 버그(Format string bug) 취약점이란? (0) | 2015.11.08 |
리눅스 쉘코드(Shell Code)만들기 (1) | 2015.03.12 |
리눅스 시스템 해킹방어 메카니즘 및 해킹환경 구축하기 (0) | 2015.03.12 |