泷羽sec学习打卡-brupsuite7搭建IP炮台

声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都
与本人无关,切莫逾越法律红线,否则后果自负


关于brupsuite的那些事儿-Brup-IP炮台搭建

    • 搭建炮台
    • 服务端安装zmap
      • 1、更新系统和安装基础依赖:使⽤包管理⼯具(如apt-get)更新系统并安装必要的基础依赖。例如,在Ubuntu上
      • 2、安装了一系列用于开发和构建软件的工具和库
      • 3、克隆zmap项目仓库,从GitHub克隆ZMap项目的源代码到本地。
      • 4、编译和安装ZMap,进⼊ZMap⽬录后,执⾏以下命令来编译和安装Zmap。
      • 5、验证zamp安装是否成功
      • 6、使用zamp全网爬取ip地址
      • 7、对zmap下来的代理ip进行初次筛选
        • 初次筛选ip的脚本
      • 8、子弹有效化
    • 安装Brup插件
      • 1、在burp中载入jython包
      • 2、添加自动化处理插件程序
      • 3、接下来就是和验证码爆破时同样的操作了,也就没啥好说的了
      • 4、同理,可以在攻击列表中查看是否存在sql输入,这个取决了字典的强大了
      • 5、本次的目的主要时代理ip池子,那么我们看看是不是每一个段都的请求都是用不同的ip地址发送的请求即可
    • 实践是检验真理的唯一标准


搭建炮台

首先这个有两种方式可以进行实现Brip炮台
这里我就用自己的云服务器进行实战,没有云服务器的哥们可以用kail安装进行实验,本质是一样的

服务端安装zmap

kail安装

sudo apt update

在这里插入图片描述

然后下载zamp

sudo apt install zmap

在这里插入图片描述

我用的自己的云服务器,学习还是用kail好一些哈

1、更新系统和安装基础依赖:使⽤包管理⼯具(如apt-get)更新系统并安装必要的基础依赖。例如,在Ubuntu上

sudo apt-get update

在这里插入图片描述

2、安装了一系列用于开发和构建软件的工具和库

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

在这里插入图片描述

3、克隆zmap项目仓库,从GitHub克隆ZMap项目的源代码到本地。

git clone https://github.com/zmap/zmap.git

4、编译和安装ZMap,进⼊ZMap⽬录后,执⾏以下命令来编译和安装Zmap。

cd zmap
mkdir build
cd build
cmake ..这个命令用于生成构建系统。cmake 是一个工具,它根据项目中的 CMakeLists.txt 文件生成适合当前系统的构建配置文件(如 Makefile)。.. 表示在当前目录的上一级目录中查找CMakeLists.txt 文件。
make这个命令用于编译项目。make 是一个工具,它根据上一步生成的 Makefile 文件来编译源代码,生成可执行文件或库文件。sudo make install这个命令用于安装编译好的软件。make install 是 make 的一个目标,它将编译好的程序安装到系统的标准目录中,如 /usr/local/bin。sudo 是因为安装软件通常需要管理员权限,所以使用 sudo 来执行这个命令。

5、验证zamp安装是否成功

zmap --version

在这里插入图片描述
在这里插入图片描述
云服务的安装就这里,这里我先声明,本次学习用于实验,出现问题,与本人无关。这里我还是建议大家用kail,虚拟环境练练手即可

6、使用zamp全网爬取ip地址

这里可以扫描几十万条数据
如果你想要扫描多个不连续的端口,你需要为每个端口或每个端口范围分别指定 -p 参数。

zmap -p 80 -o raw_ips.txt

如果你想要扫描一系列连续的端口,比如从80到443

这里注意哈,不能使用逗号,zmap没有这个格式哈,-短横线也没有这个格式化,zmap只支持

7、对zmap下来的代理ip进行初次筛选

使⽤多线程优化了验证效率,使⽤多个验证URL提⾼可⽤性,两种脚本进行筛选,首先是80端口进行添加端口,其次是存在80和443端口的进行添加,然后我们需要替换为:冒号
1、·一种就是只扫了80端口的,需要用add_port_to_ips函数添加端口
2、还有一种就是扫了80,443端口的有端口号但是中间是 , (逗号)需要用到replace_comma_with_colon函数进行替
换。

这里想必不用我多说了吧,都懂的,用kail哈

