目录

创建监听器Listener

生成后门

Windows Executable & Windows Executable(S)


创建监听器Listener

什么时候需要创建一个监听器了,比如我们拿到一个shell。此时我们就需要用cs生成一个payload传入到目标服务器上来,这个payload要与服务器进行连接就需要服务器先开启一个监听,payload才能找到服务器。

如下进行点击,然后在最下面点击add,进行监听器的添加

页面配置信息如下

name:为监听器名字,可任意
payload:payload类型
HTTP Hosts: shell反弹的主机,也就是我们kali的ip(如果是阿里云,则填阿里云主机的公网ip)
HTTP Hosts(Stager): Stager的马请求下载payload的地址(一般也是和上面的ip填一样)
HTTP Port(C2): C2监听的端口

这里面有一个很重要的点就是选择payload类型

payload类型

Beacon 是 Cobalt Strike 的 payload,用于建模高级攻击者,我们可以理解为Beacon就是生成的payload。使用 Beacon 来通过 HTTP,HTTPS 或 DNS 出口网络。Beacon 很灵活,支持异步通信模式和交互式通信模式。异步通信效率缓慢:Beacon 会回连团队服务 器、下载其任务,然后休眠。交互式通信是实时发生的。 Beacon 的网络流量指标具有拓展性。可以使用 Cobalt Strike 的可拓展的 C2 语言来重新定义 Beacon的通信。这允许你掩盖 Beacon 行动,比如使其流量看起来像其他的恶意软件,又或者将其流量掺入作为合法流量。

目前有8种payload,如下

内部的Listener

  • windows/beacon_dns/reverse_dns_txt
  • windows/beacon_http/reverse_http
  • windows/beacon_https/reverse_https
  • windows/beacon_bind_tcp
  • windows/beacon_bind_pipe

外部的Listener

  • windows/foreign/reverse_http
  • windows/foreign/reverse_https

External

  • windows/beacon_ext

Beacon为内置的Listener,即在目标主机执行相应的payload,获取shell到CS上;其中包含DNS、HTTP、HTTPS、SMB。Beacon可以选择通过DNS还是HTTP协议出口网络,你甚至可以在使用Beacon通讯过程中切换HTTP和DNS。其支持多主机连接,部署好Beacon后提交一个要连回的域名或主机的列表,Beacon将通过这些主机轮询。目标网络的防护团队必须拦截所有的列表中的主机才可中断和其网络的通讯。通过种种方式获取shell以后(比如直接运行生成的exe),就可以使用Beacon了。

Foreign为外部结合的Listener,常用于MSF的结合,例如获取meterpreter到MSF上。

Payload Staging
作为背景信息,一个值得一提的主题是 payload staging(分阶段传送 payload)。在很多攻击框架的设计中,解耦了攻击和攻击执行的内容。payload 就是攻击执行的内容。payload 通常被分为两部分: payload stage 和 payload stager。stager 是一个小程序,通常是手工优化的汇编指令,用于下载一个 payload stage、把它注入内存,然后对其传达执行命令。这个过程被称为 staging(分阶段)。
staging(分阶段)过程在一些攻击行动中是必要的。很多攻击中对于能加载进内存并在成功漏洞利用 后执行的数据大小存在严格限制。这会极大地限制你的后渗透选择,除非你分阶段传送你的后渗透 payload。
Cobalt Strike 在它的用户驱动攻击中使用 staging(分阶段)。大多数这类项目在 Attacks → Packages 和 Attacks → Web Drive-by 选项下。使用什么样的 stager 取决于与攻击配对 的 payload。比如,HTTP Beacon 有一个 HTTP stager。DNS Beacon 有一个 DNS TXT 记录 stager。 不是所有的 payload 都有 stager 选项。没有 stager 的 Payload 不能使用这些攻击选项投递。 如果你不需要 payload staging(分阶段),通过在你的 C2 拓展文件里把 host_stage 选项设为 false,你可以关闭这个选项。这会阻止 Cobalt Strike 在其 web 和 DNS 服务器上托管 payload stage。这种设置有助于提升行为安全(避免反溯源),因为如果开启了 staging(分阶段),任何人都能连。
HTTP Beacon HTTPS Beacon
默认设置情况下,HTTP 和 HTTPS Beacon 通过 HTTP GET 请求来下载任务。这些 Beacon 通过 HTTP POST 请求传回数据
要起一个 HTTP 或 HTTPS Beacon 监听器,通过 Cobalt Stike → Listeners 。点击 Add 按钮,选择 Beacon HTTP 作为你的 payload 选项。一般只需要填写如下的选择即可
  • name: 为监听器名字,可任意
  • HTTP Hosts:  进行回连的主机(shell反弹的主机),也就是我们kali的ip(如果是阿里云,则填阿里云主机的公网ip),可以设置多个
  • HTTP Hosts(Stager):  Stager的马请求下载payload的地址(一般也是和上面的ip填一样)
  • HTTP Port(C2): payload回连的端口
  • HTTP Port(Bind): 字段指定你的 HTTP Beacon payload web 服务器绑定的端口。如果你要设置端口弯曲重定向器(例如,接受来自 80 或 443 端口的连接但将连接路由到团队服务器开在另一个端口上的连接,这样的重定向器),那么这些选 项会很有用。
  • HTTP Host Header :值被指定了,会影响你的 HTTP stagers,并通过你的 HTTP 通信。这个选项使得通过 Cobalt Strike 利用域名前置变得更加容易
  • HTTP Proxy :字段旁边的 ... 按钮来为此 payload 指定一个显式的代理配置

