是一款功能强大的小型实用工具,该工具能够帮助广大研究人员针对给定的子网或CIDR地址范围来进行各种类型的渗透测试操作。该工具进行了专门的设计以便进行大规模扫描操作,并且能够以功能代码库或独立命令行接口工具的形式来使用。

特性介绍

基于简单且模块化的代码库实现,方便分发代码;

支持基于CIDR的分布式扫描;

支持Stdin和,方便整合进工作流中;

工具安装源码安装:

 GO111MODULE=auto go get -u github.com/projectdiscovery/mapcidr/cmd/mapcidr

GitHub代码库克隆:

 git clone https://github.com/projectdiscovery/mapcidr.git; cd mapcidr/cmd/mapcidr; go build .; cp mapcidr /usr/local/bin

工具使用

 mapcidr –h

上面这条命令将显示该工具的帮助信息,下面给出的是该工具所有支持的操作选项:

工具运行

为了获取给定CIDR对应的IP地址列表cidr,我们可以使用下列命令:

 mapcidr -cidr 173.0.84.0/24
echo 173.0.84.0/24 | mapcidr

命令运行结果如下图所示:

cidr是什么意思_cidr技术_cidr

CIDR地址切割

如需使用CIDR计数来对给定的CIDR或CIDR列表进行地址切割,或者将目标CIDR地址分割成多个相等大小的小型子网,可以使用下列命令:

 mapcidr -cidr 173.0.84.0/24 -sbc 10 -silent
echo 173.0.84.0/24 | mapcidr -sbc 10 -silent

命令运行结果如下:

173.0.84.0/27
173.0.84.32/27
173.0.84.64/27
173.0.84.96/27
173.0.84.128/27
173.0.84.160/27
173.0.84.208/28
173.0.84.192/28
173.0.84.240/28
173.0.84.224/28

主机地址切割

如需将给定的CIDR地址切割成相等数量的主机,可以直接使用下列命令:

 mapcidr -cidr 173.0.84.0/16 -sbh 20000 -silent
echo 173.0.84.0/16 | mapcidr -sbh 20000 -silent

命令运行结果如下:

173.0.0.0/18
173.0.64.0/18
173.0.128.0/18
173.0.192.0/18

注意:只有当每个子网所需的地址或主机数量是2的幂次方时,才有可能获得完美的地址分割。否则cidr,该工具将尝试自动找到最佳分割策略以获得所需的结果。

以代码库的形式使用

广大研究人员还可以直接在自己的Go程序中使用这个代码库,下面的代码片段概述了如何将CIDR划分为子网,以及如何将CIDR划分为包含一定数量主机的子网:

package main
import (
"fmt"
"github.com/projectdiscovery/mapcidr"
)
func main() {
// Divide the CIDR into two subnets
subnets1 := mapcidr.SplitN("192.168.1.0/24", 2)
for _, subnet := range subnets1 {
fmt.Println(subnet)
}
// Divide the CIDR into two subnets containing 128 hosts each
subnets2 := mapcidr.SplitByNumber("192.168.1.0/24", 128)
for _, subnet := range subnets2 {
fmt.Println(subnet)
}
// List all ips in the CIDR
ips, _ := mapcidr.Ips("192.168.1.0/24")
for _, ip := range ips {
fmt.Println(ip)
}
}

工具运行截图

项目地址


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注