banner
Hi my new friend!

局域网远程控制一站式解决方案

Scroll down

有点麻烦的非局域网远程桌面方法:开源项目frp

发展历程

  1. 在内网环境中出门不想要带电脑,希望能够免费实现远程控制
  2. 离开内网环境还希望使用远程控制
  3. 离开内网环境仍然希望使用内网资源,但是同时用不想使用官方的VPN,希望自建隧道
  4. 管理登录信息,做好未授权登录溯源准备

能够自己控制的外网远程桌面

frp配置

作为go语言编码的程序,frp适用于所有平台,在本次案例使用中,将主要使用tcp和stcp,官方参考文档

frp是一个内外穿透的解决方案,用来对抗大内网环境下多层Nat不同环境下的设备无法直接通信的的问题,实现原理就是通过内网设备不断向一个具有公网IP的服务器发送数据来保持连接,当需要内网穿透的时候,就把内网的某个特定端口0数据发送到该服务器的特定端口上1,由该台服务器进行转发到另一个特定端口2;而当特定端口2收到数据后,就会原封不动的进行转发到内网设备的特定端口0上

模式区别

  1. TCP:顾名思义,就是代理内网的端口数据传输层都是使用tcp,例如本文中提到的对于VNC,RDP都是使用了tcp进行传输。而下文出现的http模式本质也是在传输层使用了http,所以对于需要穿透多个http服务,也可以使用tcp模式
  2. STCP:就是给tcp数据包进行加密,就要求在内网穿透的两台设备:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。这样可以在一定程度上保证信息传递的安全性,然而由于是静态对称密钥并且多层NAT中转服务器不可能被全部信任,传输的信息也并不是绝对安全。而且由于加密解密,可能会出现卡顿的情况。
  3. UDP:穿透端口的服务使用udp
  4. SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署
  5. HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
  6. HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
  7. XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。但实际上在多层NAT的国内环境下,该模式的使用条件严重受限
  8. XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。

配置文档

  1. Server

    1
    2
    3
    4
    5
    6
    7
    8
    [common]
    dashboard_user=admin
    dashboard_pwd=admin123
    dashboard_port=7777
    bind_port=7778
    bind_addr=0.0.0.0
    dashboard_addr=0.0.0.0
    token=aaabbbbccc
  2. Client

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     [common]
    server_addr = 10.159.103.181
    server_port = 7778
    token=aaabbbbccc

    [proxy2]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 50050
    remote_port = 50050

启动命令

对于个平台下的frp都需要使用命令行进行启动:应用 + 参数 + 配置文档

  1. Linux
    1
    2
    ./frpc -c ./frpc.toml
    nohup ./frps -c ./frps.ini > test.log 2>&1 & #服务端使用了绝对路径需要保存日志,>>输出到test.log
  2. Windows
    1
    .\frpc -c .\frpc.toml

内网远程桌面

本文使用了VNC和RDP进行实现远程桌面
选择VNC服务的时候使用了VNC server当然tigerVNC也不愧为一个好选择,本文只介绍VNC server

Windows实现免休眠

系统免休眠

  1. win + r输入control打开控制面板,切换路径:控制面板\硬件和声音
    控制面板\硬件和声音

  2. 编辑电源选项

    ​ 更改计算机睡眠时间,设置为插电状态下永不熄屏

  3. 切换路径:控制面板\硬件和声音\电源选项\系统设置 ,在其中关闭启动快速启动

    控制面板\硬件和声音\电源选项\系统设置

  4. 可以进一步设置,合上盖子后不休眠,设置操作为不进行任何操作

    1. 就可以实现合上盖子之后仍然使用远程桌面。

    2. 然而实际上合上盖子之后会认为屏幕停止工作而无法使用vnc,所以需要购买显卡欺骗器或者是安装驱动实现一个虚拟屏幕的作用。

    3. 我本人更加推荐显卡欺骗器,主要是因为功耗的原因,当然具体的功耗差异也并没有下功夫实际去测量过

    4. 这两种方法使用之后使用sunshine进行串流使用其他设备当副屏时也是一个很好的选择。

网卡免休眠

  1. win + r 呼出运行,输入devmgmt.msc打开设备管理器
  2. 网络适配器中找到对应网卡,打开属性
  3. 电源管理标签中取消允许计算机关闭此设备以节约电源
  4. 但是默认并不能找到这个标签,打开cmd输入以下命令即可出现该页面,如何执行2-3
    1
    reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0

