当前位置: 首页 > news >正文

泷羽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有用且必须自动变化

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

相关文章:

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

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-IP炮台搭建 搭建炮台服务端安装zmap1、更新系统和安装基础依赖&#xff…...

使用Svelte构建轻量级应用详解

文章目录 前言一、为什么选择Svelte?二、快速上手Svelte三、理解Svelte的核心概念四、优化性能与用户体验五、案例研究:构建一个待办事项应用结语 前言 Svelte是一款新兴的前端框架,以其小巧的体积、高效的性能和直观的API赢得了开发者的青睐…...

Qt设置部件的阴影效果

QT中的比如QWidget,QLabel,QPushbutton,QCheckBox都可以设置阴影效果,就像这样: 以QWidget为例,开始尝试使用样式表的形式添加阴影,但没有效果,写法如下: QWidget#widget1::shadow{color: rgb…...

Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现

批量数据库服务器连接测试与数据汇总:Python实现方案 作为数据库服务器运维人员,我们经常需要面对大量服务器的连接测试和数据汇总工作。本文将介绍一个使用Python实现的高效解决方案,可以帮助我们快速完成这些任务。 需求概述 从配置文件…...

vue响应式数据-修改对象的属性值,视图不更新

如图: 一:问题是: 我把数据处理后能console.log()打印出来,但是页面的内容不能同步的更新渲染; 二:要求: 在数组循环列表里面,我点击单个的item按钮时,需要实时加载进度…...

【OpenCV计算机视觉】图像处理——平滑

本篇文章记录我学习【OpenCV】图像处理中关于“平滑”的知识点,希望我的分享对你有所帮助。 目录 一、什么是平滑处理 1、平滑的目的是什么? 2、常见的图像噪声 (1)椒盐噪声 ​编辑(2) 高斯噪声 &a…...

C#编程报错- “ComboBox”是“...ComboBox”和“...ComboBox”之间的不明确的引用

1、问题描述 在学习使用C#中的Winform平台编写一个串口助手程序时, 在编写一个更新ComboBox列表是遇到了问题,出错的代码是 2、报错信息 CS1503 参数 2: 无法从“System.Windows.Forms.ComboBox”转换为“System.Windows.Forms.ComboBox” CS1503 …...

JAVA:访问者模式(Visitor Pattern)的技术指南

1、简述 访问者模式(Visitor Pattern)是一种行为型设计模式,允许你将操作分离到不同的对象中,而无需修改对象本身的结构。这种模式特别适合复杂对象结构中对其元素进行操作的场景。 本文将介绍访问者模式的核心概念、优缺点,并通过详细代码示例展示如何在实际应用中实现…...

YashanDB共享集群产品能力观测:细节足见功底

本文基于前泽塔数科研发总监-王若楠2024年11月在“2024年国产数据库创新生态大会”-“根”技术专场的演讲整理形成,主要对崖山共享集群YAC的架构、功能、高可用性、性能四大方面进行全面测试,并分享了测试环境和测试结论。 年初,基于某些商业…...

【Linux】—简单实现一个shell(myshell)

大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦! 本文由:残念ing原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客&…...

@FeignClient用于Nacos微服务间的接口调用

依赖&#xff1a;<!-- spring-boot启动依赖 --> <!-- 提供者 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- openFeign --> <…...

认识javascript中的模块化

什么是模块化&#xff1f; 将程序⽂件依据⼀定规则拆分成多个文件&#xff0c;拆分出来每个⽂件就是⼀个模块&#xff0c;模块中的数据都是私有的&#xff0c;模块之间互相隔离。如果不进行隔离&#xff0c;可能会造成模块间的变量定义有冲突&#xff0c;导致程序崩溃 为啥要使…...

容器设计模式:Sidecar

文章目录 容器设计模式&#xff1a;Sidecar 模式1. 什么是 Sidecar 模式&#xff1f;2. Sidecar 模式的原理2.1 工作机制2.2 常见用途 3. Sidecar 模式示例示例&#xff1a;日志收集 4. Sidecar 模式的架构图图例&#xff1a; 5. Sidecar 模式的优点6. Sidecar 模式的局限性7. …...

ensp 静态路由配置

A公司有广州总部、重庆分部和深圳分部3个办公地点&#xff0c;各分部与总部之间使用路由器互联。广州、重庆、深圳的路由器分别为R1、R2、R3&#xff0c;为路由器配置静态路由&#xff0c;使所有计算机能够互相访问&#xff0c;实训拓扑图如图所示 绘制拓扑图 给pc机配置ip地址…...

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接&#xff1a;https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络&#xff08;GCN&#xff09;对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节&#xff0c;通过对分子数据集的操作实践&#xff0c;展示了完整的节点分类流程&#…...

Android-Glide详解

目录 一&#xff0c;介绍 二&#xff0c;使用 三&#xff0c;源码分析思路 四&#xff0c;with源码分析 五&#xff0c;模拟Glide生命周期管理 一&#xff0c;介绍 Glide目前是安卓最主流的加载图片的框架&#xff0c;也是源码最为复杂的框架之一。 要想完完全全吃透Glide的源…...

2.Nuxt学习 组件使用和路由跳转相关

组件定义和使用 普通组件的使用 在Nuxt的项目中&#xff0c;可以直接在components文件夹下建立组件 在页面中直接使用 无需引入 多层级组件的使用 我们有时候会需要多层级组件来简化代码结构 比如我们需要给Banner组件添加一个子组件 我们直接建立其名称的文件夹 写入子组…...

代码开发相关操作

使用Vue项目管理器创建项目&#xff1a;&#xff08;vue脚手架安装一次就可以全局使用&#xff09; windowR打开命令窗口&#xff0c;输入vue ui&#xff0c;进入GUI页面&#xff0c;点击创建-> 设置项目名称&#xff0c;在初始化git下面输入&#xff1a;init project&…...

动态导出word文件支持转pdf

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、功能说明二、使用步骤1.controller2.工具类 DocumentUtil 导出样式 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff…...

登陆harbor发现证书是错误的, 那么如何更新harbor的证书呢

Error response from daemon: Get "https://172.16.21.35/v2/": tls: failed to verify certificate: x509: certificate is valid for 127.0.0.1, ::1, 172.16.21.30, not 172.16.21.35 版本 v2.10.1-b7b88476 不需要从头看, 直接看最下面的成功的证书创建 这里面首…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...