Zmap安装与使用+python检测脚本

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec

文章目录

  • 前言
  • 一、Zmap的主要功能
  • 二、Zmap安装
    • 1.部署Zmap
  • 三、编写检测IP存活脚本
  • 总结


前言

Zmap是一款开发的网络扫描工具,以其高速扫描能力而闻名


一、Zmap的主要功能

  1. 高性能扫描:Zmap能够在千兆网卡状态下,45分钟内扫描全网络IPv4地址
  2. 模块化设计:Zmap支持多种扫描模块,如TCP SYN扫描、ICMP、DNS查询、UPnP、BACNET等,并且可以发送大量的UDP探测
  3. 灵活的配置:用户可以自定义扫描参数,例如速率限制、端口范围等
  4. 结果导出:Zmap支持多种输出格式,便于后续分析

二、Zmap安装

下载地址:https://github.com/zmap/zmap

1.部署Zmap

更新环境依赖:
代码如下(示例):
sudo apt update

apt-get install -y build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev

请添加图片描述

到安装包路径下cd zmap-4.2.0

创建目录buildmkdir build

进入目录cd build
请添加图片描述

如果cmake …报错,说明缺少一个C语言库的开发包或者cmake没有安装,具体可以问问ai
请添加图片描述

修改错误参考:

apt-get install libjudy-dev

libjudy-dev 是一个C语言库的开发包,它提供了创建和访问动态数组的功能

  1. Judy库简介:Judy是一个C语言库,它实现了动态数组。Judy数组在未被填充时声明为null指针,只有当数组被填充时才消耗内存,但可以增长以利用所有可用内存。Judy的关键优势包括可扩展性、性能、内存效率和易用性
  2. 数组设计:Judy数组设计为无需调整即可增长到千万亿元素范围,并且接近以O(log-base-256)的规模进行扩展
  3. 访问方式:Judy数组通过插入、检索和删除调用来访问数字或字符串索引。实际上不需要配置和调整。Judy提供排序、计数和邻居/空搜索功能
  4. 索引类型:索引可以是顺序的、聚集的、周期性的或随机的,这对算法来说并不重要。Judy数组可以层次结构化,以处理任何位模式——大索引、键集合等
  5. 性能比较:Judy通常比常见的数据结构(如数组、稀疏数组、哈希表、B树、二叉树、线性列表、跳表、其他排序和搜索算法以及计数函数)有所改进
  6. 开发包libjudy-dev是Judy库的开发包,它包含了编译和链接Judy库所需的头文件和库文件
    这个库特别适用于需要处理大规模数据集和动态数组的场景,它的设计使得在处理大数据时具有较高的性能和内存效率

请添加图片描述

Kali Linux 系统默认情况下是带有 cmake 的,cmake 是一个跨平台的构建工具,在 Kali 这种注重安全测试和工具集成的系统中,许多软件的编译安装过程会依赖 CMake。它用于管理软件构建的过程,能够方便地生成 Makefile(在 Unix - like 系统中用于构建软件的脚本)或者其他构建系统所需的文件,帮助开发者在不同的操作系统环境下更轻松地构建和安装软件
不过,如果由于某些特殊原因(比如系统精简定制或者安装过程出现异常等),也可能会出现 CMake 没有被安装的情况

安装cmake:

apt-get install cmake

请添加图片描述

这样运行就成功了

cmake ..

请添加图片描述

编译安装:

make

请添加图片描述

make install

请添加图片描述

查看zmap安装版本

zmap --version

请添加图片描述
开放的HTTP服务(默认端口80),开始全网爬,保存到raw_ips.txt文件里
确定要扫描的端口范围。假设我们要扫描常见的代理端口 8080、3128、80 等,可以使用以下 zmap 命令(以下命令只是示例,实际操作可能需要根据网络环境和权限进行调整)

zmap -p 80,443,1080 -o raw_ips.txt

请添加图片描述

三、编写检测IP存活脚本

扫描出来的不一定全部能使用,需要进一步检测
代码如下(示例):

import requests

# 代理IP文件路径
proxy_file_path = 'XXX.txt'
# 可用代理IP输出文件路径
available_proxy_file_path = 'XXX.txt'

# 测试URL,用于验证代理IP是否可用
test_url = ''(自己填写)

# 可用代理IP列表
available_proxies = []

# 读取代理IP文件
with open(proxy_file_path, 'r') as file:
    proxies = file.readlines()

# 验证每个代理IP
for proxy in proxies:
    proxy = proxy.strip()  # 移除行尾的换行符
    if not proxy:  # 跳过空行
        continue

    # 设置代理
    proxy_dict = {
        'http': f'http://{proxy}',
        'https': f'https://{proxy}'
    }
    try:
        # 发送请求,设置超时时间为5秒
        response = requests.get(test_url, proxies=proxy_dict, timeout=5)
        if response.status_code == 200:
            print(f'代理IP {proxy} 可用')
            available_proxies.append(proxy)
    except requests.RequestException as e:
        print(f'代理IP {proxy} 不可用: {e}')

# 将可用代理IP写入文件
with open(available_proxy_file_path, 'w') as file:
    for ip in available_proxies:
        file.write(f'{ip}\n')

print(f'\n可用代理IP已写入文件: {available_proxy_file_path}')

至此代理池搭建完毕


总结

匿名性和隐私保护:通过代理池,用户可以隐藏自己的真实IP地址,保护个人隐私和安全
绕过IP限制:在某些地区或网络环境中,访问特定网站或服务可能受到IP限制。使用代理池可以绕过这些限制
负载均衡:代理池可以分散请求到多个代理服务器,实现负载均衡,提高网络请求的稳定性和速度
缓存加速:代理服务器可以缓存请求内容,减少重复请求,加快访问速度
灵活性和可扩展性:代理池可以根据需要动态添加或移除代理服务器,以适应不同的使用场景和需求
故障转移和高可用性:如果某个代理服务器不可用,代理池可以自动切换到其他可用的代理服务器,保证服务的连续性
监控和维护:代理池通常配备有监控系统,可以实时监控代理服务器的状态,及时发现并处理问题
应严格遵守相关法律法规,任何违法行为均由用户自行承担责任,与本文章作者无关!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值