ARL 灯塔资产管理系统 三

admin 2024年8月18日23:45:28评论13 views字数 1842阅读6分8秒阅读模式

前言

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

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

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

域名收集改动

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

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

1.OneForAll的存储和保存结果方法

2.分析各自收集功能,进行修改。

OneForAll怎么保存结果

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

就从``这个方法类开始              

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

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

ARL 灯塔资产管理系统 三

export_data方法详细功能              

ARL 灯塔资产管理系统 三

功能分析

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

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

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

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

调用并启动域名任务              
             

ARL 灯塔资产管理系统 三

域名任务都做了什么 

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

改造

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

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

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

run()              

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

参照ARL,调用域名收集方法              

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

scheduler.py文件处              

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

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

ARL 灯塔资产管理系统 三

ARL 灯塔资产管理系统 三

应用测试

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

ARL 灯塔资产管理系统 三

总结

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

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

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

原文始发于微信公众号(闲聊知识铺):ARL 灯塔资产管理系统 三

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月18日23:45:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ARL 灯塔资产管理系统 三http://cn-sec.com/archives/3076500.html

发表评论

匿名网友 填写信息