Live data from Hacker News

Remote Kernel Code Execution Via HTTP Request In IIS On Windows

ma.ttias.be

141–150 of 201 posts

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#141
post #29

I tried to send the bad curl request to our servers (test env, obviously) and I didn't get any error. It seems I should be getting "Requested Range Not Satisfiable" if the server is vulnerable and "The request has an invalid header name" if it's patched. I'm getting neither, simply a normal response HTTP 200 with the requested page. Anyone knows how to really test it? EDIT : It is indeed related to "Output Cache" set…

I just crashed a 2008 R2 server without a rule, just with "Enable Kernel Caching". Not sure if it is relevant, but I first added a rule for .png, and then removed it again. Still worked.

Site to check: https://lab.xpaw.me/MS15-034

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#143
post #96
post #94

Made a online tool that tests for this vuln: https://lab.xpaw.me/MS15-034/?host=bing.com

Tested against three servers, one patched and two not. Small test but it correctly identified which was which.

What did it say for the ones not vulnerable?

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#146
post #121
post #114

Earlier quoted context omitted.

[deleted]

Presumably the original idea was IIS performance.

Yeah, I completely missed that in order for kernel caching to work, HTTP has to be parsed within the kernel, and so I was making an invalid point. It happens.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#147
I bet somewhere in the source there is a line which looks like:

    if (inclusiveEnd + 1 > size) {
        return ERR_INVALID;
    }
HTTP ranges are inclusive, and most likely implemented here with unsigned 64 bit integers. My guess is the author converted to exclusive range, then compared with size, as a form of validation. It passes the check, because 18446744073709551615 + 1 results in wraparound to 0.

The general solution is instead to use something like:

    if (size  size - offset) {
        ... // range violated
    }
But you hardly ever see people do that.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#148
post #96

Earlier quoted context omitted.

Tested against three servers, one patched and two not. Small test but it correctly identified which was which.

What did it say for the ones not vulnerable?

is vulnerable.

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#149
post #65

Earlier quoted context omitted.

SYSTEM account is far more powerful than Administrator, especially after Win2008

This page makes it sound easy to go from the one to the other: http://blogs.technet.com/b/askds/archive/2008/10/22/getting-... (not as easy as earlier versions, but still)

that is from 7 years ago...

Re: Remote Kernel Code Execution Via HTTP Request In IIS On Windows

#150
post #134

Earlier quoted context omitted.

I just crashed a 2008 R2 server without a rule, just with "Enable Kernel Caching". Not sure if it is relevant, but I first added a rule for .png, and then removed it again. Still worked.

Can't edit the top comment anymore :( but it has been found that indeed no rules are needed to exploit this (my previous answer is outdated and wrong!) If you can't afford to reboot your servers right now to install the patch, at least you can add this to your web.config and deploy your websites ASAP :

Instead of updating every single web.config of your website I think it is better to just update once and for all by updating machine.config. What you say ?
Post reply on HN