DuplexPipe二三事(五)——来自内网的呼唤

2023-11-16

穿越防火墙

你是否曾经尝试过去连接一台远程计算机,却因为被防火墙拦截或路由器没有转发而造成无法通信?这是主动式连接的一个弊端:它依赖服务器的状态,而对服务器有生杀大权的只有管理员。如果能让服务器主动尝试连接我们的计算机,那就没问题了!因为防火墙、路由等一般不会过滤向外的连接(反弹式木马就是利用这一原理)。

但以往的服务端程序都是采用监听本地端口的方式(比如 Windows 远程桌面程序监听本地 3389 端口),我们需要将它的连接方式改成主动连接外部网络的方式。我想你也一定要将想到(如果你看过《DuplexPipe二三事(四)》),用 DuplexPipe 来转换它的连接方式!

反弹式远程桌面

在此以 Windows 远程桌面为例,演示如何用一个正向连接的程序实现反向连接。本次演示的环境:

  1. 主机A(客户端):处于外网,IP 地址为 60.180.*.*。系统环境为 Vista 家庭版,自带远程桌面连接客户端;
  2. 主机B(服务端):处于内网。系统环境为 Win XP SP2,并开启了远程桌面服务。

具体操作步骤如下:

一、将客户端的“连接式”转换为“监听式”。

打开命令提示符,执行:
java -jar DuplexPipe.jar -l 1234 -l 3389

 

二、将服务器端“监听式”转换为“连接式”,并连接客户端监听的 1234 端口。

打开命令提示符,执行:
java -jar DuplexPipe.jar -c 60.180.*.* 1234 -c localhost 3389

 

三、启动客户端上的远程桌面连接程序,连接本地的 3389 (默认)端口,即可连接成功!

连接成功后:

总结

如果你能理解上面的操作,就可以照样画葫芦去连接任何其他程序!我在前面提到过,DuplexPipe 目前还有待完善,那它以后还会添加些什么功能?会不会发展成为一个反弹式木马?请看《DuplexPipe 二三事(六)》。


版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“redraiment”和主站点地址,方便其他朋友提问和指正。

联系方式

