从管理员身份获得SYSTEM权限的四种方法电脑资料

更新时间:2023-07-07 20:32:48 阅读: 评论:0

从管理员身份获得 SYSTEM 权限的四种方法 -电脑资料
    本文总结了 4 种方法获得 SYSTEM 权限来运行 文件,
    源代码很容易修改成命令行方式运行指定的程序,
从管理员身份获得 SYSTEM 权限的四种方法
    1. 以服务方式运行
    2. 添加 ACL 的方法三步并作两步
    3. HOOK ZwCreateProcessEx 函数
    4. 远程线程的方法
    这几种方法都不是我想出来的,我只不过是总结了一下,用 Win32ASM 重写了代码而以。
    关于这个大家可以看文章末尾的参考资料。下面简单的分析每一种方法。
    1. 以服务方式运行
    因为以服务方式运行程序时,相当于运行程序的是系统进程,所以,
    被指定运行的程序自然而然的继承了系统进程的权限,也就是 SYSTEM 权限。
    ;@echo off
    ;goto make
    ;====================================================================================
    ; 一块三毛钱
    ;
学困生帮扶措施    ;
新生儿嘴唇发紫    ; 2005.1.15
    ;
    ; 以 SYSTEM 权限运行程序 - GetSys1山中王勃
    ;
    ; 采用以服务方式运行的方法
    ;
    ;====================================================================================
    .386
    .model flat, stdcall
    option camap :none
    include c:\masm32\include\windows.inc
    include c:\masm32\include\kernel32.inc
    include c:\masm32\include\advapi32.inc
    include c:\masm32\include\masm32.inc
    includelib c:\masm32\lib\kernel32.lib
拉筋的好处    includelib c:\masm32\lib\advapi32.lib
    includelib c:\masm32\lib\masm32.lib
    _ReLaunch proto
    CTXT MACRO text
    local lbl
    .const
佛经歌曲    lbl db text,0
    .code
    exitm
    ENDM
    .code
    start proc
    LOCAL  stStartupInfo : STARTUPINFO
    LOCAL  procinfo : PROCESS_INFORMATION
    invoke CreateMutex, NULL, TRUE, CTXT("GetSys1_Mutex")
    invoke GetLastError
    .if eax==ERROR_ALREADY_EXISTS
    invoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfo
    mov    stStartupInfo.cb, sizeof stStartupInfo
    invoke CreateProcess, 0, CTXT(""), 0, 0, 0, 0, 0, 0,
    addr stStartupInfo, addr procinfo
    invoke CloHandle, procinfo.hProcess
    invoke CloHandle, procinfo.hThread
    .el
    invoke _ReLaunch
    .endif
    invoke ExitProcess, NULL
    start endp
    _ReLaunch proc
    LOCAL  hSCManager
    LOCAL  hService
    LOCAL  szName[MAX_PATH] : byte
    invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE
    .if eax!=0
    mov    hSCManager, eax
    invoke OpenService, hSCManager, CTXT("GetSys1Temp"), DELETE
    .if eax!=0
    push   eax
    invoke DeleteService, eax
    call   CloServiceHandle
    .endif
    invoke GetModuleFileName, NULL, addr szName, MAX_PATH
    invoke CreateService, hSCManager, CTXT("GetSys1Temp"), CTXT("GetSys1 Temp Service"), \
    SERVICE_START + SERVICE_QUERY_STATUS + DELETE, \
    SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS, SERVICE_DEMAND_START, \
    SERVICE_ERROR_IGNORE, addr szName, NULL, NULL, NULL, NULL, NULL
    .if eax!=0
    mov    hService, eax
拌凉菜
    invoke StartService, hService, 0, NULL
    invoke DeleteService, hService
    invoke CloServiceHandle, hService
    .endif
    invoke CloServiceHandle, hSCManager
    .endif
    ret
普洱茶好坏怎样鉴别    _ReLaunch endp
    end start
    :make
    t path=%path%;c:\masm32\bin
    t appname=GetSys1
    ml /nologo /c /coff %appname%.bat
    link /nologo /subsystem:windows %appname%.obj
    del %appname%.obj
    echo.
    pau
    GetSys1(第一次运行的这个进程 GetSys1 我们称为 A) 开始运行时先创建一个互斥量,
    接着以服务的方式重新启动自己
    (又一次运行的进程 GetSys1 我们称为 B),重新运行后的 B 已经具有了 SYSTEM 权限。
    B 再通过 CreateProcess 函数运行 程序,
    因为 B 具有 SYSTEM 权限,所以 从中继承了 SYSTEM 权限。
    运行完了 后 B 结束运行,
    然后 A 中的 StartService 函数返回,A 结束运行。就是因为 StartService 函数不会直接返回,
    所以不能够直接通过服务的方式运行 。
    2. 添加 ACL 的方法
    主要思想是调用 CreateProcessAsUr 函数来运行程序,CreateProcessAsUr

本文发布于:2023-07-07 20:32:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1072070.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:运行   程序   方式   方法   服务   权限   获得   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图