python安全脚本开发简单思路

文章目录

为什么选择python作为安全脚本开发语言

  1. 易读性和易维护性:Python以其简洁的语法和清晰的代码结构著称,这使得它非常易于阅读和维护。在安全领域,代码的可读性和可维护性至关重要,因为它们有助于团队成员快速理解代码逻辑,减少错误,并快速响应安全事件。
  2. 丰富的库和框架:Python拥有一个庞大的生态系统和丰富的库,涵盖了网络编程、数据处理、加密解密、Web开发等多个领域。在安全领域,有许多专为安全测试、漏洞扫描、渗透测试等设计的库和框架,如Scapy(网络包处理)、Nmap的Python接口、OWASPZAP的API绑定等,极大地提高了开发效率和安全性。
  3. 跨平台支持:Python是一种跨平台的编程语言,可以在Windows、Linux、macOS等多种操作系统上运行,无需修改代码即可在不同平台上执行相同的任务。这对于需要处理多平台安全问题的场景特别有用。
  4. 动态性和灵活性:Python是一种动态类型语言,支持在运行时修改对象类型和结构,这使得它非常灵活,可以轻松地处理各种复杂的安全场景和异常情况。此外,Python的反射机制也允许程序在运行时检查或修改其自身结构,这在某些高级安全应用中非常有用。
  5. 社区支持:Python拥有庞大的开发者社区和丰富的在线资源,包括官方文档、教程、论坛、博客等。这意味着在开发过程中遇到的问题通常可以很快找到解决方案,而且有许多现成的工具和库可以直接使用。
  6. 学习曲线平缓:相对于其他编程语言,Python的学习曲线较为平缓,使得新手可以更快地入门并开始编写代码。这对于需要快速部署安全脚本或工具的场景特别有利。
  7. 强大的网络支持:Python提供了强大的网络编程支持,包括socket编程、HTTP请求处理等。这使得Python非常适合用于开发网络安全相关的脚本和工具,如网络扫描器、漏洞利用工具等。

如何编写人生第一个安全脚本开发

python的用武之地:

1.利用python完成安全脚本开发,提高工作效率。

2.利用-python进行自动化运维,日志分析等。

3.针对特定的服务器环境,用于开发安全测试工具。

4.使用python进行安全基线检查。

5.使用python进行资产收集、资产管理、信息收集。

举例子:写一个脚本来进行端口扫描(单线程,多线程,以及常见端口扫描)

python 复制代码
import threading
import socket
import time

#单线程
def socket_port(ip):
    for port in range(1,65535):
        try:
            s=socket.socket()
            s.settimeout(0.5)
            s.connect((ip,port))
            print(f"端口:{port}可用.")
            s.close()
        except ConnectionRefusedError:
            print(f"端口:{port}不可用.")
            #pass
        except socket.timeout:
            pass

#多线程
def socket_port_thread(ip,start):
    for port in range(start,start+50):
        try:
            s=socket.socket()
            s.settimeout(0.01)
            s.connect((ip,port))
            print(f"端口:{port}可用.")
            s.close()
        except:
            pass

#扫描常用端口,使得每次扫描完后停止三秒钟(防止ips/ids进行阈值监测)
def socket_port_normal(ip):
    list=[1, 7, 9, 11, 13, 17, 18, 19, 20, 21, 22, 23, 25, 33,
          42, 43, 53, 67, 68, 69, 80, 81, 82, 88, 110, 111, 113,
          119, 123, 135, 138,137,139, 143, 1433, 1521, 161,
          2049, 2181, 2222, 2601, 2604, 3306, 3389, 443, 4440,
          445, 5000, 50000, 5432, 5900, 5984, 6082, 6379, 7001,
          7002, 8000-9090, 8069, 8080, 8083, 8089, 8649, 873, 8888,
          9090, 9200, 9300, 10000, 11211, 27017, 27018, 3128, 3312, 3311
]
    for port in list:
        try:
            s=socket.socket()
            s.settimeout(0.01)
            s.connect((ip,port))
            print(f"端口:{port}可用.")
            s.close()
        except ConnectionRefusedError:
            print(f"端口:{port}不可用.")
            #pass
        except socket.timeout:
            pass
        time.sleep(3)

if __name__ == '__main__':

    #socket_port('127.0.0.1')

    # for i in range(1,1024,50):
    #     threading.Thread(target=socket_port_thread,args=('192.168.1.2',i)).start()

    socket_port_normal('192.168.1.2')

后续学习

当你进入内网后,有些情况可能不允许你上传一些工具,单数大多数服务器都支持python环境,这样你可以手搓一个tcp连接,或者手搓一个简易版的nmap进行内网扫描。事实上一些监测脚本的编写离不开一些网络底层的知识和python各种好用库的学习,所以该怎么学我想大家应该心里很清楚了吧。

相关推荐
badhope2 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
码云数智-园园3 小时前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
吴佳浩3 小时前
GPU 编号进阶:CUDA\_VISIBLE\_DEVICES、多进程与容器化陷阱
人工智能·pytorch·python
C++ 老炮儿的技术栈4 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl4 小时前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628884 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手4 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
全栈凯哥4 小时前
18.Python中的导入类完全指南
python
AI科技星4 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian8864 小时前
Java进阶——IO 流
java·开发语言·python