메뉴 건너뛰기

Hello :0

Tomcat web application manager exploit

2013.10.13 21:33

Leekyu 조회 수:3807

1. Apache tomcat?

 

아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발된 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버이다.

 

톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다.

 

아파치 톰캣은 Apache Licence, Version 2를 채용한 오픈소스 소프트웨어로서, 서블릿이나 JSP를 실행하기 위한 서블릿 컨테이너를 제공하며, 상용 웹 애플리케이션 서버에서도 서블릿 컨테이너로 사용하는 경우가 많다. 버전 5.5 이후는 기본적으로 Java SE 5.0 이후를 대응한다.

 

-위키백과-

 

tomcat.jpg

 

2. Tomcat manager 취약점

 

 - 공격자는 관리되지 않는 Tomcat manager를 통해 서버의 권한을 획득 할 수 있다. Tomcat은 설치 후 기본 관리자 페이지인 /manager/html이 존재하는데 이 페이지에서 유추하기 쉬운 계정정보를 사용하였을때, 웹쉘을 올릴 수 있다. 

 - 아래의 사진은 Tomcat manager 페이지이며, 공격자는 압축된 자바 프로그램인 WAR 파일을 여기서 업로드 할 수 있다.

managerpage.jpg

 

3. Tomcat manager Scan

 - Tomcat manager를 찾는 방법은 여러가지가 있다.

 

1) Tomcat.py : 파이썬 기반의 Scanner

tomcatpy.jpg

 

 

2) metasploit의 auxiliary 모듈metasploit.png

 - Backtrack의 Terminal에서 msfconsole로 metasploit를 실행 시킨후 use auxiliary/scanner/http/tomcat_mgr_login을 실행 시킨다.

 

 

3) Armitage 를 이용한 공격 : metasploit를 GUI형태로 쓸 수 있게 해주며 사용이 상당히 편리하다. Armitage를 이용해 실제 Tomcat exploit를 실시해 본다.

armitage.png

 - Armitage를 실행 시킨 후, 왼쪽의 취약점 모듈이 있는 곳에서 tomcat으로 검색을 한다. 

 - 검색을 하면 scanner부분에 tomcat_mgr_login 이있는데 이 것을 더블클릭하여 설정을 한다. Tomcat를 사용하는 서버를 정확히 알고 있다면, 단일 IP를 넣어 바로 Brute force공격을 해도 되지만 어떤 서버가 Tomcat를 사용하는지 모른다고 가정하여, 192.168.1.0/24 대역으로 설정을 한다. Launch를 클릭해서 공격을 시작한다.

 

 

password.jpg

 - 공격이 시작되고 192.168.1.100 IP가 Tomcat를 쓰는 것을 확인한 후 바로 bruteforce를 통해 id와 password를 획득한다.

 

 

war.jpg

 - tomcat에 웹쉘을 올리기 위해 먼저 jdk를 설치한 후 jar cvf 명령어를 이용하여 war파일을 만들어 준다. 명령을 실행하고 나면 위 그림처럼 test.war 파일이 생성된 것을 볼수 있다. 

 

 

login.jpg

 - 아까 전에 획득했던 계정 정보로 로그인을 한다.

 

 

upload.jpg

 - manager page 로그인후 아래로 스크롤일 내리면 WAR file to deploy가 있다. Select WAR file to upload를 통해 만들어 두었던 test.war을 업로드 한다. 

 

 

webshell.png

 - 업로드가 성공하게 되면 압축되어 있던 war파일이 풀리고 그안에 있는 웹쉘파일에 접근이 가능해진다.

   /test/jbrowser.jsp

 

4. metasploit를 이용한 쉘 획득

tetas1.jpg

 - 위에서 스캔을 진행한 것과 비슷하게 이번에는 exploit 모듈에서 tomcat_mgr_deploy를 선택한 후 설정 창에서 아까 획득한 계정 정도와 IP 그리고 PORT를 적절하게 설정한후 실행을 시킨다. 

 

 

auto.jpg

 - 공격이 성공하면 meterpreter를 이용해 시스템을 침투에 성공 할 수 있다.