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

内网渗透是每一个安全工程师绕不过去的难题,为什么大家都觉得内网渗透要比其他方面的渗透测试更为头疼,其实主要原因还是在大家对攻入目标网络的环境感到陌生罢了。第一次进入目标内网,独自一人面对庞大的目标系统网络、各种复杂的分区结构,很容易犯迷糊。如果这时能有个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

82504d1e28127ec096a37d17b7685bbc.png

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

b) 客户端:

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

2e171422e9089a3971be68998fb57a75.png

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

8e3fbcf41897ffcb8ddb5b23861dc34d.png

2. Cobalt Strike功能介绍

|Cobalt Strike

|

|

|

               |

               |

               |

|

|

|

|View

|

|

|

|

|

|

|

|

|

|

|Attacks

|

               |

               |

               |

               |

               |

               |

               |

|

               |

               |

               |

               |

               |

               |

               |

|

|Reporting #报告展示模块

3. Cobalt Strike使用方法

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

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

26432556d4f91f8c8d02f0c1b3065af4.png

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

644085452a915e92616a57f5b3cbbb07.png

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

e5c7b120f9e2e8f3220890461145f10d.png

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

4150d4376d039a3da1aa22bd74a5070f.png

成功将所控制的目标机资源上线之后,团队内的其他成员即可对该台机器进行进一步渗透。团队成员通过点击目标机右键,选择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。

8ef016941db9ff3f563b530539af63fb.png

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

102b4b37042df075f9bd44e9671c4d90.png

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

babee2918dd747fdab500d2b7b9195bb.png dac5543fe13ba0c465569a74868d21cb.png

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

mimikatz sekurlsa::pth /user:administrator

/domain:HZMC /ntlm: /run:"cmd -whidden"

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

28cab8dfb68e4750e70c6b74c501a804.png

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

Stael_token 5040

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

d2bb7de4d6270b9318a12cc5b5c59a83.png

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

d2bb7de4d6270b9318a12cc5b5c59a83.png 5d56a0e5f16e2b619bcf151a2964485f.png

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

270ea2920096621243f0a6f18cf109ad.png

b3ff51f1496d2a42ec11a132e1addbb9.gif

75692964c828131dfe15dfe118eff374.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值