|
ToDesk软件在渗透测试中的应用
之前我也分享过一篇"ToDesk软件在权限提升中的应用",记录的是在权限提升场景下的利用方式。
更多这类第三方远控软件的利用方式可参考之前发的系列文章,有向日葵、AnyDesk、TeamViewer等。
0x01 ToDesk简介
ToDesk是一款类似向日葵的远程控制软件,但比向日葵、TV和AD更为流畅和稳定,它同样具备着内网穿透、文件传输、云端同步和流量加密等功能。
有绿色精简版和全功能版两个版本,支持的系统有:
- <code class="hljs">Winodws/Linux/MacOS/Android/iOS</code>
复制代码
0x02 如何实现命令行静默安装?
全功能版在双击运行、命令行执行时都会出现UAC弹窗和安装界面,这样非常容易被管理员发现,那么有没有办法能够在命令下实现静默安装呢?
编辑
ToDesk文档中看到安装包ToDesk_Setup.exe的/S参数可以实现静默安装,但也会出现UAC弹窗,默认安装在以下目录中,安装完成后自动运行。
- <code class="hljs">C:\Program Files (x86)\ToDesk\</code>
复制代码
编辑
0x03 场景1:解密目标连接密码
运行ToDesk后会在默认安装目录下生成一个config.ini配置文件,存储的有设备代码、临时密码、安全密码以及登录用户和密码等重要敏感信息,但密码都经过ToDesk特有加密算法加密,所以不能通过解密得到明文密码。
- <code>[ConfigInfo]</code><code>localPort=35600</code><code>clientId=391***073</code><code>PrivateData=44492ab4e1ba3a207f0ed6ed08ebaee4688f35a3e4734c69140aabb51fe33ca8a046d8e494200fcdad17759e4aee4333ddaa63ee63289e277b</code><code>language=936</code><code>tempAuthPassEx=8d5e3b8d825e57297ea9ce36aca337cd0b592d54e26f00f311cd42207c2255d1b0a87595efd994d0efb658ce84494fa4814630817478</code><code>updatePassTime=20210701</code><code>authPassEx=874faa02bf500fb26bd91df9dd5af45ba7ed91568253f4cd04d6ca88c91d458707ad0879cd013dc0605ec63a3f60957e346e5a34af6a</code>
复制代码
编辑
既然ToDesk会将我们设置的安全密码进行加密,自然也就有解密了,否则密码将无法显示,所以完全可以利用ToDesk进行解密。当然,有能力的老哥也可以逆向加密算法来写解密程序。
实战测试中只需要找到目标主机ToDesk中的tempAuthPassEx临时密码或authPassEx安全密码,将它们覆盖到我们本地ToDesk中的tempAuthPassEx,重启ToDesk即可得到明文密码。
编辑
0x04 场景2:获取历史连接记录
ToDesk连接一台主机后会在默认安装目录下生成一个json格式文件,在已登录状态和未登录状态的文件命名方式不太一样,但内容基本都差不多。
未登录状态:
- <code class="hljs">C:\Program Files (x86)\ToDesk\userInfo.json</code>
复制代码
已登录状态:
- <code class="hljs">C:\Program Files (x86)\ToDesk\devlist_493***344@qq.com.json</code>
复制代码
编辑
这个文件主要用于存储历史连接记录,只需找到UserId连接ID和PassEx密码,然后利用以上方式将PassEx解密得到明文,最后再用目标主机ToDesk的连接ID和密码连接即可。
- {
- "DeviceInfo" : [
- {
- "Height" : 723,
- "LastPath" : "",
- "PassEx" : "19f57e6b81c752cffd786df2ebfbd590237d51d5575377766e6f830170b9d5dff2e1751739bf05084dbe2af6e629b8c0a380e17ab4c315",
- "PrivacyScreen" : 0,
- "Quality" : 0,
- "ResolutionX" : 0,
- "ResolutionY" : 0,
- "ScreenMode" : 0,
- "UserId" : "391***073",
- "Voice" : 0,
- "Width" : 1368
- }
- ]
- }
复制代码
编辑
注:测试中发现使用同一个密码在tempAuthPassEx、authPassEx和历史连接记录里的PassEx密文都不一样,但是这几个密文又都可以用ToDesk来解密,而且明文还都是123456,搞不太明白。
0x05 可能需要清理的痕迹
这里我们必须要先结束或停止ToDesk_Service进程/服务,否则ToDesk.exe进程会在结束后自动运行。
- @echo off
- taskkill /f /im ToDesk_Lite.exe /im ToDesk_Service.exe /im ToDesk.exe
- del /s /q C:\Windows\Prefetch\TODESK*.pf
- del /s /q C:\Users\Public\Desktop\ToDesk.lnk
- del /s /q "%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\*TODESK*.lnk"
- rmdir /s /q "C:\Program Files (x86)\ToDesk"
- rmdir /s /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ToDesk"
- rmdir /s /q "%userprofile%\AppData\Local\ToDesk"
- rmdir /s /q "C:\WINDOWS\SysWOW64\config\systemprofile\AppData\Local\ToDesk"
- reg delete "HKLM\SOFTWARE\ToDesk" /f
- reg delete "HKLM\SYSTEM\CurrentControlSet\Services\ToDesk_Service" /f
- reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ToDesk" /f
- sc delete ToDesk_Service
- [...SNIP...]
复制代码
|
|