시스템 해킹

 1576, 1/79 회원가입  로그인  
   daydreamss
   egg쉘 질문입니다

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


egg 쉘 이라는 프로그램이 있던데
이것이 쉘을 띄우는 쉘 코드를 메모리상에 올리고
해당 코드의 시작주소를 알려주더군요.

그래서 이 프로그램이 알려준 주소로
취약한 프로그램의 리턴주소등을
버퍼오버플로우 등으로 덮어쓰면
쉘이 뜬다고 나와있던데...

취약한 프로그램과 egg쉘 프로그램은
두개의 서로다른 독립적인 응용프로그램이므로
egg쉘이 자신의 메모리상에 뭔가를 올리고
그 가상주소를 줘봤자
취약한 프로그램에서는 가상메모리가
다르게 매핑되므로 전혀 의미없는 주소가 되는것 아닌가요?

어떻게 이게 가능한것일까요??


  Hit : 3296     Date : 2011/07/08 12:59



    
늅늅 에그쉘은 자신의 메모리에 쉘코드를 올리는것이아닌 환경변수에 쉘코드를 등록하고
그 주소를 알려주는 프로그램입니다.
2011/07/08  
$Zero 늅늅님 말대로 환경변수에 쉘코드를 올리고 그 주소를 리턴한답니다.

그래서 프로그램에 환경변수 초기화 코드가 있으면 아무런 쓸모도 없어지게 되지요.
2011/07/08  
daydreamss 감사합니다~! 2011/07/12