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 |