从管理员身份获得SYSTEM-权限的四种方法
网络安全

一、简答题(30%,共6题)1.常用防火墙模型有哪些? 比较它们的优缺点答:四种模型:筛选路由器模型、单宿主堡垒主机(或屏蔽主机防火墙)模型、双宿主堡垒主机模型(或屏蔽防火墙系统模型)和屏蔽子网模型。
筛选路由器模型是网络的第一道防线,不能够隐藏内部网络的信息、不具备监视和日志记录功能。
单宿主堡垒主机(屏蔽主机防火墙)提供的安全等级比包过滤防火墙系统要高,所以入侵者在破坏内部网络的安全性之前,必须首先渗透两种不同的安全系统。
双宿主堡垒主机模型(屏蔽防火墙系统)双宿主堡垒主机有两种网络接口, 但是主机在两个端口之间直接转发信息的功能被关掉了。
在物理结构上强行将所有去往内部网络的信息经过堡垒主机。
屏蔽子网模型用了两个包过滤路由器和一个堡垒主机。
是最安全的防火墙系统之一,它支持网络层和应用层安全功能。
如果黑客想突破该防火墙那么必须攻破以上三个单独的设备,2. 什么是入侵检测系统?答: 入侵检测系统1DS(Intrusion Detection System)指的是一种硬件或者软件系统,该系统对系统资源的非授权使用能够做出及时的判断、记录和报警。
4. 简述操作系统帐号密码的重要性,有几种方法可以保护密码不被破解或者被盗取答:在操作系统的安全机制中,安全标识与鉴别是最根本的安全机制,是计算机系统安全的基础。
帐号密码又是最常用的、简单、低成本的用来证明用户的身份的标识信息,是目前操作系统安全标识与鉴别中主要的认证方法。
保护密码不被破解或者被盗取的方法:启用密码策略、启用账号审计策略、停止Guest帐号、限制用户数量、创建多个管理员帐号、管理员帐号改名、陷阱帐号等5.简述木马由来,并简述木马和后门的区别答:木马程序在表面上看上去没有任何的损害,实际上隐藏着可以控制用户整个计算机系统、打开后门等危害系统安全的功能。
木马来自于“特洛伊木马”,英文名称为Trojan Horse。
传说希腊人围攻特洛伊城,久久不能攻克,后来军师想出了一个特洛伊木马计,让士兵藏在巨大的特洛伊木马中部队假装撤退而将特洛伊木马丢弃在特洛伊城下,让敌人将其作为战利品拖入城中,到了夜里,特洛伊木马内的士兵便趁着夜里敌人庆祝胜利、放松警惕的时候从特洛伊木马里悄悄地爬出来,与城外的部队里应外合攻下了特洛伊城。
如何成为system账户

结束当前账户explorer
现在我们输入下列命令回车
At +时间 /interactive explorer.exe
时间为自己设置
时间到之后账户权限就成为system账户
如何成为最高权限system账户system账户是比administrator账户权限还要大的一个账户我们可以用system删除windows系统备份还原文件systemvolumeinformation访问注册表的sam文件杀掉系统的某些关键进程等等system账户管理整个系统的核心我们有什么方法把他叫出来么肯定有在运行中输入cmd输入下列命令回车taskkillimexplorerexe结束当前账户explorer现在我们输入下列命令回车时间interactiveexplorerexe时间为自己设置时间到之后账户权限就成为system账户如何成为最高权限system账户
System账户是比administrator账户权限还要大的一个账户
我们可以用system删除windows系统Байду номын сангаас份还原文件system volume information,访问注册表的sam文件,杀掉系统的某些关键进程等等
System账户管理整个系统的核心,我们有什么方法把他叫出来么
肯定有
在运行中输入cmd,输入下列命令回车
系统权限的设置