初次筛选ip的脚本
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
# 指定输入和输出文件路径
raw_input_file = 'raw_ips.txt' # 原始包含逗号的IP文件
processed_output_file = 'ip.txt' # 字符处理后的IP文件
available_proxy_file_path = 'InProxyPool.txt' # 可用代理输出文件
# 多个验证URL,包含国内和国外常见网站,用于更严格地验证代理IP是否可用
test_urls = [
'http://www.baidu.com',
'http://www.jd.com/',
'http://www.taobao.com/'
]
# 线程锁
lock = threading.Lock()
# 标记是否是第一次写入可用代理文件,初始化为True表示第一次
first_write = True
def replace_comma_with_colon(raw_input_file, output_file):
"""
替换文件中逗号为冒号,并保存到新文件。
"""
with open(raw_input_file, 'r') as file:
lines = file.readlines()
# 替换逗号为冒号
modified_lines = [line.replace(',', ':').strip() for line in lines]
# 写入新的文件,'w'模式会自动清空原有内容再写入
with open(output_file, 'w') as file:
for line in modified_lines:
file.write(line + '\n')
print(f"IP格式处理完成,结果已保存到 {output_file}")
# IP添加:端口号
def add_port_to_ips(input_file_path, output_file_path, port=80):
try:
with open(input_file_path, 'r') as infile, open(output_file_path, 'w') as outfile:
for line in infile:
ip = line.strip() # 去除每行的空白字符(如换行符等)
new_ip = f"{ip}:{port}"
outfile.write(new_ip + "\n")
except FileNotFoundError:
print(f"输入文件 {input_file_path} 不存在,请检查文件路径。")
验证之后形成第⼀代理池,但是⽤到⽬标⽹站还是会有许多其他的状态码,不能访问的错误,所以我们针对
⽬标指定⽹站再进⾏筛选
def test_proxy(proxy):
"""
测试单个代理IP是否可用,通过多个URL验证,只有全部验证通过才认定可用,并实时写入文件。
"""
global first_write
proxy = proxy.strip() # 移除行尾的换行符
if not proxy: # 跳过空行
return None
# 设置代理
proxies_dict = {
'http': f'http://{proxy}',
'https': f'https://{proxy}'
}
is_available = True
for url in test_urls:
try:
# 发送请求,设置超时时间为5秒
response = requests.get(url, proxies=proxies_dict, timeout=5)
if response.status_code!= 200:
is_available = False
break
except requests.RequestException as e:
is_available = False
break
if is_available:
print(f'代理IP {proxy} 可用')
with lock:
# 根据是否第一次写入来决定文件打开模式
mode = 'w' if first_write else 'a'
with open(available_proxy_file_path, mode) as file:
file.write(f'{proxy}\n')
if first_write:
first_write = False # 第一次写入后标记设为False
return proxy
else:
print(f'代理IP {proxy} 不可用')
return None
def main():
# 第一步:处理IP文件
# replace_comma_with_colon(raw_input_file, processed_output_file)
add_port_to_ips(raw_input_file,processed_output_file)
# 第二步:读取替换后的IP文件,验证代理IP
with open(processed_output_file, 'r') as file:
proxies = file.readlines()
# 使用ThreadPoolExecutor并发执行
with ThreadPoolExecutor(max_workers=20) as executor:
future_to_proxy = {executor.submit(test_proxy, proxy): proxy for proxy in proxies}
for future in as_completed(future_to_proxy):
proxy = future_to_proxy[future]
try:
future.result() # 触发验证逻辑
except Exception as e:
print(f'代理IP {proxy} 验证过程中出现错误: {e}')
print(f"\n代理验证完成,可用代理IP已写入文件: {available_proxy_file_path}")
if __name__ == "__main__":
main()

验证之后形成第⼀代理池,但是⽤到⽬标⽹站还是会有许多其他的状态码,不能访问的错误,所以我们针对⽬标指定⽹站再进⾏筛选

8、子弹有效化

使⽤这个脚本指定⽬标⽹站为验证⽹站,还可以指定Response数据包的⻓度,来决定确实是正常访问。筛选有效和无效的ip

import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
# 最小响应包长度
MIN_LENGTH = 100
# 最大线程数
MAX_WORKERS = 100
# 输出文件路径
OUTPUT_FILE_PATH = 'FProxies.txt'
# 输入文件路径
input_file_path = 'InProxyPool.txt'
def check_proxy(proxy):
"""验证代理网址"""
test_url = "http://www.google.com"
proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"}
try:
response = requests.get(test_url, proxies=proxies, timeout=2)
if response.status_code == 200 and len(response.content) >= MIN_LENGTH:
return proxy # 返回可用代理
except Exception:
pass
return None # 无效代理
def validate_proxy(proxy, lock):
"""验证单个代理并写入文件"""
valid_proxy = check_proxy(proxy)
if valid_proxy:
with lock:
with open(OUTPUT_FILE_PATH, 'a') as outfile:
outfile.write(f"{valid_proxy}\n")
print(f"有效代理: {valid_proxy}")
else:
print(f"无效代理: {proxy}")
def validate_proxies_from_file(input_file_path):
"""从文件中读取代理并验证其有效性,同时将有效代理输出到另一个文件"""
lock = threading.Lock()
with open(input_file_path, 'r') as infile:
proxies = [line.strip() for line in infile]
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
futures = [executor.submit(validate_proxy, proxy, lock) for proxy in proxies]
for future in as_completed(futures):
future.result() # 等待所有任务完成
validate_proxies_from_file(input_file_path)

