Paranoia

Nov. 27th, 2006 01:11 am
foxgrrl: (Default)
The morning after I made this post: http://foxgrrl.livejournal.com/50642.html I walked into work — that afternoon actually — and was making random chit-chat with a coworker — [livejournal.com profile] flint_otter actually — and he said that he was reading this article on C|Net about how there was some new super-exploit already for the recent Windows vulnerability, and I'm like: Yeah, the MS06-070 one, I just wrote an exploit for it last night. And he's like, No it's something really new as of Tuesday. And I'm like, Yeah, that was MS06-070, unless one of the other ones was horribly exploitable. And he's like, Well, someone just wrote an exploit for it, and it's on the front page of C|Net. And I'm like, Um, I just wrote an exploit for it… And made a mention of it in my blog… Having been around C|Net reporters before, I know that they print a lot of hearsay and rumors from questionable sources. [And as I write this, Nyah keeps trying to tickle me → Just you wait until I write about this in my LJ! I exclaim. It's making it a bit hard to concentrate…]

So, I looked the article up…

http://news.com.com/Experts+raise+Windows+security+alarm/2100-1002_3-6136310.html

Paranoia mounting… Right now, I really don't need nameless cyclopean institutions investigating me… again. Especially, if there's suddenly a huge MS06-070 exploiting-worm outbreak. You know, it looks kinda suspicious, since I told a bunch of people that I write 0-day exploits and internet worms for a living; I might be viewed as a suspect. But I quickly figured out that they were referring to this: http://www.milw0rm.com/exploits/2789 (I still haven't published my MSF3 module anywhere.)

There was a period of time when I wasn't oppressively paranoid all the time, when I wasn't incredibly uptight and stressed out… when I wasn't pretending to be normal. It was right after I transitioned (the first time). In a way, I was really going from one box to another by going stealth - But there was a time in between, when I was outside of the rigid boxes.
Read more... )

MS06-070

Nov. 16th, 2006 05:43 am
foxgrrl: (Default)
As you are all well aware, yesterday was Microsoft Patch Tuesday. One of the vulnerabilities, was basically an anonymous remote root exploit against the default install of Windows 2000 (and maybe XP too). There isn't any POC code floating around on the net yet, so I wrote some to settle an argument.

I'm wondering now if I should release it publicly, or sell it to the highest bidder, or something. It currently does require a Windows Active Directory server, but if I work on it some more, I think I can make it work without requiring a separate windows server. (i.e. to work on Linux/*BSD/OSX alone). (Also, only Win2K targets so far.)

The MS advisory on this, less than useful as always: http://www.microsoft.com/technet/security/Bulletin/MS06-070.mspx

And the much more detailed - if remarkably vague in areas - eEye advisory on it: http://research.eeye.com/html/advisories/published/AD20061114.html
There's just enough information to find the vulnerability, and a hint as to how to trigger it, but not any details like about how the JoinOptions flag [arg_6] needs to be 0x01 (you'll want to use RPC function 0x16).

Oh yeah, I was going to mention, that this is also the first exploit I've written in the MSF3. I must say that the NDR and DCERPC libraries made this exploit so much faster and easier to write. (Easier to write than giant blobs of raw binary data, which is how I typically write stuff.)
foxgrrl: (Default)
Now students, can anyone tell me what happens next?
Courtesy LJ cut for large images )
I think that it'll help if I tell you that the heap structure at 0x00BFA8D8 was a free block, originally 0x005E 0x004D 0x01 0x10 0x00 0x00 with the forward and backwards pointers both set to 0x00230178, and I don't know why the fuck I can remember that without having to look it up, when I can't even remember my own postal address most of the time. (Maybe it's like [livejournal.com profile] lurene said, that all the really good reverse engineers/assembly coders are mentally broken in some way.) Anyway, 0x00230178 is the start of the free list (I think), it points back to 0x00BFA8E0.

Anyway, since this is Windows 2K Advanced Server SP0, I could just overwrite one of the function pointers in the PEB, or the TEB... or the SEH, wheee! [I'll explain later...] Although this particular buffer tends to move around a bit in memory, and I've been up all night trying to make the exploit [no you can't have a copy] more reliable. So I've been thinking of using Halvar's trick of building a VirtAlloc structure in the buffer underneath the free block, to get an extra DWORD copy. And with two writes, I think that would be enough to make this reliable, because the pointer to the free block exists in the segment table at 0x00B70027 (I think it was), which I know the address of. And worst case I could leave the original Forward pointer intact, because that does point to the FreeTable entry for itself. (In other words, if I can take the DWORD located at 0x00B70027 -- which points to data from the overflowed buffer, and write it to your favorite function pointer, then the shellcode will be jumped to exactly.)

Maybe.

Either that I'll just have to manipulate the heap list itself in such a way, that I can control where the next buffer will be written (to an address of my choice), write the shellcode there, and then do the overflow again to put this known address in some know location that will jump to it.
Overtired )

Profile

foxgrrl: (Default)
foxgrrl

May 2023

S M T W T F S
 123456
78910111213
14151617181920
212223242526 27
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 09:07 pm
Powered by Dreamwidth Studios