Python武器库开发-武器库篇之C段扫描器开发(四十三)

Python武器库开发-武器库篇之C段扫描器开发(四十三)

在我们进行渗透过程中的信息收集的步骤时,收集资产目标的C段也是非常重要的一部分。

C段是指互联网中的一类IP地址。IP地址是互联网上每台设备的唯一标识符。IP地址由一系列数字组成,通常以点分十进制的形式表示(例如192.168.0.1)。在IP地址中,C段是指IP地址中倒数第三个部分,范围是从0到255。C段的划分常用于网络规划和管理,以便对网络进行细分和管理。例如,一个网络可以划分为多个C段,每个C段可以表示不同的子网。

C段扫描器是一种网络安全工具,用于扫描特定IP地址段的主机,检测其开放的端口和服务。以此可以帮助系统管理员或安全专家发现网络中存在的漏洞或安全风险。

在开发C段扫描器时,可以按照以下步骤进行:

  1. 确定需求:明确开发C段扫描器的目标和功能,例如需要扫描的IP地址范围、要检测的端口和服务类型等。

  2. 设计算法:设计扫描算法,根据需求逐个扫描目标IP地址,通过发送网络请求并解析返回信息来判断目标主机的存活状态、开放的端口和服务类型。

  3. 开发网络扫描模块:使用编程语言(如Python、C++等)开发网络扫描模块,利用套接字编程等技术实现与目标主机的通信,发送网络请求并解析返回信息。

  4. 多线程处理:由于扫描大量的IP地址是一个耗时的任务,可以考虑使用多线程技术,同时处理多个IP地址的扫描请求,提高效率。

开发C段扫描器的核心思想就是去ping一下网段内存在的各个IP地址,观察返回的响应包是否有回复,如果有响应,就存在该IP地址,没有则不存在。

C段扫描器的代码部分如下:

# 导入库
import threading
from multiprocessing import Queue
from subprocess import Popen, PIPE


class CScan(threading.Thread):
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        """获取队列中的url"""
        while not self.queue.empty():
            ip = self.queue.get()

            try:
                """ping C段内的IP地址"""
                check_ping = Popen("ping {0} \n".format(ip), stdin=PIPE, stdout=PIPE, shell=True)
                """读取返回的响应包并赋值给data"""
                data = check_ping.stdout.read()
                """如果回复的响应包中包含TTL,则该主机在线"""
                if "TTL" in str(data):
                    if "128" in str(data):
                        print(ip + " IP存活, 目标主机系统为Windows")
                    elif "64" or "255" in str(data):
                        print(ip + " IP存活, 目标主机系统为Linux")
                else:
                    """如果回复的响应包中不包含TTL,则该主机离线或不存在"""
                    pass
            except:
                pass


def start(count):
    queue = Queue()

    for i in range(1, 255):
        """设置扫描的C段网络"""
        queue.put('192.168.0.' + str(i))

    """多线程"""
    threads = []
    thread_count = int(count)
    for i in range(thread_count):
        threads.append(CScan(queue))

    for t in threads:
        t.start()

    for t in threads:
        t.join()

    print("C段扫描完毕")


if __name__ == '__main__':
    """线程数设置"""
    count = 128
    start(count)

代码实列运行效果如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/301661.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch种torch.cat与torch.stack的区别

torch.cat 和 torch.stack 是 PyTorch 中用于拼接张量的两个不同的函数,它们的主要区别在于拼接的方式和创建的维度。 torch.cat: 拼接方式: torch.cat 是按照给定的维度(dim 参数)将多个张量沿着该维度拼接。在拼接的…

科技云报道:“存算一体”是大模型AI芯片的破局关键?

科技云报道原创。 在AI发展历史上,曾有两次“圣杯时刻”。 第一次发生在2012年10月,卷积神经网络(CNN)算法凭借比人眼识别更低的错误率,打开了计算机视觉的应用盛世。 第二次是2016年3月,DeepMind研发的…

Python 面向对象知识点补充

