Cobalt Strike是美国Red Team开发的渗透测试神器,简称CS,是一款渗透神器。
主要用于后渗透
方面的攻击,且具备团队作战
的功能
1. 团队协作
即时发送信息 + 权限共享
//团战:服务端(A机器 在公网上)、客户端(B机器)
//客户端去控制服务端 => C网站挂了个马,然后得到了权限,通过CS的马,让CS得到了一个shell
2. 生成各种木马
一句话木马(Webshell 要基于web环境(支持且处于运行状态))
系统木马(exe文件 dll文件 直接让windows、Linux运行的木马)
基于一定环境的木马(python java马)
//可生成exe,dll,powershell,hta,图片捆绑,bad USB,vba宏木马,以及shellcode等;
3. 钓鱼攻击
内置了一些钓鱼攻击的模块(一键化制作钓鱼)
//自动化挂马链接生成,自动化钓鱼及探针;
4. 后渗透模块
提权、抓密码、文件操作、执行命令、键盘记录、截屏、内网探测、内网穿透、进程迁移(注入)
//浏览器进程代理、文件操作、提权模块、跳板、DLL进程注入、端口转发、内网端口扫描、socks代理、令牌窃取利用、mimikatz套件等;
5. 支持插件
Cobalt Strike 基于
Java环境
开发,所以如果要使用这个工具一定要安装Java环境。(工具的组成部分分为服务端 + 客户端)
模式优点:
可以团队合作,任何人知道这台服务端CS的密码就可以连接一起渗透,共享上线主机权限
被攻击网站显示服务端信息,不会显示真实渗透测试人员信息(当然服务端被人拿下除外)
服务端如果在服务器上一般不轻易关机断网,如果放在渗透测试人员本机,如果是持续半个月甚至更久的渗透个人PC不断网不关机的不太现实 //远控:因为要控制别人,所以要维持连接(心跳时间60s)
课堂提供的CS版本是4.0版本
先运行服务端(必须要管理员权限命令行),再运行start.bat
teamserver.bat 服务器ip 服务器密码[自定义]
如果出现了Success然后就一直不动了那就是启动成功了,这个时候我们开启start.bat
//服务端运行必须是管理员权限 默认端口:50050 端口可以以编辑模式打开teamserver.bat找到server_port更改
cs执行终端命令: shell “whoami”
1. 配置监听器
先设置一个监听器,监听器其实就是监听木马端是否有传递数据过来
后续的每个功能都需要选择监听器
2. 生成木马
最常用的还是exe木马,
hta(HTML Application)[只有powershell能够使用]现在基本没有什么用户群体,需要ie浏览器配合文件下载
宏病毒攻击(office为主),2007亲测没问题,宏都是默认关闭的(为了表格更好的处理信息) //最好使用Word,其他有检测
核心源码只给一段核心攻击代码,还需要编译制作才能使用
被控机上线后,需要设置会话时间(sleep)默认为60秒,意思是被控及运行的木马程序会每60秒请求一次服务端,我们设置为1(1秒通信一次)
3. 利用木马
上线后我们能做的就太多了,例如
进程管理、屏幕截图(截图后在图像的按钮上看)、远程桌面、文件管理、浏览器代理(reGeorg)、提权、进程注入(为了维持权限,可以将木马注入到其他进程里,例如explorer)(计划任务、服务运行) 键盘记录(命令行:keylogger) 等,这里只演示几个
键盘记录一定要在命令行输入keylogger,否则它不会去执行
User处带*号的就是提权过的进程,process是木马所在进程是哪个。
CS具有高度的扩展性,可以加载插件(Burp也可以加载插件,两者差不多)
CS因为分为服务端和客户端,所以有两种加载插件的方法。 在服务端加载、在客户端加载(常见客户端,加载cna)
其他插件分享
https://blog.csdn.net/weixin_41082546/article/details/100153689
CS好用的插件有梼杌(taowu),比原有的丰富且好用
钓鱼拿到PC后,目标关机了,马掉了,这个时候就需要权限的维持:
自启动(写入任务计划、服务)
任务计划
此电脑-管理-任务计划程序,将我们制作的木马程序添加即可
只能设置每一小时启动一次,不是很好用
服务启动
phpstudy有系统服务模式和非服务模式,系统服务(权限要求高且无法降权)可以开机自启动,所以服务可以做到开机自启动
网上的方法都不好用,老师推荐的是工具
WinSw.exe,它可以让程序以服务的方式在后台运行并能开机启动
下载地址:https://github.com/winsw/winsw/releases/tag/v3.0.0-alpha.10
1. 下载winsw.exe后在同路径下创建相同名称的xml文件,内容如下
<service>
<id>zkaq(服务名称)</id>
<name>zkaq(服务描述)</name>
<description>This service runs Jenkins continuous integration system.</description>
<executable>程序(木马)绝对路径</executable>
<arguments></arguments>
</service>
2. 生成一个木马后,一定要以管理员方式打开cmd,cd到winsw.exe目录下
坑点:
32位的马比64位稳定
启动服务时,同一个马不能放入多个服务中去使用(一个服务用一个马)
被控机只要不删程序不关服务,就算他重启电脑,服务也会自启动去连接CS服务端
shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
shellcode 属于水 加载器属于杯子 (转化为2进制代码压入内存)
免杀常见手法:
shellcode(攻击代码)和加载程序的分离 //加载程序可以去gitgub找
Lolbins白利用加载shellcode(白名单利用)
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就是做过免杀的,现在这个加载器百分百被杀,重要的是思路
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.