* 사업 등 관련 문의: T) 02-322-4688, F) 02-322-4646, E) info@wikisecurity.net
최전방 Router의 ACL설정 변경관리 취약점을 이용한 권한획득 사례
1. 진단 개요
공격자의 위치는 인터넷 외부에 위치하고, 대상은 DMZ에 위치한 대상시스템 들이다.
본 모의해킹 진단은 DMZ에 위치한 시스템의 권한획득을 시도하는 시나리오로써, 경유 공격이 가능한 상황이다.
DMZ에는 DNS, Web, Mail 서버 등이 운영되고 있으며, 인터넷 최전방에 라우터가 위치하여 허용되지 않은 접근은 ACL과 네트워크 방화벽으로 허용되어 있지 않은 접근을 차단하고 있다.
DMZ의 대상 시스템의 권한을 획득을 시도하는 과정에서 최전방 라우터의 권한을 획득하는 부수적인 성과를 얻게 되었는데, 최전방 라우터의 권한을 획득하게된 원인은 라우터 운영자의 ACL 설정에 대한 변경관리였다.
2. 권한획득 및 공격스텝
라우터의 ACL설정은 아래와 같았다. 과연 아래의 ACL에서 어떤 부분이 잘 못 설정된 것일까?
... 중략 ... (1) any - any - name-server - 53 - permit (2) any - 53 - any - any - permit ... 중략 ... ... 중략 ... (3) any - any - any - any - deny
위의 ACL설정을 보면, 3개의 ACL 설정에는 별 문제가 없는 것으로 보인다.
위의 (1)과(2)는 DNS 서버에 대한 허용으로 보이고, (3)은 위에 정의되지 않은 모든 접근은 차단 처리하는 룰셋으로 구성되어 있어서 문제가되는 부분은 없어 보인다.
ACL설정을 자세히 보면, 문제의 ACL 룰셋은 (2)에 있다는 것을 알 수 있다.
즉, Source의 IP 및 Port는 문제가 없어보이지만, Destination의 IP와 Port 설정이 문제인데, Destination IP와 Port를 모두 허용하고 있는 Source의 Port는 53이라는 것이다.
결국, Source port를 53번으로 접속하면, 내부의(Destination) 어떤 IP나 포트든 모두 접속이 가능하다는 ACL룰셋을 걸어 설정해 놓은 것이다.
따라서 공격자는 인터넷 외부에서 Source Port를 53번으로 지정하고 IP를 알고 있는 라우터 장비의 telnet port로 접속이 가능하였으며, 회사명을 2번 반복사용한 enable password를 추측하여 최전방 라우터의 Supervisor권한을 획득하게 되었다.
Netcat을 이용한 라우터 접속은 아래와 같다.
# nc -t -w 1 -vvv -n -p 53 203.xxx.xxx.30 23 (UNKNOWN) [203.xxx.xxx.30] 23 (?) open ???? User Access Verification Password:
3. 교훈과 개선사항
진단결과를 가지고 라우터 운영자와 인터뷰해 본 결과, 오류가 있는 ACL설정은 최근의 DNS 설정변경 작업시 테스트로 설정했던 룰셋을 삭제하지 않아 발생한 것으로 확인 되었다.
그러나, 이러한 ACL 설정 오류와 같이 네트워크 상의 보안 헛점은 해당 네트워크 전체에 큰 악영향을 가져올 수 있기 때문에 신중을 기해야 하며, 특히 작업기록에 대한 관리와 운영자에 대한 정기적인 교육의 중요성을 인식시켜준 한 사례였다.