这里咱们的字典文件就筛选准备好了,下面开始bripsuite使用
在这里插入图片描述
咱就是说这种脚本都让gpt写好吧
在这里插入图片描述
主打一个不动手。

安装Brup插件

1、在burp中载入jython包

在这里插入图片描述

2、添加自动化处理插件程序

在这里插入图片描述
之后会出现一个 Proxy Switcher 选项,那就是插件了
注意点:这里指定路径记得时字典的txt的url路径哈

先输入路径(主要文件中的数据需要是每行ip:port的形式否则解释失败),然后加载,最后启用,在后面有每
次请求代理 1 就是请求一次换一个,后面还有HTTP、SOCKS5 协议

3、接下来就是和验证码爆破时同样的操作了,也就没啥好说的了

设置一个payloads,用来加载一些基本的sql注入测试字典即可

在这里插入图片描述
在这里插入图片描述

4、同理,可以在攻击列表中查看是否存在sql输入,这个取决了字典的强大了

在这里插入图片描述

5、本次的目的主要时代理ip池子,那么我们看看是不是每一个段都的请求都是用不同的ip地址发送的请求即可

在这里插入图片描述
这里因为用的zmap扫描的ip,其实很多zmap扫描的地址都是不能访问国内的网站的哈,都懂,除非指定地区,那么扫描的ip就大部分应该可以通过py脚本检测。总之,思路就是zmap获取一些ip,使用两次py或者多个脚本进行多次筛选,最终获得可以用的ip字典(也就是IP代理池了),但是这个有局限性,真正的代理池是不端发生ip代理变化且全自动化获取的哈
下期分析伪造ip,也就是假ip,但是呢,还是真实ip有用且必须自动变化

实践是检验真理的唯一标准

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赫布定律 | 机器学习 / 反向传播 / 经验 / 习惯

