{"id":17597388,"url":"https://github.com/emmaunel/discordgo","last_synced_at":"2025-04-15T11:07:52.310Z","repository":{"id":40461549,"uuid":"259040702","full_name":"emmaunel/DiscordGo","owner":"emmaunel","description":"Discord C2 for Redteam....Need a better name","archived":false,"fork":false,"pushed_at":"2023-05-07T20:36:58.000Z","size":19223,"stargazers_count":127,"open_issues_count":4,"forks_count":29,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-15T11:07:36.148Z","etag":null,"topics":["bot","c2","covert-channel","covert-channels","discord","discord-bot","discordgo","redteam"],"latest_commit_sha":null,"homepage":"","language":"Go","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/emmaunel.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.txt","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":"2020-04-26T13:42:50.000Z","updated_at":"2025-04-13T02:40:15.000Z","dependencies_parsed_at":"2024-06-18T22:35:39.565Z","dependency_job_id":"0f03b516-e418-4ff4-9608-6d8fb01faab4","html_url":"https://github.com/emmaunel/DiscordGo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmaunel%2FDiscordGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmaunel%2FDiscordGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmaunel%2FDiscordGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmaunel%2FDiscordGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emmaunel","download_url":"https://codeload.github.com/emmaunel/DiscordGo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249058369,"owners_count":21205910,"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","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","c2","covert-channel","covert-channels","discord","discord-bot","discordgo","redteam"],"created_at":"2024-10-22T09:25:02.756Z","updated_at":"2025-04-15T11:07:52.284Z","avatar_url":"https://github.com/emmaunel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e DiscordGo \u003c/h1\u003e \n\u003cp align=\"center\"\u003e\n  \u003ca\u003e\n    \u003cimg src=\"./img/logo.png\" width=\"400\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n![Version](https://img.shields.io/badge/Version-2.0-brightgreen)\n![Language](https://img.shields.io/badge/Language-Go-blue.svg?longCache=true\u0026style=flat-square)\n[![Go Report Card](https://goreportcard.com/badge/github.com/emmaunel/DiscordGo)](https://goreportcard.com/report/github.com/emmaunel/DiscordGo)\n![nil](https://img.shields.io/badge/nil-goated-green)\n\n\nDiscord C2 for Redteam engagement....Need a better name.\nIf you can think of one, please tell me. :)\n\nNot to be confused with DiscordGo library which I use for the backend.\n\n# Why I made this\n\nDuring Blue-Red Team competition, I needed an easy and fast way to keep connected and a way for mutiple redteamer to run commands, hence DiscordGo.\nSince Discord is getting popular, why not use the platorm as a c2.\nThat's what this project is about.\n\n# Installation\n\nTo use DiscordGo, you need to create a Discord bot and a Discord server. After that, invite the bot to your server.\n\nClick [here](https://support.discord.com/hc/en-us/articles/204849977-How-do-I-create-a-server-) to learn how to create a server and [here](https://discordjs.guide/preparations/setting-up-a-bot-application.html#creating-your-bot) to create a bot. And finally, learn to invite the bot to your server with [this.](https://discordjs.guide/preparations/adding-your-bot-to-servers.html#bot-invite-links)\n\nWhen creating the bot, you need it give it some permission. For testing, I gave the bot full `administrative` permission. But the required permission are as follow:\n\n* Send Messages\n* Read Messages\n* Attach Files\n* Manage Server\n\n# Usage\n\nEdit this file `pkg/util/variables.go` with your `BotToken` and `ServerID`. Or create the file if not there\n\nThe bot token can be found on discord developer dashboard where you created the bot. To get your server ID, go to your server setting and click on `widget`. On the right pane, you see the your ID.\n\nAn example configuration file looks like this:\n```\nvar ServerID = \"XXXXXXXXXXX\"\nvar BotToken = \"XXXXXXXXXXX\"\n```\n\nAfter that is done, all you have to do is run `make`. That will create 3 binaries.\n\n```\n- linux-agent\n- windows-agent.exe\n- macos-agent\n```\n\n## Organizer Bot\n\nWhen you have target connecting back to your discord server, channels are created by their ip addresses. This can quickly get hard to manage. Solution: Another bot to organize the targets channels.\n\nTo use the organizer bot, run the csv generator script in the scripts folder:\n```\n$ pip3 install -r requirements.txt\n$ python3 csv_generator.py\n```\n\nThis will create a csv like this:\n\n```\n192168185200,team01,hostname1,windows\n192168185201,team02,hostname2,linux\n```\n\nTo start the organizer bot: `go run cmd/organizer/main.go -f \u003ccsv_filename\u003e.csv`\n\nRun `clean` in any channel to organize bots into their respective categories.\n\n# Feature\n\n* Cross-platform\n* Organozer(talk about and intergration to pwnboard)\n\n\n# WIP (Work in Progress)\n\n- [x] Cross-platform\n- [x] File upload\n- [x] File download\n- [x] Agent grouping(by hostname like web hosts and so on, slash command)\n- [x] Group commands\n- [X] Add logging to organizer\n- [X] Comp CSV Generation file\n- [ ] Integrate with pwndrop\n\n\n\n# Screenshots\n\u003cp align=\"center\"\u003e\n  \u003ca\u003e\n    \u003cimg src=\"./img/example-team.png\" width=\"860\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca\u003e\n    \u003cimg src=\"./img/example-command.png\" width=\"860\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Co-Authors\n\n* @Fred(https://github.com/frybin)\nThanks for late night fixes during deploy\n\n# Disclamers\nThe author is in no way responsible for any illegal use of this software. It is provided purely as an educational proof of concept. I am also not responsible for any damages or mishaps that may happen in the course of using this software. Use at your own risk.\n\nEvery message on discord are saved on Discord's server, so be careful and not upload any sensitive or confidential documents.\n\n# Used Libraries\n* [discordgo](https://github.com/bwmarrin/discordgo)\n\n\nInspired by [SierrOne](https://github.com/berkgoksel/SierraOne)\n\nLogo by @BradHacker(https://github.com/BradHacker)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmaunel%2Fdiscordgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmaunel%2Fdiscordgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmaunel%2Fdiscordgo/lists"}