HOME
home
CV News
home

AFL fuzzer #1

속성
SYSTEM
날짜
AFL fuzzer는 대상이 되는 프로그램에 무작위로 에러 대입공격을 통해 크래시를 유발하고 해당 프로그램에서 어떤 메모리 취약점이 존재하는지 알려주는 도구이다.
먼저 afl-latest 파일을 다운로드 후 압축을 해제한다.
tar -xvf afl-latest.tgz
다음 afl폴더로 이동하여 make, make install 명령을 입력하여 설치하고 ASAN을 사용하기 위해 afl-clang-fest를 설치한다.
apt-get install afl-clang
분석 테스트 대상은 dact로 진행
dact를 설치하고 압축을 해제한다.
tar -xvf dact-0.8.42.tar.gz
make clean 명령을 입력하고 압축 해제된 dact 디렉터리로 이동하여 CC에 fal-gcc를 삽입하여 컴파일한 뒤 make 명령을 다시 입력해 설치한다.
테스트할 dct파일을 생성한다.
afl-fuzz -i input -o output -- ./dact -dcf 명령 입력 시 퍼징이 시작된다.
퍼징이 시작되면 위 그림과같이 나타나게 되며 크래시와 유니크 크래시 갯수를 보여준다. 종료 시키기 전까진 계속해서 무작위로 대입하기 때문에 어느정도 돌아가면 수동으로 종료해준다.
dact를 afl-clang-fast로 컴파일 하기위해 CC를 삽입해 준다.
CC=afl-clang-fast CXX=afl-clang-fast++ CFLAGS="-fsanitize=address -g " CXXFLAGS="-fsanitize=address -g" LDFLAGS="-fsanitize=address -g" ./configure
make명령을 이용하여 설치 완료
output 폴더로 이동하여 크래시난 파일들을 확인하고 dact를 이용하여 압축을 해제한다.
압축 해제 시 어떤 부분에서 어떤 메모리 취약점이 발생하는지 보여준다.