生成后门

设置了监听后,就需要生成后门payload了。

如下点击 Attacks -> Packages

这里的Attacks有几种,如下

  • HTML Application            生成一个恶意HTML Application木马,后缀格式为.hta。通过HTML调用其他语言的应用组件进行攻击,提供了可执行文件 、PowerShell、VBA三种方法。
  • MS Office Macro              生成office宏病毒文件;
  • Payload Generator          生成各种语言版本的payload,可以生成基于C、C#、COM Scriptlet、Java、Perl、PowerShell、Python、Ruby、VBA等的payload
  • Windows Executable        生成32位或64位的exe和基于服务的exe、DLL等后门程序
  • Windows Executable(S)   用于生成一个exe可执行文件,其中包含Beacon的完整payload,不需要阶段性的请求。与Windows Executable模块相比,该模块额外提供了代理设置,以便在较为苛刻的环境中进行渗透测试。该模块还支持powershell脚本,可用于将Stageless Payload注入内存

Windows Executable & Windows Executable(S)

这两个模块直接用于生成可执行的exe文件或dll文件。Windows Executable是生成Stager类型的马,而Windows Executable(S)是生成Stageless类型的马。那Stager和Stageless有啥区别呢?

  • Stager是分阶段传送Payload。分阶段啥意思呢?就是我们生成的Stager马其实是一个小程序,用于从服务器端下载我们真正的shellcode。分阶段在很多时候是很有必要的,因为很多场景对于能加载进内存并成功漏洞利用后执行的数据大小存在严格限制。所以这种时候,我们就不得不利用分阶段传送了。如果不需要分阶段的话,可以在C2的扩展文件里面把 host_stage选项设置为false。
  • 而Stageless是完整的木马,后续不需要再向服务器端请求shellcode。所以使用这种方法生成的木马会比Stager生成的木马体积要大。但是这种木马有助于避免反溯源,因为如果开启了分阶段传送,任何人都能连接到你的C2服务器请求payload,并分析payload中的配置信息。在CobaltStrike4.0及以后的版本中,后渗透和横向移动绝大部分是使用的Stageless类型的木马。

这里生成Windows Executable程序,如下,我们创建了监听器后生成的时候就需要先选择。然后选择保存的路径

这样当我们双击生成的exe程序后cs就会直接上线。可以同时连接多个相同的exe payload。如下会话表

会话表介绍

会话表展示了哪些 Beacon 回连到了这台 Cobalt Strike。Beacon 是 Cobalt Strike 用于模拟高级

威胁者的 payload。在这里,你将看到每个 Beacon 的外网 IP 地址、内网 IP 地址、该 Beacon 的出口监听器、此 Beacon 最后一次回连的时间,以及其他信息。每一行最左边是一个图标,用于说明被害目 标的操作系统。如果此图标是红色的、并且带有闪电,那么说明此 Beacon 运行在管理员权限的进程中。一个褪色的图标意味着此 Beacon 会话被要求离开并且它接受了此命令。

