Skip to content

Simple Remote Management Tool using Discord & Google Remote Desktop. Control your devices from anywhere in the world using Discord!

Notifications You must be signed in to change notification settings

calinux-py/EphemeralRMM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Ephemeral Logo EphemeralRMM

Ephemeral Logo

Ephemeral is a free RMM using Discord and Chrome Remote Desktop API. It allows you to receive updates and control your devices from anywhere in the world using Discord. It is a fun project. Now control from Linux/Raspberry Pi!

Supported Features
Control devices remotely from Discord
Remote into any device from Discord
Guided enrollment of new devices
List enrolled devices
Status check on enrolled devices
Real-time device feed
Execute terminal cmds from Discord
Real-time process monitoring
Linux command and control support
Windows client and C&C support

Requirements

Windows Linux Python PowerShell Bash Discord Google

  • Python 3.8+
  • Discord Bot Token
  • Discord Webhooks
  • Google Remote Desktop
  • PowerShell or Bash
  • discord.py
  • psutil
  • requests

Features

  • Device Enrollment: Easily enroll new devices to the network using the /enroll-device command.
  • Device Listing: View all enrolled devices and their details using the /device-list command.
  • Status Check: Remotely check the status of any enrolled device with the /check-status command.
  • Discord Shell: Execute Terminal (CMD) commands directly from Discord using the /run command. Return the output back to you in Discord.
  • Process Monitor: Monitor processes in real-time with the Process Feed.
  • Guided Enrollment: Step-by-step instructions for enrolling a new device via the /howto-enroll command.

Ephemeral Logo


Commands

  • /device-list: Lists all devices currently enrolled in the system.
  • /enroll-device: Enrolls a new device into the system.
  • /check-status: Checks the status of devices.
  • /run: Execute PowerShell or cmd commands directly from Discord.
  • /howto-enroll: Provides detailed instructions on how to enroll a new device.

Windows Setup (Head and Client)

  1. Clone the Repository:

    git clone https://github.com/calinux-py/Ephemeral.git
    cd ephemeral; cd ephemeral
  2. Install Dependencies:

    pip install -r requirements.txt
  3. Configure Ephemeral:

    • Update config/config.ini with your Discord bot token and webhooks.
    • [Hostname] is the hostname of the device running Ephemeral-Head (the command and control device).
    • [LiveFeed] is the Discord webhook where your devices will actively post device information in realtime.
    • [AgentStatus] is the Discord webhook where agents will post device information when inquired.
    • [AgentCommands] is the Discord webhook used by agents to return output from PowerShell commands.
    • [ProcessFeed] is the Discord webhook used to update new running processes.
    • LiveFeed, AgentStatus, and ProcessFeed can be the same Discord webhook (but not recommended).
    • [DiscordToken] is where you enter your Discord Bot token.
  4. Convert Ephemeral source code into an .exe:

pyinstaller --onefile PATH/TO/EPHEMERAL.py
  1. Run Ephemeral:

    • Run Ephemeral-Head on a server or computer you are controlling.
    • Run Ephemeral-Client on a Windows client device you want to control.
  2. Start Ephemeral (Hidden) Upon Each Boot:

    • Save the below PowerShell script as a .ps1 file in your Startup Folder. You can easily access your Startup Folder by holding CTRL+R and typing shell:startup.
cd "PATH\TO\Ephemeral\";
Start-Process -FilePath .\ephemeral.exe -WindowStyle hidden; Start-Process -FilePath .\agent3.ps1 -WindowStyle hidden
  1. Optional: Start Ephemeral (Hidden) Upon Each Boot WITHOUT Process Monitor:
    • Save the below PowerShell script as a .ps1 file in your Startup Folder. You can easily access your Startup Folder by holding CTRL+R and typing shell:startup.
cd "PATH\TO\Ephemeral\";
Start-Process -FilePath .\ephemeral.exe -WindowStyle hidden

Linux Setup (Head Only)

  1. Clone the Repository:

    git clone https://github.com/calinux-py/Ephemeral.git
    cd Ephemeral; cd Ephemeral
  2. Install Dependencies:

    pip install -r requirements.txt
  3. Remove all carriage return (\r) characters from the Linux-agent.sh file, converting it from Windows-style line to Unix-style line endings (im lazy do it yourself).

    sed -i 's/\r//' Linux-agent.sh
  4. Configure Ephemeral:

    • Update config/config.ini with your Discord bot token and webhooks.
    • [Hostname] is the hostname of the device running Ephemeral-Head (the command and control device).
    • [AgentStatus] is the Discord webhook where agents will post device information when inquired.
    • [DiscordToken] is where you enter your Discord Bot token.
    • No other webhooks are needed with Linux Ephemeral-Head.
  5. Add perms as needed:

    chmod +x Linux-agent.sh Linux-Ephemeral-Head.py
  6. Run Ephemeral:

    python3 Linux-Ephemeral-Head.py
  7. Run upon boot:

    • Add this bash file, start-eph.sh, to any directory
     sleep 10
     cd /home/PATH/TO/Ephemeral
     lxterminal -e "python3 /home/PATH/TO/Ephemeral/Linux-Ephemeral-Head.py"
  8. Add startup file to .config:

    • Go to /home/USER/.config
    • If you do not have a directory named autostart, create it.
    • Add this to autostart named Ephemeral.desktop
    [Desktop Entry]
    
    Exec=bash /home/PATH/TO/start-eph.sh

Ephemeral Logo

PowerShell Agents

  • Agent.ps1: used for checking statuses of all client agents. Returns output back to user in Discord.
  • Agent2.ps1: used for running shell commands and returning output back to the user in Discord.
  • Agent3.ps1: used for monitoring new processes and updating the user in Discord.
  • Agent.sh: Linux version of Agent.ps1.

License

MIT