系统权限的设置1、磁盘权限(如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定)系统盘及所有磁盘只给Administrators 组和SYSTEM 的完全控制权限系统盘\Documents and Settings 目录只给Administrators 组和SYSTEM 的完全控制权限系统盘\Documents and Settings\All Users 目录只给Administrators 组和SYSTEM 的完全控制权限系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、tftp.exe、telnet.exe 、netstat.exe、regedit.exe、at.exe、attrib.exe、文件只给Administrators 组和SYSTEM 的完全控制权限另将\System32\cmd.exe、、ftp.exe转移到其他目录或更名Documents and Settings下所有些目录都设置只给adinistrators权限。
并且要一个一个目录查看,包括下面的所有子目录。
删除c:\inetpub目录修改3389远程连接端口修改注册表.开始--运行--regedit依次展开HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/ TERMINAL SERVER/WDS/RDPWD/TDS/TCP右边键值中PortNumber改为你想用的端口号.注意使用十进制(例10000 )HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/WINSTA TIONS/RDP-TCP/右边键值中PortNumber改为你想用的端口号.注意使用十进制(例10000 )注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口修改完毕.重新启动服务器.设置生效.5.删除c:\inetpub目录,删除iis不必要的映射,建立陷阱帐号,更改描述禁用不必要的服务,提高安全性和系统效率Computer Browser 维护网络上计算机的最新列表以及提供这个列表Task scheduler 允许程序在指定时间运行Routing and Remote Access 在局域网以及广域网环境中为企业提供路由服务Removable storage 管理可移动媒体、驱动程序和库Remote Registry Service 允许远程注册表操作Print Spooler 将文件加载到内存中以便以后打印。
win7没有管理员权限解决办法

windows7管理员权限解决方法如下:1:打开受访者的GUEST帐户(不缀诉,)2:在"开始"-- ”运行”里输入”gpedit.msc”<打开组策略>3:依次展开”WINDOWS设置”→安全设置→”本地策略”-”用户权利分配” 在窗口右边栏里找到”拒绝从网络访问这能计算机”后,双击打开,把里面的GUEST 帐户删除4:依次展开”WINDOWS设置”→”本地策略”→”安全选项” 在右边栏里找到”网络访问:本地帐户的共享和安全模式”双击打开,把它改成”经典:本地用户自己的身份验证”5:依次展开”WINDOWS设置”-”本地策略”-”安全选项” 在右边栏里找到”帐户:使用空白密码的本地用户只允许进行控制台登录”并把它设置为”禁用”6:依次展开”WINDOWS设置”-”本地策略”-”安全选项” 在右边栏里找到”网络访问:本地帐户的共享和安全模式”双击打开,把它改成”仅来宾” 这样就可以解决局域网络不能互访的问题局域网内未能互访的问题诊断一、用户权限设置错误由于Windows 2000/XP具有完备的用户管理体系,因此仅仅按照常规的共享方式并不能直接访问这些文件,反倒会出现用户连接窗口,必须要输入正确的用户名和密码才能够顺利建立连接。
对于这种情况,我们须要对用户组进行适当的设置,下面就以最为常用的Guest用户为例介绍一下具体的实现方法。
第一步:在控制面板中双击"计算机管理"图标,并且在弹出窗口中依次进入"本地用户和组→用户"菜单,此时可以在窗口右部查看到当前系统中存在的所有用户。
第二步:双击"Guest"用户,并且从弹出的属性窗口中去除"账号已停用"复选框,确认保存之后即可启用系统附带的Guest账户。
激活了Guest账户之后,其他用户只要在网上邻居中双击当前共享的文件夹就能够以此用户身份对文件进行操作了。
教你拿到WinXP系统的超级管理员权限

教你拿到Win XP系统的超级管理员权限教你拿到Win XP系统的超级管理员权限Windows XP凭借极高的安全性和稳定性,赢得了广大用户的青睐。
我们可以通过建立个人账户、设定密码来保护自己的个人隐私,还可以用Administrators(超级管理员)的身份任意设置账户,为每一个账户设置不同的权限,可以说拥有至高无上的权利,也拥有系统的“生杀大权”,享有系统最高级别的安全保障。
但是,如果我告诉你,我能不费吹灰之力就可以将你这个Administrators给废掉,取而代之的是我成为Administrators,你信不信?呵呵,你不信?好,我们来试一试:步骤一重新启动计算机,在出现启动菜单时按F8键进入高级选项菜单,选择“安全模式”进入系统;步骤二打开“控制面板”,找到“用户和密码”选项,看看是不是账户中包括Administrators?好,现在将Administrators账户删除,重新创建一个Administrators,或是更改原来的Administrators 账户密码;步骤三重新启动计算机后,只有输入新的密码才能登录Windows XP。
为什么会出现这种问题呢?原因很简单:Windows XP真正的超级管理员账号应该是在安全模式下的Administrators,并不是在正常模式下的Administrators。
在默认情况下,安全模式下的Administrators密码为空。
无论用户在正常模式下将Administrators密码设置得多么复杂,安全性多么高,如果没有设置安全模式下的Administrators 密码,你的电脑将毫无秘密可言。
现在,你是不是对Windows XP的安全性有些担忧了?那怎么办?这还不简单:赶紧进入安全模式,设置Administrators密码,将自己提升为真正的Administrators!当然,这次设置的密码要记牢了,否则下次你就真的无法进入Windows XP了!教你拿到Win XP系统的超级管理员权限Windows XP凭借极高的安全性和稳定性,赢得了广大用户的青睐。
如何获取system权限

