发布于2025年12月5日12月5日 ## 1. 背景 远程控制工具广泛应用于黑客攻击、渗透测试、红蓝对抗、攻防演练等场景。远程控制攻击的研究和检测刻不容缓。常见的远程管理控制工具有MSF、CobaltStrike、Armitage等。 随着攻防对抗的升级,进攻方的攻击姿势也在不断完善。常规普通木马直接采用反查杀处理,使得本地检测和查杀变得更加困难。 ## 2.CobaltStrike 简介 CobaltStrike是美国红队开发的渗透测试神器,常被业内人士称为CS。 CobaltStrike分为客户端和服务器端。只有一台服务器,可以有多个客户端,这样可以通过团队进行分布式协作操作。 CobaltStrike集成了端口转发、服务扫描、自动溢出、多模式端口监控、Windows exe木马生成、Windows dll木马生成、Java木马生成、Office宏病毒生成、木马捆绑浏览器自动攻击等强大功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。 本次分享仅介绍最常用的生成恶意程序和监控在线受害终端的功能。 这个工具的社区版本是Armitage(MSF图形界面工具),Cobaltstrike可以理解为Armitage的商业版本。 CobaltSrtike的早期版本依赖于Metasploit框架,但现在Cobalt Strike不再使用MSF而是作为一个单独的平台使用。它分为客户端(Client)和服务器(Teamserver)。一台服务器,可以有多个客户端,团队可以进行分布式协作操作。 项目官网:https://www.cobaltstrike.com 如下图所示,多个客户端可以方便多个团队成员协作完成项目攻击渗透。其中: 客户端:攻击者A、攻击者B……。 TeamServer:运行Cobalt Strike工具的服务器,通常是虚拟专用服务器。 服务器:受害终端和运行恶意程序的主机。 下图展示了CobaltStrike工作界面和运行环境的简单拓扑。前面的客户端是攻击者,中间的攻击者服务器通常是互联网虚拟专用服务器,攻击者的终端在后面。三者之间的关系是,攻击者通过启动客户端+服务器来获取攻击者的数据,从而达到攻击目标。 ** ### 1.服务器操作 服务器启动(基于Java环境,需要安装jdk)。本次运行环境为Linux。切换到程序目录,运行程序+真实IP+密码 ./teamserver 103.234.72.90 天目 **注:这里的IP是虚拟专用服务器地址,密码是客户连接时输入的,可以自定义。 ** ### 2.客户端启动 切换到程序目录,以Windows环境启动为例,运行bat文件或vbs文件打开客户端。 根据服务器信息依次填写信息。这里的用户名可以随意填写。连接完成后,就可以使用客户端来操作服务器了。 3、如果连接服务器成功,请注意服务器防火墙策略允许,否则无法连接成功。 控制台上的所有操作指令都会被记录并保留在Cobalt Strike目录日志中。 **(以上操作行为是攻击者的准备阶段,被攻击端不受控制)** ### 3.参数详细信息 下面介绍攻击者客户端成功连接服务器程序的功能。 程序功能1 New Connection #新建连接(支持连接多个服务器) Preferences #Preferences(设置Cobal Strike界面、控制台、输出报告样式、TeamServer连接记录等) Visualization #Window视图模式(显示输出结果的形式) Listeners #Listener(创建监听器) 脚本管理器#脚本管理 关闭#close 程序功能2 Applications #Application(显示受害机器的应用程序信息) Credentials #Credentials(通过hashdump 或Mimikatz 捕获的密码将存储在这里) 下载#下载文件 Event Log #事件日志(主持人在线记录和团队协作聊天记录) 击键#keylogger 代理枢轴#Proxy 模块 截图#Screenshots Script Console #脚本控制台(可以加载各种脚本,增强功能https://github.com/rsmudge/cortana-scripts) Targets #显示目标主机 网络日志#网络日志 程序功能3 HTML Application #生成恶意HTA木马文件 MS Office Macro #生成office宏病毒文件 Payload Generator #生成各种语言的payload USB/CD AutoPlay #生成使用自动播放运行的木马文件 Windows Dropper #Bundler,能够捆绑文档类 Windows Executable #生成可执行有效负载 Windows Executable(S) #生成包含payload和Stageless(包括大部分函数)的可执行文件 程序功能4 活动报告#活动报告 主机报告#主机报告 妥协指标#Threat 报告 会议报告#会议报告 社会工程报告#社会工程报告 策略、技术和程序#策略、技术和程序 重置数据#重置数据 导出数据#导出数据 程序功能5 主页#官方首页 支持#技术支持 阿森纳#开发商 系统信息#版本信息 关于#about ### 4.避免杀戮 在介绍防杀之前,首先需要了解一下什么是防杀。防病毒软件基本上由扫描器、病毒库和虚拟机组成。它会在虚拟机中运行文件,扫描文件的特征,包括静态特征、内存特征、行为特征等,通过与病毒特征库进行比较来判断文件是否为恶意文件。常见的防病毒软件主要包括以下几个方面: 静态查杀:静态文件的检查和查杀。病毒文件编译生成后,文件本身就具有特征。例如,文件的某一部分由特定字符组成。如果杀毒软件匹配到特定字符,就会判定该文件是恶意文件。 内存扫描查杀:病毒文件运行后,将自身释放到内存中。释放的文件在内存中也会有特定的字符,也可以根据这些特定的字符进行扫描杀掉。 行为查杀:程序的一些特定行为也会被杀毒软件判定为恶意程序,如自删除、添加启动项、向特定目录释放文件、调用敏感dll或程序、获取主机杀毒软件的运行状态等。 云扫查查杀:相当于所有用户的机器都是Agent,然后还有服务器。杀毒软件会自动将文件传输到云杀,并使用各种杀毒引擎进行病毒特征扫描并同步到所有Agent。 ## 3. 红队视角下的CobaltStrike 狩猎 接下来将从红队的角度进行实际的攻击演示。这里只进行样本层面的对抗。流量层面的对抗可以稍后介绍。 攻击拓扑 **以下为客户端** **客户端已成功登录服务器。此时,在客户端登录页面配置远程恶意程序的相关参数,生成回连的恶意远程控制程序。 ** ### 1.服务器配置 1、配置监听地址(这里以https为例) 2.生成在线程序(这里生成C语言shellcode) 这有利于反杀处理。 以下是生成的shellcode ### 2.防杀处理 1.使用红队专用反杀工具遮太阳 可以看到有5种防病毒方法。如果选择直接执行(工具自动生成exe程序,并在编译过程中加载恶意shellcode代码),则会生成可执行程序。 2、使用Tinder进行查杀测试(完全防查杀) 3.通过社会工作者和网络钓鱼电子邮件传递受害者 进行二次伪装,修改程序日期和图标,并将程序发送给受害者。当受害者运行恶意程序时,CS就会成功上线。 ### 3.在线提示 配置飞书在线功能和飞书在线拓扑(钉钉和微信都可以,这里以飞书为例) 上图中,当受害者运行攻击恶意程序时,会触发攻击者的服务器上线并触发监听插件,将信息发送到对应的飞书机器人,可以是客户端,也可以是移动端,从而收到上线提示。 1、在CS运行服务器(虚拟私服)上配置并运行飞书API插件。 2、当受害者运行恶意程序时,飞书机器人会提示用户进群上线。 3、受害者成功上线。 ### 4.内网漫游 攻击在线主机获取信息,横向渗透内网捕获更多服务器。 会话功能1 转储哈希#获取哈希 提升#个升级权限 Golden Ticket #生成金票并注入到当前会话中 进行token#Certificate转换 运行Mimikatz #runMimikatz Spawn As #Spawn Cobalt Strike 听众与其他用户 对话功能2 Browser Pivot #劫持目标浏览器进程 Desktop(VNC) #桌面交互 文件浏览器#文件浏览器 网络视图#命令网络视图 端口扫描#端口扫描 进程列表#进程列表 屏幕截图#Screenshot 对话功能3 SOCKS服务器#代理服务 监听#反向端口转发 对话功能4 基于此,红队的研究人员开发了许多高效实用的功能插件,可以快速进行攻击渗透并快速获取相关信息。 这里举例演示(获取受害者浏览器登录cookie用户名和密码) 对话功能5 常用命令 ```` 信标帮助 信标命令 =============== 命令说明 ------- ----------- 争论进程参数欺骗 blockdlls 阻止子进程加载非Microsoft DLL browserpivot 注入受害者浏览器进程 bypassuac 绕过UAC提升权限 取消取消正在进行的下载 cd 更改目录 checkin 强制受控端连接一次 clear 清除beacon内部的任务队列 connect 通过TCP 连接到Beacon 对等点 隐蔽部署隐蔽客户端 cp 复制文件 dcsync 从DC 中提取密码哈希值 桌面远程桌面(VNC) 德林杰
创建帐户或登录后发表意见