接着可以执行beacon命令,相当于cmd命令
beacon命令

在已经上线的服务器上右击==>打开Beacon,在里面可以执行各种命令

在cs中默认的心跳时间是60s,我们可以用sleep 命令来更改心跳时间(心跳时间是指上线的服务器和cs服务器的通信时间)。

所以如果我们不修改的话,那么我们每次执行命令服务器要好很久才会返回。心跳时间很长就会响应的时间很慢,但也不能设置的很短,不让很容易会被监测到与cs通信的流量,具体多少可以根据测试环境自己来设置。这里设置为5,这样时间到了5s,就会返回结果

Beacon就是一个命令解释器,供我们来执行命令。在Beacon中执行cmd命令时需要在前面加上shell,例如:

shell whoami/systeminfo/netstat -an

我们可以用help来查看更过的命令

beacon> helpBeacon Commands
===============Command                   Description-------                   -----------browserpivot              注入受害者浏览器进程bypassuac                 绕过UACcancel                    取消正在进行的下载cd                        切换目录checkin                   强制让被控端回连一次clear                     清除beacon内部的任务队列connect                   Connect to a Beacon peer over TCPcovertvpn                 部署Covert VPN客户端cp                        复制文件dcsync                    从DC中提取密码哈希desktop                   远程VNCdllinject                 反射DLL注入进程dllload                   使用LoadLibrary将DLL加载到进程中download                  下载文件downloads                 列出正在进行的文件下载drives                    列出目标盘符elevate                   尝试提权execute                   在目标上执行程序(无输出)execute-assembly          在目标上内存中执行本地.NET程序exit                      退出beacongetprivs                  Enable system privileges on current tokengetsystem                 尝试获取SYSTEM权限getuid                    获取用户IDhashdump                  转储密码哈希值help                      帮助inject                    在特定进程中生成会话jobkill                   杀死一个后台任务jobs                      列出后台任务kerberos_ccache_use       从ccache文件中导入票据应用于此会话kerberos_ticket_purge     清除当前会话的票据kerberos_ticket_use       从ticket文件中导入票据应用于此会话keylogger                 键盘记录kill                      结束进程link                      Connect to a Beacon peer over a named pipelogonpasswords            使用mimikatz转储凭据和哈希值ls                        列出文件make_token                创建令牌以传递凭据mimikatz                  运行mimikatzmkdir                     创建一个目录mode dns                  使用DNS A作为通信通道(仅限DNS beacon)mode dns-txt              使用DNS TXT作为通信通道(仅限D beacon)mode dns6                 使用DNS AAAA作为通信通道(仅限DNS beacon)mode http                 使用HTTP作为通信通道mv                        移动文件net                       net命令note                      备注       portscan                  进行端口扫描powerpick                 通过Unmanaged PowerShell执行命令powershell                通过powershell.exe执行命令powershell-import         导入powershell脚本ppid                      Set parent PID for spawned post-ex jobsps                        显示进程列表psexec                    Use a service to spawn a session on a hostpsexec_psh                Use PowerShell to spawn a session on a hostpsinject                  在特定进程中执行PowerShell命令pth                       使用Mimikatz进行传递哈希pwd                       当前目录位置reg                       Query the registryrev2self                  恢复原始令牌rm                        删除文件或文件夹rportfwd                  端口转发run                       在目标上执行程序(返回输出)runas                     以另一个用户权限执行程序runasadmin                在高权限下执行程序runu                      Execute a program under another PIDscreenshot                屏幕截图setenv                    设置环境变量shell                     cmd执行命令shinject                  将shellcode注入进程shspawn                   生成进程并将shellcode注入其中sleep                     设置睡眠延迟时间socks                     启动SOCKS4代理socks stop                停止SOCKS4spawn                     Spawn a session spawnas                   Spawn a session as another userspawnto                   Set executable to spawn processes intospawnu                    Spawn a session under another PIDssh                       使用ssh连接远程主机ssh-key                   使用密钥连接远程主机steal_token               从进程中窃取令牌timestomp                 将一个文件时间戳应用到另一个文件unlink                    Disconnect from parent Beaconupload                    上传文件wdigest                   使用mimikatz转储明文凭据winrm                     使用WinRM在主机上生成会话wmi                       使用WMI在主机上生成会话argue                     进程参数欺骗

