文章总结: 本文详细记录了一次红队演练中利用Teams社工钓鱼、Python脚本、PowerShell和Dropbox等合法工具在72小时内突破金融企业内网并获取域控权限的全过程。攻击链通过合法业务行为规避EDR检测,揭示了外部通信未限制、脚本无管控、服务账号权限过度、云存储无行为基线等防御缺陷。文章最后提供了针对性的防御建议,包括限制外部通信、加强脚本管控、实施最小权限原则和建立云存储行为基线。 综合评分: 85 文章分类: 红队,内网渗透,实战经验,安全意识,安全建设
从一条Teams消息到域控沦陷:全程只用Python、PowerShell和Dropbox
原创
逍遥 逍遥
昆仑AI安全实验室
2026年5月29日 01:36 广东
在小说阅读器读本章
去阅读
去年年中的一次红队演练,我们拿到的目标是某金融企业的整个内网。边界防护做得很扎实,WAF、邮件网关、EDR一应俱全,外网打点整整两天毫无进展。
最后怎么进去的?一条Teams消息。
我们伪装成集团IT支持团队,给目标公司的基层员工发了一条消息:“您的设备需要紧急安装安全补丁,请运行以下诊断工具。”附件是一个Python脚本,员工双击运行后,我们在他的电脑里稳稳站住了脚。
从这条消息开始,到最终导出域控的krbtgt哈希,我们用了不到72小时。全程没有用过Cobalt Strike,没有改过任何一个系统文件,所有通信都走的是Dropbox的合法API。EDR全程静默,防守方直到复盘时才脸色铁青地发现,他们的域控已经被我们“合法访问”了三天。
这条攻击链的核心逻辑只有一句话:用合法工具干非法的事,让每一条告警看起来都像正常业务。
第一阶段:Teams社工钓鱼,Python脚本拿下初始立足点
在LinkedIn和脉脉上翻了两天,我们精准锁定了目标公司一个刚入职不到两周的行政助理。刚入职、对同事不熟、对IT流程不熟、安全意识培训还没来得及做——这是社工成功率最高的人群。
我们注册了一个Teams账号,头像换成集团IT的Logo,显示名称设置成“集团IT支持中心”。发给她的消息非常简短:“您好,我们检测到您的设备存在安全漏洞,请运行以下诊断工具进行修复。如有疑问请拨打IT热线xxxx。”
附件叫diagnostic_tool.py,是一个打包好的Python脚本。这个脚本的核心逻辑分四步:
第一步,在用户本机用Dropbox API自动注册一个新的云存储应用,将他的设备注册为我们的一个私有数据通道——整个过程对用户完全透明。第二步,从我们的Dropbox共享文件夹下载一个PowerShell loader脚本,保存到C:\Users\Public\Documents\目录下。第三步,利用schtasks创建计划任务,每30分钟执行一次那个loader脚本,从Dropbox拉取最新指令。第四步,伪装成“修复完成”的弹窗告诉用户一切正常,然后自我删除。
员工双击运行后,弹窗显示“修复成功”,她安心地继续工作。而我们的后门已经在她电脑里安静地跑了起来。
Python脚本为什么能过EDR?因为全是合法操作。Dropbox是正常业务软件,访问Dropbox API的流量走HTTPS,在EDR看来就是普通的云存储同步。创建计划任务是Windows系统管理员的日常工作。脚本本身就是纯文本文件,不包含任何二进制载荷。EDR的行为基线完全看不出异常。
这一步的关键技术只有一点:使用Dropbox API时,我们在代码里硬编码了预先生成的Refresh Token,确保即使密码被修改,访问权限依然有效。那个Refresh Token是我们提前在自己环境里通过Dropbox OAuth授权的,并且用Python脚本在首次运行时自动刷新为短期Access Token。EDR在网络上看到的,就是一个普通的Python进程向api.dropboxapi.com发了HTTPS请求。
第二阶段:本地信息收集与环境探测,PowerShell静默落地
有了初始立足点,我们做的第一件事不是立刻横向移动,而是让Loader脚本先睡两个小时——等EDR的热点监控窗口过去。
两个小时后,Loader从我们的Dropbox文件夹下载了第一组指令:一个用PowerShell写的轻量级侦察脚本。这个脚本干了五件事:
net user /domain——确认域环境、域名、域用户数量net group "Domain Admins" /domain——拿到域管理员列表whoami /groups——查看当前用户所属的所有安全组- 扫描本地机器上保存的所有凭据——用
cmdkey /list查看Windows凭据管理器中存储的所有网络连接凭据 - 扫描Chrome和Edge浏览器的保存密码文件,用Python的
sqlite3模块直接读取Login Data文件
结果在浏览器保存密码里翻到了大货:一个用来登录公司Confluence的账号和密码,用户名svc_wiki,密码Wiki@2025#sync。这个账号明显是一个服务账号,后面发现它不仅是Confluence的管理员,还在域内有几十台服务器的本地管理员权限。
PowerShell脚本执行完毕后,把收集到的信息打包成JSON,通过Python脚本上传到我们自己的Dropbox文件夹。整个过程,Dropbox传输的流量都是加密的HTTPS,EDR看到的是一个Python进程在往一个正常的云存储地址发数据。
第三阶段:凭据提取与权限提升,服务账号横向移动
手里有了svc_wiki的明文密码,我们用Loader下载了一套升级后的PowerShell工具包。
第一件事,用Invoke-Command远程登录同网段的其他几台服务器,验证这个账号的权限范围。结果发现它确实是Server Operators组成员,能登录到十几台服务器,包括一台用来做漏洞扫描的Windows Server。
在那台扫描器服务器上,我们用原生的procdump.exe——微软签名的合法工具——导出了LSASS进程的内存转储。转储文件通过PowerShell的Compress-Archive压缩后,用Python的Dropbox SDK上传到了我们自己的文件夹。
本地离线用Mimikatz加载这个转储文件,拖出了三个域账号的NTLM哈希。其中一个哈希属于CORP\svc_scan——这正是那台服务器上跑漏洞扫描服务的账号,而且在整个域内拥有大量权限。
我们把Mimikatz这一整套操作全部放在自己本地的隔离环境里完成,目标机器上只跑了微软签名的Procdump和系统自带的PowerShell压缩命令,EDR根本没有触发任何告警。
第四阶段:域控权限获取,DCSync导出全域哈希
用svc_scan的哈希,直接Pass-the-Hash登录到另一台服务器上——这台服务器恰好有域管理员账号正在运行定时任务,内存里残留着域管级别的Kerberos票据。
Mimikatz导出这张黄金票据,然后直接用DCSync:
powershellmimikatz # lsadump::dcsync /domain:CORP.local /all /csv
域内所有用户的NTLM哈希,包括krbtgt,全部到手。从第一条Teams消息发出去,到这张哈希表安静地落在我们本地硬盘上,72小时不到。全程没有触发任何一条高危告警。
第二天复盘时,蓝队队长看着我们展示的攻击链,沉默了很久。最后说了一句:“所有的工具、所有的流量、所有的操作,全部是合法业务行为。我们根本不知道从哪里开始查。”
防御反思:为什么这套链能打穿
这次红队演练暴露的不是某个0day,而是企业安全架构的四个系统性缺陷:
Teams外部通信未限制。 企业没有限制Teams外部通信的范围,任何外部账号都可以直接给内部员工发消息、传文件。如果必要的外部协作需要保留,至少应该开启“外部访问警告”和安全链接扫描,对于包含附件或请求执行操作的外部消息,设置自动标记策略。
端点可执行脚本无管控。 员工可以双击运行任意Python脚本,且脚本能直接访问网络和文件系统。PowerShell的脚本执行策略没有限制,计划任务没有白名单。AppLocker或WDAC的应用控制策略应该默认阻止所有脚本执行,仅允许经过签名的或指定路径下的脚本运行。
服务账号权限过度宽松。 一个本应只管理Confluence的svc_wiki账号,居然拥有几十台服务器的本地管理员权限。最小权限原则的实现依赖于持续审计:通过BloodHound或类似工具定期扫描所有域账号的特权路径,对于非Tier 0账号拥有管理权限的行为自动告警。
云存储没有行为基线。 Dropbox的API调用属于正常业务流量,但大量数据上传、计划任务定期访问云存储、Python进程直连Dropbox API——如果SOC对云存储的API访问建立了行为基线,就能发现这个异常:一个从未访问过Dropbox的主机,突然开始定期向某个私有文件夹上传和下载数据。
CrowdStrike 2026全球威胁报告的数据也印证了这一点:2025年82%的检测已经是无恶意软件的,攻击者不再依赖传统恶意代码,而是通过合法凭证和信任路径横向移动。攻击者的平均突破时间已压缩到29分钟——而从我们第一次上传Loader到拿到域控哈希,横向移动时间窗口实际上压缩到了从第一次执行到全网扩散的几十个小时内。
每次红队演练结束,防守方最喜欢问的是“你们到底用了什么0day”。但这一次,我们没有用任何0day。Teams是合法沟通工具,Python是合法开发工具,PowerShell是合法管理工具,Dropbox是合法云存储,Procdump是微软签名的合法诊断工具。整个攻击链唯一非法的,是我们的意图。
这才是2026年红队最可怕的地方:当所有的武器都在你的白名单里,你就得从白名单里找敌人。
严正声明
本文所述全部技术内容仅供安全从业者在获得被测试方明确书面授权的前提下,进行红队演练和安全评估使用。所有案例均已脱敏处理,涉及的组织名称、人员身份、账户信息、IP地址等均已替换。任何个人或组织利用本文技术对未授权系统实施攻击的,均属违法行为,与本文作者无关。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:昆仑AI安全实验室 逍遥 逍遥《从一条Teams消息到域控沦陷:全程只用Python、PowerShell和Dropbox》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论