Cobalt Strike 4.0系列(三) --- 主机上线

概念引入

开始之前,需要引入几个概念。

stager:

定义 - 本身是一段尽可能小的手工优化过的汇编程序 参考 功能 - 连接到主控端,按照主控端的要求对大的payload (即
stage)进行下载、注入内存、执行

payload (即 stage):

定义 - 理论上是一段任意大小的、与位置无关的代码,被stager执行 功能 - 具体功能的实现,Cobalt
Strike的许多攻击和工作流程都将payload用多个stage实现投递

stageless payload

可理解为包含了payload的"全功能"被控端程序

Listener:

我的理解是:生成的木马将执行相应的指令,Listener则负责在服务端开启相应的监听程序,类似于MSF中handler,等待木马发送的反弹shell,一旦收到木马发送的数据,双方开始建立会话,CS客户端上线。

Beacon:

为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs

Foreign:

主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter或者armitage的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器

主机上线

CS的攻击方式众多,首先来了解以下以下三种:
在这里插入图片描述

Payload Generator

用该模块可以生成不同语言的payload用于执行,从而在不同的应用环境下执行并反弹SHELL到服务端完成上线。在这里插入图片描述

以Windows环境下的power shell为例,我们先点击箭头所指的按钮,在弹出的对话框中选择Add新建一个Listener,参数如下。

在这里插入图片描述

点击Save后即可看到刚才的对话窗中出现了我们刚才新建的Listener,点击choose选择。
在这里插入图片描述

设置好了Listener,在output中选择powershell command。因为我们的测试靶机为Windows7 X64位,所以我们勾选上Use x64 payload。
在这里插入图片描述
点击generate,程序会将产生的代码放到payload.txt,选择位置保存后,打开payload.txt便得到power shell命令。复制命令到靶机的power shell运行后,CS便可以看到靶机已经上线。
在这里插入图片描述
在CS客户端可以看到靶机的内网外网IP、listener的名称、靶机操作系统当前的用户、系统名称、反弹shell的进程、进程号、持续时间。

在靶机信息上右键,点击interact便可获得一个和meterpreter相似的交互式的命令界面。
在这里插入图片描述
输入help查看可用的命令以及命令的解释。
在这里插入图片描述
在这里贴上各种命令的解释

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横向渗透

至此主机完成上线,后续对主机的渗透直接在beacon界面 输入命令即可。不过有个提示的地方,在Cobalt Strike中它的心跳默认是60s(即sleep时间为60s,每一分钟目标主机与teamserver通信一次), 这会让我们执行命令或进行其他操作响应很慢。
一般在获得beacon后都会先执行sleep命令重新设置睡眠时间,比如sleep5 即为每五秒与服务器通信一次。切记不可将sleep时间设置的太短,频繁的通信容易被目标察觉。

Windows Executable

该模块是用来生成Windows可执行文件,生成的文件中包含恶意语句,当目标主机运行了该文件后CS便可获得beacon。

在这里插入图片描述

选择该模块,listener依旧选择刚才设置的pwtest,output选择常用的Windows EXE文件。点击generate即可产生名为artifact.exe的可执行文件,将其保存并放到靶机运行即可上线获得beacon。
在这里插入图片描述

在这里插入图片描述

Windows Executable(stageless)

相比于Windows Excutable,Windows Executable(stageless)生成的是stageless版本(无状态Windows后门木马),Staged 和 Stageless 的区别. 前者的实际功能只是和 C2 建立连接并接收 Payload, 然后加载执行, 而 Stageless 直接省去了接收 Payload 的步骤. Stageless 生成除了的 Payload 都会比 Staged 类型的要大很多, 而且包含了特征明细。配置方法和Windows Executable一样,生成的文件名为beacon.exe。

在这里插入图片描述

将其放到靶机运行即可上线。
在这里插入图片描述

HTML Application

HTML Application用于需要访问WEB服务下载执行payload的情况下,要启动该模块需要两个模块之间相互配合。
1.在attack-packages-HTML Application中选择对应的listener和method生成payload。
在这里插入图片描述
2.在attacks-Web Drive-by - Host File中开启WEB服务。

在这里插入图片描述
其中的File要选择在步骤1中生成的payload。
在这里插入图片描述
点击launch后,会有对话框提示复制以下链接并访问。
在这里插入图片描述
在靶机上访问该链接并点击运行,CS即可上线

在这里插入图片描述

MS Office Macro

该模块是用来生成恶意的宏,并将宏添加到文档中,当目标打开了带有恶意宏的文档并且成功的执行了宏后,CS即可上线

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页