

- #Visual studio remote debugger install#
- #Visual studio remote debugger full#
- #Visual studio remote debugger portable#
- #Visual studio remote debugger code#
- #Visual studio remote debugger windows#
Thus, even a legitimate process started by msvsmon could be hollowed and turned evil.
#Visual studio remote debugger full#
noauth, /anyuser, /nosecuritywarn, /nowowwarn /silent, /timeout:2147483646Īlso, since msvsmon is a debugger, it is possible to manipulate the debuggee process via the network, providing the remote actor with full control over the running process, including memory and thread manipulation. Passing the following arguments to the application on launch can help to hide msvsmon.exe from the user:
#Visual studio remote debugger code#
In this scenario, the code of a malicious script could be passed as an argument providing fileless command execution.
#Visual studio remote debugger portable#
Since msvsmon is a portable application, it can be planted on a compromised computer and, combined with Mshta, WScript and other LOLBins, provides a great way to execute commands remotely. The second, even more interesting option, is using msvsmon as a remote shell. Once found, the instance can be used to start a LOLBin process to advance in the network. One option is that after gaining access to a computer in the network, an attacker could scan the network looking for running instances of msvsmon.exe. There are at least two options for malicious usage of the msvsmon.exe: it can be used as a lateral movement tool and as a backdoor tool. How Can msvsmon Compromise Your Security? It is worth mentioning that the authentication also enables encryption of the network traffic between the debugger and the debugee. In order to make debugging simpler, developers are sometimes minded to turn the authentication off.
#Visual studio remote debugger windows#
Though the authentication is based on Windows authentication, it’s a bit obscure. While helpful, these measures are not 100% effective. To prevent feature weaponizing, Microsoft added authentication to the monitor (enabled by default) and obfuscated exported function names of a few debugging core components: Leaving the remote debugger listening to the network weakens security. However, as with all conveniences, the power of remote debugging comes with security tradeoffs. The msvsmon tool accepts commands from the Visual Studio instance running on the developer’s computer, handles local debug events and passes them to and from Visual Studio.

The role of msvsmon.exe is very similar to Linux gdbserver. One of the components of the remote debugging solution is the msvsmon executable: the application that runs on the remote computer listening to the network and acting as a local debugger. Microsoft Windows SDK ships a remote debugging feature, providing a great way to debug applications deployed on a remote computer. Visual Studio Remote Debugger’s msvsmon.exe Inspired by an idea from our teammate Kasif Dekel, we show how msvsmon can be used as a new tool in the red team arsenal and share a tool that can detect insecure instances of msvsmon.exe running in your organization. In this post, we discuss the remote debugging feature and talk about its internals. Since msvsmon.exe, a signed Microsoft application, makes it possible to start and manipulate processes, it could be used as a convenient tool to disguise malicious activity. It can also be used to access a computer after it has been compromised to keep a backdoor open. It can help an adversary covertly advance in the network, especially if msvsmon.exe runs under a highly privileged account. As with any debugger, msvsmon.exe can start a process upon a request from the network. Selecting this profile will add it to your launchSettings.Leaving msvsmon.exe (the remote debugger monitor) unattended in ‘no authentication’ mode is not safe. NET Core console app in Visual Studio, you’ll see a new Launch Profile named WSL 2: After you have installed the extension, when you open an ASP.NET Core web app or.
#Visual studio remote debugger install#
NET Core Debugging with WSL 2 – Previewīefore using the extension, be sure to install WSL 2 and the distribution of your choice. And once your app is deployed, you can always use the Remote Debugger to attach to it if there is an issue. You don’t have to choose just one! You can have a launch profile for Docker and WSL 2 in the same project and pick whichever is appropriate for a particular run. When an easy and fast inner-loop is more important, WSL 2 is a great option. When production realism is your main concern, you should use one of those. In Visual Studio you can already debug in a remote Linux environment using the Remote Debugger, or with containers using the Container Tools. NET user targeting Linux, WSL 2 lives in a sweet spot between production realism and productivity.
