某60内网渗透之frp实战指南2

2023-12-17

内网渗透


frp实战指南2

实验目的

让学员通过该系统的练习主要掌握:

frp工具的常见用法

实验环境

操作机:Ubuntu(PC1),Ubuntu(PC2), Ubuntu(PC3)

实验工具

frp

实验原理

frp是一款跨平台的代理工具,分为客户端和服务端两个部分。其将需要暴露的内网主机配置成客户端,通过和服务端的连接提供端口的映射和流量的转发。在这次的实验中,我们就实战frp的服务端和客户端的配置过程,并尝试使用frp建立通道,转发连接数据。

在实验机上我们准备了frp的两种版本,服务端和客户端:
frpc :c即client,是frp的客户端。客户端是我们希望借助服务端暴露给外接访问的主机。
frps:s即server,是frp的服务端。服务端是中间的跳板机,客户端的服务借由服务端转发到外界。

frp通过读取配置文件来管理端口映射的参数和过程。客户端,我们需要明确的参数有以下几个方面:
common字段:用于定义客户端需要连接到的服务端的IP和端口。
具体服务字段:用来规定希望映射出去的本地端口(local_port)和映射到外网的相应外部端口(remote_port)。

在服务端,我们需要明确的参数有以下几个方面:bind_port字段:用来规定提供转发服务的端口。

实验内容

1、确认三台PC的IP并记录;
2、配置frp服务端,开启12345端口,监听客户端的连接请求;
3、配置frp客户端,将pc1的ssh服务通过frp服务端以socks5代理方式映射到8080端口;
4、frp服务端利用python开启一个web服务器;
5、PC3通过代理访问web站点;
在这里插入图片描述

frp实战指南2 实验步骤

(1)确定基本信息。

我们先在三台主机中记录清楚各台主机的IP,以确定后续使用的参数。

首先先在操作机PC3的控制台中输入ifconfig,记录下PC3的ip地址:
在这里插入图片描述

同样的方法,我们分别在PC1,PC2的控制台中输入ifconfig,记录下PC1和PC2的ip地址:

PC1:

在这里插入图片描述

PC2:

在这里插入图片描述

接下来请牢记,我们要使用PC3(192.168.246.20),借助PC1(192.168.246.18)来访问PC2(192.168.246.17)。

(2)查看frp工具的基本用法

在实验机上我们准备了frp的两种版本,服务端和客户端:

frpc :c即client,是frp的客户端。客户端是我们希望借助服务端暴露给外接访问的主机。
frps:s即server,是frp的服务端。服务端是中间的跳板机,客户端的服务借由服务端转发到外界。
frp通过读取配置文件来管理端口映射的参数和过程。

在客户端,我们需要明确的参数有以下几个方面:

common字段:用于定义客户端需要连接到的服务端的IP和端口。
具体服务字段:用来规定希望映射出去的本地端口(local_port)和映射到外网的相应外部端口(remote_port)。
在服务端,我们需要明确的参数有以下几个方面:

bind_port字段:用来规定提供转发服务的端口。
在这次的实验中,我们以PC3为攻击者,以PC2为frp服务端,PC1为frp的客户端。因此,我们的实验目的就是利用frp建立一个这样的通道:

PC3(操作机) —PC2:remote_port—>PC2(frp服务端)—PC2:common_port—>PC1(frp客户端)

下面我们就来实战配置frp的服务端和客户端。

(3)服务端frp的配置

我们将PC2作为服务端。首先,我们编辑服务端的配置文件/etc/frp/frps.ini,来指定服务端所需要的参数。

我们输入:

sudo vim /etc/frp/frps.ini

在这里插入图片描述

按下i即可打开插入模式,然后我们输入下列文本:

[common]

bind_port=12345

即,在服务端我们开启12345端口,监听客户端的连接请求。

下面,我们要开启frps,即frp的服务端。使用-c参数指定配置文件的位置:

/etc/frp/frps -c /etc/frp/frps.ini

在这里插入图片描述

(4)客户端frp的配置

我们将PC1作为客户端。在这一边,我们需要制定利用服务端暴露出去的本地端口,映射到的远程端口,以及服务端的IP和端口。编辑客户端的配置文件/etc/frp/frpc.ini,输入:

vim /etc/frp/frpc.ini

按下i打开插入模式,然后我们输入下列文本:

[common]
service_addr=192.268.246.17
server_port=12345

[ssh]
type=tcp
remote_port=8080
plugin = socks5

在这里插入图片描述
上面的配置文件可以将PC1的ssh服务通过服务端frp映射到8080端口。我们来详细解读一下:

第一段common字段指定了服务端的IP和端口,而下面的ssh字段则指定了我们希望映射出去的本地服务。
type规定了映射服务的类型(tcp)
remote_port规定了映射出去的服务暴露外部访问的端口,对于上面的配置文件来说,即为23456端口
plugin规定了代理方式
然后,我们启动客户端frp:/etc/frp/frpc -c /etc/frp/frpc.ini

在这里插入图片描述

(5)使用frp服务

通过客户端与服务端的配合,作为操作机的PC3即可以直接透过PC1的转发访问到PC2的web服务。根据上面的配置过程的讲解,我们不难得出,此时,我们需要连接PC1的IP,配合上PC2配置文件中写入的remote_port(8080端口),即可访问到PC2的web服务(22端口)。

首先为了测试,我们在PC2上输入:python -m SimpleHTTPServer 8081

在这里插入图片描述

利用python起一个web服务器即可

然后我们在PC3上先输入:curl 192.168.246.17:8081
在这里插入图片描述

再输入:curl --socks5 192.168.246.17:8080 192.168.246.18:8081

curl命令可以发出网络请求,通过–socks5 选项可以连接到对应的socks5服务器,通过代理访问对应的web站点

发现第一次请求来自于192.168.246.20自身,而第二次请求来自于192.168.246.18(代理服务器)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

某60内网渗透之frp实战指南2 的相关文章

  • sqlalchemy JSON查询没有特定键的行(键存在)

    当将 sqlalchemy 与 postgresql 一起使用时 我有以下表格和数据 id data 1 2 a 1 2 rows 如何找到没有键的行 例如 a 还是数据 a Give me all objects that does no
  • 如何使用SpringBoot + JPA存储PostgreSQL jsonb?

    我正在开发一个迁移软件 该软件将消耗来自 REST 服务的未知数据 我已经考虑过使用 MongoDB 但我决定不使用它而使用 PostgreSQL 读完后this https blog codeship com unleash the po
  • 如何在 PostgreSQL 函数中声明行类型数组?

    我正在尝试创建一个 PostgreSQL 函数 在用它做更多事情之前 我将循环查询的行并将其中一些存储在数组中 如何创建行类型数组 CREATE OR REPLACE FUNCTION forExample RETURNS integer
  • 如何使用diesel-rs选择色谱柱的子集?

    我现在花了几个小时的时间来查询表的可用列的子集以及在其中包含计算 我知道这不是在选择查询中执行计算的最佳方式 但现在 我只是在开发一个原型 它应该是可行的 我在用diesel rs作为后端实现中所有数据库操作的 ORM 数据将存储在 Pos
  • 从 Rails 4 启用 Amazon RDS 中的 hstore 扩展

    我有一个 Rails 4 应用程序 它使用 ActiveRecord 与 PostgreSQL 9 3 数据库交互 该应用程序利用hstorePostgreSQL 中的扩展 用于在单个数据库字段中存储键值对 因此 Rails 会自动检测我对
  • 在官方 Postgres docker 镜像中记录所有查询

    我有一个基于 Postgres 官方 docker 镜像的 docker 容器 当我使用查看 docker 容器的日志时 我想看到传入的查询docker logs f 这是我的 Dockerfile FROM postgres 11 1 a
  • 如何更改 PostgreSQL 表中列的数据类型?

    在 PostgreSQL 交互式终端中输入以下命令会导致错误 ALTER TABLE tbl name ALTER COLUMN col name varchar 11 更改列的数据类型的正确命令是什么 请参阅此处的文档 http www
  • postgresql 数据库在 OS X 上的位置?

    我确信这个问题已经得到解答 但我似乎找不到答案 我使用 Homebrew brew install postgresql 安装了 postgresql 它安装到 usr local Cellar postgresql 后记按照我这样做的说明
  • 从 INSERT 返回带有 ON CONFLICT 的行,无需更新

    我遇到的情况是 我经常需要从具有唯一约束的表中获取一行 如果不存在则创建它并返回 例如我的表可能是 CREATE TABLE names id SERIAL PRIMARY KEY name TEXT CONSTRAINT names na
  • 如何在postgresql中查找具有特定列的表

    我正在使用 PostgreSQL 9 1 我有一个表的列名 是否可以找到具有此列的表 如果是这样 怎么办 你也可以做 select table name from information schema columns where colum
  • 与 PostgreSQL CTE 的一般并行性

    我正在处理一些大数据 并且在查询中获取并行计划是必要的 我也很喜欢使用 CTE 来表达我的查询 但根据 PostgreSQL 的文档 我不太确定 CTE 是否对并行性造成严重限制 Here https www postgresql org
  • 如何使用 keyTextTransform() 进行嵌套 json?

    我的模型有一个 json 字段 我可以使用以下查询访问 jsonfield key1 from django contrib postgres fields jsonb import KeyTextTransform MyModel obj
  • Postgres 简单的“数据透视表”

    如果我有一个这样的数据表 name type count test blue 6 test2 red 3 test red 4 我怎样才能查询它以获得一个表 name num red num blue test 4 6 test2 3 0
  • PostgreSQL 函数/存储过程 CURRENT_TIMESTAMP 不变

    我想跟踪函数内的执行时间 作为示例 我有以下状态跟踪表 CREATE TABLE status table run id numeric NOT NULL start ts timestamp 6 without time zone NOT
  • postgres 有 CLOSEST 运算符吗?

    我正在寻找这样的东西 给定一个表格 id number 1 7 2 1 25 3 1 01 4 3 0 查询SELECT FROM my table WHEREnumberCLOSEST 1 将返回第 3 行 我只关心数字 现在我有一个程序
  • 如何在 PostgreSQL 中将数据库从一台服务器移动到另一台服务器?

    我正在尝试将数据库从旧服务器移动到新服务器 任何帮助 将不胜感激 Just pipe http www postgresql org docs current interactive migration html从旧服务器转储到新服务器 p
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • 如何将压缩文件导入 Postgres 表

    我想将一个文件重要到我的 Postgresql 系统 特别是 RedShift 中 我发现了一个允许导入 gzip 文件的副本的争论 但我尝试包含在系统中的数据提供者仅生成 zip 格式的数据 有内置的 postgres 命令用于打开 zi
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 即使删除了某些行,使用种子值进行随机排序也会再次返回相同的集合吗?

    我正在编写一个分页 API 通过设置随机种子值来给出随机结果 除非用户想要洗牌结果 否则结果将是相同的 但如果用户想要洗牌 我将重新创建种子值 以便它将返回一组不同的记录 我的问题是 如果我从数据库中删除一条记录 即使种子相同 由于元素长度