我的邮箱,欢迎来信(redraiment@gmail.com
我的Blogger(子清行):http://redraiment.blogspot.com/
我的Google Sites(子清行):https://sites.google.com/site/redraiment
我的CSDN博客(梦婷轩):http://blog.csdn.net/redraiment
我的百度空间(梦婷轩):http://hi.baidu.com/redraiment

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DuplexPipe二三事(五)——来自内网的呼唤 的相关文章

  • 阴影空间示例

    EDIT 我接受了下面的答案 并添加了我自己的代码的最终修订版 希望它向人们展示影子空间分配的实际示例 而不是更多的文字 编辑 2 我还设法在 YouTube 视频 所有内容 的注释中找到了一个调用约定 PDF 的链接 其中有一些关于 Li
  • 如何安全地将对象(尤其是 STL 对象)传入和传出 DLL?

    如何将类对象 尤其是 STL 对象 传入和传出 C DLL 我的应用程序必须以 DLL 文件的形式与第三方插件交互 并且我无法控制这些插件是使用什么编译器构建的 我知道 STL 对象没有保证的 ABI 并且我担心这会导致我的应用程序不稳定
  • 如何追踪手柄泄漏?

    在我的一个应用程序中 我观察到句柄数量不断增加 在不使用应用程序的情况下 该数字大约每秒增加一次 因此后台处理代码的某些部分一定存在句柄泄漏 我如何追踪此类泄漏 有什么工具可以帮助解决这个问题吗 跟踪句柄泄漏时要寻找哪些模式 导致手柄泄漏的
  • 正确配置JDK环境变量后仍然找不到java命令

    我在 Windows 虚拟机启动时安装 JDK 使用 cloudinit 用户数据将 PowerShell 脚本传输到 Windows 计算机 然后运行该脚本来安装 JDK softwares Get ItemProperty HKLM S
  • 如何以编程方式找出哪台计算机是 Windows 中的域控制器?

    我正在寻找一种方法来确定客户端计算机连接到的给定域的域控制器的名称 IP 地址 在我们公司 我们有很多用于测试的小型网络 其中大多数都有自己的小域 作为示例 其中一个域被命名为 TESTLAB 我有一个 Windows XP 工作站 它是
  • 如何修复在 Windows 终端中启动“powershell.exe”时出现的错误 0x800700c1?

    最近我在 Windows 终端中遇到以下错误 error 0x800700c1 when launching C Users Dry C Desktop AppData Local Microsoft WindowsApps Microso
  • 尝试读取转储时“无法加载符号”

    我的一个应用程序有时会在 Win XP 计算机上导致 BSOD 为了了解更多信息 我加载了生成的 dmp 文件 来自 C Windows Minidump 但在执行此操作时在大部分读数中收到此消息 Symbols can not be lo
  • win32 API 和 .NET 框架之间的选择

    我必须开发一个适用于 Windows 的应用程序 该应用程序将能够通过网络摄像头识别手势来控制鼠标 我将使用 vc 2008 进行开发 但我很困惑是使用 NET 框架还是核心 win32 API 性能对于我的应用程序非常重要 根据 Ivor
  • 在 Windows 上使用 docker compose 进行卷绑定

    我最近在 Windows 10 上升级了 Docker Toolbox 现在我的卷挂载不再起作用 我已经尝试了一切 这是当前的挂载路径 volumes C Users Joey Desktop backend var www html 我收
  • 如何在 PowerShell 中比较本地文件与 FTP 服务器上的文件的年龄并下载远程复制是否较新

    我正在编写一个 PowerShell 脚本 以帮助我为工作设置新电脑 希望这不仅仅是我一个人会使用 所以我正在尝试考虑所有事情 我在 FTP 服务器上保存了离线安装程序 java flash reader 等 如果本地副本尚未保存在创建的
  • 在 powershell 脚本中以不同用户身份本地运行代码块

    这是非常简单的事情 但我就是无法让任何东西发挥作用 我想在特定用户下的 powershell 脚本中运行块代码 关键字是locally我正在使用 powershell 2 0 Invoke Command 似乎需要远程主机 我运行以下命令
  • 如何使用 Python 与窗口的 GUI 交互?

    假设您想打开myapp exe 打开第三个菜单 然后选择第二个菜单项 即像用户使用键盘或鼠标一样 然后在对话框窗口中选择第二个按钮 pyahk https pyahk readthedocs io en latest and pyautog
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • 在 C# 中使用反射列出枚举中的值

    我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法 我尝试访问的所有类都是 C 的 并且它们都是从 C 类访问的 我用来进行这些调用的代码如下 public void PopulateE
  • subprocess.Popen('start') 失败

    在 python 中运行此命令将导致 WindowsError 指出找不到指定的文件 FAILS import subprocess subprocess Popen start notepad exe 在命令窗口中 它可以工作 start
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • Windows 和 python 3.2 的 Pylint 安装问题

    当我尝试使用 pip 在 Windows 上安装 pylint 时 我遇到了这个问题 我真的不知道它来自哪里 C Python33 Scripts gt pip exe install pylint Downloading unpackin
  • 如何在子 shell 中运行 cmd.exe 批处理文件

    我有一个批处理文件 通常像这样调用 longjob cmd gt result txt 2 gt 1 这工作正常 但脚本在执行过程中更改了目录 将我的 shell 留在该目录中 这很麻烦 有没有办法在子 shell 中运行命令 同时仍然允许
  • Boost + Visual Studio 2010 + Windows 平台 SDK 7.1

    有人可以告诉我 bjam 的命令行开关或其他可以使用新的 Windows Platform SDK 7 1 工具链使用 VS2010 进行 boost 编译的东西吗 您可以在普通的视觉工作室项目中设置该选项 默认值是 v100 是平台 7

随机推荐

  • Linux学习(未完待续。。。)

    安装好ubuntu 并且注册用户成功后 给root设置密码 sudo passwd root 先输入自己的密码 然后输入root的密码 再确认 密码都是不可见的 不是键盘坏了 显示日期格式 date Y m d H M S m month
  • Hyperledger Fabric学习笔记——7.链码安装、实例化、执行

    1 智能合约 执行环境 以太坊虚拟智能合约执行环境EVM fabric执行环境是docker 链码 是应用层和区块链底层的中间点 每一个链码执行环境是一个独立的docker 使用GRPC协议与背书节点通信 只有背书节点才能运行智能合约 链码
  • 如何配置服务器自动监控并报警

    作者 一个懂技术的运营 链接 https www zhihu com question 21073555 answer 106131463 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 如果是初创型公司 机
  • Vue 的forEach和push

    tagTacticsFilter tacticsTag let data let tacticsTagList this tacticsTagList let attrList tacticsTag split attrList forEa
  • 真正的学懂三极管入门篇(经典)

    不要让温床称为埋葬你的坟墓 要有危机意识 忧患意识 要为明天考虑 禁忌 安于现状 不求上进 不懂得学习 不能恰当的处理工作和学习关系 没有把英语放在第一位
  • uniApp中 nvue和vue开发 小结

    最近接手uniapp开发 对遇到的问题进行总结 什么是nvue nvue native vue 原生渲染 为何要用nvue开发 weex 有个很大的问题是它只是一个高性能的渲染器 没有足够的API能力 比如各种push sdk集成 蓝牙等能
  • 电梯调度算法-C++

    1 算法解析 扫描算法 SCAN 又称电梯调度算法 SCAN算法是磁头前进方向上的最短查找时间优先算法 它排除了磁头在盘面局部位置上的往复移动 SCAN算法在很大程度上消除了SSTF算法的不公平性 但仍有利于对中间磁道的请求 电梯调度算法是
  • 【图解】ThreadLocal底层实现原理

    1 ThreadLocal的底层原理图 说明 Thread中有threadLocals成员变量 threadLocal会在threadlocal首次set时进行赋值 这会在非main线程中复现 主线程启动即会进行赋值 ThreadLocal
  • git使用(由浅到深)

    目录流程图 1 分布式版本控制与集中式版本控制 1 1 集中式版本控制 集中式版本控制系统有 CVS和SVN 它们的主要特点是单一的集中管理的服务器 保存所有文件的修订版本 协同开发人员通过客户端连接到这台服务器 取出最新的文件或者提交更新
  • Java面试题及答案整理(2021最新版)

    Java面试题及答案整理 一 Java 基础 1 JDK 和 JRE 有什么区别 2 和 equals 的区别是什么 3 两个对象的 hashCode 相同 则 equals 也一定为 true 对吗 4 final 在 java 中有什么
  • C语言中C89与C99的区别

    1 增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符 它是初始访问指针所指对象的惟一途径 因此只 有借助restrict指针表达式才能访问对象 restrict指针指针主要用做函数变元 或者指向由malloc
  • QT中json与数据转换

    QT中json与数据转换 一 json简介 二 json文件的写入与解析 1 简单的json对象 2 json数组 3 复杂的json对象 三 QT中配置文件应用json实现 1 需求 2 打开工程 3 保存工程 4 新建工程 一 json
  • java无法从静态上下文_ERROR无法从静态上下文中引用非静态变量

    什么是 static 学习过java C 或C的人都应该认识这个关键字 用这个关键字修饰的变量叫做静态变量 有其特殊的作用 在java中static也用来修饰静态方法和静态内部类 静态变量的特点 1 生存周期 静态局部变量的生存周期也是整个
  • 华为华三思科 配置arp IP地址和mac地址绑定

    华为
  • 微信小程序存在的风险_警惕,你的微信小程序可能面临着风险!

    小程序目前在移动互联网领域的流行 它有火 到6月底的数据告诉你 微信微型节目C端用户达到2 8亿 迷你程序达到100万 累计用户数达到6亿 即时访问 不需要下载 成为用户使用小程序的触发点 但在建立生态的小程序 其独特的安全风险也逐渐显示出
  • 四千个厂商默认账号密码 默认登录凭证

    Product Vendor Username Password Zyxel ssh zyfwp PrOw aN fXp APC UPS web apc apc Weblogic web system manager Weblogic we
  • 基于cubemx的stm32HAL库SPI通信写LCD显示屏

    之前学习了如何使用LCD 记录一下 关于spi部分是从野火的资料中截取 也会加入我自己的备注 便于理解 代码部分在后面 请耐心看完 一 SPI协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 Serial Peripheral Inte
  • STM32用SYSTICK实现的系统时钟和微秒级延时函数

    代码耗时法延时难以准确 比较过定时器法在10微秒内误差比较大 下面的代码片段使用SysTick实现系统时钟 以及不影响时钟的高精度微秒级延时 想法是SysTick实现每毫秒递增的系统时钟 而在不影响SysTick连续运行前提下 使用当前计数
  • driver org.postgresql.driver claims to not accept jdbcurl, jdbc:h2:mem:test

    driver org postgresql driver claims to not accept jdbcurl jdbc h2 mem test 背景 项目中使用了h2数据库 不想用h2 把配置改为PostgreSQL 出现此异常 原因
  • DuplexPipe二三事(五)——来自内网的呼唤

    穿越防火墙 你是否曾经尝试过去连接一台远程计算机 却因为被防火墙拦截或路由器没有转发而造成无法通信 这是主动式连接的一个弊端 它依赖服务器的状态 而对服务器有生杀大权的只有管理员 如果能让服务器主动尝试连接我们的计算机 那就没问题了 因为防