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 |
- Python 3.8+
- Discord Bot Token
- Discord Webhooks
- Google Remote Desktop
- PowerShell or Bash
- discord.py
- psutil
- requests
- 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.
/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.
-
Clone the Repository:
git clone https://github.com/calinux-py/Ephemeral.git cd ephemeral; cd ephemeral
-
Install Dependencies:
pip install -r requirements.txt
-
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.
- Update
-
Convert Ephemeral source code into an .exe:
pyinstaller --onefile PATH/TO/EPHEMERAL.py
-
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.
-
Start Ephemeral (Hidden) Upon Each Boot:
- Save the below PowerShell script as a
.ps1
file in yourStartup Folder
. You can easily access yourStartup Folder
by holdingCTRL+R
and typingshell:startup
.
- Save the below PowerShell script as a
cd "PATH\TO\Ephemeral\";
Start-Process -FilePath .\ephemeral.exe -WindowStyle hidden; Start-Process -FilePath .\agent3.ps1 -WindowStyle hidden
- Optional: Start Ephemeral (Hidden) Upon Each Boot WITHOUT Process Monitor:
- Save the below PowerShell script as a
.ps1
file in yourStartup Folder
. You can easily access yourStartup Folder
by holdingCTRL+R
and typingshell:startup
.
- Save the below PowerShell script as a
cd "PATH\TO\Ephemeral\";
Start-Process -FilePath .\ephemeral.exe -WindowStyle hidden
-
Clone the Repository:
git clone https://github.com/calinux-py/Ephemeral.git cd Ephemeral; cd Ephemeral
-
Install Dependencies:
pip install -r requirements.txt
-
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
-
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.
- Update
-
Add perms as needed:
chmod +x Linux-agent.sh Linux-Ephemeral-Head.py
-
Run Ephemeral:
python3 Linux-Ephemeral-Head.py
-
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"
- Add this bash file,
-
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
- 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.
MIT