红队实战屏幕监控利器:RemoteWebScreen

admin 2024年6月24日23:09:04评论11 views字数 2309阅读7分41秒阅读模式

p1d3er@深蓝攻防实验室

项目概述

攻防演练实战场景中当我们想长时间监控运维PC,但是碍于向日葵、Todesk的局限性和隐蔽性,Cobalt Strike截图又怕错过关键操作,那么今天他来了——RemoteWebScreen。本项目是一个远程控制应用,使用 Golang 开发,允许用户通过 Web 界面远程控制和屏幕监控其他计算机。主要功能包括屏幕共享、鼠标和键盘控制以及键盘记录。

目录结构

RemoteWebScreen/
├── server/                 # 服务器端代码
│   ├── keymouevent.go      # WebSocket和鼠标和键盘通信逻辑
│   ├── screen.go           # 截图
│   └── screenshotHandler.go# 屏幕共享逻辑
│
├── certs/                  # 证书
│   ├── cert.pem            # cert
│   └── key.pem             # key
│
├── static/                 # 前端静态文件
│   └── pako.min.js         # 主HTML文件
│
├── keyboard/               # 键盘记录相关模块
│   ├── call_back.go        # 鼠标键盘回调函数
│   ├── dump.go             # 保存键盘记录以及剪切板截图操作
│   ├── Keyboard.go         # 启动键盘记录
│   └── misc.go             # 相关函数
│
├── win32/                  # 键盘记录相关配置
│   ├── define.go           # 键盘对应表
│   └── win32.go            # hook设置
│
├── main.go                 # 应用程序的主入口点
│
├── index.html              # 前端代码
│
└── go.mod                  # Go模块定义

主要组件

  1. 1. WebSocket 通信:使用 github.com/gorilla/websocket 包实现服务端和客户端之间的实时通信。
  2. 2. 屏幕控制:使用 github.com/go-vgo/robotgo 包进行鼠标键盘控制。
  3. 3. 屏幕捕获"github.com/kbinani/screenshot"包进行屏幕捕获
  4. 4. 证书加密:使用httpswss方式进行传输。
  5. 5. 前端界面:HTML/CSS/JavaScript 实现,用于显示远程屏幕和发送控制命令。

扩展屏鼠标移动算法

主屏分辨率<扩展屏的分辨率{
    扩展屏的分辨率 := bounds.Dx() * (主屏分辨率 / (screen.W-bounds.Min.X))
}else{
    扩展屏的分辨率 := 主屏分辨率 * bounds.Min.X+bounds.Dx() / screen.W
}

工具使用

注:启动工具时,关闭一下防火墙。此工具基于正向连接,所以会在被控端启动端口。

Windows server 2003及之前版本:
netsh firewall set opmode disable  #关闭  
netsh firewall set opmode enable   #开启
Windows server 2003之后版本:
netsh advfirewall set allprofiles state off  #关闭    
netsh advfirewall set allprofiles state on   #开启
RemoteWebScreen.exe start  #默认443
RemoteWebScreen.exe start [端口号]
https://IP:端口号/:端口号         #屏幕控制
https://IP:端口号/:端口号log      #键盘记录

屏幕控制

注:非管理员运行时启动任务管理器,鼠标键盘控制会被禁止。

访问https://IP:端口号/:端口号。访问需要安装证书

红队实战屏幕监控利器:RemoteWebScreen

以上三处分别为,切换到扩展屏鼠标键盘控制画质修改

退出杀软

可以直接通过模拟鼠标退出火绒。其他杀软未测试,针对360因为360有HOOK鼠标键盘操作所以不建议使用鼠标键盘控制,因为会失效。

红队实战屏幕监控利器:RemoteWebScreen

键盘记录

注:项目结束时请清理生成的文件

访问https://IP:端口号/:端口号log

当有键盘记录时会生成记录文件到以下目录

%tmp%/screen_log/templog.tmp        #注:键盘记录
%tmp%/screen/2006_01_02_15_04_05_04.png     #注:截屏记录

红队实战屏幕监控利器:RemoteWebScreen

通过上图可以记录到输入的账号密码,同时当用户打开密码本复制密码时,也能获取Ctrl+c/v,同时当用户进行复制和粘贴操作时会截一张图。

红队实战屏幕监控利器:RemoteWebScreen

安装证书

双击安装证书

RemoteWebScreen.p12  #密码:RemoteWebScreen

注:小技巧,缩放浏览器也可以调节画面清晰度。欢迎issues

GIthub项目地址:https://github.com/p1d3er/RemoteWebScreen

仅供技术研究使用,请勿用于非法用途,否则后果作者概不负责

原文始发于微信公众号(安全白白):红队实战屏幕监控利器RemoteWebScreen

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月24日23:09:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队实战屏幕监控利器:RemoteWebScreenhttps://cn-sec.com/archives/2880476.html

发表评论

匿名网友 填写信息