Viper

Remote control software using gRPC and Go.

Components

  • Agent – Runs on the endpoint.
  • Controller – The server that the agents connect to.
  • Agent Manager – The server that runs alongside the controller to manage the agents.
  • Controller Client – Talks to the agent manager.

Features

  • Cross-platform Support: Runs on all modern operating systems (Windows, Linux, macOS, etc).
  • Authentication & Encryption: Connections are encrypted and verified using client certificates.
  • Persistence: Keeps connection to the controller even if rebooted or disconnected momentarily.
  • Shell: Execute shell commands.
  • File I/O: Download and upload files.
  • Screenshots: Capture screenshots.
  • Network Proxy: Connect into the agent’s network using SOCKS.

Usage

  1. Update the config.json according to your needs.
  2. Run the controller servers: go run controller/main.go.
  3. Build and run the agent: make build_agent or go run agent/main.go.
  4. Control the agents: ipython -i controller-client/main.py.

cnc.get_agents()
> [
    id: 0
    alive: true
    connect_time: "2022-06-19 15:22:13.17828 +0300 IDT m=+61.594837928"
]

agent = cnc.get_agent(agent_id=0)
agent.shell('whoami')
> 'root'

GitHub

View Github