SMB

SMB 기본 공유 폴더 중 서버의 C:\Windows 경로인 ADMIN$ 쉐어에 쓰기 권한이 있다면 Sysinternal Suite - PsExec와 같은 원격 제어 프로그램을 사용하여 쉘을 얻을 수 있습니다.

해당 프로그램 외에도 SMB에 권한이 있다면 다양한 방법으로 측면 이동이 가능하겠지만, C2 프레임워크에서 널리 사용되는 방법인 PsExec를 기반으로 설명하겠습니다.

# 대상 시스템 로컬 계정/도메인 계정으로 원격 쉘 획득
.\PsExec64.exe -u Administrator -p 'Password123!' \\192.168.1.11 cmd

Root Cause

PSEXESVC.exe Create Request

PsExec를 실행하면 클라이언트는 서버의 ADMIN$ 공유 폴더 하위에 PSEXESVC.exe를 업로드 합니다. 해당 실행 파일을 통해 원격 제어를 할 수 있습니다. C:\Windows 경로가 공유 폴더에서 ADMIN$으로 나타나는데, 이 폴더에 쓰기 권한이 있는 원격 로컬 사용자 계정 혹은 도메인 계정만이 가능합니다.

PsExec를 통한 원격 제어 흐름

PSEXESVC.exe는 실행했을 때 원격 제어가 되도록 돕는 실행 파일입니다. 해당 파일을 바이너리 파일로 지정하는 서비스를 생성 및 실행하기 위해 SVCCTL(Service Control Manager Remote Protocol)을 사용합니다.

서비스 바이너리를 실행 파일로 지정하여 서비스 생성

Opsec

PSEXESVC는 Windows System Event ID 7036을 남깁니다.

Windows System Event log

References

Last updated