在Athena v1.0发布的两天之后,也是简单实现了前后端内容,并对github的存储逻辑做了部分微调,现v2.0版本已推送到github。
url:https://github.com/leesinz/Athena
下面直接复制README中,新增的可视化部分内容,更详细的内容可到github查看。
seebug监控默认关闭,由于使用的是chrome.driver无头浏览器的方式,可能产生内存问题,最终导致程序中断,如果需要,去掉collectors/manager.py中self.collector_classes的注释即可:
self.collector\_classes \= {
'ExploitDB': ExploitDBCollector,
'MSF': MSFCollector,
'Vulhub': VulhubCollector,
'POC': POCCollector,
'Afrog': AfrogCollector,
'PacketStorm': PacketStormCollector,
\# chrome.driver starts frequently, which may cause memory issues and eventually lead to code termination
\# 'Seebug': SeebugCollector,
'Github': GitHubCollector,
'OSCS': OSCSCollector,
'Ali': AliCollector,
'QAX': QAXCollector,
'ThreatBook': ThreatBookCollector
}
默认10分钟运行一次,如需更改,修改main.py即可:
while True:
vulnerabilities \= gather\_data()
filter\_high\_risk\_vuls(vulnerabilities)
time.sleep(600)
安装完需要的库,配置好config.yaml后,即可开始运行。
注意,需要一直在后台保持运行,可配合screen等工具实现。
注意: 只会推送severity为high及以上的漏洞。
推送内容如下:
所有漏洞均会存入数据库:
每天六点会推送前一天的漏洞汇总,邮件内容如下:
由于漏洞描述可能较长,影响观感,因此邮件中隐藏了描述字段,每个漏洞均可通过点击link跳转至poc或详情页。
在V2.0中,实现了数据的可视化,默认端口为5000。
重要!!! 在该项目中,后端由flask实现,在main.py中,通过run_flask_app来运行应用:
def run\_flask\_app():
app.run(debug\=False)
默认配置下,仅能本机访问,即host = '127.0.0.1'
,若想进行远程访问,有如下两种方法:
推荐通过nps等隧道工具实现,较为安全,但是需要配置隧道工具
修改app.run(debug=False)
为app.run(debug=False,host='0.0.0.0')
,修改后直接对所有主机开放,简单粗暴,但是存在一定安全风险,如有意外作者概不负责!
前端展示共有3处路由:首页('/'或'/index'),漏洞总览('/vuls')和每日漏洞详情('/daily/[date]')。
首页有两部分,第一部分是漏洞的统计结果,有四张图表,分别统计了所有漏洞中,CVE的占比,各种severity漏洞的占比,各漏洞源漏洞的占比以及近7天来的漏洞数量变化趋势。
第二部分为最新的十条漏洞数据:
为了更加美观,在图表中没有采取换行的方式,如有超长字段,会隐藏一部分,鼠标悬停即可查看完整内容。
同样,单击右侧link即可跳转至漏洞POC或详情页。
该路由展示了全量的漏洞数据,并且添加了搜索功能:
右上方可选每页展示的漏洞条数,通过最下方页码即可跳转。
搜索框中为模糊搜索,支持全字段,例如搜索name,cve,source,severity,date等等:
通过输入%Y-%m-%d形式的日期,可查询指定日期的漏洞情况,以2024-07-31为例:
/daily/2024-07-31
展示了当前日期CVE漏洞占比,各severity和source的漏洞占比,以及当天更新的所有漏洞信息。