亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CreateProcessAsUser 到 ImpersonateLoggedOnUser

CreateProcessAsUser 到 ImpersonateLoggedOnUser

C#
慕的地8271018 2023-08-20 10:01:32
來自(哪里Windows C# 有沒有辦法使用父進程的 Kerberos 票證創建新進程?支持使用 SSPI 進行多進程的 kerberos 約束委派我正在嘗試將 Kerberos 憑據從一個進程復制到另一個進程以調用遠程命令。史蒂夫非常有幫助,但我對如何創建子進程,使用正確的憑據句柄加載它和模擬,然后獲取同一個子進程來執行調用后的實際命令有點困惑DuplicateHandles 要求子進程首先存在。我的問題是,如何讓子進程執行我最初打算讓它作為 CreateProcessAsUser 模擬執行的命令?到目前為止的代碼:var CurrentIdentity = ((WindowsIdentity)User.Identity).Token;IntPtr parentHandle = IntPtr.Zero;CloneParentProcessToken.QuerySecurityContextToken(ref CurrentIdentity, out parentHandle);IntPtr parentProcessHandle = Process.GetCurrentProcess().Handle;currentUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name;//Create Child Process as UserIntPtr childProcessHandle = CreateProcessAsUser();IntPtr lpTargetHandle = IntPtr.Zero;//Duplicate parent security handle into childif (CloneParentProcessToken.DuplicateHandle(parentProcessHandle, parentHandle, childProcessHandle, out lpTargetHandle,    ProcessUtility.TOKEN_IMPERSONATE, true, (uint)0x00000002)){    int childHandleProcessID = CloneParentProcessToken.GetProcessId(lpTargetHandle);    IntPtr newChildProcess = ProcessUtility.OpenProcess(ProcessUtility.ProcessAccessFlags.All, true, childHandleProcessID);    IntPtr newProcessAccessTokenHandle = IntPtr.Zero;    if (ProcessUtility.OpenProcessToken(newChildProcess, ProcessUtility.TOKEN_IMPERSONATE, out newProcessAccessTokenHandle))    {        //Impersonate the user in the new child process        if (CloneParentProcessToken.ImpersonateLoggedOnUser(newProcessAccessTokenHandle))        {            //newChildProcess is pointer to child process with token and impersonation            Process child = Process.GetProcessById(childHandleProcessID);            //Have child process execute???        }    }
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

因為對 DuplicateHandles 的調用要求子進程首先存在。

您可以設置hTargetProcessHandle為當前進程,并bInheritHandle設置為true,以便目標進程創建的新進程可以繼承重復的句柄。然后通過IPC將新的token傳遞給子進程。


查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號