시스템 해킹

 1576, 1/79 회원가입  로그인  
   bong93
   shellcode 질문드립니다.

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


쉘코드 공부 중에 궁금한게있어서 질문드립니다.

쉘코드 제작을 할 때 "/bin/sh"을 넣어주면 되는데

왜 기계어로 된 쉘코드를 삽입하는 궁금증이 있어서 질문드립니다.

  Hit : 3047     Date : 2017/01/07 10:19



    
해쿨러 쉘코드를 써보지 않으시고 질문하신게 아닌가 싶네요
쉘코드는 메모리상에 어딘가에 적재를 시켜두고, 그 적재된 위치를 아는 상태에서 EIP가 쉘코드를 가르키게 해 사용합니다. 이 때 쉘코드가 올라가는 메모리는 write와 execute가 모두 가능해야합니다 즉 NX가 걸려있지 않아야 합니다
/bin/sh는 단순히 쉘 프로그램의 경로일 뿐입니다
/bin/sh라는 문자열이 프로그램에 있다고 해서 쉘을 실행할 수 있는게 아니라
쉘을 실행하는 코드를 넣어야 하는 겁니다
그래서 보고 계신 문서에서 execve 시스템콜을 사용할텐데 그게 프로그램을 실행시켜주는 시스템콜입니다
2017/01/09