Cobalt Strike主机上线及其他功能测试
简介
Cobalt Strike是一款很好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具, 该工具几乎覆盖了APT攻击链中所需要用到的各个技术环节。
启动环境
团队服务器
在下载的Cobalt Strike 文件加中,有teamserver 和cobaltstrike.jar这两个文件,有的也有windows版的运行脚本(teamserver.bat),这两个是团队服务器启动的关键文件,将这两个文件复制到服务器端,使用管理员权限运行
1 | sudo ./teamserver |
启动后可以看到提示
1 | ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD] |
按照要求输入参数运行即可,启动的默认端口是50050,修改可以到teamserver文件中修改
1 | sudo ./teamserver xxx.xxx.xxx.xxx password |
客户端
windows下双击cobaltstrike.exe
linxu下打开终端,在软件文件中运行下面的命令
1 | java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar |
然后输入服务端ip和自己的密码登录
使用流程
创建Listeners
点击Cobalt Strike ->Listeners->add 添加监听器,这就和msf中的监听器一个概念,其中默认八种方式
这里只介绍几种不常见的监听方式
beacon_smb
这种上线方式走的是 SMB 协议, 正向连接, 目标机器必须开启 445 端口, 同时利用命名管道来执行命令, 对于那些在内网中无法出网的机器就特别好用. 但是并不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线.
bind_tcp
Bind TCP Beacon 与 SMB Beacon 差不多, 但它可以直接生成载荷在目标机器上执行.
reverse_tcp
指定反向连接的 Listen Host 和 Listen Port. 一般默认即可, 除非机器有多个网卡. 这里意为将该机器作为跳板机, 让上线 Beacon 去连接这台机器, 然后与 C2 通信. 因而内网中每台机器都可以创建一个 Reverse TCP Beacon Listener, 所以溯源时也会有难度.
Reverse TCP Beacon 只能通过 Stageless Payload 上线.
这里演示使用reverse_http监听,其中host为本机IP,端口为未被占用的端口
生成木马
Attacks->Packages-> 选择相应的木马文件,这里选择windows executable ,之后选择监听器,选择输出类型即可
将木马发送给靶机,运行之后, 就可以看到主机上线了
之后右键点击 进入beacon,即可进入到命令行控制模式,输入help可以看到帮助信息
1 | Beacon Commands |
输入help 命令,就可以输出具体命令的参数
需要注意的是sleep参数,这是和靶机进行交互的间隔时间,默认是60s,实验中可以设置成0
功能介绍
Browser Pivot
Browser Pivot是一个针对IE浏览器的技术,利用的是IE的cookie机制,Cobalt Strike通过IE注入进程以继承用户的已验证Web会话,达到无需验证登录用户访问的网站。
这里模拟靶机登录贴吧,进行访问
需要执行ps命令,查看用户的进程,或者右键点击目标中的进程列表查看,找到ieplore.exe的进程,这里可能会 存在多个相同的进程,因为 IE的新版本会为每个选项卡生成一个进程,我们必须将其插入子选项卡以继承会话状态。
找到相应的PID之后运行
注意:必须要使用 x86 架构的 IE 浏览器子进程来注入浏览器跳板 DLL,因为只有注入了与打开的 IE 选项卡关联的进程才能继承会话状态(通过身份认证)。
但具体是哪个标签页进程无关紧要,因为子选项卡共享会话状态。Cobalt Strike 将在它认为你可以注入的进程旁边显示一个勾选框。
1 | browserpivot 找到的PID x86 |
或者是直接右键,选择浏览器代理
选择开始后可以看到,代理成功
之后到浏览器中设置代理 192.168.233.128:35707,访问靶机访问的网页,就可以直接进入登录后的页面了,这里可能是证书的问题,图片显示不正常
1 | browserpivot stop #关闭代理 |
socks代理
1 | scoks 6666 |
将代理加入进去
然后基于可以使用proxychains代理扫描内网主机
1 | proxychains nmap -Sn 192.168.233.0/24 |
我们还可以通过隧道将整个msf带进目标内网,点击View->Proxy Pivots,选择Socks4a Proxy,点击Tunnel:
1 | setg Proxies socks4:192.168.233.133:6666 |
打开msf对内网进行扫描
1 | socks stop #关闭socks |
桌面控制
首先来看一下desktop命令的参数
当通过图形界面选择桌面控制无法进入时,可以通过命令行,将桌面控制工具注入到exlporer.exe进程中,通过这个回来的会话来运行桌面控制
1 | desktop 3912 x64 low |
可以看到成功执行了,连接桌面控制后为了防止误触,read only 是默认按下的,需要控制时,可以打开
Cabalt Strike 和 MSF 联动
在之前连接的基础上,首先获取用户uid看一下, 然后建立socks连接
然后,通过 View
→ Proxy Pivots
,复制生成的 MSF 代理链接。
使用msf运行上面的命令
1 | setg Proxies socks4:127.0.0.1:8888 #走代理 |
CS与MSF会话互传
当CobaltStrike获得了一个上线机器,想把这个目标传给Metasploit中的meterpreter,获得一个session进行控制。在Metasploit执行以下命令
1 | use exploit/multi/handler |
然后在CS中新建 windows/foreign/reverse_tcp的Listeners,端口填写msf监听的端口
然后选中计算机,右键->Spawn:选择MSF的监听器,然后就可以看到msf中得到一个session了,然后就可以进行下面的操作了
REFERENCE
https://blkwindy.top/2019/10/10/Cobalt%20Strike%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%E4%B8%80/
https://www.chabug.org/tools/755.html
http://blog.leanote.com/post/snowming/4e07af1cab60
https://blkwindy.top/2019/10/10/Cobalt%20Strike%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%E4%B8%80/
https://payloads.cn/2019/1211/cobaltstrike-and-metasploit-combat-linkage.html
本文作者 : W4rnIn9
原文链接 : http://joner11234.github.io/article/6ea27749.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!