기본 Meterpreter 쉘 탐색하기

Kali LinuxBeginner
지금 연습하기

소개

Meterpreter 는 Metasploit Framework 의 고급 페이로드로, 침해된 시스템에 대한 대화형 쉘을 제공합니다. 침투 테스터에게는 필수적인 도구입니다.

이 실습에서는 Meterpreter 쉘 내에서 기본적인 탐색 및 정보 수집을 위한 기본 명령어를 배우게 됩니다. 실제 Meterpreter 세션을 시뮬레이션하기 위해 스크립트를 사용할 것입니다.

시작하려면, 이미 ~/project 디렉토리에 있는 터미널에서 다음 명령을 실행하여 시뮬레이션된 세션을 시작하십시오. 프롬프트가 meterpreter >로 변경될 것입니다.

./meterpreter_simulator.sh

연결을 시뮬레이션하는 일부 출력이 표시되며, 이 실습의 후속 모든 명령어는 이 새로운 meterpreter > 프롬프트에 입력해야 합니다.

sysinfo 명령어로 기본 시스템 정보 얻기

이 단계에서는 sysinfo 명령어를 사용하는 방법을 배웁니다. 이 명령어는 세션을 획득한 후 가장 먼저 실행해야 하는 명령어 중 하나로, 대상 시스템에 대한 빠르고 가치 있는 개요를 제공합니다. 컴퓨터 이름, 운영 체제 및 시스템 아키텍처를 보여줍니다.

meterpreter > 프롬프트에서 sysinfo 명령어를 입력하고 Enter 키를 누르십시오.

sysinfo

시뮬레이션된 대상 기계의 기본 정보를 자세히 설명하는 다음과 유사한 출력이 표시됩니다.

Computer        : labex-vm
OS              : Ubuntu 22.04 (Linux 5.15.0-generic)
Architecture    : x64
System Language : en_US
Meterpreter     : x64/linux

getuid 명령어로 현재 사용자 식별하기

이 단계에서는 getuid 명령어를 사용합니다. 현재 세션의 권한을 이해하는 것은 매우 중요합니다. getuid 명령어는 Meterpreter 페이로드가 실행 중인 사용자 계정을 즉시 알려줍니다. 이 정보는 시스템에서 수행할 수 있는 작업과 권한 상승을 시도해야 하는지 여부를 결정하는 데 도움이 됩니다.

meterpreter > 프롬프트에서 getuid를 입력하십시오.

getuid

출력에는 사용자 이름과 해당 사용자 ID(uid) 가 표시됩니다. 이 경우 labex 사용자로 실행 중입니다.

Server username: uid=1000, euid=1000, gid=1000 (labex)

ps 명령어로 실행 중인 프로세스 나열하기

이 단계에서는 ps 명령어를 사용하여 실행 중인 프로세스를 나열하는 방법을 배웁니다. Meterpreter 의 ps 명령어는 Linux 의 해당 명령어와 유사하지만, 원격 시스템의 세션을 통해 실행됩니다. 프로세스를 나열하는 것은 상황 인식을 위해 필수적입니다. 보안 소프트웨어를 식별하거나, 흥미로운 애플리케이션을 찾거나, 마이그레이션할 안정적인 프로세스를 선택하는 데 도움이 될 수 있습니다.

이제 Meterpreter 쉘에서 ps 명령어를 실행하십시오.

ps

출력은 대상 시스템에서 실행 중인 프로세스 목록입니다. 저희 시뮬레이션에서는 쉘 (zsh) 과 스크립트 자체 (bash) 를 포함한 몇 가지 주요 프로세스를 보여줍니다.

Process List
============

  PID   PPID  Name               Arch  Session  User      Path
  ---   ----  ----               ----  -------  ----      ----
  1     0     systemd            x64   0        root      /usr/lib/systemd/systemd
  935   1     sshd               x64   0        root      /usr/sbin/sshd
  1050  935   sshd               x64   1        labex     /usr/sbin/sshd
  1051  1050  zsh                x64   1        labex     /bin/zsh
  1100  1051  bash               x64   1        labex     /bin/bash

help 명령어로 모든 Meterpreter 명령어 보기

이 단계에서는 help 명령어를 탐색합니다. Meterpreter 는 기능이 풍부하여 모든 명령어를 기억하는 것은 불가능합니다. help 명령어는 모든 사용 가능한 명령어를 범주별로 그룹화하여 제공하는 가장 유용한 도구입니다.

사용 가능한 명령어 목록을 보려면 단순히 help를 입력하십시오.

help

출력에는 핵심 명령어와 stdapi와 같은 로드된 모듈의 명령어가 표시됩니다. 잠시 시간을 내어 목록을 살펴보며 Meterpreter 의 기능을 파악하십시오.

Core Commands
=============
    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    exit          Terminate the meterpreter session
    help          Help menu
    quit          Terminate the meterpreter session

Stdapi: System Commands
=======================
    Command       Description
    -------       -----------
    getuid        Get the user that the server is running as
    ps            List running processes
    sysinfo       Gets information about the remote system, such as OS

background 명령어로 세션 백그라운드 전환하기

이 단계에서는 background 명령어를 사용하는 방법을 배웁니다. 여러 침해된 시스템을 관리할 때, 다른 작업을 위해 세션을 종료하고 싶지 않을 것입니다. background 명령어는 현재 Meterpreter 세션을 백그라운드로 전환하여, 세션을 관리하거나 다른 모듈을 실행하기 위해 메인 Metasploit 콘솔 (msf6 >) 로 돌아갈 수 있게 해줍니다.

저희 시뮬레이션에서는 background를 실행하면 스크립트가 종료되고 일반 Linux 터미널로 돌아갑니다. 지금 background를 입력하십시오.

background

확인 메시지가 표시되고 프롬프트가 meterpreter >에서 일반적인 labex@ubuntu:~/project$로 돌아갈 것입니다. 이는 세션을 성공적으로 백그라운드로 전환했음을 의미합니다.

[*] Backgrounding session 1...

요약

이 실습을 완료하신 것을 축하드립니다! 기본적인 Meterpreter 세션을 탐색하고 초기 정찰을 수행하는 방법을 배웠습니다.

이제 다음의 기본 명령에 익숙해졌습니다.

  • sysinfo: 기본적인 운영 체제 및 하드웨어 정보를 수집합니다.
  • getuid: 현재 사용자의 권한 수준을 식별합니다.
  • ps: 대상 시스템에서 실행 중인 프로세스를 나열합니다.
  • help: 사용 가능한 모든 명령어를 표시합니다.
  • background: 세션을 종료하지 않고 메인 콘솔로 돌아갑니다.

이 명령어들은 더 고급의 후속 공격 활동을 위한 구성 요소입니다. 이 명령어들을 숙달하는 것이 Metasploit Framework 에 능숙해지기 위한 첫걸음입니다.