2022-08-06 17:04:18 +08:00

65 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cobalt Strike 控制台
### 基本要求
- 能够向客户端发送shell指令并且在客户端执行之后接受返回的指令执行结果(完成)
- 采用模块化程序设计思想(完成)
- 实现心跳功能(定期检查客户端存活)
### 进阶要求
- 通信流量加密(加密方式不限,推荐与二进制学员商量实现自定义加密)
- 文件浏览(完成)
- 文件的上传及下载(完成)
- 可控制客户端的激活,休眠与自杀
- 能够与多个客户端进行通讯
### 额外要求
- 实现提权操作(完成)
- 集成浏览器密码一键抓取(并不是一键但是提供了解密工具)
- 调用数据库来实现相关信息的储存
- 图形化界面(低优先级)
- 通讯实现https
- 自定义通讯协议
### 使用方法
可以使用go run console.go直接运行也可以使用go build console.go编译生产二进制文件。在release中也有编译完成的二进制文件可以直接下载使用。
### 模块化设计思路
- 服务端控制台与各功能分离,能由控制台统一控制,也能单独使用。
### 控制台功能
- 提供了一个简陋的本地shell调用了系统函数来执行命令
- shell里内置了一些特殊命令如'help', 'set', 'show', 'listen', 'dial'。以此实现连接木马端
- 用结构体保存了连接所需的参数,如本地监听端口,远程主机地址,远程主机端口
### 监听和连接器器功能
- 监听指定本地端口,木马上线会有提示
- 连接指定ip的指定端口链接成功会有提示
- 使用goroutine来保证接收和发送的异步使用channel来控制goroutine的流程
- 如果出现接收缓存满了,可以使用":flush"命令继续输出
### 文件上传下载功能
- 下载时利用dd命令将文件分成与缓冲区大小一致的数据块发送当接收到数据大小不一致时则判断传输完成
- 上传时利用dd命令bs和count参数指定接收文件大小这样就可以通过标准输入流写入文件未测试读写权限问题
- 提供了downloaded目录用来保存下载好的文件
### 提权功能
- 在privsec文件夹中提供了shell脚本和多种架构的二进制文件可辅助提权。上传至客户端后运行即可。
### 更新日志
#### v1.0.0
实现本地shell
#### v1.1.0
实现监听,上传下载功能
#### v1.2.0
实现自动构建docker镜像推送至harbor。
实现自动编译二进制文件并发布到release中
#### v1.3.0
实现自动部署到集群
## 参考资料
知识点参考https://toothsome-cardamom-46e.notion.site/Go-TCP-Cooolin-4d03a3eaed09446bb501826cbbd6bc22
语言参考https://pkg.go.dev/
提权脚本参考https://github.com/carlospolop/PEASS-ng
提权思路参考https://book.hacktricks.xyz
浏览器密码解密项目https://github.com/unode/firefox_decrypt
ci以及k8s部分参考代码https://blog.csdn.net/qq_19655405/article/details/117924018