rdp interview questions
Top rdp frequently asked interview questions
I am trying to login to RDP using AS3 (air). I am doing ok, considering the lack of resources out there to understand the actual process.
I have gotten past the initial sending username, received a response from server, and I am now at initial request connection.
I am sending all my data and when sniffing traffic, I see that netmon is recognizing correctly what kind of packet I am sending (t125). I am not being disconnected by RDP and they send an ack
packet - but I don't receive the response that I am expecting.
I have been cross referencing with connectoid
, which is an open source RDP client. In the connection code, I am stuck where they write a mixture of little and big-endian integers.
When I look at the limited examples out there (more like packet dumps), I see that connection length for this process is 412, but my bytearray
is more like 470.
I have converted connectoid
methods to what I believe is correct, but with a mixture of endian type, I am still unsure.
I am sorry if this is garbled, but I am trying my best to help you to help me. I will attach some code showing what I have tried to do in conversion.
public function sendMcsData(): void {
trace("Secure.sendMcsData");
var num_channels: int = 2;
//RdpPacket_Localised dataBuffer = new RdpPacket_Localised(512);
var hostlen: int = 2 * "myhostaddress.ath.cx".length;
if (hostlen > 30) {
hostlen = 30;
}
var length: int = 158;
length += 76 + 12 + 4;
length += num_channels * 12 + 8;
dataBuffer.writeShort(5); /* unknown */
dataBuffer.writeShort(0x14);
dataBuffer.writeByte(0x7c); //set 8 is write byte //write short is setbigendian 16 //
dataBuffer.writeShort(1);
dataBuffer.writeShort(length | 0x8000); // remaining length
dataBuffer.writeShort(8); // length?
dataBuffer.writeShort(16);
dataBuffer.writeByte(0);
var b1: ByteArray = new ByteArray();
b1.endian = Endian.LITTLE_ENDIAN;
b1.writeShort(0xc001);
dataBuffer.writeBytes(b1);
dataBuffer.writeByte(0);
var b2: ByteArray = new ByteArray();
b2.endian = Endian.LITTLE_ENDIAN;
b2.writeInt(0x61637544);
dataBuffer.writeBytes(b2);
//dataBuffer.setLittleEndian32(0x61637544); // "Duca" ?!
dataBuffer.writeShort(length - 14 | 0x8000); // remaining length
var b3: ByteArray = new ByteArray();
b3.endian = Endian.LITTLE_ENDIAN;
// Client information
b3.writeShort(SEC_TAG_CLI_INFO);
b3.writeShort(true ? 212 : 136); // length
b3.writeShort(true ? 4 : 1);
b3.writeShort(8);
b3.writeShort(600);
b3.writeShort(1024);
b3.writeShort(0xca01);
b3.writeShort(0xaa03);
b3.writeInt(0x809); //should be option.keybaortd layout just guessed 1
b3.writeInt(true ? 2600 : 419); // or 0ece
dataBuffer.writeBytes(b3);
// // client
// build? we
// are 2600
// compatible
// :-)
/* Unicode name of client, padded to 32 bytes */
dataBuffer.writeMultiByte("myhost.ath.cx".toLocaleUpperCase(), "ISO");
dataBuffer.position = dataBuffer.position + (30 - "myhost.ath.cx".toLocaleUpperCase()
.length);
var b4: ByteArray = new ByteArray();
b4.endian = Endian.LITTLE_ENDIAN;
b4.writeInt(4);
b4.writeInt(0);
b4.writeInt(12);
dataBuffer.writeBytes(b4);
dataBuffer.position = dataBuffer.position + 64; /* reserved? 4 + 12 doublewords */
var b5: ByteArray = new ByteArray();
b5.endian = Endian.LITTLE_ENDIAN;
b5.writeShort(0xca01); // out_uint16_le(s, 0xca01);
b5.writeShort(true ? 1 : 0);
if (true) //Options.use_rdp5)
{
b5.writeInt(0); // out_uint32(s, 0);
b5.writeByte(24); // out_uint8(s, g_server_bpp);
b5.writeShort(0x0700); // out_uint16_le(s, 0x0700);
b5.writeByte(0); // out_uint8(s, 0);
b5.writeInt(1); // out_uint32_le(s, 1);
b5.position = b5.position + 64;
b5.writeShort(SEC_TAG_CLI_4); // out_uint16_le(s,
// SEC_TAG_CLI_4);
b5.writeShort(12); // out_uint16_le(s, 12);
b5.writeInt(false ? 0xb : 0xd); // out_uint32_le(s,
// g_console_session
// ?
// 0xb
// :
// 9);
b5.writeInt(0); // out_uint32(s, 0);
}
// Client encryption settings //
b5.writeShort(SEC_TAG_CLI_CRYPT);
b5.writeShort(true ? 12 : 8); // length
// if(Options.use_rdp5) dataBuffer.setLittleEndian32(Options.encryption ?
// 0x1b : 0); // 128-bit encryption supported
// else
b5.writeInt(true ? (false ? 0xb : 0x3) : 0);
if (true) b5.writeInt(0); // unknown
if (true && (num_channels > 0)) {
trace(("num_channels is " + num_channels));
b5.writeShort(SEC_TAG_CLI_CHANNELS); // out_uint16_le(s,
// SEC_TAG_CLI_CHANNELS);
b5.writeShort(num_channels * 12 + 8); // out_uint16_le(s,
// g_num_channels
// * 12
// + 8);
// //
// length
b5.writeInt(num_channels); // out_uint32_le(s,
// g_num_channels);
// // number of
// virtual
// channels
dataBuffer.writeBytes(b5);
trace("b5 is bigendin" + (b5.endian == Endian.BIG_ENDIAN));
for (var i: int = 0; i < num_channels; i++) {
dataBuffer.writeMultiByte("testtes" + i, "ascii"); //, 8); // out_uint8a(s,
// g_channels[i].name,
// 8);
dataBuffer.writeInt(0x40000000); // out_uint32_be(s,
// g_channels[i].flags);
}
}
//socket.
//buffer.markEnd();
//return buffer;
}
Source: (StackOverflow)
Can RDP clients launch a remote application and then only display that application (and not the desktop)? The application would appear fullscreen within the client and if the application were closed the session would end.
Source: (StackOverflow)
I need to know what is the protocol used in vmware ESXi vSphere client to connect to the remote console?
Is this protocol open source ?
Is their any vmware/third party applications enables VM Remote console connection other than vsphere client ?
Source: (StackOverflow)
Are there any libraries for connecting as a client via Remote Desktop Protocol (RDP) in Linux? The language used is secondary to the issue of existence. Any mainstream language would do (e.g. C++, Perl, Java, Ruby, PHP, Python), and even less popular ones like OCaml or Scheme.
Is there any option available other than taking the rdesktop source and hacking a library out of that?
Source: (StackOverflow)
I encountered this problem several times.
I want to use a character accessible using the AltGr Key but for some reason it doesn't work. As if i didn't press the AltGr key.
Usually i experience this in remote Desktop but not on my local machine. I think that this is triggered when doing a combination of those keys : Alt/Ctrl/AltGr/Shift + Enter. But i tried many of those combinations, and it didn't solve the problem...
I also figured out that i could access the characters i needed while doing Ctrl+AltGr+Key instead of AltGr+Key
Source: (StackOverflow)
I realize that in Windows 7, it is not possible to save different credentials for the same host, but I need some workaround.
Can I provide the username and password manually in the code? Store them in a temp .rdp file?
Source: (StackOverflow)
I need to connect (in rdp ) to a machine (let's call it #1) in my college network ( I have the internal IP of it ) , I also have access the to Linux server machine in the same network in ssh , that I can use to access the #1 ,
I'm using putty, can someone please explain to me how I can connect to it ?
[My laptop] --->[Linux server] --->[windows machine] in rdp
Thank you,
Source: (StackOverflow)
Are there any descent RDP libraries/implementations for iOS platform usage?
If you should do it regardless of them being any, how would you do it? Maybe start diggin' into/porting code from freeRDP? What about those dependencies on Xorg and ALSA stuff? How can you render stuff on the iPhone coming from raw RDP data?
Source: (StackOverflow)
I have an application which injects keystrokes into applications via SendKeys.
Unfortunately, the application will not work when I am running it via Remote Desktop
because of the well known issue that SendKeys doesn't work with Remote Desktop.
Has anyone solved this issue before, or have any good suggestions on how to resolve it?
Source: (StackOverflow)
I am looking for a tool to know if a given computer on the local network is being remotely accessed by a user or not and ideally I'd like to know who that user is. In my company, we share virtual machines and we keep have to ask members in the team if they use any remote computer. I'd like to have some kind of dashboard that can tell me what computer is being used, and what computer is free.
I am happy to use any kind of commercial solution that would require the install of services on each of the machines that need to be monitored or things like that.
Source: (StackOverflow)
I have a .net winforms app which has a few animation effects, fade ins and scroll animations etc. These work fine however if I'm in a Remote Desktop Protocol session the animations start to grate.
Can someone suggest a way of determining whether or not an app is running across an RDP session so I can turn the effects off in this case?
Source: (StackOverflow)
I am trying to Remote Desktop onto an Azure instance from Mac OS X, but can't find a tool that allows me to do it. Address and username is fine, but none of the clients seem to have the capabilities to include the instance information.
I have so far tried the Miscrosoft RDC and CoRD but to no avail.
Has anyone succeeded in using RDP to an Azure instance on a Mac?
Source: (StackOverflow)
I use RDP-based Windows' Remote Client Desktop utility to connect to my desktop from my laptop. It's much faster and looks better than remote control applications like TeamViewer etc.
Out of curiosity, why is RDP better?
Thank you.
Source: (StackOverflow)
My company admin just found the answer to this question as I was writing it, so I'm posting it here for others:
I use xfreerdp to connect to a Windows 7 machine from Linux with RDP. Typically, I provide my credentials and the IP address of the machine and everything works fine. One day, I come in and attempt to connect, only to be presented with this:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the host key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
(The x's were actual numbers.) I checked my Linux known_hosts file for the machine I was connecting to, and yes, indeed, the RSA fingerprint for the machine did change. So I asked the admin at my company if he had done some updates or anything that would have changed the key Windows uses for RDP sessions. He said nothing had changed that he was aware of. At this point, common sense and my knowledge of security tells me I wasn't supposed to connect until I logged into the machine physically and checked that there was indeed a new RSA host key for RDP. (If there wasn't, then it would be likely that there was a man-in-the-middle attack going on.)
The problem is, when I logged into the physical machine to find out if the RSA key had changed, I couldn't figure out where to go to view it. I searched online and couldn't figure out any way in Windows 7 to view the RSA fingerprint of the key RDP sessions use. Does anyone know where I can view the key?
Source: (StackOverflow)
I'm trying to open an rdp session to a server from my web page.
<td><a rel='nofollow' href="file:///c:/Users/stegar06/Desktop/wtf.bat">testrdp</a></td>
The .bat file just has the following line written in it:
mstsc /v:emea-cirrus
What happens is that the file just gets displayed in my chrome browser as a text file. So the web page just loads and literally says "mstsc /v:emea-cirrus" at the top. How can I get it to launch the remote desktop client and go to the address?
I have also tried making a .rdp file and referencing that is the href, which also just showed up as plain text. The RDP file was created using the following code:
screen mode id:i:2
desktopwidth:i:1436
desktopheight:i:925
session bpp:i:16
auto connect:i:1
full address:s:emea-orion
compression:i:1
keyboardhook:i:2
audiomode:i:2
redirectdrives:i:0
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:0
displayconnectionbar:i:1
alternate shell:s:
shell working directory:s:
disable wallpaper:i:1
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
bitmapcachepersistenable:i:1
winposstr:s:0,3,0,0,800,600
redirectclipboard:i:1
redirectposdevices:i:0
drivestoredirect:s:
autoreconnection enabled:i:1
authentication level:i:0
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0
allow desktop composition:i:0
allow font smoothing:i:0
disable cursor setting:i:0
gatewayhostname:s:
gatewayusagemethod:i:0
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
Source: (StackOverflow)