当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

メニューからBurpを起動しても表示されない、コマンドからBurpを起動するとLinkageErrorが発生する【ハッキング・ラボ編】

2024年4月15日

現象

ParrotOS上でBurp Suite CE(Community Edition)が起動できない現象を観測しました。

『ハッキング・ラボのつくりかた 完全版』P.359でBurpが登場します。

メニューからBurpを起動しようとしても表示されない

P.360ではメニューから起動する方法を紹介しています。

最新ParrotOSでは若干サブメニューに変化があり、「アプリケーション」(「Applications」)>「Pentesting」>「Web Application Analysis」>「Web Application Proxies」>「Burpsuite CE」に変わっています。

本記事の問題に該当すれば、メニューから「Burpsuite CE」を選んでも、何も表示されません。

※内部的に起動エラーが発生しているため、Burpの画面さえ表示されません。

burpsuiteコマンドで起動しようとするとLinkageErrorが発生する

TerminalからBurpを起動するには、burpsuiteコマンドを入力します。

本記事の問題に該当すれば、LinkageErrorが発生します。

Error: LinkageError occurred while loading main class burp.StartBurp
java.lang.UnsupportedClassVersionError: burp/StartBurp has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

英語のエラーメッセージ

エラー:メイン・クラスburp.StartBurpのロード中にLinkageErrorが発生しました
java.lang.UnsupportedClassVersionError: burp/StartBurp has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

日本語のエラーメッセージ

原因

ParrotOS 6.0をインストール直後だと、LinkageErrorは発生せずにBurpを起動します。

しかし、Synapticパッケージマネージャやapt upgradeコマンドでBurpをアップグレードした際に、本件のエラーが発生しました。

Burpの新バージョンでは古いJavaで動作しないことが、LinkageErrorの原因です。

ipusiron@parrot:~$ java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Debian-1deb12u1, mixed mode, sharing)

Burp運営側によると、Burp v2024.2.1.3がサポートしているJavaの最小バージョンはJava 21とのことです。

対応策

一番よいのは、ParrotOSにおいて今回の問題を修正されて、問題なくBurpを起動できるようになることです。

ParrotOS上でBurpが使えないと困る人は世界中にたくさんいるので、いずれこの問題は解決すると想像できます。

それまで待てない人は暫定的な対応によって、Burpを起動できるようにしましょう。

方法はいろいろあります。

【暫定対応策1】消極的な方法で問題を回避する

・Burpをダウングレードする

・ParrotOSの仮想マシンを作り直して、Burpのアップグレードを避けて、運用する

※将来的にParrotOS 6.0より上になれば、直っているかもしれない。

・一時的にKaliを使って、ハッキング・ラボの実験をする

【暫定対応策2】手動でインストールしたOpenJDK 21をBurp起動時に指定する

1:OpenJDK 21をダウンロードする

wgetコマンドでOpenJDK 21[1]https://jdk.java.net/21/のtar.gzファイルをダウンロードします。

wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz

※APTで管理されていれば、aptコマンドでインストールできます(2024年4月11日現在はできない)。

$ sudo apt install openjdk-21-jdk -y

2:パッケージを解凍・展開する

ipusiron@parrot:~$ tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz
(出力は略)

3:JDMフォルダーを移動する

ipusiron@parrot:~$ sudo mv jdk-21.0.2/ /usr/lib/jvm/jdk-21

4:Burpの起動ファイルを編集する

Burp起動用のシェルスクリプト、すなわち"/usr/bin/burpsuite"ファイルを編集します。

GeanyはGUIで操作できるテキストエディター(というよりIDE)です。

ipusiron@parrot:~$ sudo geany /usr/bin/burpsuite

「/usr/lib/jvm/java-17-openjdk-$(dpkg-architecture -q DEB_HOST_ARCH)/bin/java」の部分を「/usr/lib/jvm/jdk-21/bin/java」(ステップ3のフォルダー)に書き換えます。

以上で完了です。

5:Burpを起動してみる

Terminalでburpsuiteコマンドを実行します。

Burpの画面が表示されれば成功です。初回はWelcome画面が出る前まで少し時間がかかります。

Burpブラウザーを起動して、GoogleにアクセスしてHTTPリクエストを補足できるところまで確認できました。

なお、以上のやり方は次に示す記事を参考にしました。

【暫定対応策3】

試していませんが、Burp公式のインストール用シェルスクリプトだとうまくいくようです。

参考記事

References