<<< Date Index >>>     <<< Thread Index >>>

BoF in Windows 2000: ddeshare.exe



Hello all,

I found a static buffer overflow in ddeshare.exe on my Windows 2000, latest updates/service packs box tonight. It appears as though no bounds checking is performed on the share name before it is copied to the variable.

Exploiting:
Start up c:\winnt\system32\ddeshare.exe. Click shares --> trusted shares. Pick any of the shares already there (at least there are some on my box, if not you can make one), and select Properties. Replace the data in the "Share Name" text box with something like this:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB

When you click OK, you get an error stating that ddeshare.exe has "generated errors". Yay.

Run in OllyDbg, we find that the above string makes the program attempt to JMP to 0x00420042. It just so happens that Hex 42 is a "B". So the two B's at the end of the exploit string change the instrucation pointer.

As far as I can tell, this is not exploitable to run a shellcode because of the fact that NULL's are inserted between charactors. But besides that, it would only give the same privliges that you already have to run the program in the first place. It simply points out bad coding.

Again, this isn't another of Microsoft's giant end-of-the-world security blunders, but still, it's a BoF.

Thanks,

-Jack C ("crEp")
jack [at] crepinc.com
http://www.crepinc.com