随机推荐

  • 优质全套Spring全套教程

    hello 我是小索奇 这里把Spring全套笔记分享出来哈 便于大家查看 一起加油 Spring 1 Spring简介 1 1 Spring概述 官网地址 Spring Home Spring 是最受欢迎的企业级 Java 应用程序开发框
  • 学习区分dB、dBm、dBuV、dBi

    dB 对于分贝的概念 很多朋友最早接触这个概念 是用 分贝 评估声音的大小 声音的大小用分贝 dB 表示 是一种对数单位 用来描述声音的强度或功率比例 如果P是我们需要测试的声压级或声功率级 P0是参考值 通常取为标准听觉阈限的声压级 X
  • 最强Pose模型RTMO开源 | 基于YOLO架构再设计,9MB+9ms性能完爆YOLO-Pose

    实时多人在图像中的姿态估计面临着在速度和精度之间实现平衡的重大挑战 尽管两阶段的上下文方法在图像中人数增加时会减慢速度 但现有的单阶段方法往往无法同时实现高精度和实时性能 本文介绍了RTMO 这是一个单阶段姿态估计框架 通过在YOLO架构中
  • 腾讯技术工程总结-主流消息队列你了解哪些?

    文章参考 腾讯技术工程 关于消息队列的知识总结 主流消息队列你了解哪些 消息队列的发展历程 2003 年至今有很多优秀的消息队列诞生 如 kafka 阿里自研的 rocketmq 以及后起之秀 pulsar 消息队列在刚出现所需要解决的问题
  • 时序预测 | Python实现CNN-LSTM电力需求预测

    时序预测 Python实现CNN LSTM电力需求预测 目录 时序预测 Python实现CNN LSTM电力需求预测 预测效果 基本描述 程序设计 参考资料
  • 优质全套SpringMVC教程

    三 SpringMVC 在SSM整合中 MyBatis担任的角色是持久层框架 它能帮我们访问数据库 操作数据库 Spring能利用它的两大核心IOC AOP整合框架 1 SpringMVC简介 1 1 什么是MVC MVC 是一种软件架构的
  • MySQL数据库 DML

    目录 DML概述 添加数据 修改数据 删除数据 DML概述 DML英文全称是Data Manipulation Language 数据操作语言 用来对数据库中表的数据记录进行增 删 改操作 添加数据 工NSERT 修改数据 UPDATE 删
  • 【毕设项目】视频人像背景替换器-抠出视频中人像到动态背景中去

    描述 环境 简而言之 使用人体语义分割实现抠图替换动态背景 首先毫无疑问就是环境配置 附上链接 开始使用 飞桨 源于产业实践的开源深度学习平台 paddlepaddle org cn https www paddlepaddle org c
  • 第二百一十回

    文章目录 1 概念介绍 2 实现方法 2 1 整体思路 2 2 具体步骤 3 代码与效果 3 1 示例代码 3 2 运行效果 4 内容总结
  • MySQL数据库 DCL

    目录 DCL概述 管理用户 权限控制 DCL概述 DCL英文全称是 Data Control Language 数据控制语言 用来管理数据库用户 控制数据库的访 问权限 管理用户 1 查询用户 select from mysql user
  • 【算法刷题】每日打卡——动态规划(1)

    背包问题 例题一 有 N件物品和一个容量是 V 的背包 每件物品只能使用一次 第 i件物品的体积是 vi 价值是 wi 求解将哪些物品装入背包 可使这些物品的总体积不超过背包容量 且总价值最大 输出最大价值 输入格式 第一行两个整数 N V
  • 机器学习 高维数据可视化:t-SNE 降维算法

    作者简介 人工智能专业本科在读 喜欢计算机与编程 写博客记录自己的学习历程 个人主页 小嗷犬的个人主页 个人网站 小嗷犬的技术小站 个人信条 为天地立心 为生民立命 为往圣继绝学 为万世开太平 本文目录 t SNE 简介 sklearn 中
  • 【ortools源码系列11】 time_limit h头文件功能和源码分析

    ortools源码系列 time limit h头文件功能和源码分析 文章目录 ortools源码系列 time limit h头文件功能和源码分析 TimeLimit 功能 TimeLimit 源码 SharedTimeLimit 功能
  • [Verilog] Verilog 基本格式和语法

    主页 元存储博客 全文 3000 字 文章目录 1 声明格式 1 1 模块声明 1 2 输入输出声明 1 3 内部信号声明 1 4 内部逻辑声明
  • 3、如何在 Python 中注释代码?

    注释是编程中的重要元素 它们用于解释代码的目的 功能以及实现方式 在Python中 注释是一种文本 用于提高代码的可读性 并帮助其他开发者理解你的代码 在本文中 我将详细解答如何在Python中注释代码 包括单行注释 多行注释 注释的最佳实
  • 1、什么是 Python?

    Python是一门高级编程语言 它是一种通用 解释型 面向对象的语言 以其简洁 清晰的语法和强大的功能而备受程序员欢迎 在学习Python之前 让我们一起来了解一下这门语言的基本特性和应用领域 Python的起源和命名 Python的故事始
  • 基于java的聊天系统(源代码+讲解视频+数据库)

    毕业论文题目 基于Java的聊天系统设计与实现 摘要 本论文主要探讨了基于Java的聊天系统的设计与实现 通过对现有聊天系统的研究 我们提出了一种基于Java的聊天系统架构 该架构包括用户管理 消息传输 消息存储和消息显示等模块 通过使用J
  • 基于java的宿舍管理系统(源代码+讲解视频+数据库)

    摘要 本文设计与实现了一套基于Java的宿舍管理系统 通过研究现有宿舍管理方式存在的问题和需求分析 本文利用Java语言及相关技术 设计了系统的总体架构和功能模块 并实现了系统的关键功能 包括学生管理 宿舍信息管理 报修管理 楼层巡查管理等
  • LeetCode326. Power of Three

    文章目录 一 题目 二 题解 一 题目 Given an integer n return true if it is a power of three Otherwise return false An integer n is a po
  • 某60内网渗透之frp实战指南2

    内网渗透 文章目录 内网渗透 frp实战指南2 实验目的 实验环境 实验工具 实验原理 实验内容 frp实战指南2 实验步骤 1 确定基本信息 2 查看frp工