본문으로 바로가기

해커스쿨.Section 19

category Study/system 2017. 11. 7. 18:59


Section 19


리모트 버퍼 오버플로우와 로컬 버퍼 오버플로우




이번에는 버퍼 오버플로우 취약점이 실제상황에서 어떤 루트로 발생하는지 살펴보자



전반적인 해킹 시나리오는 해킹의 대상과 기술적인 방법에 따라 다를 수 있지만 일반적으로 총 5가지로 나뉜다.




1. 정보수집


우선 가장 기초적으로 해킹할 대상의 정보를 캐내야 한다.


대상의 도메인과 IP주소, 운영체제 종류, 작동중인 서비스, 취약점, 연결되어있는 서버, 네트워크 구조 등


정말 세세한 정보까지 수집하여 취약한 부분을 찾아내는 과정이다.


이 부분에 대해서는 대상의 복잡도와 보안강도에 따라 짧게는 몇십분, 길게는 몇주에서 몇달까지 걸릴 수도 있다.




2. 리모트 어택


정보수집 과정에서 취약점을 찾아내고 해킹의 성공을 예측할 수 있게 되었다면 리모트 어택을 시작한다.


리모트 어택은 말 그대로 원격 공격이다.


해당 서버에 접속할 수 있는 권한이 없음에도 접근해내는 것이다. 즉, 서버를 뚫고 들어가는 과정이다.


이 과정에서는 웹 해킹, 시스템 해킹, 사회공학적 해킹 등이 사용될 수 있다.


누군가의 계정을 탈취하여 접속하게 되는 것이다.


만약 이 과정에서 버퍼 오버플로우가 사용되었다면, 이를 리모트 버퍼 오버플로우라고 한다.




3. 로컬 어택


서버 접속에 성공했다면 이제 로컬 어택을 시작하게 된다.


시스템속 취약한 부분들을 통해 관리자 권한까지 상승하도록 만드는 과정이다.


만약 이 과정에서 버퍼 오버플로우가 사용되었다면, 이를 로컬 버퍼 오버플로우라고 한다.




4. 흔적 삭제


최고권한까지 얻어내었다면 시스템을 모두 장악했다고 할 수 있다.


이제는 최고권한까지 올라가기 위해 남겼던 흔적을 삭제하여 역추적을 방지하게된다.


자세히 말하면 원격 서비스에 접속한 클라이언트들의 IP 기록, 해당 클라이언트로부터 수신된 주요 데이터들 등 로그기록을 삭제한다는 것이다.




5. 백도어 생성


모든 절차가 완료되면 서버에서 빠져나오게 되지만 후에 다시 이 서버에 들어올 일이 생길 경우 위의 과정을 다시 진행해야 한다.


만약 서버관리자가 보안을 더 강화해놓은 상태라면 기존의 취약점을 이용할 수 없기 때문에 새로운 취약점을 찾아야한다.


그렇기 때문에 따로 백도어를 만들어 서버 재침투를 쉽게 만들어 놓게된다.



'Study > system' 카테고리의 다른 글

리눅스에서 환경변수  (0) 2017.11.07
해커스쿨.Section 20  (0) 2017.11.07
해커스쿨.Section 17  (0) 2017.11.07
해커스쿨.Section 15  (0) 2017.11.07
해커스쿨.Section 14  (0) 2017.11.05