realVNC服务端下载:

  1. 官方网址
  2. [学习者测试版本私链下载](链接: https://pan.baidu.com/s/1C3R0gfQVsw75ECwiwvGhqw 提取码: 4svv 复制这段内容后打开百度网盘手机App,操作更方便哦)
    激活码:FBV9V-7Z3V9-MED3U-47SEU-85T3A

VNCViewer下载

作为远程访问软件,VNCViewer支持远程控制所有使用VNC服务的设备

  1. 官网下载
  1. 安卓端:GooglePlay下载
  2. Windows端:私链下载:[①](链接: https://pan.baidu.com/s/12vct5MEDoBORnaU26cl1DQ 提取码: vcat 复制这段内容后打开百度网盘手机App,操作更方便哦),[②](链接: https://pan.baidu.com/s/1wgyn-e4j9dQhC4ed9MtfTg 提取码: 24fe 复制这段内容后打开百度网盘手机App,操作更方便哦)
  3. ios端:AppStore下载

RDP实现

实现条件

Windows专业版

打开指南:

设置 - 系统 - 远程桌面

若是非专业版:
  • 按照提示正常进入商店页面升级Windows版本选择“开始”>“设置”>“系统”>“激活”。
  • 在“激活”页面顶部,可以看到你的版本:家庭版或专业版。 你还将在“激活状态”下看到是否已激活。
  • 选择使用产品密钥进行升级,百度参考:
突发情况解决:

对于Windows的某些版本,可能出现密钥验证通过但是无法激活

  1. 断网激活:
    在最后的激活步骤的时候关闭网络,尝试离线激活,但是如果重启后显示为未激活的专业版则需要见2
  2. 使用代码进行激活:
    新建一个文本文档,粘贴以下代码并且填入专业版密钥后修改文件格式为.bat,双击运行
    1
    2
    3
    slmgr /ipk <粘贴密钥>
    slmgr /skms kms.03k.org
    slmgr /ato
    会出现小窗页面,一路确定即可

启动RDP

在设置中搜索远程桌面并且打开

远程桌面

异常情况无法正常登录

有可能是登录了微软账户导致本地权限不足,可以在设置->远程桌面->远程桌面用户 中添加权限
远程桌面

安全解决情况

端口修改

各类扫描工具中的快速扫描都会对于这些端口进行着重扫描,若是想要避开扫描工具的全网段快速扫描行为,就务必要对端口进行修改建议端口修改范围为:10000 - 65536,并且应该尽量避开大整数的端口

  1. 修改端口后需要手动开放防火墙端口
    设置 - 隐私和安全中心 - Windows安全中心 - 打开Windows安全中心 - 防火墙和网络程序保护

防火墙和网络程序保护

打开高级设置

高级设置

  • 编辑出入站规则,添加对应应用程序和希望自定义的端口

  • 在以下的修改端口操作完成后,想用访问设备,由于不是默认端口,需要手动指定端口,因此在输入IP地址的时候需要手动添加端口,例如IP为127.0.0.1,端口为13389则

    1
    127.0.0.1:13389
  1. VNC的默认端口为5900,在options - Connections - Port中进行修改
    VNC_port_edit
  2. RDP的默认端口为3389
  • win + r输入regedit打开注册表
  • 依次在注册表左侧找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP-Tcp
  • 右侧找到Portnumber,默认端口为3389

NoloseWind

  • 双击打开,用十进制修改为目标端口

修改端口

登录日志查看

VNC Server

win+r输入eventvwr.msc或者win搜索事件,进入windwos事件查看器

导航到Windows 日志 → Application(应用程序日志)使用功能: 查找 -> VNC Server

image-20250418100204115

发现对应的登录事件ID是 256

image-20250418100233289

筛选当前日志

image-20250418100305414

RDP 登录日志

使用win+r打开运行键入eventvwr.msc打开事件查看器

导航到:应用程序和服务日志 --> Microsoft --> Windows --> TerminalServices- RemoteConnectionManager,右键单击Operational并选择筛选当前日志

远程事件id: 1149, 其他同上

其他文章
cover
pikachu_rce
  • 25/03/09
  • 00:00
  • 打靶日记
目录导航 置顶
  1. 1. 发展历程
  2. 2. 能够自己控制的外网远程桌面
    1. 2.1. frp配置
    2. 2.2. 模式区别
    3. 2.3. 配置文档
    4. 2.4. 启动命令
  3. 3. 内网远程桌面
    1. 3.1. Windows实现免休眠
      1. 3.1.1. 系统免休眠
      2. 3.1.2. 网卡免休眠
    2. 3.2. realVNC服务端下载:
    3. 3.3. VNCViewer下载
    4. 3.4. RDP实现
      1. 3.4.1. 实现条件
        1. 3.4.1.1. 打开指南:
        2. 3.4.1.2. 若是非专业版:
        3. 3.4.1.3. 突发情况解决:
      2. 3.4.2. 启动RDP
      3. 3.4.3. 异常情况无法正常登录
  4. 4. 安全解决情况
    1. 4.1. 端口修改
  5. 5. 登录日志查看
    1. 5.1. VNC Server
    2. 5.2. RDP 登录日志
请输入关键词进行搜索