edit readme

This commit is contained in:
Smart-SangGe 2022-07-25 15:21:41 +08:00
parent 55702d8f95
commit 6e81d229f6
3 changed files with 29 additions and 8 deletions

View File

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

View File

@ -277,7 +277,7 @@ func sender(conn *net.TCPConn, exit chan string, receive chan int, sstop chan st
if strings.HasPrefix(inp, ":help") {
fmt.Println("use :download FILENAME to download")
fmt.Println("use :upload LOCAL REMOTE to upload")
fmt.Println("use :exit to hung up session")
fmt.Println("use :exit to close session")
fmt.Println("use :getsystem to get Local Privilege Escalation")
fmt.Println("use :flush to flush receive buffer(Use only when input and output are inconsistent)")
fmt.Print(env1.username + " > ")

Binary file not shown.