**
Cobalt Strike 4.0-渗透攻击-First day(dayu)
**
作者:大余
时间:2020-10-30
请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
我必须再重申一遍:务必不要做未授权测试!不要未经授权在真实网络环境中复现任何文章中描述的攻击。即使是出于好奇而不是恶意,你仍然会因未授权测试行为而陷入很多麻烦。为了个人能更好的继续学习发展,有很多漏洞奖励计划和靶场可以供你学习试验,但是请记住,即使是参加漏洞奖励计划,私自测试范围外的网站或对网站进行深入破坏也会让你有大麻烦。
文章目录
一、前言
Cobalt Strike 一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。
钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等。
Cobalt Strike 主要用于团队作战,可谓是团队渗透神器,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。
Cobalt Strike 作为一款协同APT工具,针对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选。
此次会使用Cobalt Strike 4.0进行讲解了巩固。
二、模拟实战
这里需要安装包的找我即可…(点赞+收藏)
1、目录结构
熟悉目录结构内容:
agscript 拓展应用的脚本
c2lint 用于检查 profile 的错误异常
teamserver 服务端程序
cobaltstrike,cobaltstrike.jar 客户端程序 (java 跨平台)
logs 目录记录与目标主机的相关信息
update,update.jar 用于更新 CS
third-party 第三方工具
熟悉这几个即可…windwos环境一样…
2、启动运行
1)Cobalt Strike 分为客户端和服务端,可分布式操作、协同作战。服务器端只能运行在Linux系统中,可搭建在VPS上。
2)服务端关键的文件是teamserver以及cobaltstrike.jar,将这两个文件放到服务器上同一个目录,然后运行即可。
服务端:
chmod +x teamserver
./teamserver IP 密码
# 服务端真实IP(不能使用0.0.0.0或127.0.0.1)和连接密码
图中已启动服务端IP和密码五个一…
客户端:
客户端在Windows、Linux、Mac下都可以运行 (需要配置好Java环境)。启动Cobalt Strike客户端,输入服务端的IP以及端口、连接密码,用户名可以任意设置。
这里windows需要java 8jdk,Linux需要10jdk、mac一样,这里可以网上找安装包,没有的找我。
命令:./start.sh
这里我写好了.sh的脚本启动…
在控制台所有操作指令都会被记录保留在Cobalt Strike目录logs下…
成功进入Cobalt Strike 4.0界面
3、参数中文介绍
Cobalt Strike
New Connection #新的连接(支持连接多个服务器端)
Preferences #偏好设置(设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录等)
Visualization #窗口视图模式(展示输出结果的形式)
VPN Interfaces #VPN接入
Listenrs #监听器(创建Listener)
Script Manager #脚本管理
Close #关闭
View
Applications #应用(显示受害者机器的应用信息)
Credentials #凭证(通过hashdump或Mimikatz抓取过的密码都会储存在这里)
Downloads #下载文件
Event Log #事件日志(主机上线记录以及团队协作聊天记录)
Keystrokes #键盘记录
Proxy Pivots #代理模块
Screenshots #截图
Script Console #脚本控制台
Targets #显示目标主机
Web Log #Web日志
对于深入后期我都会写,这里提下脚本控制台这块:
可以加载各种脚本,增强功能https://github.com/rsmudge/cortana-scripts
Attacks
Attacks-Packages:
HTML Application #生成恶意的HTA木马文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各种语言版本的payload
USB/CD AutoPlay #生成利用自动播放运行的木马文件
Windows Dropper #捆绑器,能够对文档类进行捆绑
Windows Executable #生成可执行Payload
Windows Executable(S) #把包含payload,Stageless生成可执行文件(包含多数功能)
Attacks-Web Drive-by:
Scripted Web Delivery #提供Web服务,便于下载和执行PowerShell Payload,类似于Metasploit的web_delivery
Signed Applet Attack #启动一个Web服务以提供自签名Java Applet的运行环境
Smart Applet Attack #自动检测Java版本并利用已知的exploits绕过security
System Profiler #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等
Attacks-Spear Phish:
钓鱼邮件,这里后期会尽可能的模拟复现…
Reporting
0. Activity report #活动报告
1. Hosts report #主机报告
2. Indicators of Compromise #威胁报告
3. Sessions report #会话报告
4. Social engineering report #社会工程学报告
5. Tactics, Techniques, and Procedures #策略、技巧和程序
Reset Data #重置数据
Export Data #导出数据
Help
Homepage #官方主页
Support #技术支持
Arsenal #开发者
System information #版本信息
About #关于
列表参数介绍已经完了…
4、简单的一次控制
复现
环境:
kali:192.168.175.147
win7:192.168.175.145
开启个监听
点击add创建即可…
选择生成后门-创建win.exe-payload…
创建好后…
选择一个钓鱼链接…
复制该链接到需要控制的靶机上下载即可…
下载好后,直接双击…
可看到已经成功获得对方的shell,成功控制对方电脑…
深入标题介绍
Access
Dump Hashes #获取hash
Elevate #提权
Golden Ticket #生成黄金票据注入当前会话
Make token #凭证转换
Run Mimikatz #运行 Mimikatz
Spawn As #用其他用户生成Cobalt Strike侦听器
Explore
Browser Pivot #劫持目标浏览器进程
Desktop(VNC) #桌面交互
File Browser #文件浏览器
Net View #命令Net View
Port Scan #端口扫描
Process List #进程列表
Screenshot #截图
Pivoting
SOCKS Server #代理服务
Listener #反向端口转发
Deploy VPN #部署VPN
Spawn
外部监听器(如指派给MSF,获取meterpreter权限)
Session
Note #备注
Remove #删除
Sleep #指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务。实际中频率不宜过快,容易被发现。
Exit #退出
Interact(打开beacon)
beacon> help
Beacon Commands
===============
Command Description
------- -----------
argue 进程参数欺骗
blockdlls 阻止子进程加载非Microsoft DLL
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 使用exp
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 Apply 从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横向渗透
5、基础操作演示
右键目标interact来使用Beacon,用它来执行各种命令。在Cobalt Strike中,默认心跳为60s,执行命令的响应很慢,在下载文件时更加明显,所以根据实战环境把时间降低,建议不要太快,否则流量会相对明显。
在beacon中,如果想对目标进行命令管理,需要在前面加上shell,如shell whoami、shell ipconfig等…
今天简单的讲解了入门级,简单的操作可自行搭建靶机操作…
后面会越来越深入的学习Cobalt Strike 4.0…加油!!
要是你觉得这篇博客写的还不错,欢迎分享给身边的人。