安全实验室 | 内网渗透—CobaltStrike工具介绍

admin 2023年6月1日10:26:49评论85 views字数 6972阅读23分14秒阅读模式

内网渗透是每一个安全工程师绕不过去的难题,为什么大家都觉得内网渗透要比其他方面的渗透测试更为头疼,其实主要原因还是在大家对攻入目标网络的环境感到陌生罢了。第一次进入目标内网,独自一人面对庞大的目标系统网络、各种复杂的分区结构,很容易犯迷糊。如果这时能有个team帮助你一起探索内网、一起协作,显然会使得内网渗透的难度大大降低。


本期美创安全实验室将给大家介绍一款能够用于内网渗透时团队协同作战的工具“Cobalt Strike”。


01
CobaltStrike工具简介


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


Cobalt Strike主要用于团队作战,可以说是内网渗透中的团队渗透神器,CobaltStrike能够让多个攻击者同时连接到团队服务器上,共享攻击资源与目标信心和Session。要知道众人拾柴火焰高的道理,当我们发现一个内网控制点后,为了使我们的攻击收益最大化,最好的办法就是跟团队共享资源,给其他成员提供同样的接入点,Cobalt Strike很好的做到了这一点。因此Cobalt Strike作为一款协同APT工具,针对内网的渗透测试和作为APT的终端控制功能,使其变成众多APT组织的首选工具。


02
Cobalt Strike功能使用


1. 安装Cobalt Strike


a) 服务端:


在服务端执行teamserver即可,命令格式为./teamserver <服务端IP> <连接密码>


安全实验室 | 内网渗透—CobaltStrike工具介绍


一般来说,如果团队成员都处在一个局域网下,那么只需要找一台能够访问到目标内网的机器当作服务端即可,例如本机、跳板机等等,不一定非得使用VPS,还需要考虑目标内网是否能出网。


b) 客户端:


在客户端,只需要运行cobaltstrike.jar文件,默认连接服务端的端口是50050,但要注意的是必须要与服务端所启动的版本相同,例如服务端使用了cobaltstrike3.8版本的teamserver,那么客户端就必须启动cobaltstrike3.8的jar文件,才不会出错。


安全实验室 | 内网渗透—CobaltStrike工具介绍


正确填写服务端IP以及端口和密码即可,成功连接服务端。


安全实验室 | 内网渗透—CobaltStrike工具介绍


2. Cobalt Strike功能介绍


|Cobalt Strike

|<-------New Connection #建立新的连接,允许连接多个服务器端

|<-------Preferences  #偏好设置(界面、控制台样式设置等)

|<-------Visualization #窗口视图模式(结果输出模式)

               |<-------Pivot Graph #透视图模式

               |<-------Session Table #Session表模式

               |<-------Target Table #目标表模式

|<-------VPN Interfaces #VPN接入

|<-------Listeners #监听器(创建Listener)

|<-------Script Manager #脚本管理功能

|View

|<-------Applications #显示目标机的应用信息

|<-------Credentials #凭证(所有通过Mimikatz抓取的密码都存储在这里)

|<-------Downloads #下载文件

|<-------Event Log #事件日志,主机上线记录及团队交流记录

|<-------Keystrokes #键盘记录

|<-------Proxy Pivots #代理模块

|<-------Screenshots #查看目标机截图

|<-------Script Console #脚本控制台

|<-------Targets #显示目标主机

|<-------Web Log #Web日志

|Attacks

|<-------Packages

               |<-------HTML Application #生成恶意的HTA木马

               |<-------MS Office Macro #生成Office宏病毒文件

               |<-------Payload Generator #生成各种语言版本的payload

               |<-------USB/CD AutoPlay #生成自动播放执行的木马文件

               |<-------Windows Dropper #捆绑器、实现对文档类进行捆绑

               |<-------Windows Executable #生成EXE的payload

               |<-------Windows Executable(S) #把包含payload,Stageless生成EXE

|<-------Web Drive-by #钓鱼攻击

               |<-------Manage #对开启的Web服务进行管理

               |<-------Clone Site #克隆网站

               |<-------Host File #提供Web以供下载某文件

               |<-------Scripted Web Delivery #提供Web以供下载powershell

               |<-------Signed Applet Attack #使用java自签名的程序进行钓鱼

               |<-------Smart Applet Attack #自动检测java版本进行攻击

               |<-------System Profiler #用来获取系统信息