如何获取system权限
如果你认为windows操作系统的超级权限是user或者Adminstrator的话,那你就错了,实际上windows的超级权限是system,本期教你如何获取system权限,请看下面:
方法一:首先从网上下载Pstools的工具包,其中有很多不同的功能,我们可以找到psexec.exe复制到system32系统目录下,接着在运行中打开cmd窗口,然后在任务
管理器中把进程explorer.exe结束掉,接着在cmd窗口中输入psexec -i -s -d explorer.exe回车,这样系统就以system权限进入了系统。
方法二:执行“开始-运行”输入cmd打开命令提示符窗口,在任务管理器中把进程explorer.exe结束掉,接着在cmd窗口中输入at time /interactive %systemroot%\explorer.exe
若提示没有启动服务,则启动Task Scheduler(time为系统当前时间稍后的一个时间,比如间隔一秒钟)一秒钟后会重新加载用户配置,以system身份启动windows的shell进程explore.exe。
如何让应用程序获取system权限、root权限

如何让应⽤程序获取system权限、root权限 获取system权限 上⼀篇随笔简单介绍了下Android权限的⼀些规则,我们发现很多事如果没有system权限基本上⽆法完成,那么如何让⾃⼰的应⽤获取system权限呢? ⼀般情况下,设定apk的权限,可在AndroidManifest.xml中添加android:sharedUserId="android.uid.xxx> 例如:给apk添加system权限1<manifest xmlns:android="/apk/res/android"2 ... ...3 android:sharedUserId="android.uid.system"> 同时还需要在对应的Android.mk中添加LOCAL_CERTIFICATE := platform这⼀项。
即⽤系统的签名,通过这种⽅式只能使apk的权限升级到system级别,系统中要求root权限才能访问的⽂件,apk还是不能访问。
⽐如在android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,这个函数需要root权限或者运⾏与系统进程中才可以⽤。
第⼀个⽅法简单点,不过需要在Android系统源码的环境下⽤make来编译:1. 在应⽤程序的AndroidManifest.xml中的manifest节点中加⼊android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk⽂件,加⼊LOCAL_CERTIFICATE := platform这⼀⾏3. 使⽤mm命令来编译,⽣成的apk就有修改系统时间的权限了。
第⼆个⽅法是直接把eclipse编出来的apk⽤系统的签名⽂件签名1. 加⼊android:sharedUserId="android.uid.system"这个属性。
windows管理员权限在哪里设置

