ToDesk软件在权限提升中的应用

简介: ToDesk软件在权限提升中的应用

0x01 前言

ToDesk是一款类似向日葵的远程控制软件,但比向日葵、TV和AD更为流畅和稳定,它同样也具备着内网穿透、文件传输、云端同步和流量加密等功能,有绿色精简版和全功能版两个版本。

这里我就不再做过多介绍了,详情可通过ToDesk官网自行了解:https://www.todesk.com

0x02 信息搜集

    操作系统:Windows Server 2008 R2 x64
    软件版本:ToDesk 3.0.1.0(精简版和全功能版)
    精简版默认安装路径:%userprofile%\AppData\Local\ToDesk
    全功能版默认安装路径:C:\Program Files (x86)\ToDesk\
    ToDesk进程名:ToDesk_Lite.exe、ToDesk_Service.exe、ToDesk.exe
    ToDesk服务名:ToDesk_Service
    ToDesk端口号:35600


    0x03 场景1:安装版低权限下的利用

    已经拿到目标主机Webshell,而且还是Administrator管理员权限,但由于存在杀软或WAF拦截了添加管理员用户、3389远程桌面连接、也查杀了我们传的木马和抓明文哈希等工具。

    在前期的信息搜集中发现进程列表中有个ToDesk_Lite.exe进程,这是ToDesk绿色精简版,由于之前有测试过这个,所以知道配置文件路径。

      %userprofile%\AppData\Local\ToDesk

      我们在上图中可以看到有个config.ini配置文件,它存储着ToDesk远程控制软件中的各项设置,包括有显示语言、设备代码、临时密码、开机自启等,全功能版中的常见设置说明可见下表。

      但这精简版的config.ini配置文件中只有显示语言、临时密码、密码更新时间和开机自启。


      目前有两个问题:1. 没有设备代码,2. 密码不能解密,那么要怎么连接呢?

        [ConfigInfo]
        language=936
        tempAuthPassEx=6ca3ab52e01cfd45cbb306f3765b5bfddf0f7a15b7877309443af14ab699b21e22680011ee2******
        updatePassTime=20210529
        autoStart=0


        ① 没有找到设备代码。

        这个我在测试时发现在以下路径中还有一个config.ini配置文件,它存储着本地端口、设备代码和私有数据,一般存在于SysWOW64目录下,默认只有Administrators、SYSTEM具备完全控制权限,所以绿色精简版只有在高权限下才能利用。

          C:\Windows\System32\config\systemprofile\AppData\Local\ToDesk\config.ini
          C:\Windows\SysWOW64\config\systemprofile\AppData\Local\ToDesk\config.ini

          ② 临时密码不能解密。

          这里我们可以将目标主机tempAuthPassEx替换到本机tempAuthPassEx,重新运行ToDesk软件后即可得到他的明文密码;


          或者直接将我们本机tempAuthPassEx替换到目标主机tempAuthPassEx,然后用本机临时密码去连接即可,这种方式需要结束ToDesk进程后重启才会生效,比较被动。

          0x04 场景2:安装版低权限下的利用

          已经拿到目标主机Webshell,但只是一个Users低权限用户,还需要进行权限提升。在前期信息搜集中通过翻找磁盘文件或查看进程发现安装的有ToDesk全功能版。


          我们再用icacls命令来看下ToDesk全功能版的默认安装目录权限如何?这里可以看到ToDesk这款软件的缺陷就是在默认安装状态下就已经具备了Users的完全控制权限。

          ToDesk安装路径下同样有config.ini配置文件,可以看到存储的有设备代码、临时密码、安全密码以及登录用户和密码等重要敏感信息,可参考场景1的常见设置说明表。


          [ConfigInfo]
          localPort=35600
          clientId=636938855
          PrivateData=b0ceea6d978c590e2684627f2394731bced2cf45d6fc92a5208d7a5c9f688ebbb2f840e65e546c2a8968063937156a58fd5f4b4dbfde8ff61f
          language=936
          tempAuthPassEx=beba9584fe8d1ef3082cb4d86a5d0bd0586a3aa4d2ce9af3dca455cacf9e115421cdbfaf8fa8267bac392c4cd7507f2ecc7ab6b9361f
          updatePassTime=20210626
          saveUserPass=1
          autoLogin=1
          user=493***344@qq.com
          passex=cafe2d34f80a85d94f45755df94c5705b55406e89451f1056712bb8b16ecf49bcf2813474158ce4526d2c75928b6516c0315cb339c83fc485d9b34ad
          authPassEx=e760f849eae5ea763d80068c2fda1632f9cabd26828d8bf1112561e62c0ae7e9bcef518eaa989de00716121ed94618c2360ee81bfc87

          我们在上图中可以看到他的ToDesk远控软件已经设置了“临时密码和安全密码都可以使用”,也就是说只需拿tempAuthPassEx或authPassEx在我们本地ToDesk配置文件中替换到tempAuthPassEx,然后重新运行ToDesk软件后即可得到他的明文密码。


          也可以使用ToDesk.exe命令行参数中的-getid获取设备代码,-setpasswd设置安全密码等,但是这种方式需要重启ToDesk,可以再给他设置个开机自启什么的。


          我们还可以在ToDesk的配置文件给他设置个自动更新,然后替换掉安装目录下的ToDeskUpd.exe更新程序来进行被动提权和权限维持。

          只要运行ToDesk就会以SYSTEM权限去执行ToDeskUpd.exe,这样就能得到目标主机SYSTEM权限,越深入好玩的姿势越多,还是自己去研究一下吧。

          注:笔者只是为写这篇文章在本地模拟了两个场景,但大家在实战中如果遇到类似场景时当然也可以用免杀、绕过或其他方式进行测试,条条大路通“罗马”嘛,思路不要过于局限了,根据个人习惯,怎么方便怎么来,请不要做一个杠精!!!


          0x05 注意事项

          千万不要去尝试拷贝user、passex、autoLogin登录他的ToDesk,因为在新设备登录时会提示为第一次登录,并且官方会给注册邮箱或手机号发送一条验证信息

          收到的ToDesk新设备登录授权邮件中详细记录了登录新设备的设备代码、名称、时间、IP地址以及地理位置等信息,必须点击允许以后才可以正常登录,一定注意!!!


          一个小BUG:

          ToDesk有个和向日葵一样的通病,就是在连接上另一台主机后可能会使用不了复制粘贴,或者是存在冲突导致粘贴到对方拷贝的内容等问题。


          向日葵可以按两次Ctrl键后再进行复制粘贴,而ToDesk则需要使用右边的Ctrl键进行复制粘贴。

          相关文章
          |
          缓存 Linux 开发工具
          CentOS 7- 配置阿里镜像源
          阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
          261490 0
          |
          4月前
          |
          人工智能 监控 Shell
          通过 Cursor CLI 使用 GPT-5 的教程
          Cursor CLI 是一款轻量级命令行工具,让开发者在终端中直接调用 GPT-5,实现代码生成、文本处理和快速查询,无需切换环境。它支持 Shell 脚本集成,适用于自动化任务,如代码注释生成、日志分析等。本文详解其安装配置、核心功能与高效使用技巧,助你提升开发效率。
          |
          人工智能 Linux Docker
          一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
          近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
          156414 30
          |
          SQL 人工智能 前端开发
          【深度好文】Web3数据的演变与挑战
          在我们接受变革和不确定性的同时,我们也被挑战着不断拓展可能性的边界。在这个背景下,我们设想一个世界,人工智能、LLM和区块链的结合将孕育一个更加开放和包容的技术领域。
          395 0
          【深度好文】Web3数据的演变与挑战
          |
          缓存 前端开发 JavaScript
          前端优化之路:打包文件拆包、增加哈希值
          前面对项目打包做了优化处理,但是还不够完美,有两点可继续优化。
          |
          Web App开发 JSON 安全
          【漏洞复现】Yapi接口管理平台远程代码执行漏洞
          Yapi接口管理平台远程代码执行漏洞,攻击者可通过特定Payload对目标实施恶意攻击,获取敏感信息,操控服务器指令。
          1674 1
          |
          移动开发 前端开发 JavaScript
          开源软件导航项目, 轻松实现自己的网站导航
          开源软件导航项目, 轻松实现自己的网站导航
          412 2
          |
          存储 IDE Java
          IntelliJ IDEA 安装及配置详细教程
          IntelliJ IDEA 安装及配置详细教程
          1579 0
          |
          缓存 关系型数据库 MySQL
          MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的解决方法
          MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的解决方法
          24439 0