• 移动端
    访问手机端
    官微
    访问官微

    搜索
    取消
    温馨提示:
    敬爱的用户,您的浏览器版本过低,会导致页面浏览异常,建议您升级浏览器版本或更换其他浏览器打开。

    Scannerl:模块化分布式指纹识别引擎

    来源:FreebuF.COM 2018-12-28 09:47:54 指纹识别 分布式 金融安全
         来源:FreebuF.COM     2018-12-28 09:47:54

    核心提示传统的指纹识别工具在进行大规模分析时,安全研究人员通常会遇到两个限制:首先,这些工具通常都是为一次扫描相对较少的主机而构建的,且不适用于大范围的IP地址。

      Scannerl是由Kudelski Securit开发的模块化分布式指纹识别引擎,它可以在单个主机上识别数以千计的目标指纹,也可以在多个主机上分布执行分布式的指纹识别。Scannerl会识别zmap到端口扫描的指纹内容。当前的Scannerl版本适用于Debian/Ubuntu/Arch(包括其他的一些发行版本),使用主/从(master/slave)架构,主节点会将工作(主机指纹)分配给其从节点(本地或远程),且整个部署对用户都是透明的。

      Scannerl 的优势

      传统的指纹识别工具在进行大规模分析时,安全研究人员通常会遇到两个限制:首先,这些工具通常都是为一次扫描相对较少的主机而构建的,且不适用于大范围的IP地址。其次,如果对IPS设备保护的大范围IP地址进行指纹识别,则很有可能被列入黑名单导致信息集的不完整和缺失。Scannerl则可以很好的解决这些限制,你不仅可以在单个主机执行指纹识别任务,还可以将任务分布式到多个主机执行。Scannerl还使这些任务的分发完全透明,这使得大型指纹项目的设置和维护更加容易,让安全研究人员有更多的时间专注于分析,而无需手工操作重复繁杂的工作。此外,scannerl还允许你通过几行代码轻松设置特定的指纹分析。创建指纹识别群集不仅易于设置,而且还可以通过在指纹识别活动中添加fine-tuned扫描来进行调整。可以说scannerl是执行大规模指纹识别任务速度最快的工具。

      安装

      不同安装选项请参阅wiki安装页面。

      要从源码安装,首先请确保你已安装Erlang(且版本不低于v.18)以及选择对应于你平台的安装包:Erlang downloads

      安装所需的包:

    Scannerl:模块化分布式指纹识别引擎

      然后构建scannerl:

    Scannerl:模块化分布式指纹识别引擎

      查看帮助选项:

    Scannerl:模块化分布式指纹识别引擎

      对于arch linux用户可在aur中获取scannerl。

      scannerl

      scannerl-git

      DEB(Ubuntu,Debian)可在发行版中找到。

      RPM(Opensuse,Centos,Redhat)可在https://build.opensuse.org/package/show/home:chapeaurouge/scannerl下找到。

      分布式设置

      执行分布式扫描需要两种类型的节点:

      主节点:scannerl二进制文件运行的地方

      从节点:scannerl将连接以分发其所有工作的位置

      主节点需要安装和编译scannerl,而从节点只需安装Erlang。整个设置是透明的,由主节点自动完成。

      分布式扫描的要求

      所有主机都需要安装相同版本的Erlang

      所有主机都可以使用SSH公钥相互连接

      所有主机的名称解析(如未设置正确的DNS,请使用/etc/hosts)

      所有主机都具有相同的Erlang security cookie

      所有主机必须允许连接到Erlang EPMD端口(TCP/4369)

      所有主机都打开了以下端口范围:TCP/11100到TCP/11100+从节点数

      使用

    Scannerl:模块化分布式指纹识别引擎

      更多内容请参阅wiki页面。

      单独使用

      Scannerl可以在本地主机上单独使用。但它仍将在运行它的同一主机上创建一个从节点。因此,你同样需要满足上述分布式设置要求。

      一个快速的方法是确保你的主机能够自我解析,命令如下:

    Scannerl:模块化分布式指纹识别引擎

      并创建一个SSH key将其添加到authorized_keys:

    Scannerl:模块化分布式指纹识别引擎

      以下示例从本地主机运行了一个针对google.com的HTTP banner抓取。

    Scannerl:模块化分布式指纹识别引擎

      分布式使用

      执行分布式扫描之前,需要预先设置scannerl将使用的主机以分发工作。有关更多信息,请参阅分布式设置部分。

      Scannerl需要使用的从节点列表可以通过-s或-S选项添加。

    Scannerl:模块化分布式指纹识别引擎

      列出可用模块

      使用-l选项列出可用模块:

    Scannerl:模块化分布式指纹识别引擎

      模块参数

      可以使用冒号向模块提供参数。例如,文件输出模块:

    Scannerl:模块化分布式指纹识别引擎

      结果格式

      scannerl返回到输出模块的结果将以以下形式显示:

    Scannerl:模块化分布式指纹识别引擎

      module:使用的模块(Erlang atom)

      target:IP或主机名(字符串或IPv4地址)

      port:端口(整数)

      result:见下文

      结果部分的形式为:

    Scannerl:模块化分布式指纹识别引擎

      其中{status, type}是以下元组之一:

      {ok,result}:指纹识别目标成功

      {error,up}:指纹识别未成功,但目标有响应

      {error,unknown}:指纹识别失败

      Value为返回值 – atom原子或元素列表

      Scannerl 扩展

      Scannerl的设计和实现考虑了模块化,因此向它添加新模块相当的容易:

      创建新模块,可以参照fp_module.erl和out_behavior.erl源文件形式。

      新模块既可以在编译时添加,也可以作为外部文件动态添加。

    责任编辑:韩希宇

    免责声明:

    中国电子银行网发布的专栏、投稿以及征文相关文章,其文字、图片、视频均来源于作者投稿或转载自相关作品方;如涉及未经许可使用作品的问题,请您优先联系我们(联系邮箱:cebnet@cfca.com.cn,电话:400-880-9888),我们会第一时间核实,谢谢配合。

    为你推荐

    猜你喜欢

    收藏成功

    确定