Artemis:一款功能强大的模块化网络侦查和漏洞扫描工具

新闻资讯   2023-07-30 10:20   85   0  



 关于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

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


FreeBuf粉丝交流群招新啦!

在这里,拓宽网安边界

甲方安全建设干货;

乙方最新技术理念;

全球最新的网络安全资讯;

群内不定期开启各种抽奖活动;

FreeBuf盲盒、大象公仔......

扫码添加小蜜蜂微信回复“加群”,申请加入群聊



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



文章引用微信公众号"FreeBuf",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。