ARL 灯塔资产管理系统 三

阅读量195700

|评论2

|

发布时间 : 2021-09-26 10:00:22

 

前言

接上一期,这次来记录一下对于资产收集模块的二开过程。

先说一下大概思路,针对域名收集,主要就是把oneforall给集成到ARL中。如果都预留了接口,当然就不用写一篇文章了,显示情况并非如此。

针对IP的资产收集,再进行一些优化,添加一些我知道的其他收集方法,不能说全部吧,这个只能看经验了。

 

域名收集改动

根据第二篇,现在已经知道了ARL域名收集的大致过程。改动就直接添加到domain.py中了。也看过其他类似的资产管理工具,直接把oneforall当作一个类,去实例化调用,从而集成到应用中。总感觉这样不优雅,又说不出来哪里别扭。

开始之前,有必要对OneForAll进行简单分析。主要从以下两个方面

  1. OneForAll的存储和保存结果方法
  2. 分析各自收集功能,进行修改。

OneForAll怎么保存结果

我们知道,收集子域名有很多方法。一般会每种方法都写成类,然后一个个调用。OneForAll的启动文件是oneforall.py,直接打开这个文件,随便找到一种收集方法,一步步找到保存方式。

就从这个方法类开始

进入这个类之后,直接来到run()方法开始看,这个文件也不大,这个文件内没有直接保存,而是调用了一个公共方法去保存

保存到results/域名/Module/BaseModule.json文件里边

存储到表名为域名的数据库表里边

这种把保存写成一个公共类,维护和修改方便多了,只需要修改这个方法就行了。当人,缺点也挺明显,如果程序中途出错停止运行了,前边的任务就白跑了,结果也没了。

上面是运行过程中的保存,用过OneForAll的老铁都知道,最终默认会保存为一个csv的文件,可以用表格直接打开,这种格式方便分析。
主要是由下面函数来调用执行的

export_data方法详细功能

功能分析

在接下来分析之前,需要明确一点,OneForAll的域名收集能力是比ARL强的。也并不是说ARL域名收集模块可以直接砍掉,通过分析,OneForAll只进行了域名收集,然后直接入库。ARL还进一步对收集到的域名进行了各种处理。

所以说,取长补短,先调用OneForAll进行域名收集,然后由ARL对域名进行进一步处理,然后按照ARL的格式,进行入库。

接下来分析一下都进行了那些处理:

我们可以看到,ARL域名模块的方法和类还是挺多的,我觉得没必要都分析一下,跟踪一下域名从开始处理,到入库,这整个流程就行了。

调用并启动域名任务

域名任务都做了什么

我们接下来直接看域名提取,通过以下4种方法来收集域名。

这四种方法没必要都看,只要看看都进行了那些处理就行。
选择crt.sh 网站查询进一步分析

分析到这里,对于改造基本够用了。

改造

结合之前的分析,主要从以下几个方面来改造。

  1. OneForAll当作一个类,输入一个域名作为参数,返回收集的域名列表。
    虽然OneForAll类有很多参数,大多参数是默认参数,只需要提供target参数作为目标即可。

    其次,返回域名列表。主函数最后部分,生成csv文件后,说明域名收集工作已经完成。此时即可返回全部收集到的域名
    main()

    run()
  2. ARLdomain_retch方法内添加对OneForAll的调用
    添加OneForAll调用方法

    参照ARL,调用域名收集方法
  1. 添加任务处添加是否启用OneForAll收集域名的选项,并且默认启用
    添加域名任务处默认调用

    scheduler.py文件处

    启用按钮:app/routes/policy.py文件处

    启用按钮:app/routes/task.py

应用测试

把修改的几个文件放入到ARL项目中。
重新运行项目。
查看效果

 

总结

本文主要针对域名收集模块,进行二开。当然,还不完善,还有很大提升空间。后续会对收集的字段进行优化,也会添加一些其他我觉得用得到的字段。

对资产管理平台开发感兴趣的小伙伴,可以跟我沟通交流。

针对ARL的二开,会继续下去。

本文由langke原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/253481

安全客 - 有思想的安全新媒体

分享到:微信
+13赞
收藏
langke
分享到:微信

发表评论

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66