Compare commits

...
Author SHA1 Message Date
moloch-- 205737f768 No compression by default 2022-08-16 17:21:33 -07:00
moloch-- f19c43f07b Added deflate9 compression option 2022-08-16 17:14:10 -07:00
moloch-- 81b8002ac0 Compress prior to encryption 2022-08-16 17:07:55 -07:00
moloch-- c5853a35fc Call the compression function 2022-08-16 17:06:40 -07:00
moloch-- 98f55c8432 Make compression configurable 2022-08-16 17:06:00 -07:00
rkervella 34f60a7b1a Fix stage encryption and add zlib compression option 2022-08-16 15:22:53 -07:00
Joe 9987f377a2 Merge pull request #786 from BishopFox/fix/profiles-beacon-name
Add missing `--name` flag for beacon profiles
2022-08-12 18:29:58 -05:00
rkervella 9852f03ebb Add missing --name flag for beacon profiles 2022-08-11 09:41:26 -07:00
Ronan Kervella ce95f86f38 Merge pull request #784 from BishopFox/fix/donwload
Fix `donwload` for folders in beacon mode
2022-08-10 14:06:47 -07:00
Ronan Kervella cec867426f Merge pull request #782 from BishopFox/go/v1.18.5
go version 1.18.5
2022-08-10 08:08:28 -07:00
moloch-- 8479252975 force go version in workflows 2022-08-09 12:04:50 -07:00
moloch-- 4bfb38e52d go version 1.18.5 2022-08-09 11:58:12 -07:00
moloch-- aba4a140c3 add codeowners 2022-08-08 08:31:22 -07:00
10 changed files with 49 additions and 9 deletions

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
* @moloch--
* @rkervella
+2 -2
View File
@@ -17,7 +17,7 @@ jobs:
- name: Go 1.18
uses: actions/setup-go@v2
with:
go-version: '^1.18'
go-version: '1.18.5'
- name: OS Packages
run: |
@@ -68,7 +68,7 @@ jobs:
- name: Go 1.18
uses: actions/setup-go@v2
with:
go-version: '^1.18'
go-version: '1.18.5'
- name: Mingw
run: brew install mingw-w64
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
- name: Go 1.18
uses: actions/setup-go@v2
with:
go-version: "^1.18"
go-version: "1.18.5"
- name: Checkout repository
uses: actions/checkout@v2
+2 -2
View File
@@ -23,7 +23,7 @@ jobs:
- name: Go 1.18
uses: actions/setup-go@v2
with:
go-version: '^1.18'
go-version: '1.18.5'
- name: OS Packages
run: |
@@ -58,7 +58,7 @@ jobs:
- name: Go 1.18
uses: actions/setup-go@v2
with:
go-version: '^1.18'
go-version: '1.18.5'
- name: Mingw
run: brew install mingw-w64
+1 -1
View File
@@ -1,4 +1,4 @@
FROM golang:1.18.4
FROM golang:1.18.5
#
# IMPORTANT: This Dockerfile is used for testing, I do not recommend deploying
+3 -1
View File
@@ -478,7 +478,8 @@ func BindCommands(con *console.SliverConsoleClient) {
f.String("k", "key", "", "path to PEM encoded private key file (HTTPS only)")
f.Bool("e", "lets-encrypt", false, "attempt to provision a let's encrypt certificate (HTTPS only)")
f.StringL("aes-encrypt-key", "", "encrypt stage with AES encryption key")
f.StringL("aes-encrypt-iv", "", "encrypt stage with AES encyption iv")
f.StringL("aes-encrypt-iv", "", "encrypt stage with AES encryption iv")
f.String("C", "compress", "none", "compress the stage before encrypting (zlib, gzip, deflate9, none)")
},
Run: func(ctx *grumble.Context) error {
con.Println()
@@ -1523,6 +1524,7 @@ func BindCommands(con *console.SliverConsoleClient) {
f.String("c", "canary", "", "canary domain(s)")
f.String("N", "name", "", "implant name")
f.String("m", "mtls", "", "mtls connection strings")
f.String("g", "wg", "", "wg connection strings")
f.String("b", "http", "", "http(s) connection strings")
+24 -1
View File
@@ -19,9 +19,12 @@ package jobs
*/
import (
"bytes"
"compress/zlib"
"context"
"net/url"
"strconv"
"strings"
"github.com/bishopfox/sliver/client/command/generate"
"github.com/bishopfox/sliver/client/console"
@@ -36,6 +39,7 @@ func StageListenerCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
listenerURL := ctx.Flags.String("url")
aesEncryptKey := ctx.Flags.String("aes-encrypt-key")
aesEncryptIv := ctx.Flags.String("aes-encrypt-iv")
compress := strings.ToLower(ctx.Flags.String("compress"))
if profileName == "" || listenerURL == "" {
con.PrintErrorf("Missing required flags, see `help stage-listener` for more info\n")
@@ -75,7 +79,7 @@ func StageListenerCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
// check if aes iv is correct length
if len(aesEncryptIv)%16 != 0 {
con.PrintErrorf("Incorect length of AES IV\n")
con.PrintErrorf("Incorrect length of AES IV\n")
return
}
@@ -88,7 +92,26 @@ func StageListenerCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
return
}
switch compress {
case "zlib":
// use zlib to compress the stage2
var compBuff bytes.Buffer
zlibWriter := zlib.NewWriter(&compBuff)
zlibWriter.Write(stage2)
zlibWriter.Close()
stage2 = compBuff.Bytes()
case "gzip":
stage2 = util.GzipBuf(stage2)
case "deflate9":
fallthrough
case "deflate":
stage2 = util.DeflateBuf(stage2)
}
if aesEncrypt {
// PreludeEncrypt is vanilla AES, we typically only use it for interoperability with Prelude
// but it's also useful here as more advanced cipher modes are often difficult to implement in
// a stager.
stage2 = util.PreludeEncrypt(stage2, []byte(aesEncryptKey), []byte(aesEncryptIv))
}
+1 -1
View File
@@ -20,7 +20,7 @@ set -e
# Creates the static go asset archives
GO_VER="1.18.4"
GO_VER="1.18.5"
GARBLE_VER="1.18.0"
GO_ARCH_1="amd64"
+3
View File
@@ -41,6 +41,9 @@ func PreludeEncrypt(data []byte, key []byte, iv []byte) []byte {
if _, err := io.ReadFull(rand.Reader, iv); err != nil {
return make([]byte, 0)
}
} else {
// make sure we copy the IV
copy(cipherText[:aes.BlockSize], iv)
}
mode := cipher.NewCBCEncrypter(block, iv)
mode.CryptBlocks(cipherText[aes.BlockSize:], plainText)
+10
View File
@@ -21,6 +21,7 @@ package util
import (
"archive/tar"
"bytes"
"compress/flate"
"compress/gzip"
"fmt"
"io"
@@ -46,6 +47,15 @@ func GunzipBuf(data []byte) []byte {
return buf.Bytes()
}
// DeflateBuf - Deflate a buffer using BestCompression (9)
func DeflateBuf(data []byte) []byte {
var buf bytes.Buffer
flateWriter, _ := flate.NewWriter(&buf, flate.BestCompression)
flateWriter.Write(data)
flateWriter.Close()
return buf.Bytes()
}
// ChmodR - Recursively chmod
func ChmodR(path string, filePerm, dirPerm os.FileMode) error {
return filepath.Walk(path, func(name string, info os.FileInfo, err error) error {