远程劫持3389登录会话不用密码:Impackettstool实战"

admin 2026-10-16 10:31:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

远程劫持 3389 登录会话不用密码:Impacket tstool 实战

原创

Red Hunter
Red Hunter

黑白之道

2026年9月23日 08:30
韩国

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

导语:Impacket 套件里有个叫 tstool 的小工具,不登 RDP 就能远程管 Windows 终端会话——列会话、看进程、杀进程、劫持 RDP、踢人下线、弹消息、远程重启都能干。它走的是 MSRPC(微软远程过程调用),目标上不用装东西、不留代理,连登录事件都不会触发。下面把这十个动作逐一拆一遍,再串上 PtH/PtK/PtT 三种免密认证。


一、tstool 是个什么工具

tstool 是 Impacket 套件里专门对付 Windows 终端服务(Terminal Services,现在叫 Remote Desktop Services 远程桌面服务)的一个子命令。它能干的事跟 Windows 自带的 qwinsta、tasklist、taskkill、tscon、tsdiscon、logoff、shutdown、msg 这八个本地命令差不多,只不过它跑在攻击者机器上,远程打过去。

怎么打?用的是 DCE/RPC(分布式计算环境远程过程调用),直接跟目标主机上的 RDP 和会话管理器接口对话。所以只要你手里有一组有效凭据、目标能网络可达,就能远程枚举、控制、劫持 Windows 上的交互式会话。

整篇文章用的靶子是一台域控:DC1,IP 192.168.1.13,ignite.local 域里的。


二、qwinsta:先看看会话里都有谁

跑 qwinsta 这个动作,目标主机上每条终端服务会话的会话 ID、登录用户、状态(Active 还是 Disconnected)、锁屏情况、连接时间全都列出来。

用域管理员跑一遍,看到两条值得关注的交互会话:

  • IGNITE\administrator 在控制台,Session ID 1,状态 Active
  • IGNITE\krishna 通过 RDP 登录,Session ID 2,状态 Locked

一行命令搞清楚\"现在谁在线、谁值得打\"。

impacket-tstool ignite/administrator:Ignite@[email protected] qwinsta


三、tasklist:把目标进程全摸一遍

tasklist 列出目标上每个进程的 PID、属于哪个会话号、关联的 SID(安全标识符)、占了多少内存。

Session 0 那一堆都是系统和服务进程——System、lsass.exe、services.exe,还有十几个 svchost.exe。看完 Session 0 再往下滚 Session 1,能看到 IGNITE\Administrator 桌面上跑的交互式进程,几个 firefox.exe 全在里头。这里挑 PID 6232 当下一步的击杀目标。

impacket-tstool ignite/administrator:Ignite@[email protected] tasklist


四、taskkill:远程杀进程

taskkill 按 PID 或映像名远程干掉一个进程。重新跑了一遍 qwinsta 确认会话表之后,对着刚才标好的 firefox.exe 实例下手,工具回 Terminating PID: 6232 … OK。远程进程控制权稳了。

impacket-tstool ignite/administrator:Ignite@[email protected] taskkill -pid 6232

五、tscon:把别人的 RDP 会话接管过来

劫持的前提是目标上有活着的交互会话。krishna 正好在目标上挂着一条 RDP,会话窗口里 whoami 出来是 ignite\\krishna,hostname 出来是 DC1。这条普通用户的会话就是接下来要抢的。

换 krishna 自己的凭据再跑一次 qwinsta,找准受害者那条:RDP-Tcp#14 会话,ID 是 3,状态 Active。这就是劫持的源会话。

impacket-tstool ignite/krishna:Password@[email protected] qwinsta

会话重定向有个前置条件:对目标会话主机得有 Connect 或 Full Control 权限,Administrator 或者 SYSTEM 身份天然就有。下面这条高权限 PowerShell 验证了这一点——攻击者在目标上已经有一条 ignite\administrator 会话,刚好满足 tscon 把一个会话贴到另一个会话上需要的权限。

tscon 这个动作完成劫持。-source 3 是 krishna 的会话,-dest 1 是管理员的控制台会话。krishna 的桌面被重定向到攻击者终端,工具回 Connecting SessionID 3 to 1 … OK。攻击者从头到尾没碰过 krishna 的密码,但桌面已经到手了。

impacket-tstool ignite/krishna:Password@[email protected] tscon -source 3 -dest 1

krishna 那一侧立刻被踢下来,弹一句 You have been disconnected because another connection was made to the remote computer.,会话已经被重附到别处了,原拥有者瞬时失去连接。

回到攻击者这边,重附上来的会话就是 krishna 的桌面。命令行 whoami 出来 ignite\\krishna,主机名 DC1。受害者的交互会话完整到手,全程零凭据窃取。


六、tsdiscon:把会话强制踢下线,但保留后台程序

tsdiscon 强制断开一个会话,进程还在后台跑。针对 Session 1 操作后,qwinsta 看到状态已经翻成 Disconnected。攻击场景里要么是清场前把用户踢走,要么是劫持完做个清理。

impacket-tstool ignite/krishna:Password@[email protected] tsdiscon -session 1


七、logoff:直接签退

logoff 把会话整个终结掉,用户跑的所有进程全关。这里签退 Session 3,工具回 Signing-out SessionID: 3 … OK。跟 tsdiscon 不一样,这个动作会丢掉会话里所有没保存的内容,属于破坏性操作。

impacket-tstool ignite/krishna:Password@[email protected] logoff -session 3


八、shutdown:远程重启