|<-------Spear Phish #邮件钓鱼

|Reporting #报告展示模块


3. Cobalt Strike使用方法


在熟悉了Cobalt Strike界面上所提供的功能后,我们接下来着重讲解一下Cobalt Strike的使用方法。使用Cobalt Strike最主要的目的是为了让团队的其他成员也能够对我们控制的内网肉鸡进行操作,所以我们第一步肯定是让我们的内网受控机成功上线。


首先使用Cobalt Strike自带的Attacks模块生成我们所需要的木马文件,所以我们点击Attacks->Packages,根据受控机的具体操作系统及版本选择对应类型的木马文件,假设我们控制了一台WIN2012的内网主机,那么我们选择packages中的Windows Executable功能,想要生成一个EXE类型的木马文件。


安全实验室 | 内网渗透—CobaltStrike工具介绍


这里我们需要配置一下Listener监听器,监听器的概念在很多工具中都出现过,像什么Metasploit、Empire等等,这里就不再赘述。总而言之,在配置监听器时Cobalt Strike只提供了9种payload,如下图:

  

安全实验室 | 内网渗透—CobaltStrike工具介绍


将以上信息配置好后,点击Generate(生成)我们就得到了一个EXE类型的木马文件。


安全实验室 | 内网渗透—CobaltStrike工具介绍


将木马文件通过上传点传入目标主机并执行,就可以惊喜的发现在Cobalt Strike出现了目标机的信息。而团队的其他成员也都可以对这台机器进行操作了。


安全实验室 | 内网渗透—CobaltStrike工具介绍


成功将所控制的目标机资源上线之后,团队内的其他成员即可对该台机器进行进一步渗透。团队成员通过点击目标机右键,选择Interact功能,就可以开始对目标及进行操作,但是团队成员所能操作的就是beacon所提供的各种命令,接下来我们来看一看Beacon都提供了什么指令给渗透人员。


4. Beacon的指令介绍


   browserpivot              注入受害者浏览器进程

   bypassuac                绕过UAC提升权限

   cancel                    取消正在进行的下载

   cd                       切换目录

   checkin                   强制让被控端回连一次

   clear                     清除Beacon内部的任务队列

   covertvpn                 部署Covert VPN客户端

   cp                       复制文件

   dcsync                    从DC中提取密码Hash

   desktop                   远程桌面服务

   dllinject                  反射DLL注入进程

   download                 下载文件

   downloads                列出正在进行的文件下载

   drives                     列出目标盘符

   elevate                    使用exp

   execute                   在目标机上执行程序

   exit                       结束beacon会话

   getsystem                 尝试获取SYSTEM权限

   getuid                     获取用户ID

   hashdump                 转储密码Hash值

   inject                     在注入进程生成会话

   jobkill                     结束一个后台任务

   jobs                      列出后台任务

   kerberos_ccache_use       从cache文件中导入票据应用于此会话

   kerberos_ticket_purge      清除当前会话的票据

   kerberos_ticket_use        从ticket文件中导入的票据应用于此会话

   keylogger                 键盘记录

   kill                       结束进程

   link                       通过命名管道连接到Beacon对等点

   logonpasswords            使用Mimikatz转储密码hash和凭证

   ls                        列出文件

   make_token                创建令牌以传递凭据

   mimikatz                  运行Mimikatz命令

   mkdir                     创建目录

   mode dns                 使用DNS A作为通信通道

   mode dns-txt              使用DNS TXT作为通信通道

   mode dns6                使用DNS AAAA作为通信通道

   mode http                 使用HTTP作为通信通道

   mv                       移动文件

   net                       运行net命令

   note                      备注      

   portscan                  端口扫描

   powerpick                 通过unmanaged powershell执行命令

   powershell                通过powershell.exe执行命令

   powershell-import          导入powershell脚本

   ppid                      为派生的post-ex进程设置父PID

   ps                        展示进程列表

   psexec                    使用服务在主机上生成会话

   psexec_psh                使用PowerShell在主机上生成会话

   psinject                   在特定进程中执行PowerShell命令

   pth                       使用Mimikatz进行哈希传递

   pwd                      显示出当前目录

   rev2self                   恢复原始令牌

   rm                       删除文件或文件夹

   rportfwd                  端口转发

   runas                     以其他用户权限执行程序

   runu                      以其他进程ID执行程序1

   screenshot                屏幕截图

   shell                      执行cmd命令

   shinject                   将shellcode注入进程

   shspawn                  启动一个进程并将shellcode注入

    sleep                     设置休眠时间

   socks                     启动SOCKS4代理

   socks stop                 停止SOCKS4

   spawn                     生成会话

   spawnas                   以另一用户身份生成会话

   spawnu                   以另一进程ID生成会话

   ssh                       使用ssh连接远程主机

   ssh-key                   使用密钥连接远程主机

   steal_token                从进程中窃取令牌

   timestomp                 将一个文件的时间戳应用到另一个文件

   unlink                     断开连接

   upload                    上传文件

   wdigest                    使用Mimikatz转储明文凭据

   winrm                     使用WinRM横向渗透

    wmi                       使用WMI横向渗透


