当前位置:首页>python>Python 安全工具大集合:每个白帽黑客都该收藏的脚本库

Python 安全工具大集合:每个白帽黑客都该收藏的脚本库

  • 2026-10-11 07:56:37
Python 安全工具大集合:每个白帽黑客都该收藏的脚本库


项目简介

Python 几乎是每个安全工程师的第一编程语言——语法简洁、库丰富、跨平台,写个扫描脚本分分钟的事。但问题也来了:哪些库真正适合安全测试用?

今天推荐的这个项目 python-pentest-tools(https://github.com/iskandarsaleh/python-pentest-tools),正是来解决这个问题的。[1]

这是一个纯粹的资源集合项目,作者整理了安全研究和渗透测试中最常用的 Python 工具库,按类别聚合,方便按需查找。和那些动手写的实验脚本不同,这里的每一条都是经过社区验证、生产环境也在用的成熟工具。

目前项目在 GitHub 有多个活跃 fork,包括 iskandarsaleh、xin053、richardsonlima 等开发者都有参与维护,说明这个资源库确实有价值。


工具分类详解

1. 网络安全工具(Network)

网络安全是渗透测试最核心的领域,Python 在这一块有大量成熟库:

  • Scapy:强大的数据包处理库,可以构造任意协议的数据包,进行网络探测、协议分析和流量伪造,是写自定义扫描器的首选库
  • Twisted:事件驱动的网络编程框架,适合写高性能的网络服务或客户端
  • dnschef:DNS 欺骗工具,用于中间人攻击场景下的 DNS 劫持测试
  • Mitmproxy:支持 HTTP/HTTPS 流量拦截和修改,常用于 Web 安全测试
  • Requests:虽然通用,但在安全测试中常用于快速构造 HTTP 请求、测试 API 接口漏洞

2. Web 安全工具(Web)

  • BeautifulSoup:HTML/XML 解析库,用于爬取页面内容、提取表单、寻找注入点
  • mechanize:模拟浏览器行为,自动填写表单、提交请求
  • selenium:浏览器自动化工具,绕过 JavaScript 渲染的防护
  • python-nmap:NMap 的 Python 封装,方便在脚本中集成端口扫描

3. 取证与分析(Forensics)

  • Volatility:最著名的内存取证框架,支持从内存镜像中提取进程、网络连接、密码哈希等关键信息
  • pylnk:解析 Windows 快捷方式文件(.lnk)的元数据,可用于取证分析
  • MGRT:邮件取证工具,解析邮件文件中的隐藏信息

4. 密码攻击(Password Attacks)

  • Hashlib:Python 内置库,用于计算和识别各类哈希值(MD5、SHA、bcrypt 等)
  • Passlib:密码哈希库,支持验证和生成各类密码哈希
  • Pyrit:GPU 加速的 WPA/WPA2-PSK 暴力破解工具(需要显卡)

5. 漏洞研究(Exploit Development)

  • pwntools:CTF 漏洞利用开发神器,提供快速的 shellcode 生成、进程通信、ROP 链构建等功能
  • ** capstone**:反汇编框架,支持 x86、ARM、MIPS 等多种架构,用于漏洞分析和 shellcode 分析
  • unicorn:轻量级 CPU 模拟器,常与 pwntools 配合做漏洞利用

6. 通用工具(Utilities)

  • paramiko:SSH 客户端库,用于写 SSH 连接相关的自动化脚本
  • ftplib:Python 内置 FTP 客户端,用于 FTP 相关的安全测试
  • pycryptodome:密码学工具包,提供各类加密算法的实现
  • stegano:隐写术工具,检测和提取图片中的隐藏数据

实际应用示例

示例一:用 Scapy 写一个简单的 TCP SYN 扫描器

from scapy.all import *

def syn_scan(target, ports):
    for port in ports:
        pkt = IP(dst=target)/TCP(dport=port, flags='S')
        resp = sr1(pkt, timeout=1, verbose=0)
        if resp and resp.haslayer(TCP):
            if resp[TCP].flags == 'SA':
                print(f"[+] Port {port} is OPEN")
            else:
                print(f"[-] Port {port} is CLOSED/FILTERED")
        else:
            print(f"[?] Port {port} is FILTERED/NO RESPONSE")

# 使用
syn_scan('192.168.1.1', [22, 80, 443, 3306, 8080])

示例二:用 Requests 测试 SQL 注入

import requests

target = "http://target.com/product?id=1"

# 基础测试
payloads = ["'", "' OR '1'='1", '" OR "1"="1', "1 AND 1=1"]
for payload in payloads:
    url = target + payload
    r = requests.get(url)
    if "error" in r.text.lower() or r.status_code >= 500:
        print(f"[!] Possible SQL Injection: {url}")
    else:
        print(f"[-] Normal: {url}")

示例三:用 mitmproxy 拦截修改 HTTP 响应

from mitmproxy import http

def response(flow: http.HTTPFlow):
    if "api.example.com" in flow.request.pretty_url:
        # 在响应中注入测试标记
        flow.response.text = flow.response.text.replace(
            '</body>', '<script>console.log("TEST INJECTED")</script></body>'
        )
        print("[+] Response modified")

安装方法

大部分库都可以通过 pip 直接安装:

# 核心安全库
pip3 install scapy pwntools capstone unicorn
pip3 install mitmproxy requests beautifulsoup4
pip3 install paramiko ftplib
pip3 install selenium mechanize
pip3 install volatility3 passlib pycryptodome

建议创建一个专用的 Python 虚拟环境:

python3 -m venv sec-env
source sec-env/Scripts/activate
pip install -r requirements.txt

为什么这个项目值得收藏?

  1. 省时:不用自己去找"安全测试用哪些 Python 库"这类问题的答案了,作者已经帮你整理好了
  2. 全面:覆盖网络安全、Web 安全、取证、密码、漏洞研究等几乎所有安全研究领域
  3. 可维护:多个开发者 fork 维护,说明社区认可度高
  4. 可扩展:作为资源清单,你可以持续补充自己发现的好库

总结

python-pentest-tools 是一个高效的工具清单,它不提供现成的渗透测试程序,而是给你一张安全研究者的 Python 工具地图。收藏它,下次写脚本之前先来这里查一查,可能有现成的库可以复用。

GitHub 地址:https://github.com/iskandarsaleh/python-pentest-tools[2]

推荐理由:资源全面、更新活跃、一站式查找,是每个 Python 安全爱好者必备的收藏。

最新文章

随机文章