<보안 study>/시스템 6

Win-AFL 퍼저 빌드과정

#퍼징 #AFL-FUZZ #Win-AFL 리눅스에서는 AFL-FUZZ 를 사용했듯이 윈도우 환경에서도 Win-AFL 을 통해 퍼징을 진행할 수 있다. GUI 바이너리에도 가능하고, 커스텀해서 퍼징도 가능한듯..? 하다. 무엇보다도 단순 AFL-FUZZ 보다 확장된 기능이 있는데, Syzygy 를 통한 정적 명령어 삽입, DynamoRIO 를 이용한 동적분석 시 명령어 삽입, 하드웨어 트레이싱 등등... 이 있다고 한다. 일단은 빌드 부터 해보기로! 매우 쉽다. 1. CMAKE 설치 Win-AFL 을 빌드하는데에는 CMAKE 가 필요하다. DynamoRIO 기능을 cmake 를 통해 넣어주는 부분에서 필요한 것 같다. https://cmake.org/download/ 위 링크에 가서 자기한테 맞는 걸로 다..

RTL기법이란? (Return To Library)

RTL 기법. 프로그램은 printf나 scanf 등등.. 의 함수들을 프로그램에 적용 된 라이브러리(Library)파일에서 갖고 온다.여기서 함수의 plt와 got를 이해해야한다. PLT는 간단히 말하면,got를 비롯한 여러가지의 함수 프로시져를 모아놓은 테이블. PLT안에 자리 잡은 GOT를 간단히 말하자면,함수의 본래 실제주소를 담고있는 테이블. 함수가 호출되면 PLT를 거쳐 GOT를 거쳐 결국엔 함수의 실제주소에 도달하게 된다는 것이다. (자세한 도달 과정은 따로 더 공부하기 !)이 과정에서 실제주소에 영향을 미치는 라이브러리 파일을 이용할 수 밖에 없는데 그것을 이용한 공격기법이다.예시를 들면 라이브러리에 있는 system함수를 ret에 덮어씌워서(복귀주소에 복귀할 곳을 system함수로 바꿔주..

함수 프롤로그(prologue) 에필로그(epilogue)

메모리 구조를 기억해두어야할 필요가 있다.스택, 라이브러리영역, 힙, 데이타 등등 상세한 영역이 있다. 함수의 프롤로그와 에필로그는 스택, 정확히 스택프레임에 관여를 하는 작업이다.프롤로그는 함수가 호출(Call) 될 때, 스택프레임을 구성해주는 작업까지를 일컫는다.스택프레임(Stack Frame)은 말그대로 스택의 틀이다. 틀. 프롤로그 과정을 그림으로 보면 이해가 편하다. 번호는 작업이 실행되는 순서인데 RET(복귀주소) 부터 스택 밑(메모리 가장높은주소)에 넣고 SFP는 그 위에(메모리 주소는 RET메모리 주소보다 낮음) 넣고 sfp밑부분에 ebp를 설정해두고 esp값에 ebp주소 값을 넣는 것까지가 프롤로그의 한 과정이다. 이제 함수가 안에서 변수도 불러오고 다른 함수도 호출시키고 하면 esp가 ..

[linux]리눅스 명령어

주로 쓰는 리눅스 명령어들 cp : 복사하기 cp (복사될 파일) (복사할 이름,디렉토리 포함가능) ex)cp (파일1.txt) (./디렉토리1/파일2.txt) cd : 디렉토리이동 cd (이동할 디렉토리) vi : 파일수정 작업 vi (수정할 파일) ex)vi (upload.php)/vi (upload.py)/etc ... mv : 파일이동or이름바꾸기 mv (이동될 파일) (이동할 디렉토리 or 바꾸고싶은이름) ex)mv (바보.jpg) (바보.txt)/ mv (a.py) (./dir/b.py) ls 또는 ls -al : 파일리스트 ls 또는 ls -al ※-al 옵션이 붙으면 보이지않던 스왑파일이나 . ..과 같은 디렉토리가 보임 mkdir : 디렉토리생성 mkdir (디렉토리 이름) rmdir :..

반응형