Windows管理员权限设置位置与方法在Windows操作系统中,管理员权限是一种特殊的权限,它允许用户对计算机系统进行高级配置和管理。
具有管理员权限的用户可以访问和修改系统的重要设置,安装和卸载软件,以及管理其他用户的账户。
键盘快捷键Windows操作系统提供了快捷键的方式,让用户快速切换到管理员权限。
通过以下步骤,您可以使用键盘快捷键以管理员身份运行一个程序:1.找到要运行的程序的快捷方式或可执行文件。
2.按住Shift键,同时右击该程序的快捷方式或可执行文件。
3.在右击菜单中选择“以管理员身份运行”选项。
请注意,这种方法只是临时以管理员权限运行一个程序,不会改变当前用户的权限设置。
控制面板中的用户帐户设置在Windows操作系统的控制面板中,用户可以更改自己的帐户权限。
按照以下步骤,您可以在控制面板中设置管理员权限:1.单击Windows任务栏上的“开始”按钮。
2.在开始菜单中,选择“控制面板”选项。
3.在控制面板窗口中,找到并单击“用户帐户”选项。
4.在“用户帐户”窗口中,您将看到您的计算机上的所有帐户列表。
找到您要更改权限的用户帐户,并单击该帐户。
如果您当前使用的帐户没有管理员权限,则需要输入具有管理员权限的帐户的凭据来继续。
5.在用户帐户设置页面中,您可以选择“更改帐户类型”选项。
6.在“更改帐户类型”页面中,选择“管理员”选项,并确保勾选“该帐户是否应该有管理员权限”复选框。
7.单击“确定”按钮保存更改。
本地组策略编辑器除了控制面板之外,Windows还提供了本地组策略编辑器,该工具允许用户对操作系统的高级设置进行更精细的配置和管理。
要使用本地组策略编辑器来设置管理员权限,请按照以下步骤进行操作:1.单击Windows任务栏上的“开始”按钮。
2.在开始菜单中,输入“gpedit.msc”并按下回车键以打开本地组策略编辑器。
3.在本地组策略编辑器窗口中,展开左侧导航栏,找到“计算机配置”节点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 以服务方式运行因为以服务方式运行程序时,相当于运行程序的是系统进程,所以,被指定运行的程序自然而然的继承了系统进程的权限,也就是SYSTEM 权限。
;@echo off;goto make;===================================================================== ===============; 以SYSTEM 权限运行程序- GetSys1; 采用以服务方式运行的方法;===================================================================== ===============.386.model flat, stdcalloption casemap :noneinclude c:\masm32\include\windows.incinclude c:\masm32\include\kernel32.incinclude c:\masm32\include\advapi32.incinclude c:\masm32\include\masm32.incincludelib c:\masm32\lib\kernel32.libincludelib c:\masm32\lib\advapi32.libincludelib c:\masm32\lib\masm32.lib_ReLaunch protoCTXT MACRO textlocal lbl.constlbl db text,0.codeexitmENDM.codestart procLOCAL stStartupInfo : STARTUPINFOLOCAL procinfo : PROCESS_INFORMA TIONinvoke CreateMutex, NULL, TRUE, CTXT("GetSys1_Mutex")invoke GetLastError.if eax==ERROR_ALREADY_EXISTSinvoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfo mov stStartupInfo.cb, sizeof stStartupInfoinvoke CreateProcess, 0, CTXT("regedit.exe"), 0, 0, 0, 0, 0, 0, addr stStartupInfo, addr procinfoinvoke CloseHandle, procinfo.hProcessinvoke CloseHandle, procinfo.hThread.elseinvoke _ReLaunch.endifinvoke ExitProcess, NULLstart endp_ReLaunch procLOCAL hSCManagerLOCAL hServiceLOCAL szName[MAX_PA TH] : byteinvoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE .if eax!=0mov hSCManager, eaxinvoke OpenService, hSCManager, CTXT("GetSys1Temp"), DELETE.if eax!=0push eaxinvoke DeleteService, eaxcall CloseServiceHandle.endifinvoke GetModuleFileName, NULL, addr szName, MAX_PA THinvoke 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!=0mov hService, eaxinvoke StartService, hService, 0, NULLinvoke DeleteService, hServiceinvoke CloseServiceHandle, hService.endifinvoke CloseServiceHandle, hSCManager.endifret_ReLaunch endpend start:makeset path=%path%;c:\masm32\binset appname=GetSys1ml /nologo /c /coff %appname%.batlink /nologo /subsystem:windows %appname%.objdel %appname%.objecho.pauseGetSys1(第一次运行的这个进程GetSys1 我们称为A)开始运行时先创建一个互斥量,接着以服务的方式重新启动自己(又一次运行的进程GetSys1 我们称为B),重新运行后的 B 已经具有了SYSTEM 权限。
B 再通过CreateProcess 函数运行regedit.exe 程序,因为B 具有SYSTEM 权限,所以regedit.exe 从中继承了SYSTEM 权限。
运行完了regedit.exe 后B 结束运行,然后A 中的StartService 函数返回,A 结束运行。
就是因为StartService 函数不会直接返回,所以不能够直接通过服务的方式运行regedit.exe。
2. 添加ACL 的方法主要思想是调用CreateProcessAsUser 函数来运行程序,CreateProcessAsUser函数的第一个参数是特定用户的令牌,把这个参数设为具有SYSTEM 权限的令牌即可。
;@echo off;goto make;===================================================================== ===============; 以SYSTEM 权限运行程序- GetSys2; 采用添加ACL 的方法;===================================================================== ===============.386.model flat, stdcalloption casemap :noneinclude c:\masm32\include\windows.incinclude c:\masm32\include\kernel32.incinclude c:\masm32\include\advapi32.incinclude c:\masm32\include\accctrl.incinclude c:\masm32\include\masm32.incincludelib c:\masm32\lib\kernel32.libincludelib c:\masm32\lib\advapi32.libincludelib c:\masm32\lib\masm32.lib_EnablePrivilege proto WORD,WORD_GetPidFromProcName proto WORD_ModifySecurity proto WORD,WORDCTXT MACRO textlocal lbl.constlbl db text,0.codeexitmENDMACL STRUCTAclRevision BYTE ?Sbz1 BYTE ?AclSize WORD ?AceCount WORD ?Sbz2 WORD ?ACL ENDSPACL typedef PTR ACL SecurityImpersonation equ 2.codestart procLOCAL hProcLOCAL hToken, hNewTokenLOCAL stStartupInfo : STARTUPINFOLOCAL procinfo : PROCESS_INFORMA TIONsub eax, eaxmov hProc, eaxmov hToken, eaxmov hNewToken, eaxinvoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfoinvoke RtlZeroMemory, addr procinfo, sizeof procinfoinvoke _EnablePrivilege, CTXT("SeDebugPrivilege"), TRUEinvoke _GetPidFromProcName, CTXT("lsass.exe")invoke OpenProcess, PROCESS_QUERY_INFORMATION, 0, eaxtest eax, eaxjz _exitmov hProc, eaxinvoke OpenProcessToken, hProc, READ_CONTROL+WRITE_DAC, addr hToken test eax, eaxjz _exitinvoke _ModifySecurity, hToken, TOKEN_ALL_ACCESStest eax, eaxjz _exitinvoke CloseHandle, hTokenmov hToken, 0invoke OpenProcessToken, hProc, TOKEN_ALL_ACCESS, addr hTokentest eax, eaxjz _exitinvoke DuplicateTokenEx, hToken, TOKEN_ALL_ACCESS, 0, SecurityImpersonation, TokenPrimary, addr hNewTokentest eax, eaxjz _exitinvoke ImpersonateLoggedOnUser, hNewTokentest eax, eaxjz _exitmov stStartupInfo.cb, sizeof stStartupInfoinvoke CreateProcessAsUser, hNewToken, 0, CTXT("regedit.exe"), 0, 0, 0, 0, 0, 0, addr stStartupInfo, addr procinfotest eax, eaxjz _exitinvoke CloseHandle, procinfo.hProcessinvoke CloseHandle, procinfo.hThread_exit:.if hProcinvoke CloseHandle, hProc.endif.if hTokeninvoke CloseHandle, hToken.endif.if hNewTokeninvoke CloseHandle, hNewToken.endifinvoke ExitProcess, NULLstart endp_ModifySecurity proc uses ebx esi edi, hToken:DWORD, dwAccess:DWORD LOCAL pSD, pAbsSDLOCAL dwSDLengthLOCAL bDaclPresent, bDaclDefaultedLOCAL pAcl : PACLLOCAL pNewAcl : PACLLOCAL szName[1024] : BYTELOCAL ea : EXPLICIT_ACCESSLOCAL pSacl, pOwner, pPrimaryGroupLOCAL dwAclSize, dwSaclSize, dwOwnerSize, dwPrimaryGroupLOCAL bSuccesssub eax, eaxmov pSD, eaxmov pAbsSD, eaxmov dwSDLength, eaxmov bDaclPresent, eaxmov bDaclDefaulted, eaxmov pAcl, eaxmov pNewAcl, eaxmov pSacl, eaxmov pOwner, eaxmov pPrimaryGroup, eaxmov dwAclSize, eaxmov dwSaclSize, eaxmov dwOwnerSize, eaxmov dwPrimaryGroup, eaxmov bSuccess, eaxinvoke GetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMATION, pSD, 0, addr dwSDLengthinvoke LocalAlloc, LPTR, dwSDLengthtest eax, eaxjz _exitmov pSD, eaxinvoke GetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMATION, pSD, dwSDLength, addr dwSDLengthinvoke GetSecurityDescriptorDacl, pSD, addr bDaclPresent, addr pAcl, addr bDaclDefaultedmov eax, sizeof szNamepush eaxinvoke GetUserName, addr szName, esppop eaxinvoke BuildExplicitAccessWithName, addr ea, addr szName, dwAccess, GRANT_ACCESS, FALSEinvoke SetEntriesInAcl, 1, addr ea, pAcl, addr pNewAclcmp eax, ERROR_SUCCESSjne _exitinvoke LocalFree, pAclmov pAcl, 0invoke MakeAbsoluteSD, pSD, pAbsSD, addr dwSDLength, pAcl, addr dwAclSize, pSacl, addr dwSaclSize, \pOwner, addr dwOwnerSize, pPrimaryGroup, addr dwPrimaryGroupinvoke LocalAlloc, LPTR, dwSDLengthtest eax, eaxjz _exitmov pAbsSD, eaxinvoke LocalAlloc, LPTR, dwAclSizetest eax, eaxjz _exitmov pAcl, eaxinvoke LocalAlloc, LPTR, dwSaclSizetest eax, eaxjz _exitmov pSacl, eaxinvoke LocalAlloc, LPTR, dwOwnerSizetest eax, eaxjz _exitmov pOwner, eaxinvoke LocalAlloc, LPTR, dwPrimaryGrouptest eax, eaxjz _exitmov pPrimaryGroup, eaxinvoke MakeAbsoluteSD, pSD, pAbsSD, addr dwSDLength, pAcl, addr dwAclSize, pSacl, addr dwSaclSize, \pOwner, addr dwOwnerSize, pPrimaryGroup, addr dwPrimaryGroup invoke SetSecurityDescriptorDacl, pAbsSD, bDaclPresent, pNewAcl, bDaclDefaultedinvoke SetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMA TION, pAbsSD mov bSuccess, 1_exit:.if pSDinvoke LocalFree, pSD.endif.if pAclinvoke LocalFree, pAcl.endif.if pNewAclinvoke LocalFree, pNewAcl.endif.if pAbsSDinvoke LocalFree, pAbsSD.endif.if pSaclinvoke LocalFree, pSacl.endif.if pOwnerinvoke LocalFree, pOwner.endif.if pPrimaryGroupinvoke LocalFree, pPrimaryGroup .endifmov eax, bSuccessret_ModifySecurity endp_EnablePrivilege proc szPriv:DWORD, bFlags:DWORDLOCAL hTokenLOCAL tkp : TOKEN_PRIVILEGESinvoke GetCurrentProcessmov edx, eaxinvoke OpenProcessToken, edx, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, addr hTokeninvoke LookupPrivilegeValue, NULL, szPriv, addr tkp.Privileges.Luidmov tkp.PrivilegeCount, 1xor eax, eax.if bFlagsmov eax, SE_PRIVILEGE_ENABLED.endifmov tkp.Privileges.Attributes, eaxinvoke AdjustTokenPrivileges, hToken, FALSE, addr tkp, 0, 0, 0push eaxinvoke CloseHandle, hTokenpop eaxret_EnablePrivilege endp_GetPidFromProcName proc lpProcName:DWORDLOCAL stProcess : PROCESSENTRY32LOCAL hSnapshotLOCAL dwProcessIDmov dwProcessID, 0invoke RtlZeroMemory, addr stProcess, sizeof stProcessmov stProcess.dwSize, sizeof stProcessinvoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0 mov hSnapshot, eaxinvoke Process32First, hSnapshot, addr stProcess.while eaxinvoke lstrcmpi, lpProcName, addr stProcess.szExeFile.if eax==0mov eax, stProcess.th32ProcessIDmov dwProcessID, eax.break.endifinvoke Process32Next, hSnapshot, addr stProcess.endwinvoke CloseHandle, hSnapshotmov eax, dwProcessIDret_GetPidFromProcName endpend start:makeset path=%path%;c:\masm32\binset appname=GetSys2ml /nologo /c /coff %appname%.batlink /nologo /subsystem:windows %appname%.objdel %appname%.objecho.pauseGetSys2 取得lsass.exe 进程的令牌,缺省情况下操作这个令牌的权限很小,所以需要先取得操作这个令牌的所有权限。