前言
文章如有错误望大佬们指出,轻喷。
在某某个夜晚你通过XXX方法获取了服务器的webshell权限,你想上线CS或MSF,这时你查了一下服务器的进程。
看到这你惊掉了下巴,不会免杀,世面的免杀也无法过这些杀软,也无法添加用户进行RDP。这时你就可以选择借助远控软件如向日葵、TeamViewer、toDesk、AnyDesk(这个国外用的比较多,别问我为什么知道)等方式远程服务器。
todesk的利用
这里测试的版本为4.7.0.2版本。
获取服务器webshell,查看服务器进程,发现服务器进程有ToDesk_service.exe,这时我们就可以利用服务器本身安装的todesk进行远程连接
wmic process where name="ToDesk.exe" get processid,executablepath,name (获取todesk安装目录)
靶机todesk安装的目录为C:/Program Files/ToDesk/,按实际安装目录来。todesk启动会去加载ToDesk目录下的Config.ini的配置,通过查看该配置文件能获取clientid,但client对应的密码加密。
这时需要将靶机tempAuthPassEX的值复制到攻击机todesk目录下的config.ini,将攻击机原本的tempAuthPassEX替换为靶机对应的pass值
重新启动我们攻击机todesk,这时会发现攻击机的远程密码和靶机的一样。对应的id为靶机Config.ini文件内的clientid值。
当服务器未安装todesk时,我们也可以上传todesk安装包,通过webshell进行静默安装。
Todesk.exe /S
接下载的思路也是将靶机的tempAuthPassEX复制到攻击机config.ini,重启todesk
一样的套路,webshell查看进程发现存在anydesk进程。
直接kill anydesk进程,这里有一个问题,后续重新启动后对应的id还有passsword会变,很容易被管理员发现
同样查看安装目录,一般默认安装目录为对应用户下的%AppData%,如果安装了anydesk就会对应有AnyDesk目录,该目录下也有anydesk的配置文件
删除%AppData%\AnyDesk所有文件
在攻击机配置无人值守密码,并将配置文件上传到靶机的%AppData%\AnyDesk目录,并删除本机所有anydesk目录下的文件(注:需要记住攻击机原本的anydesk id,后续靶机的id就为攻击机的id。配置文件上传之前需要将攻击机的anydesk所有进程都停掉。)
重新上传anydesk.exe,并执行。这时anydesk会重新去加载%AppData%\AnyDesk下的配置文件。
连接id为原先攻击机的id,密码使用无人值守的密码登录
当服务器未安装AnyDesk时,我们也可以上传AnyDesk安装包,通过webshell进行安装。安装前需要在对应获取的用户下的%AppData%创建AnyDesk目录
md %AppData%\AnyDesk
接下来就和上面的一样步骤,打开攻击机anydesk记住自己攻击机的id,攻击机设置无人值守密码。
攻击机需退出anydesk所有程序,打开安装目录 %AppData%\AnyDesk将该目录中的文件上传到靶机anydesk目录下,并删除本地该目录下所有文件
靶机运行上传上去的anydesk程序,并运行
存在TeamViewer进程,直接上传工具,利用工具获取对应的id和连接密码,这里是直接用大佬开发的工具,很好用,很方便。
https://github.com/uknowsec/SharpDecryptPwd
直接获取密码和id
成功连接
同样的方法测试了最新版的TeamViewer,无法成功获取