渗透测试神器 - Cobalt Strike

渗透你的美   ·   发表于 2022-05-24 13:05:59   ·   学习杂记

渗透测试神器 - Cobalt Strike

Cobalt Strike是美国Red Team开发的渗透测试神器,简称CS,是一款渗透神器。
主要用于后渗透方面的攻击,且具备团队作战的功能

0x01 功能

1. 团队协作

  1. 即时发送信息 + 权限共享
  2. //团战:服务端(A机器 在公网上)、客户端(B机器)
  3. //客户端去控制服务端 => C网站挂了个马,然后得到了权限,通过CS的马,让CS得到了一个shell

2. 生成各种木马

  1. 一句话木马(Webshell 要基于web环境(支持且处于运行状态))
  2. 系统木马(exe文件 dll文件 直接让windowsLinux运行的木马)
  3. 基于一定环境的木马(python java马)
  4. //可生成exe,dll,powershell,hta,图片捆绑,bad USB,vba宏木马,以及shellcode等;

3. 钓鱼攻击

  1. 内置了一些钓鱼攻击的模块(一键化制作钓鱼)
  2. //自动化挂马链接生成,自动化钓鱼及探针;

4. 后渗透模块

  1. 提权、抓密码、文件操作、执行命令、键盘记录、截屏、内网探测、内网穿透、进程迁移(注入)
  2. //浏览器进程代理、文件操作、提权模块、跳板、DLL进程注入、端口转发、内网端口扫描、socks代理、令牌窃取利用、mimikatz套件等;

5. 支持插件

0x02 Cobalt Strike工具的介绍、安装

Cobalt Strike 基于Java环境开发,所以如果要使用这个工具一定要安装Java环境。(工具的组成部分分为服务端 + 客户端)

模式优点:

  1. 可以团队合作,任何人知道这台服务端CS的密码就可以连接一起渗透,共享上线主机权限
  2. 被攻击网站显示服务端信息,不会显示真实渗透测试人员信息(当然服务端被人拿下除外)
  3. 服务端如果在服务器上一般不轻易关机断网,如果放在渗透测试人员本机,如果是持续半个月甚至更久的渗透个人PC不断网不关机的不太现实 //远控:因为要控制别人,所以要维持连接(心跳时间60s)

课堂提供的CS版本是4.0版本

先运行服务端(必须要管理员权限命令行),再运行start.bat

  1. teamserver.bat 服务器ip 服务器密码[自定义]
  2. 如果出现了Success然后就一直不动了那就是启动成功了,这个时候我们开启start.bat
  3. //服务端运行必须是管理员权限 默认端口:50050 端口可以以编辑模式打开teamserver.bat找到server_port更改

cs执行终端命令: shell “whoami”

0x03 Cobalt Strike基础操作

1. 配置监听器

先设置一个监听器,监听器其实就是监听木马端是否有传递数据过来
后续的每个功能都需要选择监听器

2. 生成木马

  1. 最常用的还是exe木马,
  2. htaHTML Application)[只有powershell能够使用]现在基本没有什么用户群体,需要ie浏览器配合文件下载
  3. 宏病毒攻击(office为主),2007亲测没问题,宏都是默认关闭的(为了表格更好的处理信息) //最好使用Word,其他有检测
  4. 核心源码只给一段核心攻击代码,还需要编译制作才能使用

被控机上线后,需要设置会话时间(sleep)默认为60秒,意思是被控及运行的木马程序会每60秒请求一次服务端,我们设置为1(1秒通信一次)

3. 利用木马

上线后我们能做的就太多了,例如
进程管理、屏幕截图(截图后在图像的按钮上看)、远程桌面、文件管理、浏览器代理(reGeorg)、提权、进程注入(为了维持权限,可以将木马注入到其他进程里,例如explorer)(计划任务、服务运行) 键盘记录(命令行:keylogger) 等,这里只演示几个

克隆网站

键盘记录一定要在命令行输入keylogger,否则它不会去执行

提权

User处带*号的就是提权过的进程,process是木马所在进程是哪个。

渗透测试神器 - Cobalt Strike 进阶用法

0x01插件

CS具有高度的扩展性,可以加载插件(Burp也可以加载插件,两者差不多)
CS因为分为服务端和客户端,所以有两种加载插件的方法。 在服务端加载、在客户端加载(常见客户端,加载cna)
其他插件分享
https://blog.csdn.net/weixin_41082546/article/details/100153689

CS好用的插件有梼杌(taowu),比原有的丰富且好用


0x02木马自启动

钓鱼拿到PC后,目标关机了,马掉了,这个时候就需要权限的维持:
自启动(写入任务计划、服务)

任务计划

此电脑-管理-任务计划程序,将我们制作的木马程序添加即可
只能设置每一小时启动一次,不是很好用

服务启动

phpstudy有系统服务模式和非服务模式,系统服务(权限要求高且无法降权)可以开机自启动,所以服务可以做到开机自启动

网上的方法都不好用,老师推荐的是工具WinSw.exe,它可以让程序以服务的方式在后台运行并能开机启动

下载地址:https://github.com/winsw/winsw/releases/tag/v3.0.0-alpha.10

1. 下载winsw.exe后在同路径下创建相同名称的xml文件,内容如下

  1. <service>
  2. <id>zkaq(服务名称)</id>
  3. <name>zkaq(服务描述)</name>
  4. <description>This service runs Jenkins continuous integration system.</description>
  5. <executable>程序(木马)绝对路径</executable>
  6. <arguments></arguments>
  7. </service>

2. 生成一个木马后,一定要以管理员方式打开cmd,cd到winsw.exe目录下

坑点:
32位的马比64位稳定
启动服务时,同一个马不能放入多个服务中去使用(一个服务用一个马)

最终效果:

被控机只要不删程序不关服务,就算他重启电脑,服务也会自启动去连接CS服务端

0x03免杀

shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。


shellcode 属于水 加载器属于杯子 (转化为2进制代码压入内存)

  1. 免杀常见手法:
  2. shellcode(攻击代码)和加载程序的分离 //加载程序可以去gitgub找
  3. Lolbins白利用加载shellcode(白名单利用)
  4. shellcode混淆、编码解码 //类似eval(decode_base64($_POST[9]))

有兴趣的小伙伴可以看看这个(涉及课外免杀问题不解答)
https://www.cnblogs.com/-qing-/p/12234148.html

1. 老师给了一个免杀工具,用go语言编写的shellcode加载器go-shellcode-launcher-master(这个工具运行需要符合x64标准)

go文件内没有出现ip,域名,加载等说明没有后门

2. 利用CS生成一段c语言的shellcode,将里面的机器码粘贴到bobo.txx


3. 打开cmd执行命令即可生成经过免杀的exe

最终生成的exe就是做过免杀的,现在这个加载器百分百被杀,重要的是思路

打赏我,让我更有动力~

0 条回复   |  直到 2022-5-24 | 1812 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.