Skip to content
Open Source Threat Intelligence Chat Bot
Branch: master
Clone or download
TonyLeeVT Update
Making sure folks get their props in the !command plugin :-)
Latest commit 7be704b Jan 4, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
plugins Update Jan 4, 2019
CyBot-Arsenal-BH-EU-2018.pdf Update Jan 4, 2019


Open Source Threat Intelligence Chat Bot

Threat intelligence chat bots are useful friends. They perform research for you and can even be note takers or central aggregators of information. However, it seems like most organizations want to design their own bot in isolation and keep it internal. To counter this trend, our goal was to create a repeatable process using a completely free and open source framework, an inexpensive Raspberry Pi (or even virtual machine), and host a community-driven plugin framework to open up the world of threat intel chat bots to everyone from the home user to the largest security operations center.

We are excited to share with the world a chat bot that we affectionately call CyBot. We will show you what CyBot can do for you and graciously accept feedback on future improvements. Best of all, if you know even a little bit of Python, you can help write plugins and share them with the community. If you want to build your own CyBot, the instructions in this project will let you do so with about an hour of invested time and anywhere from $0-$35 in expenses--quite a good return on your investment.

CyBot Plugins

== File commands ==

!vt <hash> - VirusTotal Query (ex: 57f222d8fbe0e290b4bf8eaa994ac641)
!hashid <hash> - Identify a hash type (e.g. MD5, SHA1) (Props:  c0re)

== Network commands ==

!vt <URL> - VirusTotal Query
!safebrowsing <URL> - Google Safebrowsing lookup (ex: ihaveaproblem[.]info) (Props: Google & Jun C. Valdez)
!whois <domain> - WHOIS Query (ex: cylance[.]com) (Props: hackertarget[.]com)
!nslookup <FQDN|IP> - DNS forward/reverse Query (ex: www[.]cylance[.]com)
!geoip <FQDN|IP> - Perform GeoIP lookup of host (ex: www[.]cylance[.]com) (Props: ip-api[.]com)
!unshorten <shortened URL> - Unshortens URLs (ex: goo[.]gl/IGL1lE)
!linkextractor <FQDN|IP> - Extracts links from a site and safely displays them (ex: hxxps://www[.]google[.]com)
!urldecode <url> - Decodes encoded URLs (ex: /%75%72%6C?%73%61=%74)
!uastring <UA String In Quotes> - Enter a user Agent string in quotes to determine OS and browser (ex: Mozilla/5.0 (Windows NT 10.0; Win64; x64))

== Threat and Vulnerability Research ==

!ransom <search string> - Indentify ransomware by searching the Ransomware Overview Spreadsheet (Props: http[:]//goo[.]gl/b9R8DE)
!threat <search string> - Search APT group activity mapped to MITRE ATT&CK Framework (Props: huntoperator)
!aptgroup <search string> - Retrieve information on common APT groups (Props: huntoperator)
!hacktool <search string> - Retrieve information on common hacking tools (Props: huntoperator)
!cve <#> - Return the last n CVE's (Props: CIRCL https[:]//www[.]circl[.]lu)
!secnews - (Use as Private Message Only) Latest security news (Props: Google News - CyberSecurity)
!vulnnews - (Use as Private Message Only) Latest vulnerability news (Props: Google News - CVE Vulnerability)

== Misc ==

!stats <YYYY or YYYY-MM or YYYY-MM-DD> - Produce usage statistics for a day or month (ex: 2017-12)
!cc <Credit Card Number> - Tests validity of a CC number and attempts to determine the brand (ex: 4012888888881881 or 378282246310005) (Props: David Pany)
!time <timezone> - Query time in specified timezone (ex: utc)
!weather <zipcode> - Query the weather in a specified zip code (ex: 21144)
!unixtime <epoch> - Convert Unix time (seconds since Jan 1, 1970) to human readable (ex: 1347517370)
!wintime <epoch> - Convert Windows time (100-nanosecond intervals since January 1, 1601) to human readable (ex: 131580340430000000)
!calc <arithmetic input> - Performs basic arithmetic (Valid input: [0-9]+-/) (ex: 22*3)
!bitcoin - Polls the latest Bitcoin Price Index (Props: CoinDesk)
!whatsyourip - Returns CyBot's public IP Address (Props: ipinfo[.]io/ip)
!joke - Queries an on-line API repository of jokes (Props: icanhazdadjoke)
!codename - Generates a 2 word project codename (Props: Mark Biek)

Setup steps

  1. Download and install errbot:

  2. Configure errbot to work with your chat platform:

  3. Download our plugins from this github repo and copy them into the errbot plugins directory

  4. Add VirusTotal and Google Safebrowsing API keys to python scripts

  5. Start errbot

Additional Props

Errbot developers for the fantastic tool and customer service
geoip -
Google Safebrowsing - and Jun C. Valdez
Unshorten -
Codename -
whatsyourip - ipinfo[.]io/ip
bitcoin - coindesk
Black Hat Arsenal team for the amazing support and tool release venue

Others: Bill Hau, Corey White, Dennis Hanzlik, Ian Ahl, Dave Pany, Dan Dumond, Kyle Champlin, Kierian Evans, Andrew Callow, Mark Stevens

You can’t perform that action at this time.