{"id":15064090,"url":"https://github.com/calinux-py/EphemeralRMM","last_synced_at":"2025-10-05T00:31:05.027Z","repository":{"id":252325612,"uuid":"840098407","full_name":"calinux-py/EphemeralRMM","owner":"calinux-py","description":"Simple Remote Management Tool using Discord \u0026 Google Remote Desktop. Control your devices from anywhere in the world using Discord!","archived":false,"fork":false,"pushed_at":"2025-05-03T19:07:14.000Z","size":20152,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-03T20:19:49.509Z","etag":null,"topics":["bot","command-and-control","discord","discord-bot","discord-powershell","discord-python","discord-python-bot","ephemeral","managed-service-providers","managed-services","python","python-bot","raspberry-pi","remote-control","remote-desktop","remote-desktop-bot","remote-desktop-manager","remote-management","rmm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/calinux-py.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-09T01:09:26.000Z","updated_at":"2025-05-03T19:07:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c1e0ff4-fdb7-4bd5-b28f-1c36471f1ba2","html_url":"https://github.com/calinux-py/EphemeralRMM","commit_stats":{"total_commits":132,"total_committers":1,"mean_commits":132.0,"dds":0.0,"last_synced_commit":"32e7a815a9e2d739b7042eeff1abc70d32e3c990"},"previous_names":["calinux-py/ephemeral"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/calinux-py/EphemeralRMM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calinux-py%2FEphemeralRMM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calinux-py%2FEphemeralRMM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calinux-py%2FEphemeralRMM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calinux-py%2FEphemeralRMM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calinux-py","download_url":"https://codeload.github.com/calinux-py/EphemeralRMM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calinux-py%2FEphemeralRMM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278395874,"owners_count":25979685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","command-and-control","discord","discord-bot","discord-powershell","discord-python","discord-python-bot","ephemeral","managed-service-providers","managed-services","python","python-bot","raspberry-pi","remote-control","remote-desktop","remote-desktop-bot","remote-desktop-manager","remote-management","rmm"],"created_at":"2024-09-25T00:11:22.966Z","updated_at":"2025-10-05T00:31:03.860Z","avatar_url":"https://github.com/calinux-py.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [\u003cimg src=\"https://github.com/calinux-py/Ephemeral/blob/main/Ephemeral/config/ephemerallogo.png?raw=true\" alt=\"Ephemeral Logo\" width=\"5%\"\u003e](https://github.com/calinux-py/Ephemeral) EphemeralRMM   \n\n[\u003cimg src=\"https://github.com/calinux-py/Ephemeral/blob/main/Ephemeral/config/1723167525111.gif?raw=true\" alt=\"Ephemeral Logo\" width=\"68%\"\u003e](https://github.com/calinux-py/Ephemeral)\n\nEphemeral 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.\nIt is a fun project. Now control from Linux/Raspberry Pi!\n\n| Supported | Features            |\n|--------|--------------------|\n| ✅     | **Control devices remotely from Discord**   |\n| ✅     | **Remote into any device from Discord**   |\n| ✅     | **Guided enrollment of new devices**   |\n| ✅     | **List enrolled devices**      |\n| ✅     | **Status check on enrolled devices**        |\n| ✅     | **Real-time device feed**       |\n| ✅     | **Execute terminal cmds from Discord**   |\n| ✅     | **Real-time process monitoring**   |\n| ✅     | **Linux command and control support**   |\n| ✅     | **Windows client and C\u0026C support**   |\n\n\n\n## Requirements\n![Windows](https://img.shields.io/badge/platform-Windows-blue) ![Linux](https://img.shields.io/badge/platform-Linux-green) ![Python](https://img.shields.io/badge/language-Python-darkgreen) ![PowerShell](https://img.shields.io/badge/language-PowerShell-purple) ![Bash](https://img.shields.io/badge/language-Bash-yellow) ![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord\u0026logoColor=white) ![Google](https://img.shields.io/badge/Google-4285F4?logo=google\u0026logoColor=white)\n\n\n\n- Python 3.8+\n- Discord Bot Token\n- Discord Webhooks\n- Google Remote Desktop\n- PowerShell or Bash\n- discord.py\n- psutil\n- requests\n\n---\n\n## Features\n\n- **Device Enrollment**: Easily enroll new devices to the network using the `/enroll-device` command.\n- **Device Listing**: View all enrolled devices and their details using the `/device-list` command.\n- **Status Check**: Remotely check the status of any enrolled device with the `/check-status` command.\n- **Discord Shell**: Execute Terminal (CMD) commands directly from Discord using the `/run` command. Return the output back to you in Discord.\n- **Process Monitor**: Monitor processes in real-time with the `Process Feed`.\n- **Guided Enrollment**: Step-by-step instructions for enrolling a new device via the `/howto-enroll` command.\n\n[\u003cimg src=\"https://github.com/calinux-py/Ephemeral/blob/main/Ephemeral/config/eph.png?raw=true\" alt=\"Ephemeral Logo\" width=\"71%\"\u003e](https://github.com/calinux-py/Ephemeral)\n\n---\n\n## Commands\n\n- `/device-list`: Lists all devices currently enrolled in the system.\n- `/enroll-device`: Enrolls a new device into the system.\n- `/check-status`: Checks the status of devices.\n- `/run`: Execute PowerShell or cmd commands directly from Discord.\n- `/howto-enroll`: Provides detailed instructions on how to enroll a new device.\n\n---\n\n## Windows Setup (Head and Client)\n\n1. **Clone the Repository**:\n    ```bash\n    git clone https://github.com/calinux-py/Ephemeral.git\n    cd ephemeral; cd ephemeral\n    ```\n\n2. **Install Dependencies**:\n    ```powershell\n    pip install -r requirements.txt\n    ```\n\n3. **Configure Ephemeral**:\n    - Update `config/config.ini` with your Discord bot token and webhooks.\n    - `[Hostname]` is the hostname of the device running Ephemeral-Head (the command and control device).\n    - `[LiveFeed]` is the Discord webhook where your devices will actively post device information in realtime.\n    - `[AgentStatus]` is the Discord webhook where agents will post device information when inquired.\n    - `[AgentCommands]` is the Discord webhook used by agents to return output from PowerShell commands.\n    - `[ProcessFeed]` is the Discord webhook used to update new running processes.\n    - LiveFeed, AgentStatus, and ProcessFeed can be the same Discord webhook (but not recommended).\n    - `[DiscordToken]` is where you enter your Discord Bot token. \n\n4. **Convert Ephemeral source code into an .exe**:\n```powershell\npyinstaller --onefile PATH/TO/EPHEMERAL.py\n```\n\n5. **Run Ephemeral**:\n    - Run Ephemeral-Head on a server or computer you are controlling.\n    - Run Ephemeral-Client on a Windows client device you want to control.\n\n6. **Start Ephemeral (Hidden) Upon Each Boot**:\n    - 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`.\n```powershell\ncd \"PATH\\TO\\Ephemeral\\\";\nStart-Process -FilePath .\\ephemeral.exe -WindowStyle hidden; Start-Process -FilePath .\\agent3.ps1 -WindowStyle hidden\n```\n\n7. Optional: **Start Ephemeral (Hidden) Upon Each Boot WITHOUT Process Monitor**:\n    - 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`.\n\n```powershell\ncd \"PATH\\TO\\Ephemeral\\\";\nStart-Process -FilePath .\\ephemeral.exe -WindowStyle hidden\n```\n\n---\n\n## Linux Setup (Head Only)\n1. **Clone the Repository**:\n    ```bash\n    git clone https://github.com/calinux-py/Ephemeral.git\n    cd Ephemeral; cd Ephemeral\n    ```\n\n2. **Install Dependencies**:\n    ```bash\n    pip install -r requirements.txt\n    ```\n    \n3. **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).\n    ```bash\n    sed -i 's/\\r//' Linux-agent.sh\n    ```\n    \n4. **Configure Ephemeral**:\n    - Update `config/config.ini` with your Discord bot token and webhooks.\n    - `[Hostname]` is the hostname of the device running Ephemeral-Head (the command and control device).\n    - `[AgentStatus]` is the Discord webhook where agents will post device information when inquired.\n    - `[DiscordToken]` is where you enter your Discord Bot token.\n    - No other webhooks are needed with Linux Ephemeral-Head.\n\n5. **Add perms as needed**:\n   ```bash\n   chmod +x Linux-agent.sh Linux-Ephemeral-Head.py\n   ```\n\n6. **Run Ephemeral**:\n   ```bash\n   python3 Linux-Ephemeral-Head.py\n   ```\n\n7. **Run upon boot**:\n    - Add this bash file, `start-eph.sh`, to any directory\n   ```bash\n    sleep 10\n    cd /home/PATH/TO/Ephemeral\n    lxterminal -e \"python3 /home/PATH/TO/Ephemeral/Linux-Ephemeral-Head.py\"\n    ```\n\n9. **Add startup file to .config**:\n    - Go to /home/USER/.config\n    - If you do not have a directory named autostart, create it.\n    - Add this to autostart named Ephemeral.desktop\n   ```bash\n   [Desktop Entry]\n\n   Exec=bash /home/PATH/TO/start-eph.sh\n    ```\n   \n---\n\n[\u003cimg src=\"https://github.com/calinux-py/Ephemeral/blob/main/Ephemeral/config/ephproc.png?raw=true\" alt=\"Ephemeral Logo\" width=\"70%\"\u003e](https://github.com/calinux-py/Ephemeral)\n\n## PowerShell Agents\n- **Agent.ps1**: used for checking statuses of all client agents. Returns output back to user in Discord.\n- **Agent2.ps1**: used for running shell commands and returning output back to the user in Discord.\n- **Agent3.ps1**: used for monitoring new processes and updating the user in Discord.\n- **Agent.sh**: Linux version of Agent.ps1.\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinux-py%2FEphemeralRMM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalinux-py%2FEphemeralRMM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinux-py%2FEphemeralRMM/lists"}