cobaltstrike之创建监听器与生成后门相关推荐

  1. R语言编写自定义函数、创建使用ggplot2生成图标(icon)的主题(theme)函数、使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标、ggsave保存图标(png、svg

    R语言编写自定义函数.创建使用ggplot2生成图标(icon)的主题(theme)函数.使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标.ggsave保存图标(png.svg ...

  2. 在MFC中创建动态控件的生成与响应

    在MFC中创建动态控件的生成与响应 2008-10-22 作者:风林 网友评论 1 条 点击进入论坛 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建 ...

  3. mysql定时木马_Mysql的语句生成后门木马的方法

    咳咳,大家看看就好了,本人不负责所产生的后果 复制代码 代码如下: SELECT * FROM `vbb_strikes` WHERE 1 union select 2,3,0x3C3F7068702 ...

  4. 使用JS创建条形码在线生成工具-toolfk.com

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  5. mysql后门_运用Mysql语句生成后门具体办法

    软件安装:装机软件必备包 随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题.特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁. 通过M ...

  6. mysql 木马_用Mysql语句来生成后门木马方案

    下面的文章主要是介绍又如何通过MySQL(和PHP搭配之***组合) 的Mysql语句来生成后门木马的具体操作方法!以下的文章主要是通过相关代码的方式来引出Mysql语句生成后门木马的具体操作方案. ...

  7. 利用mysql上传木马_通过Mysql语句生成后门木马的方法_MySQL

    通过Mysql 的语句生成后门木马的方法! SELECT * FROM `vbb_strikes` WHERE 1 union select 2,3,0x3C3F7068702073797374656 ...

  8. 利用msfvenom生成后门木马

    msfvenom工具介绍 msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload an ...

  9. 创建jira plugin插件、创建jira实例生成jar包总结

    创建jira plugin插件.创建jira实例生成jar包总结 创建插件骨架: 在本地安装完Atlassian SDK后,需注意将环境变量里的maven路径更改为sdk里自带的maven仓库路径. ...

  10. 渗透测试Metasploit框架体验(3. MsfVenom生成后门木马)

    MsfVenom 首先msf就是Metaaploit,venom就是病毒.msfvenom是msfpayload和msfencode的组合.将这两个工具集成在一个框架实例中.进一步来说,msfveno ...

最新文章

  1. Oracle架构实现原理、含五大进程解析(图文详解)
  2. 你真的了解防火墙吗?
  3. 述职答辩提问环节一般可以问些什么_每个优秀的人都会被看到述职晋升季buff大推送...
  4. aspcms各版本漏洞0day集合
  5. python中pow函数_pow()函数以及Python中的示例
  6. 配置opencv cmake
  7. 突发,Gitee 图床废了
  8. mybatis配置文件属性的详解和db.propertis文件的使用
  9. 特征筛选9——根据重要性SelectFromModel筛选特征(有监督筛选)
  10. python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
  11. java完成项目需要哪些技术_java_web项目开发需要掌握哪些技术
  12. shell—(色彩处理)
  13. python - 图像处理 - 图片拼接和堆叠
  14. 运筹学 --- 线性规划
  15. 人工智能(mysql)—— mysql事务、存储引擎及调优
  16. 计算机视觉 图像形成 几何图形和变换 3D变换
  17. 学习java23种设计模式自我总结
  18. 如何下载离线地图金字塔瓦片数据
  19. “最受欢迎”男友职业排名,程序员位居前三,公务员被嫌弃了?
  20. 两种方式创建纯代码的 iOS 项目,不使用 storyboard

热门文章

  1. 关于linux内核版本说法,关于Linux内核版本的说法,以下错误的是( )
  2. NHibernate N+1问题实例分析和优化
  3. 爬虫(二)-创建项目应用
  4. 毕设——社区志愿者信息管理系统
  5. 初级算法15.有效的字母异位词
  6. SCCM 部署操作系统 ,提示权限问题,报错:0xc00000098
  7. A simple brute force problem.
  8. 2014年物联网Internet of Things应用简介
  9. ubuntu下txt文件中文显示乱码的方法【转载】
  10. centos8 用u盘安装失败_CentOS 8 安装图解