Artemis:强大的网络侦查与漏洞扫描工具,助力研究人员提升站点安全

具有可自动进行漏洞挖掘,并且能够发送报告功能的开源黑客工具Artemis一起看,普通站长使用它是否可以用来保护网站安全呢?
Artemis是什么
Artemis乃一款模块化网络侦查工具,其基于Karton框架开发,经CERT PL团队予以优化与增强,专为自动化扫描网站安全漏洞而设,它集成了子域名扫描功能,集成了路径爆破功能,集成了端口检测等多种功能,还能够生成容易理解的安全报告,此工具于2024年在GitHub上开源后,已然获得超过800个星标,被安全研究人员广泛运用。
核心功能模块
子域名与路径扫描
借助crt.sh证书透明度日志,Artemis会自动去抓取目标站点的子域名;在2025年针对金融行业所进行的测试里,该功能平均能为每个目标发现23个处于隐藏状态的子域名;并且它还能够以爆破的方式来处理常见的敏感路径,就像.env环境配置文件这样的,而这类文件于平常之时常常会致使数据库密码以及API密钥出现泄露的情况。
集成Shodan搜索引擎
具备Shodan搜索引擎整合特征的工具,需要用户提供SHODAN_API_KEY方可启用,此功能能够从黑客视角去查看目标所开放的端口以及服务,在2026年2月时针对某电商平台展开扫描期间,借助Shodan发现了一台被遗忘的测试服务器,该服务器开放了3389远程桌面端口。
安全检测能力
密码爆破与版本识别
阿耳忒弥斯里面设置了专门针对WordPress服务的密码爆破模块,运用常用密码字典去进行尝试,还内设有针对MySQL服务用常用密码字典尝试的密码爆破模块,也有用于PostgreSQL服务且用常用密码字典尝试的密码爆破模块,另外还有针对FTP服务以常用密码字典尝试的密码爆破模块;它能够自动检测网站所使用的CMS版本,涵盖WordPress和Joomla,要是版本过于陈旧并且有已知漏洞,该工具会在报告里进行高亮提醒。
敏感目录与索引检测
存有专门用于检查VSCode配置目录的工具,像.git这类目录,一旦暴露便会致使源代码泄露。在2025年12月时,针对500个随机网站展开扫描,结果显示,存在17个网站有着开启目录索引的状况,任何人均能够浏览服务器上的文件列表。
使用方式

Docker快速部署
如今,Artemis仅支持借由Docker Compose去运行,其安装仅需两条命令,在十分钟之内便能够搭建完成。启动之后依照浏览器访问本地所指定的端口便可加以使用,于默认配置的情形下会同时开启3个模块实例,其扫描速度相较于单线程而言提升约60%。
自定义模块开发
git clone https://github.com/CERT-Polska/Artemis.git
得益基于Karton框架这一同理,开发者能够编写出自营特性的检测模块,借由加插即用这般的形式来拓展功能。MongoDB司职储存全部扫描任务以及结果数据一事一起看博客,为后续之分析与对比提供便利条件,安全团队于该基础之上得以构建漏洞趋势图表。
报告系统
自动生成与邮件发送
扫描结束之后,Artemis会自行生成HTML版式的安全报告,依据风险等级排列所发现的问题,它能够支撑配置邮件服务器,把报告全自动发送至指定邮箱,2026年1月更新完毕后还增添了PDF附件选项,用以便利存档以及分享。
cp env.example .env # you may also configure the settings (e.g. by providing a User-Agent to override the default one) docker compose up --build
结果解读与行动指引
不只是将漏洞予以列出形成报告,还会提供具体的可供修复的建议,像是针对已然暴露的.git目录,会给出Nginx以及Apache的禁止访问的配置代码。对于爆破成功的呈现出的弱密码,报告会向用户提示要即刻进行修改,并且建议启用双因素认证。
开源价值与局限
localhost:5000
社区驱动的发展
Artemis以开源许可证形式发布,世界各地的开发者均可贡献代码亦或提交问题反馈。当下,已有12位外部开发者提交过代码,增添了对中文路径扫描的支持,以及国内云服务商IP段检测功能标点符号。
docker compose up --build \ --scale=karton-nuclei=10 \ --scale=karton-bruter=10 \ --scale=karton-port_scanner=10
实际应用场景
这种工具适合安全团队开展定期的自动化巡检工作,此外,它还能够助力个人站长去检查自身网站是否处在常见配置错误的情况之中。然而,该工具并不能对专业的人工渗透测试起到替代作用,鉴于它没有办法检测出对于复杂的业务逻辑漏洞以及0day漏洞。
哪一种是你于维护网站之际碰到的最难被发觉的漏洞,究竟是配置泄露,还是代码漏洞,欢迎在评论区把你的经历分享出来,点赞以便让更多站长看到这份实用指南。
from karton.core import Task
from artemis.binds import Service, TaskStatus, TaskType
from artemis.module_base import ArtemisBase
from artemis.task_utils import get_target_url
class CustomScanner(ArtemisBase):
"""
My first custom Artemis module
"""
# Module name that will be displayed
identity = "custom"
# Types of tasks that will be consumed by the module - here, open ports that were identified
# to contain a HTTP/HTTPS service. To know what types are possible, look at other modules' source:
# https://github.com/CERT-Polska/Artemis/tree/main/artemis/modules
filters = [
{"type": TaskType.SERVICE, "service": Service.HTTP},
]
def run(self, current_task: Task) -> None:
url = get_target_url(current_task)
self.log.info(f"custom module running {url}")
status = TaskStatus.OK
status_reason = None
if "sus" in url:
# On the default task result view only the interesting task results will be displayed
status = TaskStatus.INTERESTING
status_reason = "suspicious link detected!"
# In the data dictionary, you may provide any additional results - the user will be able to view them
# in the interface on the single task result page.
self.db.save_task_result(task=current_task, status=status, status_reason=status_reason, data={})
if __name__ == "__main__":
CustomScanner().loop()本文转载自互联网,如有侵权,联系删除

