Re: DEFCON 16 and Hacking OpenVMS
- From: johnwallace4@xxxxxxxxxxx
- Date: Fri, 15 Aug 2008 08:12:36 -0700 (PDT)
On Aug 15, 3:35 pm, "R.A.Omond" <Roy.Om...@xxxxxxxxxxxxxxxxx> wrote:
samp...@xxxxxxxxx wrote:
[...snip...]
I think what they do (more or less) is to inject some shellcode into a
logical before running the exploit, then insert some other code after
the overflow that executes the code in the logical. Signedness guys
care to comment, I didn't see the demo, just have the notes second
hand?
Y'know ... I may be a newbie in this VMS thingy (a mere 26.5 years...)
but I actually didn't understand what that is meant to mean.
I'm a skeptic and proud of it, but I'm beginning to suspect that
this is all a hoax.
I've only been on VMS (and Unixes) since 1985 so I am not worthy, and
am risking teaching you how to suck eggs...
The general principle being referred to in the extract you quote is
that these exploits work by finding some OS-managed storage which is
writable by users and can potentially be executed later, preferably by
code with elevated privileges. So, for example, the name and/or
contents of a logical are in writable storage, and although that
storage isn't normally intended to hold code, if the memory management
subsystem doesn't prevent it being treated as code, then it can be
treated as code. So, you put some string of values in there somehow
that you want executed later, and all that's left to do is getting
control transferred to that code.
The classic mechanism for this unintended transfer of control is the
stack based buffer overflow scribbling over a return address. Here an
unchecked copy into a limited-size buffer is allowed to deposit more
data than the item can hold (which is why STR$this and DSC$that and
associated RTL routines are a NICE idea, one day maybe Billco and UNIX
will catch on to it). In the right circumstances, the excess data goes
far enough up(down?) the stack to overwrite the original return
address on the stack. Then all you have to do is work out how to get
the address of your "shell code" (?) written on to the stack in
exactly the right place to be interpreted as a return address when the
function in the picture returns to the caller (or in this case,
"returns" to the shell code).
If all this is done correctly you don't see an ACCVIO, you just end up
with unintended code being silently executed, potentially in the
context of an exploitable program. I haven't watched the videos but
the ACCVIOs here aren't what I'd expect to see as part of a successful
exploit; they are what I'd expect to see as the result of a bit of
traditional broken UNIX code with a traditional off-by-one or similar
schoolboy error (like the ones I still make :)). I'm entirely happy
that these things can be done in general, especially on commodity
OSes, and may even be possible on VMS, especially on apps with a UNIX
heritage which haven't been kept up to date.
I'm reserving judgement on whether I've seen proof.
.
- Follow-Ups:
- Re: DEFCON 16 and Hacking OpenVMS
- From: Jan-Erik Söderholm
- Re: DEFCON 16 and Hacking OpenVMS
- References:
- DEFCON 16 and Hacking OpenVMS
- From: Mark Daniel
- Re: DEFCON 16 and Hacking OpenVMS
- From: sampsal
- Re: DEFCON 16 and Hacking OpenVMS
- From: david20
- Re: DEFCON 16 and Hacking OpenVMS
- From: sampsal
- Re: DEFCON 16 and Hacking OpenVMS
- From: patrick jankowiak
- Re: DEFCON 16 and Hacking OpenVMS
- From: sampsal
- Re: DEFCON 16 and Hacking OpenVMS
- From: Mark Daniel
- Re: DEFCON 16 and Hacking OpenVMS
- From: david20
- Re: DEFCON 16 and Hacking OpenVMS
- From: david20
- Re: DEFCON 16 and Hacking OpenVMS
- From: Bob Gezelter
- Re: DEFCON 16 and Hacking OpenVMS
- From: patrick jankowiak
- Re: DEFCON 16 and Hacking OpenVMS
- From: sampsal
- Re: DEFCON 16 and Hacking OpenVMS
- From: R.A.Omond
- DEFCON 16 and Hacking OpenVMS
- Prev by Date: Re: DEFCON 16 and Hacking OpenVMS
- Next by Date: Re: Help needed with / confused by AST routine (VAX,COBOL)
- Previous by thread: Re: DEFCON 16 and Hacking OpenVMS
- Next by thread: Re: DEFCON 16 and Hacking OpenVMS
- Index(es):
Relevant Pages
|