22019, 1/1101 회원가입  로그인  
   sohun5013
   2012_01_21_230451.log (459.1 KB), Download : 626     [오른쪽 버튼 눌러 다운 받기]
   level12 하하~~~

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=22767 [복사]


죽어도 안 풀리네 ㅠㅠ
제목은 단순한 반어법이고요 ㅇㅇ...
for i in $(seq 0 255); do HEX=$(echo "ibase=10; obase=16; $i" | bc); perl -e 'print "\x'$HEX'\xfc\xff\xbf"x68'|/home/level12/attackme; done
아예 NOP빼고 무차별 대입까지 했는데... 안 뚫리네요 ㅇㅇ.

... FTZ랜덤 스택이거나 그렇진 않을 텐데 이게 뭐니...
정녕 eggshell을 써야만 하는 건가;; 그게 무슨 역할을 하는지도 모르는데 ㅠㅠ

  Hit : 10047     Date : 2012/01/22 12:59



    
BrokenPipe 쉘코드가 없는거같은데요 2012/01/22  
supershop 현재 브루트포싱하고 있는 저 주소 (0xbffffc??) 에는 뭐가 있나요? 2012/01/22  
sohun5013 당근 저 주소에 쉘코드가 있을 거라 짐작하는 거죠 ㅎㅎ
이것도 브루트포싱이라고 말할 수 있는지는 모르겠지만..
쉘코드 주소가 정확하지 않을 거라 생각해서 이렇게 시도했는데도 실패예요.. ㅠㅠ
2012/01/22  
sohun5013 아차, 첨부파일에 로그도 있어요. 그냥 스압일 뿐이지만.. 2012/01/22  
BrokenPipe 쉘코드는 모든 스택에 기본적으로 있는 필수요소가 아니에요
님이 직접 집어넣으시고 주소를 브루트포싱하는건 괜찮아도
이런식으로 쉘코드도 안넣으시고 주소를 브루트포싱하시면 그건 그냥 헛수고에요
에그쉘은 환경변수상에 쉘코드를 집어넣고 그 환경변수의 주소로 ret을 변경하는 기법입니다
2012/01/22  
havu eggshell은 안쓰는게 공부에 도움이 됩니다. 그리고 쉘코드는 원래 있을수가 없죠
bfffffc?? 이 주소에 쉘코드가 있을경우 RET를 조작하는 거니깐 ^^;
2012/01/22  
sohun5013 로그파일을 지금 보니 잘린 것 같지만 제가 쉘코드를 삽입한 부분은 확실히 보이는 것 같네요.
이미 예전에 NOP코드 삽입으로 질문할 때하고 공격 과정이 같아서 생략했을 뿐이예요.
ㅎㅎ 에그쉘을 안 쓰려고 발버둥치고 있는 건데 굉장히 험난한 것 같네요.
저기서 쉘코드가 정상적으로 있다고 가정하면 뭐가 문제인 거죠?
참고로 쉘코드는 정상 실행을 확인했습니다.
2012/01/22  
BrokenPipe 공격문자열을 작성하실때 perl -e 'print asdfsdafsfad' | attackme 가 아니라
(perl -e 'print asdfasdf';cat)| attackme
이런식으로 하시면 되는데 이유는 저도 잘 모르겠네요;
2012/01/22  
BrokenPipe 그리고 검색해보니 argv[1] 을 이용해서도 가능하다고 하시네요
http://www.codeache.org/3
2012/01/22  
BrokenPipe cat을 붙였을때 되는 이유는
http://devanix.tistory.com/137
참고하세요
2012/01/22  
i4mjuno 브루트포싱은

인내심
2012/01/23  
sohun5013 브루트포싱 아니라니깐... 정확한 주소를 몰라서 대충 대입하는 궁여지책이져 ㅠㅠ 2012/01/23  
BrokenPipe 모르고 계속 대입하는거니까 브루트포싱 맞죠
그것보단 위의 세개 연달아 있는 댓글에서 첫번째와 세번째가 이 질문에 대한 답변입니다
2012/01/23  
sohun5013 0xbffffb18 이 main의 SFP인데
0xbffffc47: "i686"
0xbffffc4c: "/home/level12/attackme"
0xbffffc63: "ABCDEFGHIJKLMN"
0xbffffc72: "REMOTEHOST=183.107.231.242"
0xbffffc8d: "HOSTNAME=ftz.hackerschool.org"
0xbffffcab: "TERM=xterm"
0xbffffcb6: "SHELL=/bin/bash"
0xbffffcc6: "HISTSIZE=1000"
... argv[1]의 주소값은 더 구하기 어려울 것 같은데요;;
구하는 방법은 저 링크에 안 나와 있네요.
2012/01/23  
BrokenPipe argv[1] 이 ebp+4 였나에 있던걸로 기억합니다
옛날에 흘려들은거라 이건 그냥 esp나 ebp 기준으로
x/600bx 하시면서 찾으시면 되요

결론만 말하자면 sohun 님이 첨부하신 로그를 보니
성공한 문자열이 있긴합니다
그 성공한 문자열에 (perl -e 'print "asdfasdf"';cat)|attackme경로
이 포맷만 적용시켜보세요
2012/01/23