发布于2022年11月8日3年前 0x00 前言 在渗透测试中,有些情况下需要系统权限,比如操作注册表HKEY_LOCAL_MACHINE\SAM\SAM。 最近偶然看到一篇文章,介绍了几种获得system权限的方法,于是决定根据自己的经验,系统整理一下这方面的技巧。 当然,前提是你获得了系统的管理员权限。 学习链接: https://blog.xpnsec.com/becoming-system/ 0x01 简介 本文将介绍以下内容: 通过创建服务获得系统权限的方法 MSIExec获取系统权限的方法 通过令牌复制获得系统权限的方法 使用Capcom.sys获取系统权限的方法 0x02 通过创建服务获得System权限 1、通过sc命令实现 sc Create test service 1 bin path=' cmd/c start ' type=own type=interact sc启动测试服务1 该方法可用于XP系统。 使用时的Win7控制台提示: 警告:服务TestService1被配置为交互式服务,其支持受到攻击。该服务可能无法正常运行。 服务启动时,需要点击弹出框查看消息来执行代码,如下图所示。 Win8下的控制台提示是错误的,所以不能用这个方法。 2、通过计划任务 使用at命令: notepad.exe时间7点50分 从适用于Win7的默认系统权限开始 Win8不再支持At命令。 使用schtasks命令: 创建服务并使用系统权限启动它: schtasks/Create/TN test service 2/SC DAILY/ST 00:36/TR notepad.exe/RU系统 查看服务状态: schtasks /Query /TN TestService2 删除服务: schtasks/Delete/TN test service 2/F 注: 使用schtasks创建服务postscript并手动删除它。 Schtasks命令支持Win7-Win10。 3、利用psexec 使用psexec将创建PSEXESVC服务,并生成日志事件4697、事件7045、事件4624和事件4652。 从系统权限开始: psexec.exe-notepad.exe 默认情况下,具有系统权限的进程不会显示在用户的桌面上。如果需要显示流程界面,可以添加/i参数。该命令如下所示: psexec.exe-notepad.exe 如下图 4、Meterpreter 引用Meterpreter的方法: 创建具有系统权限的服务,并提供命名管道。 创建一个连接到命名管道的进程。 可供参考的代码: https://github.com/xpn/getsystem-offline Getsystem-offline.exe和getsystem_service.exe是必需的。 测试下图 注: vs2012直接编译有一个bug,可以用_snprintf代替函数snprintf。 0x03 利用MSIExec获得System权限 我在之前的文章《渗透测试中的msiexec》中介绍了高级安装程序制作msi文件的方法,这里就不再赘述了。 本节再现了XPN中提到的方法,并用wix3制作msi文件。 Wix3下载地址: https://github.com/wixtoolset/wix3 msigen.wix的代码可以参考以下地址: https://gist.github.com/xpn/d1ef20dfd266053227d3e992ae84c64e 按如下方式编译该命令: candle.exe姆西根 torch.exe姆西根 我修改了XPN的代码,用执行calc.exe替换了有效载荷,并部分修改了细节。代码如下: ?xml版本='1.0 '? calc.exe 安装失败的无效vbs 经过我的测试,用torch.exe把msigen.wixobj编译成msigen.msi文件会出错,如下图所示。 Light.exe可以成功生成msigen.msi,如下图所示。 虽然报告了错误,但不影响文件生成和函数执行。 即,完整的编译命令如下: candle.exe姆西根 light.exe姆西根 双击直接执行msigen.msi,会弹出框,启动的calc.exe就是系统权限。 在命令行下执行: msiexec /q /i msigen.msi 以高权限启动calc.exe。 0x04 利用token复制获得System权限 请参考上一篇文章:《渗透技巧——Token窃取与利用》 通过复制系统权限的令牌,进程可以获得系统权限。常用工具如下: 1、incognito incognito.exe执行-c 'NT权限\系统' cmd.exe 下载地址: https://labs . mwrinfosecurity . com/assets/blog files/incognito 2 . zip 2、Invoke-TokenManipulation.ps1 invoke-token manipulation-CreateProcess ' cmd . exe '-用户名' nt authority\system ' 下载地址: https://github . com/powershell mafia/PowerSploit/blob/master/exfiliation/Invoke-token manipulation . PS1 3、SelectMyParent SelectMyParent.exe cmd.exe 504 参考地址: https://github . com/3g student/From-System-authority-to-Medium-authority/blob/master/select my parent . CPP 作者:迪迪埃史蒂文斯 注: SelectMyParent的原理和xpn开源代码一样(Proc _ Thread _ Attribute _ Parent _ Process方法),地址如下: https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6 0x05 利用Capcom.sys获得System权限的方法 Capcom.sys是游戏公司Capcom的《街头霸王5》中的反作弊驱动。它是Capcom签名的,存在执行内核代码的漏洞。 下载地址: https://github.com/3gstudent/test/blob/master/Capcom.sys SHA1:C1 D5 cf 8 c 43 e 7679 b 782630 e 93 f 5 e 6420 ca 1749 a 7 适用于Win7x64 1.在当前系统中创建服务 需要管理员权限。 sc create Capcom type=kernel bin path=C:\ test \ Capcom . sys sc启动Capcom 2.执行漏洞利用程序。 普通用户权限就可以了。 可供参考的代码: https://github.com/tandasat/ExploitCapcom 0x06 小结 本文对System的常用访问方法进行了梳理,最后感谢xpn的博客和他的开源代码。 留下回复
创建帐户或登录后发表意见