メニューからBurpを起動しても表示されない、コマンドからBurpを起動するとLinkageErrorが発生する【ハッキング・ラボ編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
現象
ParrotOS上でBurp Suite CE(Community Edition)が起動できない現象を観測しました。
『ハッキング・ラボのつくりかた 完全版』P.359でBurpが登場します。
メニューからBurpを起動しようとしても表示されない
P.360ではメニューから起動する方法を紹介しています。
最新ParrotOSでは若干サブメニューに変化があり、「アプリケーション」(「Applications」)>「Pentesting」>「Web Application Analysis」>「Web Application Proxies」>「Burpsuite CE」に変わっています。
![](https://akademeia.info/wp-content/uploads/2024/04/start1.jpg)
本記事の問題に該当すれば、メニューから「Burpsuite CE」を選んでも、何も表示されません。
※内部的に起動エラーが発生しているため、Burpの画面さえ表示されません。
burpsuiteコマンドで起動しようとするとLinkageErrorが発生する
TerminalからBurpを起動するには、burpsuiteコマンドを入力します。
![](https://akademeia.info/wp-content/uploads/2024/04/command_start.png)
本記事の問題に該当すれば、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
![](https://akademeia.info/wp-content/uploads/2024/04/update後にJavaRuntimeエラーが発生する.png)
原因
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とのことです。
![](https://akademeia.info/wp-content/uploads/2024/04/x1-1.png)
対応策
一番よいのは、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
![](https://akademeia.info/wp-content/uploads/2024/04/1-2.jpg)
※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のフォルダー)に書き換えます。
![](https://akademeia.info/wp-content/uploads/2024/04/2-1.png)
![](https://akademeia.info/wp-content/uploads/2024/04/3.png)
以上で完了です。
5:Burpを起動してみる
Terminalでburpsuiteコマンドを実行します。
Burpの画面が表示されれば成功です。初回はWelcome画面が出る前まで少し時間がかかります。
![](https://akademeia.info/wp-content/uploads/2024/04/4_success.png)
Burpブラウザーを起動して、GoogleにアクセスしてHTTPリクエストを補足できるところまで確認できました。
なお、以上のやり方は次に示す記事を参考にしました。
【暫定対応策3】
試していませんが、Burp公式のインストール用シェルスクリプトだとうまくいくようです。
参考記事
References
↑1 | https://jdk.java.net/21/ |
---|