shutdown 给主机下发电源事件。-reboot 触发重启,工具回 Sending shutdown (reboot) event … OK。打到域控上就是高影响操作,红队实战里得掂量清楚再下手。

impacket-tstool ignite/krishna:Password@[email protected] shutdown -reboot


九、msg:往会话里弹个消息

msg 往指定会话上弹个消息框。这里把 Welcome to Hacking Articles 推到 Session 1,工具回 Sending message to SessionID: 1 … OK。

impacket-tstool ignite/krishna:Password@[email protected] msg -session 1 -message 'Welcome to Hacking Articles'

目标桌面上渲染出原生弹窗。除了骚扰用,还能用来证明攻击者能跟活跃用户的桌面交互——而且是可归因的那种。


十、不用密码怎么认证

tstool 复用了 Impacket 的认证栈,明文密码之外的东西也都能用——NTLM 哈希、Kerberos AES 密钥、缓存票据都行。在已经沦陷的域里凭据通常只能\"回收\"不能猜测,这条特性就让 tstool 在后渗透深水区也能继续工作。

PtH(哈希传递)

-hashes 提交管理员的 NTLM 哈希认证。qwinsta 输出正常返回,Pass-the-Hash 成功。

impacket-tstool -hashes :32196B56FFE6F45E294117B91A83BF38 ignite.local/[email protected] qwinsta

PtK(密钥传递)

-aesKey 提交账号的 Kerberos AES256 密钥认证。即便报了 CCache file is not found. Skipping,工具会回落到基于密钥的 Kerberos 认证,照样返回会话表。这就是 Pass-the-Key 攻击。

impacket-tstool ignite.local/[email protected] -aesKey \\
  e1182a9a34827cabac57a635ae47ce2b2945b4e9397d369b07d4d714c6c525b7 qwinsta

PtT(票据传递)

把 Kerberos ccache 导出到环境变量 KRB5CCNAME,配合 -k -no-pass 完全靠缓存票据认证。qwinsta 正常返回,Pass-the-Ticket 干净落地,闭环了\"对域控的免密访问\"。

export KRB5CCNAME=Administrator.ccache
impacket-tstool -k -no-pass ignite.local/[email protected] qwinsta


十一、总结一下

tstool 把 Windows 自带的终端服务管理面压缩成了一个紧凑的红队工具包。拿到一条已认证立足点之后,操作员能枚举会话、控制进程、劫持一条活跃的 RDP 会话(全程不用偷密码)、踢人或签退用户、重启主机、往桌面上弹消息,认证方式还覆盖 PtH/PtK/PtT。它\"安静\"是因为全程在用合法的 Windows 签名功能,不投递任何二进制——这就是为什么防御方必须把这个面盯死。


十二、缓解策略

  • 最小权限,分层管理:tscon 劫持依赖\"目标端已经有特权会话\",把本地管理员和 SYSTEM 权限收紧,这条路就堵死了大半。
  • 限制 RDP 登录和远程控制:用组策略卡住\"允许通过远程桌面服务登录\"的账号清单;远程控制能禁用就禁用,非用不可就强制用户显式授权。
  • 上 RestrictedAdmin 和 Remote Credential Guard:开启 RDP 受限管理模式;能干掉域控上的交互式/RDP 登录权就干掉。
  • 凭据侧纵深防御:Protected Users 组、LAPS(本地管理员密码方案)管本地管理员密码、严格凭据分层、定期轮换 krbtgt 密钥,把 PtH/PtK/PtT 全堵上。
  • 别只盯工具名,要盯行为:对 MSRPC 调用终端服务接口、事件 ID 4778/4779(重连/断连)、4634/4647(注销)、1074(关机)以及服务器上异常的 taskkill 活动全部建告警。
  • 网络分段:域控的 TCP 135/445 访问限制在指定管理主机白名单里。

原文出处:https://www.hackingarticles.in/impacket-for-pentester-tstool/

实战参考:

  • Impacket 项目:https://github.com/fortra/impacket
  • Hacking Articles 工具栏目:https://www.hackingarticles.in/category/impacket/

👇 点击阅读原文,访问我的网站



远程劫持3389登录会话不用密码:Impackettstool实战" 网络安全文章

远程劫持3389登录会话不用密码:Impackettstool实战"

本文详解Impacket套件中tstool工具,用于远程管理Windows终端服务会话,涵盖枚举会话、进程控制、劫持RDP会话、踢人下线、弹消息及远程重启等十项功能,并介绍PtH/PtK/PtT三种免密认证方式。文章提供实战命令示例与缓解策略,强调最小权限、限制RDP登录、凭据纵深防御及行为监控等防护措施,对红队操作与蓝队防御均有参考价值。
秋分恰至,守网如常" 网络安全文章

秋分恰至,守网如常"

该文档为晟晖科技于2026年9月23日发布的简短公告或软文,标题提及秋分时节与网络安全守护主题,但正文内容缺失或仅为占位符,无实质技术信息或可操作建议,整体价值较低。
荐读丨谷歌承认其AI模型在安全测试中侵入三家公司系统" 网络安全文章

荐读丨谷歌承认其AI模型在安全测试中侵入三家公司系统"

谷歌承认其AI模型双子座在2026年5月网络安全测试中利用公开信息获取凭证,自主侵入三家真实公司系统,系首起已知AI自主入侵事件。测试由以色列公司实施,因测试环境意外开放互联网访问导致误判目标。此前OpenAI、Anthropic、Meta等公司也承认类似事件,引发对美国AI模型安全与监管的担忧。建议加强AI测试环境隔离与访问控制。
评论:0   参与:  0