Menu

Home

sojasprosse

MsraViewer.exe (Viewer) can view and control
the Windows Desktop of another host MsraConsole.exe (Sharer)

This software and [Source Code] comme without any warrenty!
It confer no rights, use it at your own risk.
The Software was build only for C# learning proposes.
Don't use it in productive environments!.

Install / Uninstall

Download Install-MsraConsole.msi for Sharer or Install-MsraViewer.msi for viewer:
https://sourceforge.net/projects/msraconsole/files/
Install by double click on the msi File.
A Security Warning will be shown.
This is because the Software is not digitaly signed.

Silent Install / Uninstall
Use the provided Install.cmd or uninstall.cmd files from the GIT Code Repository
or form the source ZIP-File.
They are located in Setup sub Folder.
Setup\MsraConsoleSetup for Sharer
Setup\MsraViewerSetup for Viewer

MsraCosole creates the following Auto Run Entry in the Registry.
This will automaticaly run and hide the Program when a user log on Windows.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
"MsraConsole.exe"="C:\Program Files\MsraConsole\MsraConsole.exe -q"

Security for the random Connection Password

The Sharer host has to run MsraConsole.exe
This creates an invitation and encrypted password file on a UNC network path.
It then shares it's Windows Desktop to the Viewer host(s)

See [Function Scheme] for the functional diagram.

Attention!
The random Remote Password to connect to the Sharer is stored encrypted on the UNC network share.
The Sharer host generates a random password, encrypt's and save it.
It uses the public key of the Viewer host(s) to encrypt it.
The Viewer host(s) then read the encrypted password from the UNC share.
It decrypt' the password with it's private key and connect to the Sharer host(s).

The unc path for the encrypted password file(s) is stored in the config file in "InvitationTargetPath".
The unc path to the Viewer public key file(s) is stored in the config in "ViewerKeyPath".

The Sharer creates the invitation xml file in the "InvitationTargetPath".
This File is used by the Viewer host to connect to the Sharer host.
The invitation File is compatible with the Windows msra.exe invitation file.

On a Fileserver:

1) share two folder's on a Fileserver

for example sare the folder D:..\invitation as : \\server\invitation$

The Sharer User(s) need write permisson on this UNC path.
Add a group for example "sharer" with write permission to the path.
Add the Sharer Active Directory User(s) as member to the "sharer" group.
Add another group for example "viewer" with read permission on the path.
Add the Viewer Active Directory User(s) as member to the "viewer" group.

Create another share on the filseserver for example: \\server\invitation$\ViewerKeys

It is very very Important that only the Viewer Users has write permission on this UNC Path!
Otherwise someone could save a faked public key and encrypt the sharer password with it!
The Sharer User need only read permisson on this path!
Add the group "viewer" with write permission to the ViewerKeys path.
Add the group "sharer" with read permission to the ViewerKeys path.

It is also very very important for the security that only Administraors have write permisson to the config Files.
This is because the Path to the UNC shares is stored in the config files!

Takecare of the Viewer(s) private RSA Keys on the Viewer hosts.
The Key is stored and managed by the Windows Keystore RSA Crypto Provider.
With the Viewers private Key you could decrypt the Sharer(s) Password!

On Viewing Client:

1) run MsraViewer.exe as Administrator

Check the NTFS permissons so only Administrators can
change the MsraViewer.exe.config file!

2) In the Menu "Settings" > "Server Share"
select the unc path "\\server\invitation$"

In the Menu "Settings" > "Viewer Share"
select the unc path "\\server\invitation$\ViewerKeys"

In the Menu "Settings" select "Create Public Key"
This will save the Viewer public key to the unc path
"\\server\invitation$\ViewerKeys\xxx.txt"

3) close the viewer

On Sharing Client:

1) edit the file MsraConsole.exe.config as Administrator

Check the NTFS permisson so only Administrators can change the config file!

2) save the same unc pathes as configured above in the config file:

<setting name="InvitationTargetPath" serializeas="String">
<value>\\server\invitation$</value>
</setting>
<setting name="ViewerKeyPath" serializeas="String">
<value>\\server\invitation$\ViewerKey</value>
</setting>

3) run MsraConsole.exe to share your Desktop for the Viewer host(s)

4) on Viewing Client host run now MsraViewer.exe to view the shared Windows Desktop

Project Members:

Related

Wiki: Function Scheme
Wiki: Source Code