/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

🚧 Check out my Medium article showing how to deploy Seven for your team / university! 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