提权&获得令牌
Last updated
Was this helpful?
Last updated
Was this helpful?
令牌(Token)是指系统中的临时秘钥,相当于账户和密码,有了令牌就可以在不知道密码的情况下访问目标相关资源了,这些令牌将持续存在于系统中,除非系统重新启动。
在获取到 Meterpreter Shell 后,使用以下命令获取令牌
这里有两种令牌,一个是 Delegation Tokens 即授权令牌,还有一种是 Impersonation Tokens 即模拟令牌。前者支持交互式登录比如远程桌面,后者支持非交互的会话。
令牌获取的数量取决于获取到 Shell 的权限等级。
如果已经获取到了 SYSTEM 权限的令牌,那么攻击者就可以伪造这个令牌,拥有对应的权限。
可以看到我们已经通过伪造 SYSTEM 的令牌拿到 SYSTEM 权限了。
不过值得注意的是,如果不加双引号,\ 需要改成 \\
才行,个人猜测可能是因为 \ 被当做转义字符处理的原因。
Rotten Potato 直译过来就烂土豆的意思,如果目标中存在有效的令牌,就可以通过 Rotten Potato 模拟用户令牌实现提权。
运行 RottenPotato.exe 直接弹出 SYSTEM 权限的 CMD 窗口,不需要用到 MSF。
如果已经进入目标网络,但是没有获得凭证,可以使用 LLMNR 和 NetBIOS 欺骗攻击对目标进行无凭证条件下的权限获取。
本地链路多播名称解析(LLMNR)是一种域名系统数据包格式,当局域网中的 DNS 服务器不可用时,DNS 客户端就会使用 LLMNR 解析本地网段中机器的名称,直到 DNS 服务器恢复正常为止。
从 Windows Vista 开始支持 LLMNR ,Linux 系统也通过 systemd 实现了此协议,同时 LLMNR 也支持 IPv6。
NetBIOS 协议是由 IBM 公司开发,主要用于数十台计算机的小型局域网,根据 NetBIOS 协议广播获得计算机名称,并将其解析成相应的 IP 地址。
从 Windows NT 以后版本的所有操作系统中都可以使用 NetBIOS,不过 NetBIOS 不支持 IPv6.
NetBIOS 提供的三种服务:
i、NetBIOS-NS(名称服务):主要用于名称注册和解析,以启动会话和分发数据报,该服务默认监听 UDP 137 端口,也可以使用 TCP 的 137 端口进行监听。
ii、Datagram Distribution Service(数据报分发服务):无连接服务,该服务负责进行错误检测和恢复,默认监听 UDP 138 端口。
iii、Session Service(会话服务):允许两台计算机建立连接,默认使用 TCP 139 端口。
NTLM 即 NT LAN Manager,NTLM 是指 telnet 的一种验证身份方式,即问询/应答协议,是 Windows NT 早期版本的标准安全协议。
Net-NTLM Hash 不同于 NTLM Hash,NTLM Hash 是 Windows 登录密码的 Hash 值,可以在 Windows 系统的 SAM 文件或者域控的 NTDS.dit 文件中提取到出来,NTLM Hash 支持哈希传递攻击。
Net-NTLM Hash 是网络环境下 NTLM 认证的 Hash,使用 Responder 抓取的通常就是 Net-NTLM Hash,该 Hash 不能进行哈希传递,但可用于 NTLM 中继攻击或者使用 Hashcat 等工具碰撞出明文进行横向。
Responder 是一款使用 Python 编写用于毒化 LLMNR 和 NBT-NS 请求的一款工具。
假设我们已连接到 Windows Active Directory 环境,当网络上的设备尝试用 LLMNR 和 NBT-NS(NetBIOS 名称服务)请求来解析目标机器时,Responder 就会伪装成目标机器。
当受害者机器尝试登陆攻击者机器,Responder 就可以获取受害者机器用户的 Net-NTLM 哈希值。
Responder 不支持 Windows,这里使用 Kali 进行演示。
Responder 开启监听,-I 指定网卡,这里 eth1 的 IP 为 192.168.7.65
开启监听后,当目标主机上有人访问 Responder 主机的共享目录时,就会看到对方的 Net-NTLM 哈希值了。
再利用 Hashcat 进行碰撞
参考文章:
在多层代理的环境中,由于网络限制,通常采用命令行的方式连接主机,这里学习下 IPC 建立会话与配置计划任务的相关点。
IPC (Internet Process Connection) 是为了实现进程间通信而开放的命名管道,当目标开启了 IPC$ 文件共享并得到用户账号密码后,就可以使用 IPC 建立连接,获取权限。
建立 IPC 连接:
输入 net use 可以查看当前建立的连接
映射磁盘到本地
如果想删除映射的磁盘
dir 列出对方目录
tasklist 查看进程
使用 \del 可断开连接
Windows 可用于创建计划任务的命令有两个,分别是 at 和 schtasks,at 在 Windows Server 2008 及之后的系统中,已经被废弃了。
这里看看在建立 IPC 连接后,使用计划任务运行可执行文件,主要步骤如下:
1、查看目标主机时间
2、上传可执行文件到目标主机
3、设置计划任务执行可执行文件
4、删除计划任务
首先查看下目标主机时间
创建一个反弹木马 bat 程序,这里使用 PowerShell 进行反弹,bat 文件内容如下:
在攻击机上开启 nc 监听
将 bat 程序上传到目标主机
使用 at 创建计划任务
如果想清除 ID 为 1 的计划任务
使用 schtasks 创建计划任务
如果想清除名称为 evil 的计划任务
在建立 IPC 连接后,除了使用计划任务进行间接的反弹 Shell,还可以通过 PsExec 直接反弹 Shell
Rotten Potato 项目地址:
Responder 项目地址:
PsExec 下载地址:
参考文章: