본문으로 바로가기

해커스쿨.Section 19

category Studysystem 7년 전


Section 19


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




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



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




1. 정보수집


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


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


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


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




2. 리모트 어택


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


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


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


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


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


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




3. 로컬 어택


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


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


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




4. 흔적 삭제


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


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


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




5. 백도어 생성


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


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


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



Studysystem카테고리의 다른글

리눅스에서 환경변수  (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