03
Cobalt Strike内网实战


网络环境:

 

攻击机IP:192.168.20.35

目标内网跳板机:192.168.210.102(WIN10)

目标内网域控机:192.168.210.108(WinServer 2012)

 

假设成员A已经成功让内网某台机器(192.168.210.102)上线Cobalt Strike,成员B开始尝试进一步内网渗透,首先查看该台机器的信息。可以看到,这台机器处在一个HZMC的域中,所以我们的下一步计划就是想办法拿下域控主机DC。


安全实验室 | 内网渗透—CobaltStrike工具介绍


根据我们上一篇文章,详细介绍了寻找域控主机的几种方法,例如ping 域名或者net view /domain等等,我们成功发现了域控主机的IP,为192.168.210.108


安全实验室 | 内网渗透—CobaltStrike工具介绍


接下来我们尝试看看在102的机器上是否保留有域控密码,所以我们使用Mimikatz读取一下本地的密码转储,果然发现了域账户密码的NTLM,虽然没发现明文有点可惜,毕竟W10以上的系统已经默认不存储明文密码了,但是我们可以利用NTLM实行哈希传递。


安全实验室 | 内网渗透—CobaltStrike工具介绍


安全实验室 | 内网渗透—CobaltStrike工具介绍


跟据我们前几篇文章所分析过的哈希传递攻击一样,我们在102这台机器上,利用域账户的NTLM进行PTH,执行以下命令:


mimikatz sekurlsa::pth /user:administrator

/domain:HZMC /ntlm:<域账户hash> /run:"cmd -whidden"


成功传递,并执行了一个CMD程序,通过获取CMD的进程ID可以得知,他的PID是5040.


安全实验室 | 内网渗透—CobaltStrike工具介绍


接下来,我们利用Cobalt Strike提供的窃取令牌功能,获得刚刚创建CMD的进程的令牌,执行以下命令:


Stael_token 5040


这时我们已经获得了与域控CMD交互的权限。


安全实验室 | 内网渗透—CobaltStrike工具介绍


但这还不够,我们需要一个更为稳定的权限,最好能将域控DC上线到Cobalt Strike中,所以我们远程创建一个计划任务,并将一个远程木马文件利用copy命令传入到目标机中,通过计划任务来触发该木马文件的执行,使其成功上线。


安全实验室 | 内网渗透—CobaltStrike工具介绍

 

安全实验室 | 内网渗透—CobaltStrike工具介绍


最终域控机成功上线,至此我们成功获得了该域内所有机器的访问权限。


安全实验室 | 内网渗透—CobaltStrike工具介绍

 

安全实验室 | 内网渗透—CobaltStrike工具介绍


安全实验室 | 内网渗透—CobaltStrike工具介绍

原文始发于微信公众号(第59号):安全实验室 | 内网渗透—CobaltStrike工具介绍

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月1日10:26:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全实验室 | 内网渗透—CobaltStrike工具介绍https://cn-sec.com/archives/885603.html

发表评论

匿名网友 填写信息