超详细frp配置实现绕过防火墙内网渗透

news/2024/5/18 12:36:09 标签: udp, 网络, tcp/ip, ssh, 网络安全

目录

1.前言

2.准备工作(以我自己复现成功举例)

ssh%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F-toc" style="margin-left:0px;">3.基于frp的ssh内网穿透

3.1服务器部署

 3.2客户端部署

3.3远程连接内网电脑

4.绕过防火墙内网穿透

4.1开启防火墙

​5.基于frp的web内网穿透服务

6.注意事项


1.前言

我们知道公司电脑在一个局域网,家里电脑在一个局域网内,家里的电脑我们可以认为是在内网当中,我们一般是访问不到内网的主机的。但是处于内网或者是防火墙后面的机器,对外网提供tcp和udp服务,所以我们可以使用frp实现用公司电脑远程登录家里电脑。frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

如果我们在攻击时候拿到内网一台主机,我们可以使用frp绕过防火墙进行内网渗透,进而攻击其他主机。因为内网的机子是可以互相访问的。

2.准备工作(以我自己复现成功举例)

需要一个公网服务器(我是自己买的阿里云)

需要一个内网机器(这里我用的是我物理机安装的虚拟机linux系统,桥接模式的)

frp下载地址https://github.com/fatedier/frp/releases

ssh%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F">3.基于frp的ssh内网穿透

3.1服务器部署

1.直接登录我的服务器使用下载命令(截至我写的日期,最新版本是0.39.1),因为我的服务器是linux所以下载inux对应l版本,window下载window对应版本,

wget https://github.com/fatedier/frp/releases/download/v0.39.0/frp_0.39.0_linux_amd64.tar.gz

2.下载完成,进行解压,

tar -zxvf  frp_0.39.0_linux_amd64.tar.gz

3.解压完成进入目录会看到以下几个文件,我们只需要关注frps有关的文件,因为s代表servers,  frpc有关文件可以删除也可以不用管它。frps是运行在服务器端,frpc是运行在客户端,也就是我们的内网的一台电脑,如果只是通过ssh访问内网电脑frps.ini文件不需要配置

4.将frps运行起来,运行代码如下,可以看到成功运行,这时候就放着不动,不要关闭终端。

./frps -c ./frps.ini

 

 3.2客户端部署

1.我的客户端是我的一台虚拟机,和物理机使用桥接模式连接,使用同样下载命令,也是同样命令解压,这时候我们需要配置frpc.ini文件

vim frpc.ini

[common]
server_addr = 11x.x.x.x#你的服务器IP地址,我自己就不放出来了
server_port = 7000 # 之前frps.ini里面的端口,

[ssh]
type = tcp
local_ip = 192.168.43.141#虚拟机的IP地址(你想渗透的那天电脑IP地址)
local_port = 22#因为我们是希望通过ssh服务连接,所以端口是22 这是linux 如果是window则改成3389
#本地需要替换的端口
remote_port = 6000 #这是我们内网的电脑将22端口映射到服务器端6000端口。
#替换成6000端口

2.运行frpc,命令如下

./frpc -c ./frpc.ini

3.3远程连接内网电脑

这时候我们就来远程控制这台家里的电脑,我让我家里人打开我家里电脑运行frpc,我在外面进行连接,就远程连接上了可以进行命令操作。连接命令如下:

ssh root@11x.x.x.x -p 6000#服务器端的IP地址

4.绕过防火墙内网穿透

刚才我们在没有开启防火墙的状态利用frp远程连接了处于内网的电脑, 接下来是当我们开启防火墙是否还能进行连接。那这个实验就比较简单了。

4.1开启防火墙

1.首先我们来到虚拟机使用命令开启防火墙,那么我把有关防火墙命令给到大家。

1.	检查防火墙的状态(默认 inactive) # ufw status
2.	防火墙版本 # ufw version
3.	启动ufw防火墙 # ufw enable
4.	关闭ufw防火墙 # ufw disable
5.	默认禁止访问所有 # ufw default deny
6.	
7.	开放22/TCP端口 # ufw allow 22/tcp
8.	开放53端口(tcp/udp) # ufw allow 53
9.	禁止外部访问 # ufw deny 3306
10.	删除已经添加过的规则 # ufw delete allow 22
11.	允许此IP访问所有的本机端口 # ufw allow from 192.168.1.100
12.	删除上面的规则 # ufw delete allow from 192.168.1.100
13.	
14.	查看规则,显示行号 # ufw status numbered
15.	删除第三条规则 # ufw delete 3
16.	关闭ufw # ufw disable
17.	禁止对8888端口的访问 # ufw deny 8888
18.	
19.	打开来自192.168.0.1的tcp请求的22端口 # ufw allow proto tcp from 192.168.0.1 to any port 2

2.可以看到我的虚拟机防火墙处于开启状态,这时候我们在物理机cmd里面使用ssh去连接发现连接不上

