Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To get Administrator access on Windows (theoretically) you could plug in a USB hub with a virtual keyboard, USB mass storage and a random unknown device. The USB mass storage would have the payload you wanted to run in the form of a driver for the unknown device and the virtual keyboard would replay the keys needed to accept the warning messages about installing unsigned drivers.


Can unprivileged users install hardware drivers on Windows? Really? (Honest question; I'm not a Windows admin).

This exploit uses a kernel-level buffer overflow during the initial device handshake, completely circumventing user privileges.


In XP, all bets are off, as the vast majority of users run with local admin rights.

For Vista and 7, I believe that the much-hated-by-numpties User Account Control should prevent this from happening, as it opens a virtual screen or something to give access to the 'OK/Cancel' dialog.

From UAC on Wikipedia: 'User Account Control asks for credentials in a Secure Desktop mode, where the entire screen is temporarily dimmed, Windows Aero disabled, and only the authorization window at full brightness, to present only the elevation user interface (UI). This is to prevent spoofing of the UI or the mouse by the application requesting elevation.'


For Vista and 7, I believe that the much-hated-by-numpties User Account Control should prevent this from happening

I think the idea was that the USB device would include a keyboard and that this would press the keys required to confirm UAC. This wouldn't work if the machine was locked, and if the user could see the screen then they'd at least notice it.


In a past thread about hardware exploits, someone suggested simply having a device that poses as a keyboard and then types out the source of a rootkit and compiles it. Or even just type the binary straight onto the disk somehow.

That my friends, is genius. Credit goes to whoever suggested it originally.


It is possible to make a pure-ASCII executable. http://mirror.href.com/thestarman/asm/eicar/eicarcom.html


I don't see how you could do this for PE files, which would be required to pull this off on x64 (since you can't run 16-bit binaries like .COMs). There are several fields in the headers that require non-ASCII values.


With PowerShell or WSH?


This link is very interesting. I thought incorrectly that it was only a random string. You should submit the link.


Fair play - I stand corrected.


That virtual keyboard trick wouldn't work in case the desktop/laptop is locked, though, that's a drawback.


The UAC runs in a context called the protected desktop. When the UAC is active things like this won't work. Your program won't be able to press "Okay" or anything.

Secondly, non-admin users can't install most drivers and autorun will ask them if they really want to run the app. Admin users can install but will also have to deal with the autorun dialog.


So you are saying that protected desktop accepts key presses only from some but not all keyboards connected to system? That does not seem quite right.

And as for UAC and protected desktop: take debugger and look at how most UAC prompts are invoked. Many of them are caused by user-space code running in address space of "offending" process, so you can patch them out.


He's talking about keypresses coming from a physical usb device - just one that doesn't have physical keys on it.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: