시스템 해킹

 1576, 1/79 회원가입  로그인  
   wjsqud011
   http://없다.
   쉘코드에 대한 질문

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


제가 해킹에 대한 서적을 보면서 궁금한 것이 생겨서 질문을 합니다....

오버플로우는 분명 입력하는 값이 리턴어드레스를 저장하는 스택에 침범을 하여 변조하는 해킹 기법 인데...
근데 왜 쉘코드가 들어가나요??
쉘코드 용도가 뭔가요???

  Hit : 4092     Date : 2011/08/21 11:18



    
별빛을담아 ret(Return Address)에 임의의 공간 A의 address를 OverWrite함
그리고 어떤 공간 A에 Shellcode를 삽입

이렇게 Stack에 올린 뒤에 프로그램을 실행시 과정
프로그램 내부의 어떤 함수가 정상 작동 - ret을 참조(임의의 공간 A로 이동) - 임의의 공간 A의 내용을 읽어드림(Shellcode) - 읽어들인 값에 따라 다음 작업 실행(/bin/sh) - Shell

프로그램 정상실행시 과정
프로그램 내부의 어떤 함수가 정상함 - ret을 참조[ex) main함수의 위치] - 다음 알고리즘 ㄱㄱ
2011/08/22  
메버리키 제가 이해한 방법으로는요,
EIP 가 있는 주소에서 하나씩 읽어와서 실행을 하거든요?
그런데 retn 명령어를 실행하면 저장되있는 리턴어드레스를 꺼내서 그곳으로 EIP를 바꿔버립니다. 원래 목적으론 이전 함수로 돌아가기 위한 거죠,
그런데 그 리턴어드래스를 쉘 코드(즉, 쉘을 실행시키는 코드) 가 있는 주소로 덮어써주게되면 EIP 가 쉘코드의 주소쪽으로 바뀌어서 쉘코드를 실행시키는겁니다.
2011/08/22  
Nolifeguard 쉘코드 만들기 공부해보세요 ^ㅡ^// 설명 잘되엇어요 2011/08/23