cobalt strike中的一些小知识点的理解

  • 我眼中的beacon与beacon stage/stager

beacon指的是受害者与我们的teamserver所建立的这个连接,也可以理解成我们所获的的对方主机的控制权,beacon stage/stager是生成的可执行文件。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xILZC4gK-1596542263957)(evernotecid://90B54479-F8FA-4F06-9F90-73E6593C6866/appyinxiangcom/27458002/ENResource/p77)]

  • 什么是stage(stageless)?

stage是无阶段的stager,可以直接理解成,stage是stager与它所请求的数据的集合体。stage比stager更安全,但是体积更大。而且在内网穿透的时候基本只能用stage,用stager会十分麻烦,stager是分段传输payload的,使用stager有时候会导致目标无法上线。stage唯一的缺点是相比较而言体积比较大。

  • 什么是stager?

stager其实是一段很简单的加载器,是socketedi协议请求的一段shellcode,它的作用是向teamserver(C2)请求一段数据,这些数据前是个字节是shellcode的长度,后面是shellcode。接收到数据后跳转到shellcode所在的内存处开始运行。

tips
powershell payload 也相当于 stager,因此powershell 的payload一般不能用于多级内网穿透。

  • beacon与c2通信逻辑

1.stager的beacon会先下载完整的payload执行,stage则省略这一步
2.beacon进入睡眠状态,结束睡眠状态后用 http-get方式 发送一个metadata(具体发送细节可以在malleable_profie文件里的http-get模块进行自定义),metadata内容大概是目标系统的版本,当前用户等信息。
3.如果存在待执行的任务,则c2会响应这个metadata发布命令。beacon将会收到具体任务内容与一个任务id。
4.执行完毕后beacon将回显数据与任务id用post方式发送回C2(细节可以在malleable_profile文件中的http-post部分进行自定义),然后又会回到睡眠状态。

参考资料
https://www.chabug.org/web/832.html

  • 什么是C2?

C2就是command&control server,命令控制服务器

  • hta木马

http application的缩写是一种独立的程序跟c++写的程序没啥区别。可以被windows电脑的mshta命令直接执行。可更改任意后缀名。

  • dll木马

regsvr32 demo.dll 即可执行。

  • 如何更改心跳包频率

sleep 60 37 #其中60是默认时间,后面的37是抖动频率,实际范围为37.8秒到82.2秒一次。

  • 补充:一些beacon中的命令解释

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 停⽌SOCKS

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shanfenglan7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值