freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Artemis:一款功能强大的模块化网络侦查和漏洞扫描工具
2023-07-18 10:37:35
所属地 广西


关于Artemis

Artemis是一款功能强大的模块化网络侦查和漏洞扫描工具,该工具基于Karton项目开发,可以优化和增强CERT PL扫描活动。除此之外,该工具不仅可以帮助广大研究人员从多个方面扫描和检测目标网站的安全性,而且还可以生成简单易读的安全报告来帮助和指引广大研究人员提升自己站点的网络安全性。

功能介绍

1、使用crt.sh和gau执行子域名扫描;

2、整合了Shodan搜索引擎(需要提供SHODAN_API_KEY);

3、爆破目标路径,例如.env;

4、爆破WordPress、MySQL、PostgreSQL、FTP密码;

5、通过电子邮件发送检测和扫描报告;

6、电子邮件电子邮件配置验证;

7、WordPress和Joomla版本检测;

8、支持检测VSC目录,例如.git;

9、支持检测已启用的目录索引;

10、端口扫描;

11、支持通过“加插即用”模块扩展工具功能;

功能模块

下面的图表中显示的是Artemis模块的功能子集和运行流程:

工具使用

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/CERT-Polska/Artemis.git

当前版本的Artemis仅支持通过Docker Compose使用或扩展功能。

使用Docker Compose

打开命令行终端,并运行下列两行命令:

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

接下来,你就可以通过访问下列地址来使用Artemis了:

localhost:5000

如果你想要开启多个模块实例来提升扫描速度,可以使用如下所示的命令:

docker compose up --build \

    --scale=karton-nuclei=10 \

    --scale=karton-bruter=10 \

--scale=karton-port_scanner=10

开发自定义模块

由于Artemis基于Karton框架开发,模块将以Karton服务运行:

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()

需要注意的是,当前版本的Artemis使用了MongoDB来存储任务执行结果。

工具扫描结果

许可证协议

本项目的开发与发布遵循BSD-3-Clause开源许可证协议。

项目地址

Artemis:【GitHub传送门

参考资料

https://github.com/CERT-Polska/karton

https://artemis-scanner.readthedocs.io/en/latest/features.html

https://artemis-scanner.readthedocs.io/en/latest/generating-emails.html

https://kncyber.pl/

https://pw.edu.pl/

https://cert.pl/

https://discord.gg/GfUW4mZmy9

# web安全 # 网络侦查 # 漏洞扫描 # 模块化
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录