Code Monkey home page Code Monkey logo

venus's People

Contributors

dependabot[bot] avatar mattreduce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

venus's Issues

Build and package VS Code extension on Payload create

Rather than return the same pre-built VSIX for every Mythic Payload created:

  1. Make a new one the standard way with yo code <name>
  2. Copy over or modify files in place as necessary
  3. Then package it all for installation with vsce package.

Modifications

  • Payload UUID
  • VS Code Extension name
  • VS Code Extension display name
  • VS Code Extension description
  • VS Code Extension publisher
  • VS Code Extension repository
  • VS Code Extension version
  • Callback host
  • Callback port
  • POST Request URI
  • User Agent
  • Callback interval

Add support for exit command

  • process.exit() doesn't seem to work
  • process.kill(process.pid, 'SIGTERM') stops the entire extension host, which pops an alert and very obviously breaks the editor:

extension-host-terminated

Just stop the C2 loop and allow the extension process to stay alive?

Payload build returns installable, benign extension

When an operator creates a Venus paylaod in Mythic, it gives back a pre-built VSIX file that technically works but:

  1. Doesn't connect to Mythic C2
  2. Doesn't contain any custom malicious code ("Hello world" is sufficient)

Essentially a VSIX file needs to go in Payload_Types/venus/agent_code/ and get read and returned during the build process.

This confirms that all of the mechanics of installing the external Payload works, as well as getting an installable VS Code extension from the build process.

Pre-built extension supports one agent command

Doesn't really matter what it does. Still not building and packaging an extension on Payload creation.


Before moving on to a C2 loop and executing commands requested by an operator, we need some way of storing state at least to keep track of the callback UUID returned by Mythic on checkin, and probably other things. I would prefer to use something built into VS Code for stealth and durability, so I've decided to go with
ExtensionContext.globalState, which is a global key/value store that persists across VS Code sessions. Docs on that:

Extract command implementations from extension.js

Now that there are more than a couple of commands and complexity is increasing. Place each command's source into its own file then pull into extension.js. Will need some sort of command name to function mapping.

Add support for 'kill date'

Must exit while running, or not continue execution on start, if the previously defined date/time has passed

Update usage instructions in README

Payload build process does not produce a .vsix file—it returns a zipped folder of the extension's source, which should be modified and then packaged for installation by operators with vsce package.

I plan to support both a finished .vsix and source .zip payload download in the future. ✨

Pre-built extension connects to Mythic

Still not dynamically generating and packaging an extension with yo code <name> and vsce package, but the pre-built extension contains enough code to check in with Mythic and nothing else.

Parameter has crypto_type none, but venus has no translation_container and venus doesn't want Mythic to handle encryption

Hey,
I'm using Mythic 2.3.7 and Venus 0.3.0 and I'm getting the following error when I try to generate a Venus payload:
"Parameter has crypto_type none, but venus has no translation_container and venus doesn't want Mythic to handle encryption"
I've tried changing some of the build and C2 parameters but I got the same error every time.

I also couldn't find any documentation regarding that error, so I would really appreciate any help or direction I can get in that matter.
I'm running my entire Mythic setup on an Ubuntu 20.04 VM.
Also worth mentioning that other Mythic payloads are installed and generated successfully (such as Merlin and Poseidon)

Thanks,
Bar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.