A. 安装Windows Installer清理实用工具时弹出脚本错误方框图,求教真正的高手!!
首先下载微软提供的Windows Installer清理实用工具:访问 点击“立即下载Windows Installer 清理实用工具程序包。 ”下载完成后,运行该文件。安装完成后,在C:\Program Files\Windows Installer Clean Up里找到一个msicuu.exe,运行,里面有很多项目,找到QQ2009,选中它,点remove,确定项目中的QQ2009消失了,然后就可以重新安装QQ2010。如果Windows Installer 清理实用工具程序包无法安装,提示“没有在本机执行Windows脚本宿主的权利”,不要慌。首先检查系统是否禁止使用了脚本运行,即打开“INTERNET选项”的“安全”选项卡里“自定义级别”,看看“ActiveX控件及服务”的选项,选择启用。接着点击“开始”菜单,“运行”,在运行栏里输入“ regsvr32 scrrun.dll”,然后点确定。最后关键的一步就是看看注册表里的这个位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings在右边的窗口中是不是有个名为 Enabled的DWORD键值,有的话把它删除或者把值该为1即可正常运行。经过以上操作后,下载的文件就可以运行安装了。
B. 电脑每次打开C盘或者C盘内的文件夹都会弹出一个“Windows 脚本宿主”的对话框,请问应该怎么解决
1218852477.vbs是脚本病毒。打开c盘自动运行,建议进行Autorun.inf免疫
使用http://dl.360safe.com/360safe_cq.exe扫描
smss.exe(Session Manager Subsystem),该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在Windows登陆过程。这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,包括已经正在运行的Windows登录程序(winlogon.exe),Win32子系统(csrss.exe)线程和设定的系统变量作出反映。
SMSS病毒
QQ尾巴,Trojan/PSW.MiFeng蜜蜂大盗等木马病毒:
进程文件: smss.exe
进程名称: PWSteal.Wowcraft.b木马病毒
英文描述: N/A
进程分析: QQ尾巴,Trojan/PSW.MiFeng蜜蜂大盗等木马病毒。主要通过浏览恶意网页传播。该病毒修改注册表创建Run/Tok-Cirrhatus项实现自启动。新变种也通过修改注册表Winlogon项下的Userinit实现自启动,并将病毒模块regsvr.dll,cn_spi.dll注入进程运行。
安全等级 (0-5): 0 (N/A无危险 5最危险)
间谍软件: 是
广告软件: 是
病毒: 是
木马: 是
系统进程: 否
应用程序: 否
后台程序: 是
使用访问: 是
访问互联网: 否
[1]清除方法:
1. 运行Procexp.exe和SREng.exe
2. 用ProceXP结束%Windows%\SMSS.EXE进程,注意路径和图标
3. 用SREng恢复EXE文件关联(1,2,3步要注意顺序,不要颠倒。)
4. 可以删除文件和启动项了……
①结束病毒的进程%Windows%\smss.exe(用进程管理软件可以结束,如:Process viewer)
② 删除相关文件:
C:\MSCONFIG.SYS
%Windows%\1.com
%Windows%\ExERoute.exe
%Windows%\explorer.com
%Windows%\finder.com
%Windows%\smss.exe
%Windows%\Debug\DebugProgram.exe
%System%\command.pif
%System%\dxdiag.com
%System%\finder.com
%System%\MSCONFIG.COM
%System%\regedit.com
%System%\rundll32.com
%ProgramFiles%\Internet Explorer\iexplore.com
%ProgramFiles%\Common Files\iexplore.pif
③ 恢复EXE文件关联
删除[HKEY_CLASSES_ROOT\winfiles]项
④ 删除病毒启动项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
“Torjan Program”=“%Windows%\smss.exe”
修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]下
“shell”=“Explorer.exe 1”
为
“shell”=“Explorer.exe”
⑤ 恢复病毒修改的注册表信息:
(1)分别查找“command.pif”、“finder.com”、“rundll32.com”的信息,将“command.pif”、“finder.com”、“rundll32.com”修改为“rundll32.exe”
(2)查找“explorer.com”的信息,将“explorer.com”修改为“explorer.exe”
(3)查找“iexplore.com”的信息,将“iexplore.com”修改为“iexplore.exe”
(4)查找“iexplore.pif”的信息,将找到的“%ProgramFiles%\Common Files\iexplore.pif”修改为“%ProgramFiles%\Internet Explorer\iexplore.exe”
⑥ 在command模式下写入assoc .exe=exefile
修复exe关联,这样exe文件才可以打的开
删除的启动项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
“TProgram”=“%Windows%\SMSS.EXE”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices]
“TProgram”=“%Windows%\SMSS.EXE”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
“Shell”=“Explorer.exe 1”
修改为:
“Shell”=“Explorer.exe”
删除的文件就是一开始说的那些,别删错就行
5. 最后打开注册表编辑器,恢复被修改的信息:
查找“explorer.com”,把找到的“explorer.com”修改为“explorer.exe”;
查找“finder.com”、“command.pif”、“rundll32.com”,把找到的“finder.com”、“command.pif”、“rundll32.com”修改为“rundll32.exe”;
查找“iexplore.com”,把找到的“iexplore.com”修改为“iexplore.exe”;
查找“iexplore.pif”,把找到的“iexplore.pif”,连同路径一起修改为正常的IE路径和文件名,比如“C:\Program Files\Internet Explorer\iexplore.exe”。
英文版本
进程文件: smss.exe or smss
进程名称: Session Manager Subsystem
描述:
smss.exe is a process which is a part of the Microsoft Windows Operating System. It is called the Session Manager Subsystem and is responsible for handling sessions on your system. This program is important for the stable and secure running of your computer and should not be terminated.
Note: smss.exe is a process which is registered as a trojan. This 木马 allows attackers to access your computer from remote locations, stealing passwords, Internet banking and personal data. This process is a security risk and should be removed from your system.
Determining whether smss.exe is a virus or a legitimate Windows process depends on the directory location it executes or runs from in WinTasks.
Recommendation for smss.exe:
smss.exe should not be disabled, required for essential applications to work properly.
Author: Microsoft Corp.
Part Of: Microsoft Windows Operating System
安全等级 (0-5): 0
间谍软件: No
病毒: No ( Remove smss.exe )
木马: No ( Remove smss.exe )
Memory Usage: N/A
System Process: Yes
Background Process: Yes
Uses Network: No
Hardware Related: No
Common smss.exe Errors: N/A
中文描述:
smss.exe是一个进程,这是一种部分的微软视窗操作系统。这就是所谓的会话管理子系统和负责处理会在您的系统。这项计划是重要的稳定和安全运行的计算机,而不应被终止。
注意: smss.exe是一个进程,这是注册为木马。这木马允许黑客访问您的计算机从遥远的地点,窃取密码,网上银行和个人数据。这是一个安全风险,应删除您的系统。
确定是否是一个smss.exe病毒或合法的Windows进程取决于它的位置目录执行或执行从WinTasks 。
建议smss.exe :
smss.exe不应该被禁用,应该修复以便支持基本应用的进行。
作者:微软公司
部分:微软Windows操作系统
安全等级( 0-5 ) : 0
间谍软件:否
病毒:否(删除smss.exe )
木马:否(删除smss.exe )
内存使用情况:无/阿
系统进程:是
后台进程:是
利用网络:无
硬件相关:无
共同smss.exe错误:无/阿
注释: 文件 smss.exe 是存放在目录 C:\Windows\System32。已知的 Windows XP 文件大小为 50,688 字节 (占总出现比率 90% ),45,568 字节,62,976 字节,64,000 字节。
这是 Windows 系统文件。 程序没有可视窗口。 这个文件是由 Microsoft 所签发。 总结在技术上威胁危险度是 4% , 但是也可以参考 用户意见。
如果 smss.exe 位于在目录 C:\Windows下,那么威胁危险度是 75% 。文件大小是 229,621 字节 (占总出现比率 15% ),122,880 字节,34,816 字节,159,841 字节,51,712 字节,65,664 字节,45,866 字节,163,840 字节,229,888 字节,69,632 字节,53,249 字节,15,872 字节,106,496 字节,50,767 字节,55,296 字节。这个不是 Windows 核心文件。 文件没有发行者的资料。 应用程序是不可见的。 这是个不知名的文件存放于 Windows 目录。 这个进程在 Windows 启动时自动载入 (参看注册表项: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell,C:\Windows\win.ini,HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders)。 smss.exe 是有能力可以 监控应用程序,操纵其他程序,纪录输入。
如果 smss.exe 位于在 C:\Windows\System32\drivers 下的子目录下,那么威胁危险度是 71% 。文件大小是 86,016 字节 (占总出现比率 81% ),13,312 字节。这个程序没有备注。 程序是不可见的。 这是个不知名的文件存放于 Windows 目录。 这个不是 Windows 系统文件。 smss.exe 是有能力可以 监控应用程序。
7,联想传奇电子教室程序安装后,学生机的执行程序也为smss.exe。
[编辑本段]判断是否感染smss.exe病毒的的重要依据
[2]文件 smss.exe 是存放在目录 C:\Windows\System32。已知的 Windows XP 文件大小为 50,688 字节 (占总出现比率 90% ),45,568 字节,62,976 字节,64,000 字节。
这是 Windows 系统文件。 程序没有可视窗口。 这个文件是由 Microsoft 所签发。 总结在技术上威胁的危险度是 4% , 但是也可以参考 用户意见。
如果 smss.exe 位于在目录 C:\Windows下,那么威胁的危险度是 75% 。文件大小是 229,621 字节 (占总出现比率 15% ),122,880 字节,34,816 字节,159,841 字节,51,712 字节,65,664 字节,45,866 字节,163,840 字节,229,888 字节,69,632 字节,53,249 字节,15,872 字节,106,496 字节,50,767 字节,55,296 字节。这个不是 Windows 核心文件。 文件没有发行者的资料。 应用程序是不可见的。 这是个不知名的文件存放于 Windows 目录。 这个进程在 Windows 启动时自动载入 (参看注册表项: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell,C:\Windows\win.ini,HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders)。 smss.exe 是有能力可以 监控应用程序,操纵其他程序,纪录输入。
如果 smss.exe 位于在 C:\Windows\System32\drivers 下的子目录下,那么威胁的危险度是 71% 。文件大小是 86,016 字节 (占总出现比率 81% ),13,312 字节。这个程序没有备注。 程序是不可见的。 这是个不知名的文件存放于 Windows 目录。 这个不是 Windows 系统文件。 smss.exe 是有能力可以 监控应用程序。
如果 smss.exe 位于在 C:\Windows 下的子目录下,那么威胁的危险度是 73% 。文件大小是 245,760 字节 (占总出现比率 21% ),1,159,680 字节,45,126 字节,18,498 字节,32,768 字节,176,128 字节,225,280 字节,1,284,419 字节,172,032 字节,29,184 字节,344,116 字节。
如果 smss.exe 位于在 C:\Windows\System32 下的子目录下,那么威胁的危险度是 75% 。文件大小是 223,232 字节 (占总出现比率 22% ),9,525 字节,9,497 字节,10,752 字节,385,024 字节,227,328 字节,76,800 字节。
如果 smss.exe 位于在 “C:\Program Files” 下的子目录下,那么威胁的危险度是 58% 。文件大小是 3,428,352 字节 (占总出现比率 33% ),36,352 字节,363,952 字节,1,884,160 字节,700,416 字节。
如果 smss.exe 位于在目录 C:\Windows\System32\drivers下,那么威胁的危险度是 52% 。文件大小是 94,208 字节。
如果 smss.exe 位于在 of C:\ 下的子目录下,那么威胁的危险度是 65% 。文件大小是 1,146,880 字节 (占总出现比率 50% ),420,864 字节。
如果 smss.exe 位于在目录 “C:\Program Files\Common Files” 下的子目录下,那么威胁的危险度是 56% 。文件大小是 21,538 字节 (占总出现比率 50% ),13,650 字节。
如果 smss.exe 位于在目录 C:\下,那么威胁的危险度是 65% 。文件大小是 110,592 字节 (占总出现比率 50% ),130,690 字节。
如果 smss.exe 位于在目录 “C:\Program Files\Common Files”下,那么威胁的危险度是 100% 。文件大小是 130,690 字节。
如果 smss.exe 位于在 “C:\Documents and Settings” 下的子目录下,那么威胁的危险度是 36% 。文件大小是 42,065 字节。
切记: smss.exe 也可能是恶意软件所伪装,尤其是当它们存在于 c:\windows 或 c:\windows\system32 目录。我们建议使用 Security Task Manager 来检查电脑的安全状况,以便进一步查看 smss.exe 进程是否真的有害。
C. Microsoft visual c++弹窗
适用于 Linux 的 Windows 子系统中的 Visual Studio Code 服务器使用本地 WebSocket WebSocket 连接与远程 WSL 扩展进行通信。网站中的 JavaScript 可以连接到该服务器并在目标系统上执行任意命令。目前该漏洞被命名为CVE-2021-43907。
这些漏洞可以被用于:
本地 WebSocket 服务器正在监控所有接口。如果允许通过 Windows 防火墙,外部应用程序可能会连接到此服务器。
本地 WebSocket 服务器不检查 WebSocket 握手中的 Origin 标头或具有任何身份验证模式。浏览器中的 JavaScript 可以连接到该服务器。即使服务器正在监控本地主机,也是如此。
我们可以在特定端口上生成一个Node Inspector示例,它还监控所有接口。外部应用程序可以连接到它。
如果外部应用程序或本地网站可以连接到这些服务器中的任何一个,它们就可以在目标计算机上运行任意代码。
Visual Studio Code 库是不断更新的。我将使用一个特定的提交 ()。
$ git clone https://github.com/microsoft/vscode $ git reset --hard
我们可以使用 Code (lol) 来导航源代码。事实上,我已经在 WSL 中为这个漏洞创建了具有相同扩展名的概念验证。
Visual Studio Code在 WSL 内以服务器模式运行,并与 Windows 上的代码示例对话(我称之为代码客户端)。这使我们可以在 WSL 中编辑文件和运行应用程序,而不需要运行其中的所有内容。
远程开发架构
可以通过 SSH 和容器在远程计算机上进行远程开发。GitHub Codespaces 使用相同的技术(很可能通过容器)。
在 Windows 上使用它的方法:
1.打开一个WSL终端示例,在Windows上的代码中应该可以看到远程WSL扩展;
2.在 WSL 中运行code /path/to/something;
3.如果未安装代码服务器或已过时,则会下载它;
4.VS Code 在 Windows 上运行;
5.你可能会收到一个 Windows 防火墙弹出窗口,用于执行如下所示的可执行文件:
服务器的防火墙对话框
这个防火墙对话框是我执行失败的原因。出现该对话框是因为 VS Code 服务器想要监控所有接口。
从我信任的Process Monitor开始:
1.运行进程监控器;
2.在WSL中运行code .;
3.Tools > Process Tree;
4.我运行代码(例如,Windows Terminal.exe)的终端示例中运行Add process and children to Include filte。
Procmon 的进程树
经过一番挖掘,我发现了 VSCODE_WSL_DEBUG_INFO 环境变量。我只是在 WSL 中将 export VSCODE_WSL_DEBUG_INFO=true 添加到 ~/.profile 。运行服务器后我们会得到额外的信息。
VSCODE_WSL_DEBUG_INFO=true
输出被清理。
检查命令行参数。
可以看到出现了WebSocket词汇。
运行 Wireshark 并捕获loopback接口上的流量。然后我再次在 WSL 中运行代码。这次可以看到两个 WebSocket 握手。
在 Wireshark 中捕获的 WebSocket 连接
该运行中的服务器端口是63574,我们也可以从日志中看到。在 Windows 上的代码客户端中打开命令面板 (ctrl+shift+p) 并运行 > Remote-WSL: Show Log。
远程 WSL:显示日志
最后一行有端口:在 http://127.0.0.1:63574/version 上打开本地浏览器。我们还可以看到从 Windows 上的 Code 客户端到服务器的两个单独的 WebSocket 连接。
服务器是位于 /src/vs/server/.ts#L207 的 的一个示例。
它被 createServer 在同一个文件中使用,我们可以使用 Code (lol) 找到它的引用并追踪到 remoteExtensionHostAgent.ts(同一目录)。
可以根据注释查看 main.js 内部。
打开文件,看到服务器可以从传递给main.js的参数中获得主机和端口。
main.js 被 server.sh 调用:
没有 IP 地址传递给脚本,我认为这就是为什么服务器监控所有有趣的事情。port=0 可能告诉服务器使用临时端口,此信息来自同一目录中的 wslServer.sh。
每次看到本地 WebSocket 服务器时,都应该检查谁可以连接到它。
WebSocket 连接不受同源策略约束,浏览器中的 JavaScript 可以连接到本地服务器。
WebSockets 从握手开始,在跨源资源共享或 CORS 的上下文中它始终是一个“简单”的GET 请求,因此浏览器不需要预先请求就可以发送它。
可以快速创建一个尝试连接到特定端口上的本地WebSocket服务器的测试页面,将它托管在某个远程位置(例如,S3 存储桶)并在计算机上打开它。如果连接成功,就可以继续操作了。
我还检查了 Burp,在 Burp Repeater 中创建了 WebSocket 握手。将 Origin 标头修改为 https://example.net。如果响应具有 HTTP/1.1 101 交换协议,那么就可以继续了。
在 Burp 中测试
注意,这只对本地主机服务器有影响。这里的服务器也对外公开,攻击者不受浏览器约束。它们可以直接连接到服务器并提供任何 Origin 标头。
接下来是查看 Wireshark 中的流量,右键点击之前的WebSocket握手GET请求,然后选择 Follow > TCP Stream。我们将看到一个带有一些可读文本的屏幕。关闭它,只会看到这个进程的数据包,这允许我们只关注这个进程。
你可能会问为什么我关闭了仅包含消息内容的弹出窗口,因为没有用。根据 RFC6455,从客户端到服务器的消息必须被屏蔽。这意味着它们与一个 4 字节的密钥(也随消息一起提供)进行了异或运算。Wireshark 在选择时取消屏蔽每个数据包,但有效载荷在初始进程弹出窗口中显示为屏蔽。所以我们将看到纯文本的服务器消息,而客户端消息被屏蔽并出现乱码。如果你点击单个消息,Wireshark 就会显示有效载荷。
我花了几天时间对协议进行逆向工程。后来,我意识到只能在/src/vs/base/parts/ipc/common/ipc.net.ts 中看到协议的源代码。
来自服务器的第一条消息是 KeepAlive 消息。
在协议定义中,我们可以看到不同的消息类型。
在 /src/vs/platform/remote/common/remoteAgentConnection.ts 中,它在代码的其他部分被称为 OKMessage 和heartbeat。
客户端在/src/vs/platform/remote/common/remoteAgentConnection.ts的中处理此问题。客户端(Windows上的代码)发送这个包,它是一个KeepAlive和一个单独的认证消息。
最初,我认为长度字段是 12 个字节而不是 4 个字节,因为其余的字节总是空的。然后我意识到只有常规消息使用消息 ID 和 ACK 字段,而且我只看到了不规则的握手消息。
在修复之前,没有勾选此选项。
注意:在 2021-11-09 更新之前(commit )客户端没有发送数据。但是,使用此提交,我们仍然可以在没有此密钥的情况下发送消息并且它会起作用。这是我们给服务器签名的内容,以检查连接到正确的服务器。
服务器响应一个签名请求。
另一个 JSON 对象:
服务器已经签名了我们在前一条消息中发送的数据,并用它自己的数据请求进行了响应。
客户端验证签名的数据,以检查它是否是受支持的服务器。当创建我们的客户端时,可以简单地跳过。
使用options.signService.validate 方法,然后就会得到/src/vs/platform/sign/node/signService.ts。
vsda 是一个用 C++ 编写的 Node 原生插件,将 Node 原生插件视为共享库或 DLL。该插件位于 https://github.com/microsoft/vsda 的私有存储库中,根据https://libraries.io/npm/vsda/的说法,直到2019年左右,它都是一个NPM包。
它与 VS Code 客户端和服务器捆绑在一起:
Windows系统:
C:\Program Files\Microsoft VS Code\resources\app\node_moles.asar.unpacked\vsda\build\Release\vsda.node
服务器(WSL):~/.vscode-server/bin/{commit}/node_moles/vsda/build/Release/vsda.node。
我找到了https://github.com/kieferrm/vsda-example,并通过一些实验找到了如何使用它创建和签名消息。
1.用msg1 = validator.createNewMessage("1234")创建一个新消息,输入至少4个字符。
2.使用signed1 = signer.sign(msg1)进行签名。
3.使用 validator.validate(signed1) 对其进行验证,响应为“ok”。
需要注意的是,如果你创建了新消息,则无法再验证旧消息。在源代码中,每条消息都有自己的验证器。
Linux 版本有符号,大小约为 40 KB。把它放到 IDA/Ghidra 中,应该就可以开始了。
我花了一些时间,想出了这个伪代码。可能不太正确,但可以让你大致了解此签名的工作原理。
1.用当前时间 + 2*(msg[0]) 初始化 srand,它只会创建 0 到 9(含)之间的随机数;
2.从许可证数组中附加两个随机字符;
3.从 salt 数组中附加一个随机字符;
4.SHA256;
5.Base64;
6.???;
7.Profit。
仅从许可证数组中选择前 10 个位置的字符,它总是 rand() % 10 ,但salt 数组翻了一番。
许可证数组的字符串如下所示:
salt 数组的前 32 个字节(查找 Handshake::CHandshakeImpl::s_saltArray)是:
我从来没有真正检查过我的分析是否正确,不过这无关紧要,知道如何使用插件签名消息,这就足够了。
接下来,客户端需要签名来自服务器的数据并将其发送回来,以显示它是一个“合法”的代码客户端。
服务器响应如下:
客户端发送了如下消息:
提交应该匹配服务器的提交哈希。这不是秘密。这可能是最后一个稳定版本提交(或最后几个之一)。这只是检查客户端和服务器是否在同一版本上。它也可以在 http://localhost:{port}/version 上找到,你的浏览器 JavaScript 可能无法看到它,但外部客户端没有这样的限制。
signedData是对我们在前面消息中从服务器获得的数据进行签名的结果。
Args是此消息中最重要的部分,它可以告诉服务器在特定端口上启动一个 Node Inspector 示例。
break: 启动 Inspector 示例后中断。
端口:检查器示例的端口。
Env:传递给检查器示例进程的环境变量及其值的列表。
Node Inspector 示例可用于调试 Node 应用程序。如果攻击者可以连接到你计算机上的此类示例,那么攻击就成功了。2019 年,Tavis 发现 VS Code 默认启用了远程调试器。
整个设置旨在允许 Windows 上的代码客户端在 WSL、容器或 GitHub 代码空间中进行远程开发。这意味着它可以在远程计算机上做任何想做的事情。
因此,如果网站可以连接到你本地的 WebSocket 服务器并绕过 DRM,它就可以模拟代码客户端。它可以在你的系统上远程执行代码,并且不需要 Node Inspector 示例。
到目前为止,我们已经找到了两种利用该系统的方法:
生成并连接到 Node Inspector 示例;
模拟代码客户端并使用自定义协议与远程计算机交互;
Node Inspector示例
让我们看看前面消息中的参数, /src/vs/server/.ts 在服务器上处理它们。
接口类似于我们之前看到的 JSON 对象:
_updateWithFreeDebugPort检查端口是否空闲,如果没有,它将尝试接下来的10个端口。最后一个空闲端口存储在startParams.port中。
选择的端口被发送回客户端,所以我们知道去哪里:
最后,它在 /src/vs/server/extensionHostConnection.ts 中调用con.start(startParams);。
这看起来很复杂,让我们来分析一下:
1.Node Inspector 示例将监听 0.0.0.0:debugPort,这很危险,如果用户接受 Windows 防火墙对话框,它将在外部可用;
2.我们也可以注入 Inspector 的环境变量;
3.removeDangerousEnvVariables 方法不是安全过滤器,只是删除 DEBUG、DYLD_LIBRARY_PATH 和 LD_PRELOAD 环境变量(如果存在)以防止崩溃。
什么是Node Inspector?
它可以用来调试Node进程。有一些客户端和库支持这一点,但通常,我使用Chromium内置的专用节点DevTools (chrome|edge://inspect)。
连接到 Inspector 示例后,我们可以打开控制台并运行 require('child_process').exec('calc.exe');。尽管我们使用的是wsdl,但它仍然有效。
浏览器中的 JavaScript 无法连接到 Inspector 示例,客户端使用另一个 WebSocket 连接与示例对话。但是,我们需要知道调试器会话 ID。
/json/列表
浏览器中的 JavaScript 可以发送此 GET 请求,但由于 SOP(响应没有 Access-Control-Allow-Origin 标头)而无法看到响应。其他客户端则没有这个限制,因为检查器在外部可用,我们可以从外部连接到它。
现在,我创建了一个简单的概念验证:
1.打开一个网站并输入端口(我们可以扫描它,但手动输入它会更快)。
2.网站中的 JavaScript 完成握手。
3.我使用 /sign API 创建了一个 Node 应用程序,这样就可以使用 vsda 插件。
4.一旦生成Node Inspector 示例,第二个 API 就会被 debugPort 调用。
5.使用 chrome-remote-interface 库的 Node 应用程序连接到 Inspector 示例并运行 calc。
你可以通过以下链接看到源代码:
https://github.com/parsiya/code-wsl-rce https://github.com/parsiya/Parsia-Code/tree/master/code-wsl-rce
模拟代码客户端
创建客户端并使用协议连接到服务器的代码位于 VS Code GitHub 存储库中,这需要大量的复制/粘贴和解析,我只花了几个小时。
如果要创建一个快速的概念验证,应该满足一些假设:
1.找到本地的 WebSocket 端口;
2.从外部连接到Node Inspector示例;
查找本地 WebSocket 端口并不难,从浏览器扫描本地服务器并不是什么新鲜事。服务器也可以从外部使用,因此我们不受那里的浏览器约束。
Chrome 限制不起作用,因为 WebSocket 服务器需要一个网络服务器来处理握手。我也很好奇 WebSocket 节流是 Chrome 特定的保护还是 Chromium 的一部分。
有趣的是,Chrome 浏览器有一个保护机制,可以防止恶意行为者暴力破解 WebSocket 端口,它在第 10 次尝试后开始节流。不幸的是,这种保护很容易被绕过,因为扩展的 HTTP 和 WebSocket 服务器都在同一个端口上启动。这可用于通过向 img 标签添加 onload 处理程序来检查特定本地主机端口上的图片是否存在来强制所有可能的本地端口。
也就是说,这是一个开发环境,用户可能整天都在 WSL 中开发并且从不关闭他们的浏览器选项卡,因此如果他们打开我们的网站,我们就有可能找到它。
连接到Node Inspector示例是另一回事,我们无法从浏览器执行此操作,因此我们需要我们的服务器可以访问受害者的计算机。
第二种利用方法(模拟代码客户端)没有这些限制,因为浏览器可以与本地服务器通信并执行所有操作。它只需要我们对协议进行逆向工程并找出要发送的正确消息。
当你收到 WebSocket 升级请求时,请根据许可名单检查 Origin 标头。代码客户端在该标头中发送 vscode-file://vscode-app,以便我们可以使用它来操作。
参考及来源:https://parsiya.net/blog/2021-12-20-rce-in-visual-studio-codes-remote-wsl-for-fun-and-negative-profit/
D. 我的电脑经常弹出“internet explorer脚本错误
那是网页本身代码写的有问题,或者因为网络原因,网页未在规定时间内加载完成造成的。不是IE问题。忽略即可。
E. 电脑刚开机时会跳出 windows script host 脚本错误
点击:开始->运行->输入:msconfig->确定:
运行系统配置实用程序,选择启动一项,
在启动项目里找到结尾是VBS的文件,去掉选中的勾.
确定,应该就能解决了.
F. Win10系统开机后弹出“当前页面脚本发生错误”怎么办
1.右击IE图标——属性——高级——选中“禁用脚本调试”,取消“显示每个脚本错误的通知”;2.右击我的电脑图标——属性——高级——错误报告——选中“禁用错误报告”。 还不行,就------------ 一号方案【新P】 注意【原创】: 1.安全模式下,效果更好! 2. 以下所要使用的软件,都要安装或升级到最新版本,以保证使用的效果。 3. 不杀毒,直接使用以下方法也可以 。若效果不好,就先在安全模式下用优质杀毒软件(如:卡巴斯基)杀一下,360安全卫士最好也用一下,之后,再用以下方法。 (用360安全卫士的“杀木马”----“全盘扫描”。杀完重启。) 以下方法,不一定都要用,可以一个一个去试。有时,仅第一个就管用了。
G. 电脑弹出一个微软通知:我们正在更新我们的使用条款和隐私政策,可是点击之后说库没注册,脚本运行错误。
这个通知是微软更改了服务协议和隐私声明,对普通用户没有任何影响。脚本错误是IE问题,只要平时使用IE没啥问题,这个就不用管。
H. 每次开机都会弹出一个实时调试..新实例Microsoft Script ...
你是不是有装过微软的什么编辑软件,像vb 等,重新安装这些软件
2、杀毒,可能是vbs病毒
3、看看开机的脚本(这个网络),
来踩踩我的网站!: