2019-05-25 20:40:06 +00:00
|
|
|
#--depends-on commands
|
|
|
|
|
2019-03-28 21:47:35 +00:00
|
|
|
import datetime, json
|
|
|
|
from src import ModuleManager, utils
|
|
|
|
|
|
|
|
URL_CVE = "https://cve.circl.lu/api/cve/%s"
|
|
|
|
|
|
|
|
class Module(ModuleManager.BaseModule):
|
2019-03-28 21:54:18 +00:00
|
|
|
_name = "CVE"
|
|
|
|
|
2019-03-28 21:47:35 +00:00
|
|
|
@utils.hook("received.command.cve", min_args=1)
|
|
|
|
def cve(self, event):
|
|
|
|
"""
|
2019-05-25 20:44:50 +00:00
|
|
|
:help: Get information for a CVE number
|
|
|
|
:usage: <CVE>
|
2019-03-28 21:47:35 +00:00
|
|
|
"""
|
|
|
|
page = utils.http.request(URL_CVE % event["args"].upper(), json=True)
|
|
|
|
|
|
|
|
if page and page.data:
|
|
|
|
cve_id = page.data["id"]
|
|
|
|
|
|
|
|
published = "%sZ" % page.data["Published"].rsplit(".", 1)[0]
|
|
|
|
published = datetime.datetime.strptime(published,
|
|
|
|
utils.ISO8601_PARSE)
|
|
|
|
published = datetime.datetime.strftime(published, "%Y-%m-%d")
|
|
|
|
|
|
|
|
rank = page.data["cvss"]
|
|
|
|
summary = page.data["summary"]
|
|
|
|
|
|
|
|
event["stdout"].write("%s, %s (%s): %s" %
|
|
|
|
(cve_id, published, rank, summary))
|
|
|
|
else:
|
|
|
|
raise utils.EventsResultsError()
|