このプロジェクトについて
ysoserialは、安全でないオブジェクト逆シリアル化を悪用するシリアル化されたJavaペイロードを生成するための概念実証セキュリティツールです。これは元々、AppSecCali 2015の講演「Marshalling Pickles: how deserializing objects will ruin your day」の一部としてリリースされ、Apache Commons Collections(3.xおよび4.x)、Spring Beans/Core(4.x)、Groovy(2.3.x)向けの初期ガジェットチェーンが含まれていました。その後、JRE 1.7u21や他の多くのライブラリ向けのチェーンが追加されました。
メインドライバプログラムは、ユーザー指定のコマンドを受け取り、それをユーザー指定のガジェットチェーン(一般的なJavaライブラリに見られるクラスから組み立てられたプロパティ指向プログラミングシーケンス)にラップし、結果のオブジェクトを標準出力にシリアル化します。必要なガジェットがクラスパス上にあるアプリケーションがこのデータを安全でない方法で逆シリアル化すると、チェーンが自動的に呼び出され、コマンドがアプリケーションホスト上で実行されます。このプロジェクトは、脆弱性は安全でない逆シリアル化を実行するアプリケーション側にあり、クラスパス上にガジェットライブラリが存在するだけでは問題ではないことを強調しています。
このツールには、多数の研究者によって提供された30以上のペイロードタイプが同梱されています。これには、commons-collections 3.xおよびcommons-collections4 4.xにわたる7つのCommonsCollectionsバリアントに加え、CommonsBeanutils、Spring(2つのバリアント)、Groovy、Hibernate(2つのバリアント)、C3P0、BeanShell、Jython、Clojure、Mozilla Rhino(2つのバリアント)、ROME、JSON-lib、MyFaces(2つのバリアント)、Click、FileUpload、Vaadin、Wicket、Javassist/Weld、JBossインターセプター、AspectJWeaver、Jdk7u21、URLDNS(依存関係なし)、JRMPClient/JRMPListener向けのチェーンが含まれます。同梱のヘルパーであるysoserial.exploit.RMIRegistryExploitは、RMIレジストリにペイロードを配信するための例で示されています。
使用方法は単一のコマンドで、例えば「java -jar ysoserial.jar CommonsCollections1 calc.exe」です。生成されたペイロードは、ターゲットに直接パイプするか、ファイルに保存できます。READMEではnetcatを使用した例が示されています。ビルド済みのJARはGitHubリリースから入手でき、プロジェクトはJava 1.7以上とMaven 3.x以上を使用して「mvn clean package -DskipTests」でソースからビルドできます。
メンテナーは、このソフトウェアが純粋に学術研究と効果的な防御技術の開発のために作成されたものであり、明示的に許可された場合を除き、システムへの攻撃に使用することを意図していないと明言しています。ユーザーには責任を持って使用することが求められています。READMEで参照されている関連プロジェクトには、marshalsec(他のJava逆シリアル化形式とライブラリをカバーする姉妹プロジェクト)、ysoserial.net(.NET版)、および関連する脆弱性、ツール、解説を収集したJava-Deserialization-Cheat-Sheetが含まれます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.