3. 当我关闭防火墙的时候,物理机去连的时候是可以远程登录的。接下来我们关闭防火墙,使用frp进行连接。

 4.我们在服务器向之前一样运行frps ,在虚拟机开启防火墙的状态下运行frpc,在物理机进行连接,但是注意的是这个时候连接时候需要使用你服务器地址加端口号进行连接。我之前虚拟机IP地址连接是给你看,开启防火墙我的本地物理机已经连不上了模拟一下。可以看到成功绕过防火墙进行远程连接。

 

5.基于frp的web内网穿透服务

上面都是基于ssh的远程连接,下面我们是基于web服务,如果内网的主机提供web服务,我们可以利用frp进一步渗透。

1.将frps.ini配置文件改成下面

[common]
bind_port = 7000  
vhost_http_port = 801

2.将frpc.ini配置文件改成如下,custom_domains这个写你服务器域名或者IP地址。

 3.开启80端口

 4.分别运行frps和frpc,在浏览器通过服务器IP/域名+端口就可以访问内网web服务

6.注意事项

1.服务器要开启7000端口

2.客户端开启ssh服务也就是22端口和80端口

3.如果你的ssh服务出现拒绝连接可以参考以下连接解决kali中开启ssh连接功能_不知其所以然的博客-CSDN博客_kali ssh连接

4.客户端不需要服务端与保持环境一致,可以服务器是Linux,客户端电脑是Windows

5.如果客户端是windows,frpc.ini配置文件需要和linux有点不一样,改成如下

[common]
server_addr = 11x.x.x.x#你的服务器IP地址,我自己就不放出来了
server_port = 7000 # 之前frps.ini里面的端口,

[rdp]
type = tcp
local_ip = 192.168.43.141#虚拟机的IP地址(你想渗透的那天电脑IP地址)
local_port = 3389#因为我们是希望通过ssh服务连接,所以端口是22 这是linux 如果是window则改成3389
#本地需要替换的端口
remote_port = 6000 #这是我们内网的电脑将22端口映射到服务器端6000端口。
#替换成6000端口

运行命令如下

frpc.exe -c frpc.ini

6.ssh远程连接时候的需要输入用户密码,那个是客户端电脑的用户和用户密码。


http://www.niftyadmin.cn/n/1804033.html

相关文章

log4j2漏洞原理和漏洞环境搭建复现

目录 1.背景 1.1影响版本 2.漏洞原理 2.1JNDI是什么 2.2LDAP是什么 2.3JNDI注入原因 2.4 log4j2是什么 3.漏洞复现 3.1准备工作 3.1.1准备恶意代码 3.1.2将恶意代码放到网站目录下 3.1.3 LDAP服务器端 3.1.4客户端搭建 3.1.5 执行代码 4.注意事项 1.背景 部分资…

PMP练习题Day3笔记

题31 一个复杂项目的项目经理目前正在规划风险响应活动。作为风险管理方面的专家,项目经理考虑选择风险转移方案。 风险转移的主要影响是什么? A. 项目经理不再负责项目成果 B. 涉及到为承担风险的一方支付额外费用 C. 涉及向承担风险的一方转移项目…

洛谷P4241 采摘毒瘤

传送门 完了我连背包都不会了…… 考虑暴力,先枚举最小的数是哪个,设大小为$d_i$,个数为$k_i$,所有比它小的数的总和是$sum$,然后把所有比它小的全都装进背包,它以及比他大的做一个多重背包,那么…

Moonlight Shadow

歌词 Moonlight Shadow 月光幽灵 -- Dana Winner 1. The last that ever she saw him 那是她今生最后一次见到他2. carried away by a moonlight shadow 他被一个月光幽灵给掳走了3. He passed on worried and warning 他走时焦虑不安并发出警告4. carried away by a moonlight…

vulhub靶机Billu_b0x

文章目录第一部分 靶机说明靶机地址靶机说明目标环境搭建第二部分 信息收集第一步 主机扫描第二步 端口扫描第三步 访问80端口第三部分 漏洞查找和文件包含利用漏洞挖掘思路第一步 扫描目录第二步 访问 /add第三步 访问test第四步 尝试文件包含第五步 使用post方法读取文件&…

最简单的uwsgi+nginx配置多个django站点

1. nginx.conf http{ server { listen 80; server_name www.web1.com ....... location / { uwsgi_pass 127.0.0.1:8000; ....... } } server { listen 80; server_name www.web2com ....... location / { uwsgi_pass 127.0.0.1:8001; ....... } } } nginx配置文…

Redis未授权漏洞复现及利用(window,linux)

目录 1.了解redis 2.redis漏洞原理 3.redis漏洞复现 3.1 安装redis 3.1.1 Linux安装redis 3.1.2 windows安装redis 4.redis漏洞利用 4.1利用redis漏洞写webshell 4.1.1利用前提 4.1.2上传webshell 4.2利用redis漏洞ssh密钥连接 4.2.1 ssh密钥连接 4.2.2 利用前提 …

适配器模式--想象一下转换插头

理解适配器模式之前,可以先来看一下转换插头,两者的思想其实是一样的 就是上图中的这个样子,当你出国旅行的时候,可能会用到这样一个东西,你的笔记本电脑直接插到国外的插座上是插不进去的,需要用一个转换插头,先让转换插头插到插座上,然后你的笔记本电脑插到转换插头上,这样就…