注:本文为 “赫布定律” 相关文章合辑。 未整理。 赫布定律 Hebb‘s law 馥墨轩 2021 年 03 月 13 日 00:03 1 赫布集合的基本定义 唐纳德・赫布(Donald Hebb)在 1949 年出版了《行为的组织》(The Organization of Behavior&a…

各个数据库优劣势对比

1.关系型数据库(RDBMS) 优势: • 数据一致性:通过严格的事务处理和ACID(原子性、一致性、隔离性、持久性)特性,确保数据的一致性和完整性。 • 易于理解和使用:关系型数据库的表结构…

Excel中如何消除“长短款”

函数微调可以可以实施,简单且易于操作的气球🎈涨缩更妙。 (笔记模板由python脚本于2024年12月17日 06:19:13创建,本篇笔记适合用Excel操作数据的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Fre…

Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)

从JDK 1.7到JDK 1.8,HashMap在底层实现上发生了显著的变化, 主要体现在数据结构、链表插入方式、哈希算法、扩容机制以及并发性方面。 以下是具体的变化点: 1. 数据结构的变化 JDK 1.7:HashMap的底层数据结构是数组单向链表。…

RJ45 网线线序、E1线线序、2B+d线序

1、RJ45 网线线序 线序排列如下: T568A线序:绿白—1,绿—2,橙白—3,蓝—4,蓝白—5, 橙—6,棕白—7,棕—8 T568B线序:橙白—1,橙—2&#xff0c…

FreeBSD安装教程

FreeBSD 是一个功能强大且可靠的开源 UNIX 操作系统,适合服务器和桌面环境。本文将介绍如何安装 FreeBSD,从系统准备到基础设置,为你快速上手提供帮助。 一、准备工作 1. 硬件要求 CPU:支持 x86 或 AMD64 架构的处理器。 内存&a…

Fortify_SCA_v24.2.0

前言 Fortify SCA 支持丰富的开发环境、语言、平台和框架,可对开发与生产混合环境进行安全检查。25 种编程语言 超过 911,000 个组件级 API 可检测超过 961 个漏洞类别 支持所有主流平台、构建环境和 IDE。 Fortify SCA是一款商业软件,价格较为昂贵&am…

MyBatis框架的入门

目录 MyBatis第一章:框架的概述1. MyBatis框架的概述 第二章:MyBatis的入门程序1. 创建数据库和表结构2. MyBatis的入门步骤 MyBatis 第一章:框架的概述 1. MyBatis框架的概述 MyBatis是一个优秀的基于Java的持久层框架,内部对…

rust的axux框架开启负载均衡和重启自身的方法-会议签到的调优

开启负载均衡和重启自身 更换axum后台的意外解决的尝试在caddy反代,使用负载均衡,加多一个节点axum主程序 ip映射信息做全局共享axum重启自身刷新全局共享配置 前期刚实现了rust的后台关键业务.结果出现了两类大问题停止服务.在正用着的时候,出现很多意外,真是刺激… 更换axum…

深入理解数据库索引:原理、分类与优化

目录 1. 索引基础1.1 索引的工作原理 2. 最左匹配原则2.1 什么是最左匹配原则?2.2 示例说明2.3 最左匹配原则的图示 3. 索引分类3.1 按数据结构分类3.2 按索引列数分类3.3 按唯一性分类3.4 按存储方式分类 4. 聚集索引与非聚集索引的区别4.1 聚集索引4.2 非聚集索引…

Three.js相机Camera控件知识梳理

原文:https://juejin.cn/post/7231089453695238204?searchId20241217193043D32C9115C2057FE3AD64 1. 相机类型 Three.js 主要提供了两种类型的相机:正交相机(OrthographicCamera)和透视相机(PerspectiveCamera&…

Bernstein-type inequality (BTI)

参见论文: Dual-Functional Artificial Noise (DFAN) Aided Robust Covert Communications in Integrated Sensing and Communications 理论 \boxed{} ​用于加框 Lemma 2. (BTI): For any A ∈ C N N \mathbf{A} \in\mathbb{C}^{N\times N} A∈CNN, b ∈ C N …

一条线上的点

给你一个数组 points &#xff0c;其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 提示&#xff1a; 1 < points.length < 300points[i].length 2-104 < xi, yi < 104points 中的所有点 互不相同 解析&#xff1a;使用斜…

XX服务器上的npm不知道咋突然坏了

收到同事的V&#xff0c;说是&#xff1a;182上的npm不知道咋突然坏了&#xff0c;查到这里了&#xff0c;不敢动了。 咱一定要抓重点&#xff1a;突然坏了。这里的突然肯定不是瞬间&#xff08;大概率是上次可用&#xff0c;这次不可用&#xff0c;中间间隔了多长时间&#x…

GNSS定位局限性与综合PNT及5G定位技术研究

摘要 本文主要介绍了GNSS定位技术的系统组成与原理、发展历程、应用领域及现状&#xff0c;并分析了其存在的局限性&#xff0c;如信号遮挡、多路径效应、大气层干扰等。文章还探讨了综合PNT技术的体系架构、多源信息融合方法以及智能化算法在PNT中的应用&#xff0c;强调了综…

/hbase/oldWALs 文件

/hbase/oldWALs 是 HBase 中的一个目录&#xff0c;用于存储那些不再需要用于恢复目的的 WAL&#xff08;Write-Ahead Log&#xff09;文件。这些文件在 HBase 确认所有的数据都已经从 MemStore 持久化到 HFile 之后&#xff0c;会被移动到这个目录。 /hbase/oldWALs 目录中的…

HALCON 算子 之 形态学操作算子

文章目录 什么是形态学操作&#xff1f;为什么要形态学操作&#xff1f;怎么形态学操作&#xff1f;腐蚀 —— Erosionerosion1erosion_circle&#xff1a;erosion_rectangle1&#xff1a; 膨胀 —— Dilationdilation1dilation_circledilation_rectangle1 打开 —— Openingop…

[金盾杯 2024] PWN 复现

好长时间不作题了&#xff0c;在复现平台上看到这个比赛&#xff0c;作了一下&#xff0c;题过于简单了。不过密码一言难尽。 Orange 要说libc-2.23有多老&#xff0c;我一开始学PWN的时候还有不少&#xff0c;这两年几乎不见了。一些比赛估计是拿的旧题。 远看像个堆题&…

pytest入门九:feature

fixture是pytest特有的功能&#xff0c;用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识&#xff0c;定义在函数前面。在你编写测试函数的时候&#xff0c;你可以将此函数名称做为传入参数&#xff0c;pytest将会以依赖注入方式&#xff0c;将该函数…

uniapp Vue3 语法实现浏览器中音频录制、停止、保存、播放、转码、实时音频输出

一、引言 在现代 Web 应用开发中,音频处理功能变得越来越重要。本文将详细介绍如何使用 uniapp 结合 Vue3 语法在浏览器环境中实现音频录制、停止、保存、播放、转码以及实时音频输出等一系列功能。通过深入剖析代码结构和功能实现细节,帮助读者全面理解和掌握相关技术,以便…