Python 面向对象知识点补充 【一】Mixins机制 【1】概念 Mixins:是一种在面向对象编程中,通过组合多个类的特称来创建一个新类的技术核心机制:就是在多继承的背景下尽可能地提升多继承的可读性通过命名规范来满足人的思维习惯(…

【微机原理与接口技术】期末模拟卷(2)

有不会的题可以后台问我的哦,看见了就会回。 本文章主要是微机的模拟卷,最后祝大家期末心想事成 1、微处理器为8086数据总线和地址总线为 ()位 A.16 16 B.16 32 C.16 20 D.32 32 8086是16位寄存器,即需要16位数据线 2、微型计算机硬件系…

小程序实现绘制图片 保存到手机

HTML <template><view><canvas canvas-id"myCanvas" :style"{height:380px,width:wWidthpx,background:#FFFFFF}"></canvas><view class"textCenter"><button click"saveCanvas">保存图片</b…

uniapp获取手机当前信息及应用版本

appVersion 是app端查询的数据信息 appWgtVersion 是浏览器端查询的数据信息 onLoad() {const systemInfo uni.getSystemInfoSync();console.log(systemInfo);// #ifdef H5const uniAppVersion systemInfo.appVersion;// #endif// #ifndef H5const uniAppVersion systemIn…

报文大小限制、请求体类型总结

文章目录 1. 各节点请求体有无限制1.1 http协议1.2 TCP/IP层限制1.3 浏览器1.4 nginx1.5 gateway1.6 tomcat1.7 springboot1.8 内存、磁盘处理不了一切白搭 2. 请求体类型2.1 application/x-www-form-urlencoded2.2 multipart/form-data2.3 application/json2.4 text/plain2.5 …

从贝索斯、英伟达们手里又融了7000万美元,Perplexity还真奔着取代Google去了

AI应用千千万&#xff0c;到底哪些才真正值得你花钱花时间&#xff1f; 对于这个问题&#xff0c;埃森哲人工智能高级顾问、《哈佛商业评论》播客频道主持人Azeem Azhar给出的答案是&#xff1a;“如果必须选择一个&#xff0c;我不会选ChatGPT或Claude&#xff0c;而是Perple…

神经网络的核心:简单易懂理解 PyTorch 非线性激活函数

目录 torch.nn子函数非线性激活详解 nn.Softmin Softmin 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax Softmax 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax2d Softmax2d 函数简介 函数工作原理 输入…

数据摆渡会遇到哪些风险?要如何应对?

数据摆渡&#xff08;Data Shuttle&#xff09;是一种在不同网络环境之间安全、可控地传输数据的过程。在企业环境中&#xff0c;这通常涉及到将数据从内部网络&#xff08;内网&#xff09;传输到外部网络&#xff08;外网&#xff09;&#xff0c;或者在多个隔离的内部网络之…

安恒2023全球高级威胁态势研究报告(网盘下载)

《2023全球高级威胁态势研究报告》 2023 年&#xff0c;一系列新兴威胁的不断涌现&#xff0c;使得网络安全面临着前所未有的挑战。过去一年&#xff0c;我们目睹了地缘政治动荡、科技进步和人类活动的交织&#xff0c;进一步深刻地塑造了数字时代的未来。 在此背景下&#xff…

java 体育明星管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 体育明星管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

3.2 MAPPING THREADS TO MULTIDIMENSIONAL DATA

1D、2D或3D线程组织的选择通常基于数据的性质。图片是2D像素阵列。使用由2D块组成的2D网格通常可以方便地处理图片中的像素。图3.2显示了处理7662图片P的这种安排&#xff08;水平或x方向为76像素&#xff0c;垂直或y方向为62像素&#xff09;。假设我们决定使用16 x 16块&…

MyBatis实战指南(一):从概念到特点,助你快速上手,提升开发效率!

嗨~ 今天的你过得还好吗&#xff1f; 如果命运是世界上最烂的编剧 你就要争取做你人生最好的演员 &#x1f31e; - 2024.01.08 - MyBatis是一个优秀的持久层框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取…

【百科物理】-2.重力与浮力

导入 问题&#xff1a; 灯掉下来&#xff0c;重力太大&#xff0c;掉下来。 重力来源于地球&#xff0c;地球上所有的东西都受重力向下落。 搬箱子&#xff0c;搬东西沉&#xff0c;是受重力的影响&#xff0c;重力的方向是竖直向下的。 万有引力&#xff1a;任何两个物体之间都…

flutter项目用vscode打包apk包,完美运行到手机上

1.创建密钥库 执行以下命令: keytool -genkey -v -keystore F:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key 生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天) 2.填写密钥内容 执行以上命令后会提示一次输入密钥库密码、确认…

MySQL取出N列里最大or最小的一个数据

如题&#xff0c;现在有3列&#xff0c;都是数字类型&#xff0c;要取出这3列里最大或最小的的一个数字 -- N列取最小 SELECT LEAST(temperature_a,temperature_b,temperature_c) min FROM infrared_heat-- N列取最大 SELECT GREATEST(temperature_a,temperature_b,temperat…

解决matplotlib中文乱码问题

一、修改配置文件&#xff0c;一劳永逸的方法 1. 首先&#xff0c;下载SimHei字体&#xff08;即SimHei.tff包&#xff09;下载地址&#xff1a;SimHei.ttf|字体下载 2. 下载好之后&#xff0c;找到matplotlib文件夹&#xff0c;如下图所示&#xff1a; 如果找不到matplotlib…

服务容错-熔断策略之断路器hystrix-go

文章目录 概要一、服务熔断二、断路器模式三、hystrix-go3.1、使用3.2、源码 四、参考 概要 微服务先行者Martin Fowler与James Lewis在文章microservices中指出了微服务的九大特征&#xff0c;其中一个便是容错性设计(Design for failure)。正如文章中提到的&#xff0c;微服…

结构型设计模式——桥接模式

桥接模式 如果一个系统需要在抽象化和具体化之间增加更多的灵活性&#xff0c;避免在两个层次之间建立静态的继承关系&#xff0c;通过桥接模式可以使它们在抽象层建立一个关联关系&#xff08;参考案例&#xff1a;即视频文件格式对象成为操作系统类的一个成员变量&#xff0…