/Seven

A Discord bot for Hack The Box teams.

Primary LanguageJavaScriptCreative Commons Zero v1.0 UniversalCC0-1.0

👩‍💻️ If you enjoy Seven, feel free to show some love so I can create more projects like this!

ko-fi

💬 Seven

An AI-powered Discord Bot for Hack The Box teams.

Seven's visage

Deploy

🍉 About

Seven is a semi-intelligent AI chatbot built with DialogFlow and Node.js, whose purpose is to make Hack The Box (hackthebox.com/) achievement data accessible and convenient within team Discord channels.

🦾 Capabilities

Seven can provide information about:

  • Herself / her functionality (try asking help, what can you do for me)
  • Machines and challenges (active, retired and unreleased)
  • Ownage (e.g. which team members did what on HTB)
  • Team members
  • Team details
  • Team global rank
  • Team member leaderboard (top members)

🃏 Talking to Seven:

Seven is super flexible and doesn't rely on templates or specific wordings to understand what users are asking for. However, here are some example queries:

🔰 Print a manpage:

"help" / "what can you do" / "user manual"

📸

🔮 Get info on who owned XYZ:

"Who did [boxname | challengename]", "Who did mantis"
"who rooted json last", "who can help me with Forest challenge"

📸

🐉 Get box / challenge / fortress / endgame / pro lab info:

"[boxname | challengename]", "[boxname] info" etc
"what's new", "what's fresh" /_ unreleased / latest box _/

📸

🧙 See achievements / profile for a specific team member:

"what challenges did [username] do" / "which boxes has [username] owned?"
"incomplete challenges for [username]" / "which boxes has [username] not finished yet?"
"who is [username]", "[username] info", "[username] ranking"
"has [username] rooted multimaster yet?", "Did [username] solve fuzzy"\

📸

🏅 Get ranking and team information:

"team info", "who are [teamname]", "[teamname]"
"who is the team founder"
"how am I doing", "what is my rank?"
"team ranking", "how are we doing" /* team global rank */
"who's on top", "team leaders" /* group members */

📸

💚🐒 Try your best to confuse / bond with / annoy Seven:

"Where are you from?", "what rank are you", "what do you do for fun"
"What are you working on", "do you like water skiing", "what is 4+4"
"' UNION SELECT ..." ??? "sudo su", "can you help me hack the pentagon"

📸

👥 Privacy

Seven cares about privacy and allows channel users to:

  • associate or disassociate their Discord ID to their HTB account ID (enabling this makes achievement information more useful as users may have different handles on each platform.
  • disallow (or re-allow) inclusion of their HTB data in bot responses

🛠️ Installation and Usage / Support

Getting up and running

Check out my Medium article showing how to deploy Seven for your team / university!

You can also see some of what's possible with Seven from the introduction article here: Introducing Seven, a Discord Bot for Hack The Box Teams.

Support

Looking for help deploying or troubleshooting your own Seven instance? Please join and I or another community member can try to help with anything Seven related (when time).

There is decent documentation for the codebase itself here, if you'd like to understand how it works or use some parts in your own project: Seven Docs

📜 Roadmap / TODO:

Some features / nice-to-haves that are under consideration:

  • Add charts.js data support to generate pretty member / team stat charts
  • Offer advice / memory jogs from RTFM for users LIKE: "stuck on [STAGE [privesc, recon, persistence ...]] with [TECHNOLOGY [linux, nodejs, sql server ...]]
  • Answer questions invoking possibly long data (while respecting Discord embed limitations):
    • "[teamname] members" (get member list, can be up into the hundreds depending on team)
    • "machine list" (this returns around 250 results at time of writing)
    • "all challenges" (same, around 150)
    • Give info on self based on Discord association