是一款功能强大的小型实用工具,该工具能够帮助广大研究人员针对给定的子网或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地址分割成多个相等大小的小型子网,可以使用下列命令:
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声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。